生态系统#
GeoPandas依赖项#
GeoPandas集合了以下所有功能 pandas
和开源地理空间工具 Shapely
,它带来了对几何对象的操作和分析,支持 [GEOS
] (https://trac.osgeo.org/geos)库, Fiona
,允许我们使用以下工具读取和写入地理数据文件 [GDAL
] (https://gdal.org),和 pyproj
,这是一个用于地图投影和坐标转换的库,它是一个用于 [PROJ
] (https://proj.org).)
此外,GeoPandas有几个可选的依赖项,如 rtree
, pygeos
, mapclassify
,或 geopy
。
必需的依赖项#
[熊猫] (https://github.com/pandas-dev/pandas))#
pandas
是一个Python包,它提供了快速、灵活和富有表现力的数据结构,旨在使处理结构化(表格、多维、潜在的异类)和时间序列数据变得容易和直观。它的目标是成为用Python语言进行实际的、真实的数据分析的基本高级构建块。此外,它还有一个更广泛的目标,即成为任何语言版本的最强大、最灵活的开放源码数据分析/操作工具。它已经在实现这一目标的路上走得很好。
[整齐地] (https://github.com/Toblerity/Shapely))#
Shapely
是一个BSD许可的用于操纵和分析平面几何对象的Python包。它是基于广泛部署的 GEOS
(邮政地理信息系统的引擎)和 JTS
(来自 GEOS
被移植)库。 Shapely
与数据格式或坐标系无关,但可以很容易地与以下包集成。
[菲奥娜] (https://github.com/Toblerity/Fiona))#
Fiona
是 GDAL’s
面向Python程序员的简洁灵活的向量API。菲奥娜的设计简单可靠。它侧重于以标准的Python IO样式读取和写入数据,并依赖于熟悉的Python类型和协议,如文件、字典、映射和迭代器,而不是特定于 OGR
。Fiona可以使用多层GIS格式和压缩的虚拟文件系统读写真实世界的数据,并可以很容易地与其他Python GIS包集成,例如 pyproj
, Rtree
,以及 Shapely
。
[Pyproj] (https://github.com/pyproj4/pyproj))#
pyproj
是一个用于 PROJ
(地图投影和坐标变换库)。GeoPandas使用 pyproj.crs.CRS
对象跟踪每个 GeoSeries
以及它的 Transformer
对象来管理重新投影。
可选依赖项#
[Rtree] (https://github.com/Toblerity/rtree))#
Rtree
是的ctype Python包装器。 libspatialindex
这为对空间好奇的Python用户提供了许多高级空间索引功能。
[PYGEOS] (https://github.com/pygeos/pygeos))#
PyGEOS
是一个带有矢量化几何函数的C/Python库。几何操作在开源几何库中完成 GEOS
。PyGEOS将这些操作包装在 NumPy
在几何体数组上操作时提供性能改进的泛函。
[地图分类] (https://github.com/pysal/mapclassify))#
mapclassify
提供科洛普莱斯地图分类功能。目前,有15种不同的分类方案可用,其中包括高度优化的Fisher-Jenks最优分类实现。每个方案都继承了一个公共结构,该结构确保计算是可扩展的,并支持流环境中的应用。
[地貌] (https://github.com/geopy/geopy))#
geopy
是几个流行的地理编码Web服务的Python客户端。 geopy
使Python开发人员可以使用第三方地理编码器和其他数据源轻松定位全球各地的地址、城市、国家和地标的坐标。
[Matplotlib] (https://github.com/matplotlib/matplotlib))#
Matplotlib
是一个全面的库,用于在Python中创建静态、动画和交互可视化效果。Matplotlib以各种硬拷贝格式和跨平台的交互环境制作出版质量的数字。Matplotlib可用于Python脚本、Python和IPython外壳程序、Web应用程序服务器以及各种图形用户界面工具包。
大熊猫生态系统#
各种包构建在GeoPandas之上,以满足特定的地理空间数据处理需求、分析和可视化。下面是一个不完整的工具列表(没有特定的顺序),这些工具构成了与GeoPandas相关的Python生态系统。
空间分析与机器学习#
[PySAL] (https://github.com/pysal/pysal))#
PySAL
是一个开放源码的跨平台库,用于地理空间数据科学,重点是用Python语言编写的地理空间矢量数据。 PySAL
是一系列包,下面列出了其中一些包。
[酒杯酒] (https://github.com/pysal/libpysal))#
libpysal
提供支持库其余部分的基本算法和数据结构。目前包括以下模块:输入/输出 (io
),它为常见的地理空间文件格式提供读取器和写入器;权重 (weights
),它提供了存储空间权重矩阵的主类,以及几个对其进行操作和操作的实用程序;计算几何 (cg
),具有几种算法,如有效处理几何形状的Voronoi镶嵌或Alpha形状;以及带有示例数据集的附加模块 (examples
)。
[esda] (https://github.com/pysal/esda))#
esda
为连续数据和二进制数据实现分析全局(地图范围)和局部(焦点)空间自相关性的方法。此外,该套餐越来越多地提供关于边界强度的前沿统计数据和统计分析中聚合误差的衡量标准。
[隔离] (https://github.com/pysal/segregation))#
segregation
Package计算了40多个不同的分离指数,并提供了一套用于测量、可视化和假设检验的附加功能,这些功能共同代表了定量分离分析中的最新技术。
[mgwr] (https://github.com/pysal/mgwr))#
mgwr
在各种广义线性模型框架中使用单尺度和多尺度地理加权回归模型以及模型诊断工具提供可扩展的估计、推理和预测算法。
[托布勒] (https://github.com/pysal/tobler))#
tobler
提供面内插和等距映射功能。 tobler
包括使用面积加权方法内插数据的功能、利用遥感栅格数据作为辅助信息的基于回归模型的方法以及混合方法。
[移动大熊猫] (https://github.com/anitagraser/movingpandas))#
MovingPandas
是一个用于处理移动数据的包。 MovingPandas
实现一个 Trajectory
类和相应的基于GeoPandas的方法。轨迹具有一系列按时间排序的点几何图形。这些点和关联的属性存储在 GeoDataFrame
。 MovingPandas
实现空间和时间数据访问和分析功能以及绘图功能。
[像妈妈一样] (https://github.com/martinfleis/momepy))#
momepy
是一个定量分析城市形态的库--城市形态计量学。它建在 GeoPandas
, PySAL
和 networkX
。 momepy
旨在为系统和详尽地分析城市形态提供广泛的工具。它可以与广泛的元素一起工作,同时专注于构建足迹和街道网络。
[Geosnap] (https://github.com/spatialucr/geosnap))#
geosnap
使探索、建模、分析和可视化社区的社会和空间动态变得更容易。 geosnap
提供一套工具,用于创建社会空间数据集、将这些数据集协调到一致的时间静态边界集、对定制社区和原型社区类型进行建模,以及使用经典和空间统计方法对社区变化进行建模。它还提供了一组静态和交互式可视化工具,帮助您显示和了解流程每个步骤的关键信息。
[mesa-geo] (https://github.com/Corvince/mesa-geo))#
mesa-geo
实现可托管基于GIS的GeoAgent的GeSpace,这些GeoAgent与普通代理类似,不同之处在于它们的形状属性是 Shapely
对象。您可以使用 Shapely
直接创建任意形状,但在大多数情况下,您会希望从文件中导入形状。Mesa-geo允许您从任何矢量数据文件(例如shapefile)、有效的GeoJSON对象或GeoPandas创建GeoAgent GeoDataFrame
。
[Py spacealm l] (https://github.com/stevenpawley/Pyspatialml))#
Pyspatialml
是一个Python模块,用于 scikit-learn
机器学习模型到栅格数据集的“堆栈”。Pyspatialml包括用于处理多个栅格数据集和执行典型机器学习工作流的函数和类,该工作流包括提取训练数据和应用预测或 predict_proba
方法: scikit-learn
对一堆栅格数据集的估计器。PYSPIALML构建在 rasterio
用于所有繁重工作的Python模块,并且还设计用于使用 geopandas
模块。
[PYGMI] (https://github.com/Patrick-Cole/pygmi))#
PyGMI
代表 Python 地球科学建模和解释。这是一个针对磁力、重力和其他数据集的建模和解释套件。
可视化#
[HvPlot] (https://hvplot.holoviz.org/user_guide/Geographic_Data.html#Geopandas)#
hvPlot
使用与Matplotlib相同的API为GeoPandas数据帧和系列提供基于Bokeh的交互式绘图 .plot()
GeoPandas自带的支持。HvPlot使平移和缩放绘图、使用小部件浏览多维数据以及使用在Web浏览器中渲染最大的数据集变得简单 [数据共享器] (https://datashader.org).)
[在上下文中] (https://github.com/geopandas/contextily))#
contextily
是一个小型的Python3(3.6和更高版本)包,用于从互联网上检索切片地图。它可以将这些切片作为底图添加到 matplotlib
图形或将平铺地图写入磁盘到地理空间栅格文件中。边界框可以在WGS84(EPSG:4326)和球形墨卡托(EPSG:3857)中传递。
[Cartopy] (https://github.com/SciTools/cartopy))#
Cartopy
是一个Python包,旨在使绘制地图以进行数据分析和可视化变得容易。它的特点:面向对象的投影定义;点、线、面和投影之间的图像转换;集成以显示高级地图 Matplotlib
具有简单直观的界面;通过将shapefile读取与 Shapely
能力。
[波克] (https://github.com/bokeh/bokeh))#
Bokeh
是一个用于现代Web浏览器的交互式可视化程序库。它提供优雅、简洁的多功能图形构造,并在大型或流数据集上提供高性能交互。 Bokeh
可以帮助任何想要快速、轻松地制作交互式绘图、仪表板和数据应用程序的人。
[Folium物] (https://github.com/python-visualization/folium)#
folium
构建于Python生态系统的数据争论优势和 Leaflet.js
类库。在Python中操作您的数据,然后在 Leaflet
映射方式 folium
。
[kepler.gl] (https://github.com/keplergl/kepler.gl))#
Kepler.gl
是一个数据不可知的、基于Web的高性能应用程序,用于可视化探索大规模地理位置数据集。建立在Mapbox GL和 deck.gl
, kepler.gl
可以渲染数百万个点,代表数千次旅行,并动态执行空间聚合。
[地理地块] (https://github.com/ResidentMario/geoplot))#
geoplot
是一个高级的Python地理空间绘图库。它是对 cartopy
和 matplotlib
这使得映射变得很容易:就像 seaborn
用于地理空间。它附带高级绘图API、本机投影支持以及与 matplotlib
。
[GeoViews] (https://github.com/holoviz/geoviews))#
GeoViews
是一个Python库,使用它可以轻松地浏览和可视化包括地理位置在内的任何数据,并对GeoPandas数据帧和系列对象提供本地支持。它对多维气象和海洋数据集的支持尤其强大,例如用于天气、气候和遥感研究的数据集,但对于您想要在地图上绘制的几乎任何东西都很有用!
[EarthPy] (https://github.com/earthlab/earthpy))#
EarthPy
是一个Python包,它使使用开源工具绘制和处理空间栅格和矢量数据变得更容易。 Earthpy
取决于 geopandas
它的重点是矢量数据和 rasterio
使用方便了栅格数据文件的输入和输出。它还要求 matplotlib
用于打印操作。 EarthPy’s
目标是让科学家更容易处理空间数据。
[标绘] (https://github.com/pysal/splot))#
splot
为空间分析提供统计可视化。这是可视化全球和局部空间自相关(通过Moran散点图和聚类图)、集群动态的时间分析(通过热图和玫瑰图)和多变量Clopeth映射(通过按阿尔法值图)的方法。高级API支持创建可供发布的可视化效果
[传说图] (https://github.com/pysal/legendgram))#
legendgram
是一个小包,它提供了“图例”图例,直观地显示了在给定地图上按颜色进行的观测分布。这些地图分类方案的分布式可视化有助于分析制图和空间数据可视化。
几何体操纵#
[拓扑JSON] (https://github.com/mattijn/topojson))#
topojson
是一个库,用于在Python中创建几乎任何地理对象的TopOJSON编码。使用topojson可以减少您的地理数据的大小,通常为数量级。它能够通过计算拓扑、坐标的固定精度整数编码以及圆弧的简化和量化来消除冗余。
[地立方] (https://github.com/corteva/geocube))#
将Geopandas矢量数据转换为栅格化数据的工具 xarray
数据。
数据检索#
[OSMnx] (https://github.com/gboeing/osmnx))#
OSMnx
是一个Python包,允许您从OpenStreetMap下载空间数据,并对真实世界的街道网络进行建模、投影、可视化和分析。您可以使用一行Python代码下载和建模可步行、可驾驶或可骑自行车的城市网络,然后轻松地对其进行分析和可视化。您可以同样轻松地下载和使用其他基础设施类型、便利设施/兴趣点、建筑物迹线、高程数据、街道方位/方向和速度/行程时间。
[火焰症] (https://github.com/HTenkanen/pyrosm))#
Pyrosm
是一个Python库,用于从ProtocolBuffer二进制格式文件读取OpenStreetMap数据 (*.osm.pbf
)进入Geopandas GeoDataFrames
。Pyrosm使得从OpenStreetMap PBF转储中提取各种数据集变得容易,例如,道路网络、建筑、兴趣点(POI)、土地利用和自然元素。此外,还支持完全定制的查询,这使得使用更具体的过滤器解析来自OSM的数据成为可能。
[土拨鼠] (https://github.com/ipeaGIT/geobr))#
geobr
是一个下载巴西官方空间数据集的计算程序包。该包包括各种地理包格式的地理空间数据(类似于shapefile,但更好),可在不同的地理比例尺上使用,并具有统一的属性、投影和拓扑结构。
[Cenpy] (https://github.com/cenpy-devs/cenpy))#
探索和查询美国人口普查API和返回熊猫的界面 Dataframes
。此程序包用于探索性数据分析,灵感来自于类似于SQLALCHEMIY的界面和 acs.R
。对于应用程序开发人员和那些只想快速、轻松地获取数据的人来说, cenpy
应该能满足大多数希望将美国人口普查数据放入到Python中的人的需求。