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根据区号生成手机号码的方法
Jul 08 Python
详解python进行mp3格式判断
Dec 23 Python
python实现下载文件的三种方法
Feb 09 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
Sep 18 Python
Python爬豆瓣电影实例
Feb 23 Python
python dataframe 输出结果整行显示的方法
Jun 14 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
opencv python如何实现图像二值化
Feb 03 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
Python+Appium实现自动抢微信红包
May 21 Python
Python实战之实现简易的学生选课系统
May 25 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脚本守护进程原理与实现方法详解
2017/07/20 PHP
PDO::errorCode讲解
2019/01/28 PHP
类似框架的js代码
2006/11/09 Javascript
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
JavaScript基础知识之数据类型
2012/08/06 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
JavaScript File分段上传
2016/03/10 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
python中cPickle用法例子分享
2014/01/03 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
浅述python中深浅拷贝原理
2018/09/18 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
国贸专业的职业规划范文
2014/01/23 职场文书
教师师德反思材料
2014/02/15 职场文书
明星邀请函
2015/02/02 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
利用Python+OpenCV三步去除水印
2021/05/28 Python
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS