2021年全国水体分布(按省、市、县)矢量数据的制作与分享

文章正文
发布时间:2024-11-10 04:51

2021年全国水体分布(按省、市、县)矢量数据的制作与分享

1.背景

偶然间获得了Open Street Map的2021年全国水体分布Shp矢量数据,大约400M左右。

当我加载到arcgis中,感觉到了明显的卡顿。
由于之前写过分省、市、县裁剪矢量的代码,顺手就将水体数据按照2021年的行政边界裁剪了。
该数据分为3个层次结构,分别为省、地级市、县。其中,省级水体31个(不包含HongKong、TaiWan等),
地级市水体366个,县级市水体2847个。每一个文件夹中都包含该省、地级市或者县的水体矢量数据、行政边界以及数据说明。

2.制作方法 2.1 制作流程图

2.2 Python裁剪脚本

主要是用Geopandas读取水体矢量,并按照行政边界的字段名称进行行政边界的裁剪。

def clip_parking(Mask_PATH,Data_path,OutPut_path): tifPaths_folder_SHENG = os.listdir(Mask_PATH) for mask_path in tqdm(tifPaths_folder_SHENG): try: #省目录 DEM_SHENG_PATH = os.path.join(mask_path, Mask_PATH) #获得文件中的名字 SHENG_PATH=DEM_SHENG_PATH+"\\"+mask_path+"\\"+mask_path+".shp" #裁剪函数 City = gpd.read_file(SHENG_PATH) Parking_shp = gpd.read_file(Data_path) City=City.to_crs(Parking_shp.crs) Beijing_Parking = gpd.clip(Parking_shp,City) mkdir(OutPut_path+mask_path+"_2021年全省水体分布_矢量") #保存文件SHP save_SHP_path = OutPut_path + mask_path + "\\" + mask_path +"水体分布"+ ".shp" Beijing_Parking.to_file(save_SHP_path, driver="ESRI Shapefile",encoding="utf-8") except: pass

其中,裁剪之后的结果文件保存为shp格式,由于字段包含中文,编码格式一定要选择UTF8。

2.3 数据后处理

这一步主要是在已经处理好的水体数据文件夹中,添加水体效果图以及各个行政区的矢量数据。
其中,添加水体效果图到每一个文件夹的脚本为:

# 第一部分,准备工作,拼接出要存放的文件夹的路径 file_path = r"待添加文件的路径" # 文件列表 current_folder = os.listdir(file_path) # 添加文件的位置 add_file_path1 = "需要添加的文件" #将名称为file的文件复制到名为file_dir的文件夹中 for list in tqdm(current_folder): # 拼接出要存放的文件夹的路径 dir_path = file_path + list # 将指定的文件file移动到file_dir的文件夹里面 shutil.copy(add_file_path1, dir_path)

之后,使用一个脚本,将每一个水体文件对应的行政边界添加到对应文件中,下面以添加对应的县行政边界为例:

# 第一部分,准备工作,拼接出要存放的文件夹的路径 file_path = r"待添加文件的路径" #矢量边界的目录 gsons_path = r"矢量边界的路径" # 文件列表 current_sheng_folder = os.listdir(file_path) # 循环省 for sheng in tqdm(current_sheng_folder): # 省份的目录 path_sheng = file_path + sheng+"\\" #循环市 current_shi_folder = os.listdir(path_sheng) for shi in current_shi_folder: # 市的目录 path_shi = path_sheng + shi+"\\" # 循环县 current_xian_folder = os.listdir(path_shi) for xian in current_xian_folder: try: #行政边界矢量位置 gson_name=sheng+"_"+shi+"_"+xian+".gson" gson_path=gsons_path+gson_name #该县的路径 xian_path=path_shi+xian shutil.copy(gson_path,xian_path) except: pass 3.数据展示

通过上述步骤,我们获得了全国各省、地级市、县等行政单位的水体数据。首先展示省级水体数据:


广东省水体分布图


四川省省水体分布图
如果你要找县级市的水体分布图,进入"分县"文件夹中,选择对应省份-地级市-县进行选择。我们以四川省资阳市乐至县的水体数据为例,
直接选择分县-四川省-资阳市-乐至县,并将其加到Google影像图中,查看水体矢量效果。

4.数据分享

直接公众号回复,"水体",获得百度云链接(无套路)。

5.写在后面

1.水体数据是我进行全国数据大整合的一小步。 ​

2.之前我提到的分享100期各省、地级市、县的土地利用数据,目前已经处理好了20期500m分辨率的MODIS土地利用数据、30期30m分辨率的武汉大学土地利用数据、1期10m分辨率的清华大学数据、1期Esri的10m分辨率数据。另外,DEM数据目前已经分县扩展到了12.5m分辨率。
3.土壤数据、温度数据、降水数据等也在路上。

4.关于数据的获取,不会要求读者分享和在看,绝不可能。我已经受够了很多公众号要求我分享到朋友圈,才能获取数据的套路。这些数据我会陆续放在"锐多宝的地理空间"公众号中,供读者取用。谢谢关注。