多個(gè)geojson經(jīng)過(guò)坐標(biāo)系轉(zhuǎn)換后如何合并為一個(gè)shp數(shù)據(jù)
多個(gè)geojson經(jīng)過(guò)坐標(biāo)系轉(zhuǎn)換后合并為一個(gè)shp數(shù)據(jù)
利用geopandas和pyproj將多個(gè)geojson數(shù)據(jù)經(jīng)過(guò)坐標(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)
# 過(guò)濾掉面積小于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('中國(guó)省級(jí)區(qū)域20200720.shp')
data.to_file("中國(guó)省級(jí)區(qū)域20200720.json", driver='GeoJSON', encoding="utf-8")
# GeoJson to shp
data = gpd.read_file('中國(guó)省級(jí)區(qū)域20200720.json')
data.to_file('中國(guó)省級(jí)區(qū)域20200720', driver='ESRI Shapefile', encoding='utf-8')
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
對(duì)python中url參數(shù)編碼與解碼的實(shí)例詳解
今天小編就為大家分享一篇對(duì)python中url參數(shù)編碼與解碼的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
Python中的if判斷語(yǔ)句中包含or問(wèn)題
這篇文章主要介紹了Python中的if判斷語(yǔ)句中包含or問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Python三元運(yùn)算實(shí)現(xiàn)方法
這篇文章主要介紹了Python三元運(yùn)算實(shí)現(xiàn)方法,通過(guò)if else語(yǔ)句實(shí)現(xiàn)了三元運(yùn)算的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
python 中關(guān)于pycharm選擇運(yùn)行環(huán)境的問(wèn)題
這篇文章主要介紹了python 中關(guān)于pycharm選擇運(yùn)行環(huán)境的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
Python3之手動(dòng)創(chuàng)建迭代器的實(shí)例代碼
迭代器即可以遍歷諸如列表,字典及字符串等序列對(duì)象甚至自定義對(duì)象的對(duì)象,其本質(zhì)就是記錄迭代對(duì)象中每個(gè)元素的位置。這篇文章主要介紹了Python3之手動(dòng)創(chuàng)建迭代器,需要的朋友可以參考下2019-05-05
python更新數(shù)據(jù)庫(kù)中某個(gè)字段的數(shù)據(jù)(方法詳解)
這篇文章主要介紹了python更新數(shù)據(jù)庫(kù)中某個(gè)字段的數(shù)據(jù)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
推薦8款常用的Python GUI圖形界面開(kāi)發(fā)框架
這篇文章主要介紹了推薦8款常用的Python GUI圖形界面開(kāi)發(fā)框架,需要的朋友可以參考下2020-02-02

