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实现数值积分的Simpson方法实例分析
Jun 05 Python
Python自定义类的数组排序实现代码
Aug 28 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
python整小时 整天时间戳获取算法示例
Feb 20 Python
python实现电子产品商店
Feb 26 Python
Python3.5字符串常用操作实例详解
May 01 Python
Django之PopUp的具体实现方法
Aug 31 Python
Python实现AI自动抠图实例解析
Mar 05 Python
tensorflow之读取jpg图像长和宽实例
Jun 18 Python
Python的信号库Blinker用法详解
Dec 31 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 字符串替换的方法
2012/01/10 PHP
PHP程序员基本要求和必备技能
2014/05/09 PHP
php实现的短网址算法分享
2014/06/20 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
input禁止键盘及中文输入,但可以点击
2014/02/13 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
python数值基础知识浅析
2019/11/19 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
青年教师典范事迹材料
2014/01/31 职场文书
伊索寓言教学反思
2014/05/01 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang