基本地理空间 Python 库

基本地理空间 Python 库


发布日期: 2023-05-09 更新日期: 2023-05-09 编辑:xuzhiping 浏览次数: 949

标签:

摘要: Python 是地理空间分析和一般数据科学中最流行的编程语言之一。它的流行来自于 Python 的高级、人类可读的语法和极大的灵活性。接下来让我们在本文继续定义一些在使用 Python 时需要了解的重要术语。 什么是 Python 库/包? Python 库...

基本地理空间 Python 库

Python 是地理空间分析和一般数据科学中最流行的编程语言之一。它的流行来自于 Python 的高级、人类可读的语法和极大的灵活性。接下来让我们在本文继续定义一些在使用 Python 时需要了解的重要术语。

什么是 Python 库/包?

Python 库是一组扩展基本 Python 功能的模块。当下载 Python 时,它附带了一组称为 Python 标准库的函数和类。在标准库中包含所有 Python 功能是不可行的,因此 Python 开发人员可以选择如何通过安装额外的库来扩展标准库。

Python 库/包

什么是 Python 虚拟环境?

并非所有 Python 库都相互兼容,有时会希望稳定安装一个集合包,单独安装以使用最新版本进行开发。Python 虚拟环境基本上是独立安装,允许在同一台计算机上安装多个 Python 库集合,像 Anaconda 这样的软件包管理器通常用于创建和管理虚拟环境。

Python 环境随附有用的功能,并且进一步的功能存储在扩展 Python 功能的库中。有许多可用的开源库可以使用 pip 或 Anaconda 安装在 Python 环境中。

ESRI 环境的基本地理空间 Python 库

ArcPy

如果在 Esri 生态系统中工作,那么一直在使用 ArcPy。这是 Esri 的 Python 地理处理库,允许用户在 ArcGIS 中自动化和扩展栅格、矢量和点云工作流。请务必注意,该库需要有效的 Esri 许可。

用于 Python 的 ArcGIS API

ArcPy 的一个相邻库,ArcGIS API for Python,简称为 “ArcGIS”,包括多个类和函数以与 ArcGIS Online 和 ArcGIS Enterprise 交互。ArcGIS API for Python 可通过 Esri Developer 帐户免费获得。

用于栅格数据的基本地理空间 Python 库

GDAL

地理空间数据抽象库( GDAL) 是栅格处理的强者。它为栅格(GDAL 部分)和矢量 (OGR) 格式提供了极其灵活的读写功能,使其成为任何提取、转换、加载 (ETL) 工作流程中必不可少的工具。绝大多数 GIS 软件(以及整个地理空间行业)都依赖于 GDAL,GDAL 是用 C++ 编写的,在命令行上运行,但包括一组由 GDAL 社区成员维护的 Python 绑定。

Rasterio

Rasterio 是 GDAL 的替代品,用于开源栅格处理,由 MapBox 开发。Rasterio 在底层利用 GDAL 并提供许多相同的功能,但使用了更 Pythonic 的语言风格,使一些用户更熟悉它。应该注意的是,Rasterio 和 GDAL 的 Python 绑定是不兼容的,因此必须在单个 Python 环境中在两者之间进行选择。

RSGISLib

遥感和地理信息系统库(RSGISLib) 为多种遥感工作流提供 Python 算法,包括图像分割、区域统计、变化检测和时间序列分析。

Rasterstats

用于汇总多边形矢量要素内的栅格数据的函数库。Rasterstats 还用于从点要素查询像元值。

Rasterframes

可扩展的地理空间数据分析的需求量很大。Rasterframes 提供了利用 Apache Spark 中的 DataFrames 在分布式、水平可扩展的环境中处理栅格数据的能力。

矢量数据的基本地理空间 Python 库

OGR

OGR 是 GDAL 库的向量处理臂。它提供了读取、写入和处理多种不同格式的矢量数据的能力。与 GDAL 一样,OGR 是一个带有 Python 绑定的 C++ 库。

Shapely

Shapely 是一个基于 C/C++ 库、GEOS ( PostGIS 背后的软件引擎)和 Java 库 JTS 的计算几何库。它支持在关系数据库管理系统和 SQL 之外进行 PostGIS 样式的几何处理。Shapely 确实需要结合其他库来读写空间文件。

Fiona

还记得 Shapely 需要其他库来读取和写入空间文件吗?事实上 Fiona 填补了这个空白。Fiona 是一个围绕 OGR 的轻量级包装函数库,用于读取和写入向量数据。它具有比 OGR 更 Python 的语法,利用 Python 访问内存中数据的方式,而不是 OGR 绑定中使用的 C 指针。

PyProj

围绕 PROJ (制图投影和坐标转换库)C 库的包装函数库。PyProj 提供了将坐标从一个空间参考转换为另一个空间参考的功能。

GeoPandas

GeoPandas 扩展了非常有用的 Pandas 库,支持在 Pandas DataFrames 中处理几何数据,否则需要空间关系数据库。GeoPandas 依赖 Fiona 的读写能力,Shapely 的计算几何函数。

GeoMesa

另一个可扩展的地理空间库,GeoMesa 提供了通过分布式计算进行大规模矢量数据处理的能力。近乎实时的数据流也是点、线和多边形矢量特征的一个选项。

用于点云的基本地理空间 Python 库

PDAL

点数据抽象库(PDAL) 是点云处理的强大动力。该库非常适合组织成数据管道的点云工作流。与其同类 GDAL 一样,PDAL 是一个具有 Python 绑定的 C++ 库。PDAL Python API 使开发人员能够以 json 格式编写管道,以便从 Python 脚本运行。它还能够合并自定义 Python 函数以扩展 PDAL 的基本功能。缺点是 PDAL 的学习曲线有点陡峭,其语法对于只熟悉 Python 的用户来说可能看起来很陌生。

LasPy

LasPy 是一个方便的 Python 库,纯粹用于以标准 LAS(或压缩版本,LAZ)格式读写点云数据。LasPy 的功能不如 PDAL,但它具有易于安装可能与 PDAL 的 C++ 依赖项斗争的云托管环境中使用的优势。

NumPy

Numpy,用于处理多维数组数据结构的经典 Python 库。当与像 LasPy 这样的读取器/写入器库结合使用时,可以将点云数据存储在 NumPy 数组中,以及过滤、处理数据(有关示例,请参见本教程)。NumPy 也适用于地理空间领域的一般用途。

用于可视化的基本地理空间 Python 库

Matplotlib

强大的 2-D 和 3-D 绘图功能,具有适用于光栅和矢量数据的地图可视化功能。Matplotlib 还支持交互式地理可视化和动画。

Ipyleaflet

在 Jupyter Notebook 环境中制作交互式地图。Ipyleaflet 将 leaflet.js 的 Javascript 制图功能引入 Python。它建立在提供交互式 UI 功能的 Ipywidgets 上。

Folium

作为 Ipyleaflet 的替代品,Folium 也是通往 leaflet.js 的桥梁。两者之间的区别在于 Folium 是针对静态可视化构建的,而 Ipyleaflet 构建的是交互式小部件。Folium 的一个有用特性是它提供了将交互式地图导出为 HTML 的简单功能,使其成为 Web 开发中的一个有用工具。

相关推荐

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org