返回顶部
首页 > 资讯 > 后端开发 > Python >Python shapefile转GeoJson的方法有哪些
  • 904
分享到

Python shapefile转GeoJson的方法有哪些

2023-07-05 09:07:25 904人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python shapefile转GeoJSON的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“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")    src_ds = ogr.Open(shp_file)    src_layer = 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, src_layer.GetSpatialRef())    dst_layer.CreateFields(src_layer.schema)    dst_feat = ogr.Feature(dst_layer.GetLayerDefn())     # 生成结果文件    for feature in 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 src_ds    print("successfully convert shapefile to geojson")

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

    Python shapefile转GeoJson的方法有哪些

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

    --结束END--

    本文标题: Python shapefile转GeoJson的方法有哪些

    本文链接: https://lsjlt.com/news/351087.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Python shapefile转GeoJson的方法有哪些
      这篇文章主要介绍“Python shapefile转GeoJson的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python shapefile转GeoJson的方法...
      99+
      2023-07-05
    • Python shapefile转GeoJson的2种方式实例
      目录GeoJson的简要介绍两种将shapefile文件转换为GeoJson的方式1. 使用geopandas2. 使用gdal总结GeoJson的简要介绍 GeoJson是用jso...
      99+
      2023-03-08
      python shapefile转geojson shapefile开源库 geojson数据
    • python geopandas读取、创建shapefile文件的方法
      shapefile是GIS中非常重要的一种数据类型,在ArcGIS中被称为要素类(Feature Class),主要包括点(point)、线(polyline)和多边形(polygon)。作为一种十分常见的矢量文件格...
      99+
      2022-06-02
      python读取shapefile文件 python geopandas shapefile文件
    • python中大小写转换的方法有哪些
      这篇文章主要介绍python中大小写转换的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python中大小写转换的方法有以下4种:1、lower() 方法大写字母转换为小写字母。如果字符串中没有需要被转换的...
      99+
      2023-06-15
    • fat32转ntfs的方法有哪些
      fat32转ntfs的方法有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  我们在使用电脑的时候,会遇到需要将硬盘从fat32转ntfs的情形。当遇到这种...
      99+
      2023-06-06
    • python常见进制转换方法有哪些
      1. 标准进制转换其中比较常用到的是python的内置函数进行进制的转换,一般使用内置函数进行转换的时候是先将控制台输入的字符串或者是自定义的字符串先转换为10进制然后将10进制转换为其他的进制,常见的是二进制、十进制、八进制、十六进制之间...
      99+
      2023-05-14
      Python
    • Python实现csv文件(点表和线表)转换为shapefile文件的方法
      Python实现csv文件(点表和线表)转换为shapefile文件 说明 点表使用的geometry坐标是wkbPoint(几何点坐标) 线表使用的geometr...
      99+
      2024-04-02
    • word转ppt有哪些方法
      word转ppt方法有:1、使用Office的内置功能;2、使用在线转换工具;3、手动复制粘贴等。Word是一款功能强大的文字处理工具,很多人会使用它来编写文档、制作报告等。然而,有时候我们需要将Word文档转换成PPT演示文稿,以便于展示...
      99+
      2023-08-03
    • Python字符串反转实现的方法有哪些
      这篇文章主要介绍“Python字符串反转实现的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python字符串反转实现的方法有哪些”文章能帮助大家解决问题...
      99+
      2024-04-02
    • pgsql列转行的方法有哪些
      在PostgreSQL中,将列转换为行的方法有以下几种: 使用UNPIVOT语句:UNPIVOT是一种SQL操作符,可以将多列的数...
      99+
      2024-04-09
      pgsql
    • mysql行转列的方法有哪些
      在MySQL中,可以使用以下方法将行转列: 使用CASE语句:使用多个CASE语句将多行数据转换为单行。每个CASE语句对应一个列...
      99+
      2024-04-09
      mysql
    • python object转换方式有哪些
      在Python中,有以下几种方式可以将对象进行转换: 使用内置函数str()、int()、float()等,将对象转换为字符串、...
      99+
      2023-10-24
      python object
    • 有哪些Python转义表示法
      本篇内容介绍了“有哪些Python转义表示法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 为什么要有转义ASCII 表中一共有 128...
      99+
      2023-06-15
    • python装饰器转换方法的注意点有哪些
      这篇文章主要介绍python装饰器转换方法的注意点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开...
      99+
      2023-06-14
    • python字符串大小写转换的方法有哪些
      这篇文章主要介绍“python字符串大小写转换的方法有哪些”,在日常操作中,相信很多人在python字符串大小写转换的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python字符串大小写转换的方法...
      99+
      2023-07-05
    • Python中实现字符串反转的方法有哪些
      今天小编给大家分享一下Python中实现字符串反转的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言一道题目是实...
      99+
      2023-06-30
    • JavaScript类型转换的方法有哪些
      今天小编给大家分享一下JavaScript类型转换的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
      99+
      2024-04-02
    • activity跳转页面的方法有哪些
      1.使用Intent跳转页面2.使用startActivityForResult跳转页面3.使用Fragment跳转页面4.使用We...
      99+
      2023-06-11
      activity跳转 activity
    • JS转化为String的方法有哪些
      小编给大家分享一下JS转化为String的方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JS转化为String的方法:1、使用“toString()”方...
      99+
      2023-06-14
    • C#的类型转换方法有哪些
      这篇“C#的类型转换方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#的类型转换方法有哪些”文章吧。C# 类型转换...
      99+
      2023-06-17
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作