一 数据集准备
获取nybb数据集
import geopandas
from geodatasets import get_path
path_to_data = get_path("nybb")
gdf = geopandas.read_file(path_to_data)
gdf
二 将获取到的数据集写到本地文件,方便查看
gdf.to_file(“my_file.geojson”, driver=“GeoJSON”)
三 数据处理
3.1 添加索引
gdf = gdf.set_index(“BoroName”)
3.2 添加面积列
gdf[“area”] = gdf.area
gdf[“area”]
3.3 添加围栏列
gdf[“boundary”] = gdf.boundary
gdf[“boundary”]
3.4 添加中心点列
gdf[“centroid”] = gdf.centroid
gdf[“centroid”]
3.5 添加距离列
可以测量每个质心距第一个质心位置的距离
first_point = gdf[“centroid”].iloc[0]
gdf[“distance”] = gdf[“centroid”].distance(first_point)
gdf[“distance”]
3.6 计算上面测量的距离的平均值,访问“距离”列并对其调用mean()方法
四 绘制图形
4.1 检查几何体在空间中的表现
1.column=‘area’:告诉plot()方法你想要用哪一列的值来为地图着色。这个列中的值应该对应到特定的颜色值,以便形成一种颜色编码的视觉效果。
2.cmap=‘your_color_map’:这是指定颜色映射的参数,'your_color_map’是你选择的颜色映射名称或对象。例如,你可以使用像’kmpo’这样的标准颜色映射名称,或者自定义一个颜色映射。
3.legend=True:这个参数告诉GeoPandas你想要在地图上显示一个图例(legend),这样读者可以更容易地理解颜色编码的含义。
gdf.plot("area", legend=True)
4.2 explore 交互式表现
使用前需要安装库 pip3 install folium
gdf.explore("area", legend=False)
4.3 绘制中心点
gdf = gdf.set_geometry("centroid")
gdf.plot("area", legend=True)
4.4 两个geoSerial合并绘制
将两个 GeoSeries 叠加在一起。我们只需使用一个图作为另一个图的轴即可。
ax = gdf["geometry"].plot()
gdf["centroid"].plot(ax=ax, color="black")
4.5 设置回原始的GeoSeries
gdf = gdf.set_geometry("geometry")
五 进一步绘制图形
5.1 凸包 Convex hull
将第一个图作为轴并将 alpha(透明度)设置为 0.5
gdf["convex_hull"] = gdf.convex_hull
ax = gdf["convex_hull"].plot(alpha=0.5)
传递第一个图并将线宽设置为 0.5
ax = gdf["convex_hull"].plot(alpha=0.5)
gdf["boundary"].plot(ax=ax, color="white", linewidth=0.5)
5.2 缓冲 Buffer
在其他情况下,我们可能需要使用 GeoDataFrame.buffer() 缓冲几何图形。几何方法会自动应用于活动几何体,但我们也可以将它们直接应用于任何 GeoSeries。让我们缓冲行政区及其质心,并将它们绘制在彼此之上。
gdf["buffered"] = gdf.buffer(10000)
gdf["buffered_centroid"] = gdf["centroid"].buffer(10000)
ax = gdf["buffered"].plot(alpha=0.5)
gdf["buffered_centroid"].plot(ax=ax, color="red", alpha=0.5)
gdf["boundary"].plot(ax=ax, color="white", linewidth=0.5)
5.3 几何关系
得到一个布鲁克林的多边形
brooklyn = gdf.loc["Brooklyn", "geometry"]
brooklyn
标签:plot,area,geopandas,0.5,centroid,gdf,ax
From: https://blog.csdn.net/weixin_45655599/article/details/141855633