多個(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)文章
Python FastAPI+Celery+RabbitMQ實(shí)現(xiàn)分布式圖片水印處理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python FastAPI如何結(jié)合Celery以及RabbitMQ實(shí)現(xiàn)簡(jiǎn)單的分布式圖片水印處理系統(tǒng),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-04-04
Pytorch反向求導(dǎo)更新網(wǎng)絡(luò)參數(shù)的方法
今天小編就為大家分享一篇Pytorch反向求導(dǎo)更新網(wǎng)絡(luò)參數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
使用Scrapy框架爬取網(wǎng)頁(yè)并保存到Mysql的實(shí)現(xiàn)
本文主要介紹了使用Scrapy框架爬取網(wǎng)頁(yè)并保存到Mysql的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Python項(xiàng)目文件組織與工程化實(shí)踐指南
工程化開發(fā)是本專欄曾反復(fù)提及的話題,因?yàn)楣こ袒翘岣叱绦蜷_發(fā)效率與質(zhì)量的必由之路,這篇文章主要介紹了Python項(xiàng)目文件組織與工程化的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2026-01-01
使用Python的Tornado框架實(shí)現(xiàn)一個(gè)簡(jiǎn)單的WebQQ機(jī)器人
這篇文章主要介紹了使用Python的Tornado框架實(shí)現(xiàn)一個(gè)簡(jiǎn)單的WebQQ機(jī)器人,Tornado的異步特性可以提高I/O性能,需要的朋友可以參考下2015-04-04
對(duì)TensorFlow中的variables_to_restore函數(shù)詳解
今天小編就為大家分享一篇對(duì)TensorFlow中的variables_to_restore函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
python用post訪問(wèn)restful服務(wù)接口的方法
今天小編就為大家分享一篇python用post訪問(wèn)restful服務(wù)接口的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12

