GeopandasGeopandas与大名鼎鼎的pandas库有异曲同工之妙,甚至我们可以说geopandas就是地理信息领域的pandas。准确说,geopandas是将地理信息记录在数据表中,并可以通过一系列的绘图库进行显示,和Arcmap中的属性表非常类似。
Geopandas也可以绘制非常多好看的图,比如说我下面这张图:
目前,Geopandas主要支持以下一些功能:
1.1 读取、创建地理信息数据
Geopandas读取地理数据非常的方便,它只需要几行代码就可以将shp文件转换为GeoDataFrame:park = gpd.read_file("/Users/creative/OneDrive - stu.hit.edu.cn/Arcgis_Analysis/Data/Shp/研究公园信息.shp")park.head(1)
GeoDataFrame和pandas的DataFrame非常类似,只不过多了最后一个关于geometry的地理信息字段,用来进行地理信息的描述如果你是excel或者csv等格式的文本文件,需要转换为GeoDataFrame,就需要结合pandas进行操作,原理类似于Arcgis里的添加XY数据,以下就是代码:
df = pd.read_excel(data_path)
gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df.lng, df.lat)) #选择XY坐标为地理坐标
gdf.crs = ‘EPSG:4326’ #指定坐标系
1.2 处理地理信息数据(工具箱!如空间连接等)
Geopandas也可以和GiS软件一样进行一些简单的空间处理操作,比如说裁剪、融合、空间连接等(这里放上图),以下就是代码:
“”“取交集”""
“”“裁剪”""
空间连接没有相关的图,不过原理上是和gis软件里类型的,这里放上代码:
cities_with_country = geopandas.sjoin(cities, countries, how=“inner”, op=‘intersects’)
括号里第一二个参数为要进行连接的两个文件,how是数据保存的方式(保存第一个文件数据、保存第二个文件数据、保存交集数据三个选项),op是选项(有相交、在内部、包含三种选择)
1.3 城市网络(UNA)
城市网络和社交网络相比,多了一个地理属性。多数情况下,我们可以使用basemap或者geopandas与NetworkX一起协同完成这个工作。下图是基于basemap和NetworkX绘制的航线图:
这里放上主要部分的代码:
“”“绘制关系网络”""
以上就是小编我低头码了一下午的分享,对于自己动手描画出的世界真的特别有意思,有兴趣的可以自己去动手试试,更想深入学习了解Python的可以私信小编我,免费分享学习资料给你!!!