在Geopandas中数据结构主要由两种:GeoSeries
和 GeoDataFrame。
GeoSeries
本质上是一个向量,其中向量中的每个条目是对应于一个观察的一组形状。一个条目可能只包含一个形状(如单个多边形)或多个形状,这些形状被认为是一个观察结果。
主要的地理数据是有三种:点/多点、线/多线、面/多面。
属性和方法
属性
area
:形状区域bounds
:每个形状的每个轴上的最大和最小坐标的元组total_bounds
:整个GeoSeries的每个轴上的最大和最小坐标的元组geom_type
:几何类型。is_valid
:测试坐标是否形成合理几何形状的形状
方法
distance(other)
:返回Series
每个条目的最小距离other
centroid
:GeoSeries
质心的返回representative_point()
:GeoSeries
保证在每个几何体内的点的返回。它不返回重心。to_crs()
:改变坐标参考系plot()
:制图
关系测试
geom_almost_equals(other)
:形状几乎相同other
(当浮点精度问题使形状略有不同时很好)contains(other)
:是包含在其中的形状other
intersects(other)
:形状相交other
GeoDataFrame
他其实就是包含GeoSeries的表格数据结构。在GeoDataFrema中总有一列GeoSeries列保持特殊状态。这一列被称为几何。
具体在例子中:
import geopandas
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres')) # 打开geopandas数据库中的数据
world.head() #可以看到数据结构
world.plot() # 制图
world = world.rename(columns={'geometry': 'borders'}).set_geometry('borders') #更改geometry列的名字
world['centroid_column'] = world.centroid # 把质点赋给world的列centroid_column中
world = world.set_geometry('centroid_column') # 把几何列设为centroid_column
world.plot() #制图
为了更加了解这个数据,我们现在再看一下数据,使用head()查看
world.head()