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异常学习笔记
Feb 03 Python
详细解析Python当中的数据类型和变量
Apr 25 Python
解决Python字典写入文件出行首行有空格的问题
Sep 27 Python
Python 多进程并发操作中进程池Pool的实例
Nov 01 Python
python模仿网页版微信发送消息功能
Feb 24 Python
基于Python log 的正确打开方式
Apr 28 Python
python中plot实现即时数据动态显示方法
Jun 22 Python
Django model反向关联名称的方法
Dec 15 Python
Python常用特殊方法实例总结
Mar 22 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
不到20行代码用Python做一个智能聊天机器人
Apr 19 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 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/02/25 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
基于php实现的验证码小程序
2016/12/13 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
javascript+css3 实现动态按钮菜单特效
2016/02/06 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
Python实现二分法算法实例
2015/02/02 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
新员工入职感言
2014/02/01 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
竞赛口号大全
2014/06/16 职场文书
婚姻出轨保证书
2015/05/08 职场文书
python如何正确使用yield
2021/05/21 Python
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB