pyshp+shapely,两个分析地理空间数据的Python库

2023-12-29 20:10:17

你好,我是kelly。

今天分享pyshp+shapely,在分析地理空间数据时常用的2个Python库。在地理信息系统GIS(Geographic Information System)领域,处理和分析地理空间数据是一项非常重要的任务。

一、读写地理空间数据

地理空间数据为矢量格式,一般存储为Shapefile文件,Shapefile文件属于一种矢量图形格式,能够保存几何图形的位置及相关属性。

Shapefile文件是美国环境系统研究所公司(ESRI)在1998年作为一种开放规范发布的矢量数据格式,已成为GIS数据的一种标准,目前几乎所有的地理空间分析软件都支持Shapefile文件。

Shapefile文件是一种文件存储方法,实际包括多个文件,其中最重要文件包含.shp,.shx,.dbf、.prj文件等。

  • .shp文件:保存要素几何的实体,包括几何图形。

  • .shx文件:形状几何索引,记录几何体在shp文件的位置。

  • .dbf文件:数据库文件,存储每个几何形状的属性数据。

  • .prj文件:保存地理坐标系统与投影信息。

读写地理空间数据最常用的Python库是pyshp,截止本文发表时,pyshp的最新版本为2.3.1。

官方网址:

https://github.com/GeospatialPython/pyshp

安装:

pip3 install pyshp==2.3.1

二、几何对象处理库

读取地理空间数据后,一般还需要进行各种处理操作,这时需要用到其他Python库。

Shapely是一个Python库,可以对笛卡尔坐标平面上的几何对象进行操作和分析,通常配合pyshp库使用。

官方网址:

https://github.com/shapely/shapely

安装:

pip3 install shapely==2.0.2

三、使用示例

在地理空间领域,最常见操作是判断经纬度点是否在某一个空间范围内:

首先,导入库

import shapefile
from shapely import geometry

其次,读取地理空间数据,并转为geometry类型

# 某个空间范围shap文件(一系列经纬度点的多边形)
path_file = ".shp文件的路径"
sf = shapefile.Reader(path_file, encoding="utf-8")
shape_records = sf.shapeRecords()
# 笔者.shp文件存放多个shape数据,这里取第一个shape,并转为geometry
geom = geometry.shape(shape_records[0].shape)

最后,判断点是否在空间范围内

# 给定一个经纬度坐标点
point = (113.559684,23.331406)
# 判断坐标点是否在目标的空间范围内,flag=True表示在,否则不在。
flag = geometry.Point(*point).within(geom)

本文原始版本发表链接:

https://mp.weixin.qq.com/s?__biz=MzI2Mjg3NTY5MQ==&mid=2247484549&idx=1&sn=03b2dc5f47a23606fc38347ff3e37817&chksm=ea453bc1dd32b2d7cfddbcc5db3549009b3c7944a5c6bd6071432addf0e7eafbd625c39296ba#rd

kelly会在公众号「kelly学技术」不定期更新文章,感兴趣的朋友可以关注一下,期待与您交流。

--over--

文章来源:https://blog.csdn.net/qm5132/article/details/135290409
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。