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自定义函数的创建、调用和函数的参数详解
Mar 11 Python
记录Django开发心得
Jul 16 Python
Python中让MySQL查询结果返回字典类型的方法
Aug 22 Python
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 Python
python3解析库lxml的安装与基本使用
Jun 27 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
python下载微信公众号相关文章
Feb 26 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
PyTorch中反卷积的用法详解
Dec 30 Python
4行Python代码生成图像验证码(2种)
Apr 07 Python
pytorch中的weight-initilzation用法
Jun 24 Python
利用python如何实现猫捉老鼠小游戏
Dec 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
我的论坛源代码(三)
2006/10/09 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
Python中的Django基本命令实例详解
2018/07/15 Python
flask入门之文件上传与邮件发送示例
2018/07/18 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
大学生护理专业自荐信
2013/10/03 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
工作推荐信范文
2014/05/10 职场文书
幽灵公主观后感
2015/06/09 职场文书
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android