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函数作用域的LEGB顺序
May 14 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
详解Python中的分组函数groupby和itertools)
Jul 11 Python
Python2与Python3的区别实例总结
Apr 17 Python
python交易记录链的实现过程详解
Jul 03 Python
python tkinter canvas使用实例
Nov 04 Python
Python遍历字典方式就实例详解
Dec 28 Python
如何使用Python抓取网页tag操作
Feb 14 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
基于python实现ROC曲线绘制广场解析
Jun 28 Python
Python 使用dict实现switch的操作
Apr 07 Python
Python Matplotlib绘制两个Y轴图像
Apr 13 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实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
JavaScript打字小游戏代码
2011/12/26 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
Python自动发送邮件的方法实例总结
2018/12/08 Python
PyCharm 设置SciView工具窗口的方法
2019/01/15 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
医学护理毕业生自荐信
2013/11/07 职场文书
服务行业个人求职的自我评价
2013/12/12 职场文书
自我评价范文
2013/12/22 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
2015年安全月活动总结
2015/03/26 职场文书
公司内部升职自荐信
2015/03/27 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
严以律己学习心得体会
2016/01/13 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android