启动jupyter
jupyter默认工作空间为C盘的用户文件夹;在实际中需要修改为代码所在文件夹。
打开快捷方式可以看到jupyter指向的是用户文件夹
复制该快捷方式,修改为代码所在的文件夹。
运行后工作空间就改变了
绘制地图(多个要素在同一张图)
#1,显示地图
import pandas as pd
import geopandas as gp
from matplotlib_scalebar.scalebar import ScaleBar
import matplotlib.pyplot as plt
import contextily as ctx
#导入shp数据
Csj_shp = gp.read_file('data\长三角城市群.shp')
point_csv=pd.read_csv('data\\PM25_20210101.csv')
point_csv = gp.GeoDataFrame(point_csv, geometry=gp.points_from_xy(point_csv.经度,point_csv.纬度))
#设置画布大小
fig, ax= plt.subplots(figsize=(10,8))
#添加面和点要素
Csj_shp.plot(ax=ax, alpha=0.9,color='yellow',edgecolor='black',linewidths=0.8)#alpha设置透明度
point_csv.plot(ax=ax,color='purple',edgecolor='gray',linewidths=0.1, markersize=3)
#可视化并加载在线底图
ctx.add_basemap(ax,
source='https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png',
crs=Csj_shp.crs,zoom=5)
#保存图片
fig.savefig("总体地图.png", dpi=200)
'''
#变换投影为web墨卡托即EPSG:3857,加载在线底图必须
point_csv.crs=Csj_shp.crs
Csj_shp=Csj_shp.to_crs('EPSG:3857')
point_csv=point_csv.geometry.to_crs('EPSG:3857')
'''
空间连接
类比常规表格数据的连接操作,在空间数据分析中也存在类似表连接的操作,譬如我们手头有一张观测站点数据的矢量表,以及另一张包含长江三角洲城市群行政区划面数据的矢量表,当我们想要通过某些操作来统计出每个行政区划面内部的设施点信息时,空间连接就可以非常方便快捷地实现这类需求。
#2,空间连接
import pandas as pd
import geopandas as gp
#导入shp数据
Csj_shp = gp.read_file('data\长三角城市群.shp')
#读取csv数据
point_csv=pd.read_csv('data\\PM25_20210101.csv')
point_csv = gp.GeoDataFrame(point_csv, geometry=gp.points_from_xy(point_csv.经度,point_csv.纬度))
#空间连接
point_Csj = gp.sjoin(left_df=point_csv,right_df=Csj_shp, how="inner")
#显示图像
Csj_shp.plot()
point_csv.plot()
point_Csj.plot()
#显示属性表
point_Csj
新开通了本人的公众号,欢迎关注:燕南路GISer ,专注GIS干货分享,不定期更新。
主要兴趣:GIS、时空数据挖掘、python、机器学习深度学习
优快云的部分内容会重写再搬迁到公众号,欢迎关注!