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中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
Python出现segfault错误解决方法
Apr 16 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
Django xadmin开启搜索功能的实现
Nov 15 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
如何使用Python抓取网页tag操作
Feb 14 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
详细介绍python类及类的用法
May 31 Python
Python实现生成bmp图像的方法
Jun 13 Python
Python实现8种常用抽样方法
Jun 27 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
js控制frameSet示例
2013/09/10 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
PyQt5实现简易计算器
2020/05/30 Python
django迁移数据库错误问题解决
2019/07/29 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
Python多分支if语句的使用
2020/09/03 Python
智利最大的网上商店:Linio智利
2016/11/24 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
农救科工作职责
2013/11/27 职场文书
销售部主管岗位职责
2013/12/18 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
导游词怎么写
2015/02/04 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
歌剧魅影观后感
2015/06/05 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
七年级上册生物的课件
2019/08/07 职场文书
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技
python运行脚本文件的三种方法实例
2022/06/25 Python