Python中shapefile转换geojson的示例


Posted in Python onJanuary 03, 2019

shapefile转换geojson

import shapefile
import codecs
from json import dumps
# read the shapefile
def shp2geo(file="line出产.shp"):
  reader = shapefile.Reader(file)
  fields = reader.fields[1:]
  field_names = [field[0] for field in fields]
  buffer = []
  for sr in reader.shapeRecords():
    record = sr.record
    record = [r.decode('gb2312', 'ignore') if isinstance(r, bytes)
         else r for r in record]
    atr = dict(zip(field_names, record))
    geom = sr.shape.__geo_interface__
    buffer.append(dict(type="Feature", geometry=geom, properties=atr))
    # write the GeoJSON file
  geojson = codecs.open(file.split('.')[0] + "-geo.json", "w", encoding="gb2312")
  geojson.write(dumps({"type": "FeatureCollection", "features": buffer}, indent=2) + "\n")
  geojson.close()
if __name__ == '__main__':
  # import os
  # for z,x,c in os.walk('.'):
  #   for zz in c:
  #     if zz.endswith(".shp"):
  #       shp2geo(zz)
  # shp2geo(file='D.shp')
  shp2geo(file='ttttttttttt.shp')

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python中subprocess模块用法实例详解
May 20 Python
Python合并字符串的3种方法
May 21 Python
详解Python中is和==的区别
Mar 21 Python
Python数据类型之Number数字操作实例详解
May 08 Python
Python Web框架之Django框架Form组件用法详解
Aug 16 Python
django 实现celery动态设置周期任务执行时间
Nov 19 Python
python return逻辑判断表达式实现解析
Dec 02 Python
基于keras中的回调函数用法说明
Jun 17 Python
Python实现ElGamal加密算法的示例代码
Jun 19 Python
Python 下载Bing壁纸的示例
Sep 29 Python
python线程优先级队列知识点总结
Feb 28 Python
Python Pandas常用函数方法总结
Jun 15 Python
Python关于excel和shp的使用在matplotlib
Jan 03 #Python
Python使用folium excel绘制point
Jan 03 #Python
Python获取航线信息并且制作成图的讲解
Jan 03 #Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 #Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 #Python
python 调用有道api接口的方法
Jan 03 #Python
对python调用RPC接口的实例详解
Jan 03 #Python
You might like
在PHP中执行系统外部命令
2006/10/09 PHP
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
PHP类的特性实例分析
2016/09/28 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
jQuery 对象中的类数组操作
2009/04/27 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
jQuery实现评论模块
2020/08/19 jQuery
python制作一个桌面便签软件
2015/08/09 Python
Python中的id()函数指的什么
2017/10/17 Python
在python里从协程返回一个值的示例
2019/02/19 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
python操作toml文件的示例代码
2020/11/27 Python
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
介绍一下sql server的安全性
2014/08/10 面试题
建设工地安全标语
2014/06/07 职场文书
2015年教师节主持词
2015/07/03 职场文书
植树节新闻稿
2015/07/17 职场文书
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
JavaScript实现简单拖拽效果
2021/09/15 Javascript