多个geojson经过坐标系转换后如何合并为一个shp数据

 更新时间:2023年10月27日 09:26:20   作者:ylfmsn  
这篇文章主要介绍了多个geojson经过坐标系转换后如何合并为一个shp数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

多个geojson经过坐标系转换后合并为一个shp数据

利用geopandas和pyproj将多个geojson数据经过坐标转换后合并成一个shp数据:

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"]

# 目标坐标系的EPSG代码,使用一个西安80高斯投影举例
target_epsg = 2363

# 创建一个空的GeoDataFrame
merged_gdf = gpd.GeoDataFrame()

# 定义WGS84和目标坐标系之间的坐标转换
wgs84_crs = CRS.from_epsg(4326)
target_crs = CRS.from_epsg(target_epsg)

# 逐个读取、转换和合并GeoJSON文件
for geojson_file in geojson_files:
    gdf = gpd.read_file(geojson_file, crs=wgs84_crs)
    # 为每个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文件互转

# shp to GeoJson
import geopandas as gpd
data = gpd.read_file('中国省级区域20200720.shp')
data.to_file("中国省级区域20200720.json", driver='GeoJSON', encoding="utf-8")

# GeoJson to shp
data = gpd.read_file('中国省级区域20200720.json')
data.to_file('中国省级区域20200720', driver='ESRI Shapefile', encoding='utf-8')

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

    Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

    这篇文章主要为大家详细介绍了Python FastAPI如何结合Celery以及RabbitMQ实现简单的分布式图片水印处理系统,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • Pytorch反向求导更新网络参数的方法

    Pytorch反向求导更新网络参数的方法

    今天小编就为大家分享一篇Pytorch反向求导更新网络参数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 使用Scrapy框架爬取网页并保存到Mysql的实现

    使用Scrapy框架爬取网页并保存到Mysql的实现

    本文主要介绍了使用Scrapy框架爬取网页并保存到Mysql的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 一些常用的Python爬虫技巧汇总

    一些常用的Python爬虫技巧汇总

    这篇文章主要为大家详细汇总了一些常用的Python爬虫技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Python支持异步的列表解析式

    Python支持异步的列表解析式

    这篇文章主要为大家介绍了Python支持异步的列表解析式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Python项目文件组织与工程化实践指南

    Python项目文件组织与工程化实践指南

    工程化开发是本专栏曾反复提及的话题,因为工程化是提高程序开发效率与质量的必由之路,这篇文章主要介绍了Python项目文件组织与工程化的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-01-01
  • Python中如何给字典设置默认值

    Python中如何给字典设置默认值

    这篇文章主要介绍了Python中如何给字典设置默认值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 使用Python的Tornado框架实现一个简单的WebQQ机器人

    使用Python的Tornado框架实现一个简单的WebQQ机器人

    这篇文章主要介绍了使用Python的Tornado框架实现一个简单的WebQQ机器人,Tornado的异步特性可以提高I/O性能,需要的朋友可以参考下
    2015-04-04
  • 对TensorFlow中的variables_to_restore函数详解

    对TensorFlow中的variables_to_restore函数详解

    今天小编就为大家分享一篇对TensorFlow中的variables_to_restore函数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python用post访问restful服务接口的方法

    python用post访问restful服务接口的方法

    今天小编就为大家分享一篇python用post访问restful服务接口的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12

最新评论