python创建ArcGIS shape文件的实现


Posted in Python onDecember 06, 2019

工作中遇到了一个需求,需要把一段json文本转化成ArcGIS shape文件,想来想去,还是考虑用python来实现。

直接上代码

import shapefile
import json
import os
 
#shapefile="polygon.shp";
#jsonfile="社区网格.json";
 
def run():
  data=readJSON()
  datalist=data["list"]
  file=shapefile.Writer(target="社区网格.shp",shapeType=shapefile.POLYGON,autoBalance=True);
  #设置属性信息
  file.field('nere', 'C', '40') #'SECOND_FLD'为字段名称,C代表数据类型为字符串,长度为40
  file.field('fileName', 'C', '40')
  file.field('url', 'C', '40')
  file.field('photo', 'C', '40')
  file.field('netGrnereNum', 'C', '40')
  file.field('color', 'C', '40')
  file.field('num', 'C', '40')
  file.field('lat', 'C', '40')
  file.field('lon', 'C', '40')
  file.field('togriga', 'C', '40')
  file.field('gudumji', 'C', '40')
  file.field('memo', 'C', '40')
 
  #写入数据
  for item in datalist:
    nere=item["nere"]
    fileName = item["fileName"]
    url = item["url"]
    photo = item["photo"]
    netGrnereNum = item["netGrnereNum"]
    color = item["color"]
    num = item["num"]
    lat = item["lat"]
    lon = item["lon"]
    togriga = item["togriga"]
    gudumji = item["gudumji"]
    memo = item["memo"]
    polysStr = item["hotinfo"]
    polys=parsing(polysStr);
    #写入
    file.poly(polys=polys)
    file.record(nere,fileName,url,photo,netGrnereNum,color,num,lat,lon,togriga,gudumji,memo)
    print("-------写入成功---------")
  #保存文件
  file.save("社区网格.shp")
 
#读取json文件
def readJSON():
  f = open("社区网格.json", "r",encoding="utf-8") # 设置文件对象
  _str = f.read() # 将txt文件的所有内容读入到字符串str中
  f.close() # 关闭文件
  print("读取json完成")
  if _str.startswith(u'\ufeff'):
    _str = _str.encode('utf8')[3:].decode('utf8')
  data = json.loads(_str,encoding='utf8')
  return data;
  #print(data)
 
#数据解析
def parsing(text):
  data=[]
  strs=text.split(",");
  for line in strs:
    xy=line.split(" ");
    x_y=[float(xy[0]),float(xy[1])]
    data.append(x_y)
  _data=[];
  _data.append(data)
  return _data;
 
 
if __name__=="__main__":
  print("执行程序!!!");
  run();
  print("程序结束!!!");

以上这篇python创建ArcGIS shape文件的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python re正则表达式模块(Regular Expression)
Jul 16 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 Python
opencv python 傅里叶变换的使用
Jul 21 Python
对python for 文件指定行读写操作详解
Dec 29 Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 Python
pandas取出重复数据的方法
Jul 04 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
python实现矩阵和array数组之间的转换
Nov 29 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 Python
Python 为什么推荐蛇形命名法原因浅析
Jun 18 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 #Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 #Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 #Python
用python求一重积分和二重积分的例子
Dec 06 #Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 #Python
numpy按列连接两个维数不同的数组方式
Dec 06 #Python
使用Python实现分别输出每个数组
Dec 06 #Python
You might like
php zend解密软件绿色版测试可用
2008/04/14 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
2011/03/10 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
学年末自我鉴定
2014/01/21 职场文书
酒鬼酒广告词
2014/03/21 职场文书
小学六年级学生评语
2014/04/22 职场文书
交通志愿者活动总结
2014/06/27 职场文书
2014年班主任工作总结
2014/11/08 职场文书
springboot中的pom文件 project报错问题
2022/01/18 Java/Android