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调用shell的方法
Nov 20 Python
跟老齐学Python之深入变量和引用对象
Sep 24 Python
python删除特定文件的方法
Jul 30 Python
Python中json格式数据的编码与解码方法详解
Jul 01 Python
Python Dataframe 指定多列去重、求差集的方法
Jul 10 Python
selenium+python自动化测试之页面元素定位
Jan 23 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
python+opencv实现车牌定位功能(实例代码)
Dec 24 Python
如何基于Python实现word文档重新排版
Sep 29 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
Python3使用Selenium获取session和token方法详解
Feb 16 Python
python获取带有返回值的多线程
May 02 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 结果集的分页实现代码
2009/03/10 PHP
php foreach 使用&(与运算符)引用赋值要注意的问题
2010/02/16 PHP
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
5 种JavaScript编码规范
2018/01/30 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
jQuery pagination分页示例详解
2018/10/23 jQuery
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
js实现坦克大战游戏
2020/02/24 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
python实现搜索文本文件内容脚本
2018/06/22 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
应届生会计求职信
2013/11/11 职场文书
后进生转化工作制度
2014/01/17 职场文书
《童趣》教学反思
2014/02/19 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
先进班组材料范文
2014/12/25 职场文书
教师研修随笔感言
2015/11/18 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript
Elasticsearch 索引操作和增删改查
2022/04/19 Python