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 28 Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
python2 与python3的print区别小结
Jan 16 Python
python整小时 整天时间戳获取算法示例
Feb 20 Python
python并发爬虫实用工具tomorrow实用解析
Sep 25 Python
Django REST框架创建一个简单的Api实例讲解
Nov 05 Python
Python退出时强制运行一段代码的实现方法
Apr 29 Python
基于python代码批量处理图片resize
Jun 04 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
Dec 11 Python
Python insert() / append() 用法 Leetcode实战演示
Mar 31 Python
python 批量压缩图片的脚本
Jun 02 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 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框架的理由
2015/09/26 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
Python 列表的清空方式
2020/01/13 Python
Python super()方法原理详解
2020/03/31 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
介绍一下MD5加密算法
2016/11/12 面试题
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
食堂个人先进事迹
2014/01/22 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
教师职位说明书
2014/07/29 职场文书
2014年科室工作总结
2014/11/20 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript