我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python shapefile转GeoJson的方法有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python shapefile转GeoJson的方法有哪些

这篇文章主要介绍“Python shapefile转GeoJson的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python shapefile转GeoJson的方法有哪些”文章能帮助大家解决问题。

    GeoJson的简要介绍

    GeoJson是用json的语法表达和存储地理数据,可以说是json的子集。

    GeoJson以键值对的形式保存原有对象的信息,具有轻量化、易解析等优点。

    GeoJson包括的地理要素有Point(点)、 MultiPoint(多点)、 LineString(线)、MultiLineString(多线)、 Polygon(面)、 MultiPolygon(多面)、 GeometryCollection(几何集合)

    这些地理要素包括在geometry的type属性中,并且不同的type具有不同的coordinates值。

         {         "type": "MultiPoint",         "coordinates": [             [100.0, 0.0],             [101.0, 1.0]         ]     }       {         "type": "MultiPolygon",         "coordinates": [             [                 [                     [102.0, 2.0],                     [103.0, 2.0],                     [103.0, 3.0],                     [102.0, 3.0],                     [102.0, 2.0]                 ]             ],             [                 [                     [100.0, 0.0],                     [101.0, 0.0],                     [101.0, 1.0],                     [100.0, 1.0],                     [100.0, 0.0]                 ],                 [                     [100.2, 0.2],                     [100.2, 0.8],                     [100.8, 0.8],                     [100.8, 0.2],                     [100.2, 0.2]                 ]             ]         ]     }

    两种将shapefile文件转换为GeoJson的方式

    1. 使用geopandas

    核心代码:geopandas.GeoSeries 和out_data.to_file

    import geopandas as gpd def shp2geojson_gpd(shp_file, geojson_file):    """    将shapefile格式的文件转化为geojson    :param shp_file: 需要转换的shapefile文件名,投影信息可以缺失,也可以指定    :param geojson_file: 转换输出的geojson文件名    """     if os.path.exists(geojson_file):        os.remove(geojson_file)     out_data = gpd.read_file(shp_file)    crs = out_data.crs    out_data = gpd.GeoSeries(out_data.geometry, crs=crs)    out_data.to_file(geojson_file, driver='GeoJSON', encoding="utf-8")    print("successfully convert shapefile to geojson")

    使用geopandas转换的时候两行核心代码即可搞定,简单粗暴。但是在实践过程中发现,采用geopandas转换后的GeoJson文件并没有保留shapefile中的属性properities信息,如area, name等,如下图所示:

    Python shapefile转GeoJson的方法有哪些

    2. 使用gdal

    import gdal import ogrimport os def shp2geojson_gdal(shp_file, geojson_file):    gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES")    gdal.SetConfigOption("SHAPE_ENCODING", "GBK")    class="lazy" data-src_ds = ogr.Open(shp_file)    class="lazy" data-src_layer = class="lazy" data-src_ds.GetLayer(0)     # 创建结果Geojson    baseName = os.path.basename(geojson_file)    dst_driver = ogr.GetDriverByName('GeoJSON')    dst_ds = dst_driver.CreateDataSource(geojson_file)    if dst_ds.GetLayer(baseName):        dst_ds.DeleteLayer(baseName)    dst_layer = dst_ds.CreateLayer(baseName, class="lazy" data-src_layer.GetSpatialRef())    dst_layer.CreateFields(class="lazy" data-src_layer.schema)    dst_feat = ogr.Feature(dst_layer.GetLayerDefn())     # 生成结果文件    for feature in class="lazy" data-src_layer:        dst_feat.SetGeometry(feature.geometry())        for j in range(feature.GetFieldCount()):            dst_feat.SetField(j, feature.GetField(j))        dst_layer.CreateFeature(dst_feat)     del dst_ds    del class="lazy" data-src_ds    print("successfully convert shapefile to geojson")

    结果包含原始shapefile文件中的属性信息:

    Python shapefile转GeoJson的方法有哪些

    关于“Python shapefile转GeoJson的方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Python shapefile转GeoJson的方法有哪些

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Python shapefile转GeoJson的方法有哪些

    这篇文章主要介绍“Python shapefile转GeoJson的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python shapefile转GeoJson的方法有哪些”文章能帮助大
    2023-07-05

    Python shapefile转GeoJson的2种方式实例

    geojson是地图可视化系统中最常用的地理数据格式,几乎所有主流地图可视化库或框架都支持geojson数据的加载,下面这篇文章主要给大家介绍了关于Python shapefile转GeoJson的2种方式的相关资料,需要的朋友可以参考下
    2023-03-08

    python中大小写转换的方法有哪些

    这篇文章主要介绍python中大小写转换的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python中大小写转换的方法有以下4种:1、lower() 方法大写字母转换为小写字母。如果字符串中没有需要被转换的
    2023-06-15

    fat32转ntfs的方法有哪些

    fat32转ntfs的方法有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  我们在使用电脑的时候,会遇到需要将硬盘从fat32转ntfs的情形。当遇到这种
    2023-06-06

    word转ppt有哪些方法

    word转ppt方法有:1、使用Office的内置功能;2、使用在线转换工具;3、手动复制粘贴等。Word是一款功能强大的文字处理工具,很多人会使用它来编写文档、制作报告等。然而,有时候我们需要将Word文档转换成PPT演示文稿,以便于展示
    2023-08-03

    mysql行转列的方法有哪些

    在MySQL中,可以使用以下方法将行转列:使用CASE语句:使用多个CASE语句将多行数据转换为单行。每个CASE语句对应一个列,并根据条件将数据填充到对应的列中。例如:SELECT id,MAX(CASE WHEN type = 'A'
    mysql行转列的方法有哪些
    2024-04-09

    pgsql列转行的方法有哪些

    在PostgreSQL中,将列转换为行的方法有以下几种:使用UNPIVOT语句:UNPIVOT是一种SQL操作符,可以将多列的数据转换为多行的数据。例如:SELECT id, type, valueFROM your_tableUNPI
    pgsql列转行的方法有哪些
    2024-04-09

    python object转换方式有哪些

    在Python中,有以下几种方式可以将对象进行转换:使用内置函数str()、int()、float()等,将对象转换为字符串、整数、浮点数等基本数据类型。使用list()、tuple()、set()等内置函数,将对象转换为列表、元组、集合等
    2023-10-24

    有哪些Python转义表示法

    本篇内容介绍了“有哪些Python转义表示法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 为什么要有转义?ASCII 表中一共有 12
    2023-06-15

    python字符串大小写转换的方法有哪些

    这篇文章主要介绍“python字符串大小写转换的方法有哪些”,在日常操作中,相信很多人在python字符串大小写转换的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python字符串大小写转换的方法
    2023-07-05

    python装饰器转换方法的注意点有哪些

    这篇文章主要介绍python装饰器转换方法的注意点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开
    2023-06-14

    Python中实现字符串反转的方法有哪些

    今天小编给大家分享一下Python中实现字符串反转的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言一道题目是实
    2023-06-30

    javascript数值转换的方法有哪些

    今天小编给大家分享一下javascript数值转换的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。JavaScri
    2023-07-06

    C#的类型转换方法有哪些

    这篇“C#的类型转换方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#的类型转换方法有哪些”文章吧。C# 类型转换
    2023-06-17

    jsp页面跳转的方法有哪些

    在JSP页面中,可以使用以下几种方法进行页面跳转:1. 使用Java代码进行页面跳转:在JSP页面中使用`response.sendRedirect("url")`方法,将请求重定向到指定的URL地址。例如:```jspresponse.s
    2023-08-24

    html页面跳转的方法有哪些

    HTML页面跳转的方法有以下几种:1. 使用超链接(标签):通过设置href属性指定跳转的目标页面的URL,点击超链接时会自动跳转到目标页面。例如:```html跳转到目标页面```2. 使用表单(标签)提交:通过设置action属性指定跳
    2023-08-08

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录