1. 程式人生 > 其它 >2021年全國水體分佈(按省、市、縣)向量資料的製作與分享

2021年全國水體分佈(按省、市、縣)向量資料的製作與分享

2021年全國分省、地級市、縣的水體向量資料的製作與分享

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.關於資料的獲取,不會要求讀者分享和在看,絕不可能。我已經受夠了很多公眾號要求我分享到朋友圈,才能獲取資料的套路。這些資料我會陸續放在"銳多寶的地理空間"公眾號中,供讀者取用。謝謝關注。