多個(gè)geojson經(jīng)過坐標(biāo)系轉(zhuǎn)換后如何合并為一個(gè)shp數(shù)據(jù)
更新時(shí)間:2023年10月27日 09:26:20 作者:ylfmsn
這篇文章主要介紹了多個(gè)geojson經(jīng)過坐標(biāo)系轉(zhuǎn)換后如何合并為一個(gè)shp數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
多個(gè)geojson經(jīng)過坐標(biāo)系轉(zhuǎn)換后合并為一個(gè)shp數(shù)據(jù)
利用geopandas和pyproj將多個(gè)geojson數(shù)據(jù)經(jīng)過坐標(biāo)轉(zhuǎn)換后合并成一個(gè)shp數(shù)據(jù):
import geopandas as gpd from pyproj import CRS import pandas as pd BASE_DIR = 'D:/demo' # 輸入的WGS84 GeoJSON文件列表 geojson_files = [f"{BASE_DIR}/file1.geojson", f"{BASE_DIR}/file2.geojson", f"{BASE_DIR}/file3.geojson"] # 目標(biāo)坐標(biāo)系的EPSG代碼,使用一個(gè)西安80高斯投影舉例 target_epsg = 2363 # 創(chuàng)建一個(gè)空的GeoDataFrame merged_gdf = gpd.GeoDataFrame() # 定義WGS84和目標(biāo)坐標(biāo)系之間的坐標(biāo)轉(zhuǎn)換 wgs84_crs = CRS.from_epsg(4326) target_crs = CRS.from_epsg(target_epsg) # 逐個(gè)讀取、轉(zhuǎn)換和合并GeoJSON文件 for geojson_file in geojson_files: gdf = gpd.read_file(geojson_file, crs=wgs84_crs) # 為每個(gè)geodataframe新添加字符類型的字段name,并將文件名賦值給字段name gdf['name'] = geojson_file[-13:-8] gdf = gdf.to_crs(target_crs) merged_gdf = pd.concat([merged_gdf, gdf], ignore_index=True) # 過濾掉面積小于100的要素 gdf_filtered = merged_gdf[merged_gdf["area"] >= 100] # 保存為shp文件 gdf_filtered.to_file(output_shp, driver='ESRI Shapefile', encoding='utf-8')
- geopandas版本:0.12.0
- pandas版本:1.5.3
- pyproj版本:3.4.0
python里面GeoJson和shp文件互轉(zhuǎn)
# shp to GeoJson import geopandas as gpd data = gpd.read_file('中國省級區(qū)域20200720.shp') data.to_file("中國省級區(qū)域20200720.json", driver='GeoJSON', encoding="utf-8") # GeoJson to shp data = gpd.read_file('中國省級區(qū)域20200720.json') data.to_file('中國省級區(qū)域20200720', driver='ESRI Shapefile', encoding='utf-8')
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
對python中url參數(shù)編碼與解碼的實(shí)例詳解
今天小編就為大家分享一篇對python中url參數(shù)編碼與解碼的實(shí)例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python三元運(yùn)算實(shí)現(xiàn)方法
這篇文章主要介紹了Python三元運(yùn)算實(shí)現(xiàn)方法,通過if else語句實(shí)現(xiàn)了三元運(yùn)算的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01python 中關(guān)于pycharm選擇運(yùn)行環(huán)境的問題
這篇文章主要介紹了python 中關(guān)于pycharm選擇運(yùn)行環(huán)境的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10Python3之手動創(chuàng)建迭代器的實(shí)例代碼
迭代器即可以遍歷諸如列表,字典及字符串等序列對象甚至自定義對象的對象,其本質(zhì)就是記錄迭代對象中每個(gè)元素的位置。這篇文章主要介紹了Python3之手動創(chuàng)建迭代器,需要的朋友可以參考下2019-05-05python更新數(shù)據(jù)庫中某個(gè)字段的數(shù)據(jù)(方法詳解)
這篇文章主要介紹了python更新數(shù)據(jù)庫中某個(gè)字段的數(shù)據(jù)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11