文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python怎么使用pyshp读写shp文件

2023-07-05 17:50

关注

今天小编给大家分享一下python怎么使用pyshp读写shp文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

安装

pip install pyshp

引入

import shapefile

读取

sf=shapefile.Reader("{路径名}",encoding='utf-8') # 仅仅读取

shapes与shape

shapes=sf.shapes()  返回值是一个列表,包含该文件中所有的”几何数据”对象

shape=sf.shape(0) Shape是第1个”几何数据”对象

shapeType返回集合类型

返回第1个对象的数据类型属性

    几何类型    NULL = 0    POINT = 1    POLYLINE = 3    POLYGON = 5    MULTIPOINT = 8    POINTZ = 11    POLYLINEZ = 13    POLYGONZ = 15    MULTIPOINTZ = 18    POINTM = 21    POLYLINEM = 23    POLYGONM = 25    MULTIPOINTM = 28    MULTIPATCH = 31   print(shape.shapeType)

bbox 返回数据范围

shape.bbox    返回第一个集合对象的数据范围(左下角的x,y坐标和右上角的x,y坐标)

points 所有坐标点

shape.points   返回第一个集合对象的所有坐标点

parts 返回’块’的第一个点坐标

shape.parts 返回第一个对象的每个”块”的第一个点坐标

records与record

获取属性列表

records

获取属性列表,是个函数

sf.records();

返回的值是个list

record
获取一条数据

sf.record(0)
返回的值是class

shapeRecords

同时获取record和shape

# 同时读取geometry and recordssf.shapeRecords()获取所有red=sf.shapeRecords()[0]  #获取第一条数据print(red.record)  #获取recordprint(red.shape)   #获取shape

fields

获取shp文件属性字段

print(sf.fields)[('DeletionFlag', 'C', 1, 0), ['OBJECTID', 'N', 9, 0], ['BSM', 'C', 12, 0], ['PXZQDM', 'C', 2, 0], ['PXZQMC', 'C', 50, 0]]

写入

import shapefileoutshp = 'a.shp'  landlist=[ '84.60212,45.03658,84.60794,45.03938,84.61473,45.04151,84.62442,45.04375,84.62727,45.03632,84.63939,45.0367,84.64906,45.03277,84.63886,45.02233',    '84.58063,45.05523,84.57974,45.04717,84.59864,45.04792,84.60078,45.05523,84.58758,45.05473,84.58223,45.05523']def tramform(lat_lng):    str =lat_lng    str = str.split(',')    arr = []    for i in range(len(str) - 1):        # 第一列,第二列作为经纬度(x,y)创建点        if i % 2 == 0:            arr.append([float(str[i]), float(str[i + 1])])    return arrfileWrite = shapefile.Writer("create/1.shp",encoding='utf-8')  # 新建数据存放位置# shp文件属性字段 Fid,Shape会自动生成。fileWrite.field('landid')fileWrite.field('landName')for i in range(len(landlist)):    # 第一步:塞入形状    ## 这个形状指的就是那些点的集合    ## 由于源码中要求的输入是列表,因此就算只塞入一个,也要套一个列表    arr=[]    arr=tramform(landlist[i])    #[[84.60212, 45.03658], [84.60794, 45.03938], [84.61473, 45.04151], [84.62442, 45.04375], [84.62727, 45.03632], [84.63939, 45.0367], [84.64906, 45.03277], [84.63886, 45.02233]]    #poly 写入面,点线面使用不同函数    fileWrite.poly([arr])    # 第二步:塞入属性值    fileWrite.record(str(i), '地块')# 保存结束fileWrite.close()

以上就是“python怎么使用pyshp读写shp文件”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯