python使用pyshp读写shp文件的实现

 更新时间:2023年03月28日 11:22:49   作者:代码就是bug  
本文主要介绍了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 records
sf.shapeRecords()
获取所有
red=sf.shapeRecords()[0]  #获取第一条数据
print(red.record)  #获取record
print(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 shapefile
outshp = '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 arr
fileWrite = 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文件的实现的文章就介绍到这了,更多相关pyshp读写shp内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python使用pymysql操作MySQL错误代码1054和1064处理方式

    python使用pymysql操作MySQL错误代码1054和1064处理方式

    这篇文章主要介绍了python使用pymysql操作MySQL错误代码1054和1064处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作

    Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作

    这篇文章主要介绍了Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python 利用Entrez库筛选下载PubMed文献摘要的示例

    Python 利用Entrez库筛选下载PubMed文献摘要的示例

    这篇文章主要介绍了Python 利用Entrez库筛选下载PubMed文献摘要的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-11-11
  • Python利用fitz库提取pdf中的图片

    Python利用fitz库提取pdf中的图片

    Fitz库是一个Python图像处理库,主要用于打开、编辑和保存PDF、TIFF和JPEG格式的图像,它可以帮助用户读取和写入PDF文件,提取PDF页面以及在页面上进行标记和注释,本文主要介绍了如何通过Python的fitz库提取pdf中的图片,需要的朋友可以参考下
    2023-05-05
  • Python如何定义有可选参数的元类

    Python如何定义有可选参数的元类

    这篇文章主要介绍了Python如何定义有可选参数的元类,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Pycharm中SQL语句提示SQL Dialect is Not Configured的解决

    Pycharm中SQL语句提示SQL Dialect is Not Config

    这篇文章主要介绍了Pycharm中SQL语句提示SQL Dialect is Not Configured的解决方案,具有很好的参考价值,希望对大家有所帮助。
    2022-07-07
  • python 文件转成16进制数组的实例

    python 文件转成16进制数组的实例

    今天小编就为大家分享一篇python 文件转成16进制数组的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python django 增删改查操作 数据库Mysql

    python django 增删改查操作 数据库Mysql

    下面小编就为大家带来一篇python django 增删改查操作 数据库Mysql。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Python+OpenCV实现鼠标画瞄准星的方法详解

    Python+OpenCV实现鼠标画瞄准星的方法详解

    所谓瞄准星指的是一个圆圈加一个圆圈内的十字线,就像玩射击游戏狙击枪开镜的样子一样。本文将利用Python+OpenCV实现鼠标画瞄准星,感兴趣的可以尝试一下
    2022-08-08
  • Python实现随机爬山算法

    Python实现随机爬山算法

    这篇文章主要介绍了Python实现随机爬山算法的方法,帮助大家更好的利用python进行机器学习,感兴趣的朋友可以了解下
    2021-01-01

最新评论