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生成随机密码
Mar 10 Python
python获取当前日期和时间的方法
Apr 30 Python
python实现SMTP邮件发送功能
Jun 16 Python
Python3.6正式版新特性预览
Dec 15 Python
Python简单实现控制电脑的方法
Jan 22 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
python实现微信自动回复及批量添加好友功能
Jul 03 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
详解python中groupby函数通俗易懂
May 14 Python
详解Python 函数参数的拆解
Sep 02 Python
Python实现粒子群算法的示例
Feb 14 Python
Python入门学习之类的相关知识总结
May 25 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
3种平台下安装php4经验点滴
2006/10/09 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
jQuery find和children方法使用
2011/01/31 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
js对字符串进行编码的方法总结(推荐)
2016/11/10 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
如何在vue 中引入使用jquery
2020/11/10 jQuery
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
python实现图像拼接功能
2020/03/23 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
买卖协议书范本
2014/04/21 职场文书
小学六年级学生评语
2014/04/22 职场文书
社区灵活就业证明
2014/11/03 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers