python中地理数据分析模块

python中地理数据分析模块

shapely模块
1、shapely是python中开源的针对空间几何进行处理的模块,支持点、线、面等基本几何对象类型以及相关空间操作。
2、point→Point类;
curve→LineString和LinearRing类;
surface→Polygon类
集合方法分别对应MultiPoint、MultiLineString、MultiPolygon
3、导入所需模块

# 导入所需模块
from shapely import geometry as geo
from shapely import wkt
from shapely import ops
import numpy as np
from shapely.geometry.polygon import LinearRing
from shapely.geometry import Polygon
from shapely.geometry import asPoint, asLineString, asMultiPoint, asPolygon

4、Point:
(1)、创建point,主要有以下三种方法

# 创建point
pt1 = geo.Point([0,0])
coord = np.array([0,1])
pt2 = geo.Point(coord)
pt3 = wkt.loads("POINT(1 1)")
geo.GeometryCollection([pt1, pt2, pt3]) #批量可视化

最终三个点的结果如下所示:
在这里插入图片描述
(2)、point常用属性

# point常用属性
print(pt1.x) #pt1的x坐标
print(pt1.y)#pt1的y坐标
print(list(pt1.coords)) 
print(np.array(pt1))

输出结果如下:
0.0
0.0
[(0.0, 0.0)]
[0. 0.]
(3)、point常用方法,计算距离

# point计算距离
d = pt2.distance(pt1) #计算pt1与pt2的距离, d =1.0

5、LineString:
创建LineString主要有以下三种方法:

# LineString的创建
line1 = geo.LineString([(0,0),(1,-0.1),(2,0.1),(3,-0.1),(5,0.1),(7,0)])
arr = np.array([(2, 2), (3, 2), (4, 3)])
line2 = geo.LineString(arr)
line3 = wkt.loads("LineString(-2 -2,4 4)")

line1, line2, line3对应的直线如下所示
在这里插入图片描述
LineString常用方法:

print(line2.length) #计算线段长度:2.414213562373095
print(list(line2.coords)) #线段中点的坐标:[(2.0, 2.0), (3.0, 2.0), (4.0, 3.0)]
print(np.array(line2)) #将点坐标转成numpy.array形式[[2. 2.],[3. 2.],[4. 3.]]
print(line2.bounds)#坐标范围:(2.0, 2.0, 4.0, 3.0)
center = line2.centroid #几何中心:
geo.GeometryCollection([line2, center])
bbox = line2.envelope #最小外接矩形
geo.GeometryCollection([line2, bbox])

rect = line2.minimum_rotated_rectangle #最小旋转外接矩形
geo.GeometryCollection([line2, rect])

line2几何中心:

line2的最小外接矩形:
在这里插入图片描述
line2的最小旋转外接矩形:
在这里插入图片描述

#常用方法
d1 = line1.distance(line2) #线线距离: 1.9
d2 = line1.distance(geo.Point([-1, 0])) #点线距离:1.0
d3 = line1.hausdorff_distance(line2) #最大最小距离:4.242640687119285
#插值
pt_half = line1.interpolate(0.5, normalized = True)
geo.GeometryCollection([line1,pt_half])

#投影
ratio = line1.project(pt_half, normalized = True)
print(ratio)#project()方法是和interpolate方法互逆的:0.5

插值:
在这里插入图片描述
DouglasPucker算法:道格拉斯-普克算法:是将曲线近似表示为一系列点,并减少点的数量的一种算法。

#DouglasPucker算法
line1 = geo.LineString([(0, 0), (1, -0.2), (2, 0.3), (3, -0.5), (5, 0.2), (7,0)])
line1_simplify = line1.simplify(0.4, preserve_topology=False)
print(line1)#LINESTRING (0 0, 1 -0.1, 2 0.1, 3 -0.1, 5 0.1, 7 0)
print(line1_simplify)#LINESTRING (0 0, 2 0.3, 3 -0.5, 5 0.2, 7 0)
buffer_with_circle = line1.buffer(0.2) #端点按照半圆扩展
geo.GeometryCollection([line1,buffer_with_circle])

在这里插入图片描述
道格拉斯-普克算法化简后的结果
在这里插入图片描述
6、LineRing:(是一个封闭图形)

#LinearRing是一个封闭图形
ring = LinearRing([(0, 0), (1, 1), (1, 0)])
print(ring.length)#相比于刚才的LineString的代码示例,其长度现在是3.41,是因为其序列是闭合的
print(ring.area):结果为0
geo.GeometryCollection([ring])

在这里插入图片描述
7、Polygon:(多边形)

polygonl = Polygon([(0, 0), (1, 1), (1, 0)])
ext = [(0, 0), (0, 2), (2, 2), (2, 0), (0, 0)]
int1 = [(1, 0), (0.5, 0.5), (1
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 《Python地理空间分析指南》是一本介绍使用Python进行地理空间数据处理和分析的指南。该书详细介绍了如何使用Python编程语言进行地理空间数据的读取、处理、分析和可视化。 首先,本书从基础知识开始,介绍了地理信息系统(GIS)和空间数据的基本概念。读者可以了解到地理空间数据的类型、结构和特点,以及相关的地理数据模型和坐标系统。 然后,本书介绍了Python语言的基础知识和地理空间分析的常用工具包,如GDAL、Fiona、PySAL等。读者可以学习如何通过这些工具包读取和处理常见的地理空间数据格式,如Shapefile、GeoJSON等。 接着,本书以实例的形式介绍了一系列地理空间分析的常见任务,包括空间查询、空间缓冲区分析、空间插值、地理空间回归分析等。每个实例都给出了详细的代码和步骤,读者可以通过学习这些实例来理解如何使用Python进行地理空间分析。 此外,本书还介绍了一些高级的地理空间分析技术,如空间统计分析、网络分析、时间空间分析等。读者可以通过学习这些技术,提升自己在地理空间分析领域的能力。 最后,本书还介绍了如何使用Python进行地理空间数据可视化,包括绘制地图、制作动态可视化等。读者可以通过学习这些技术,将地理空间数据可视化为直观的图形展示,更好地理解和分析数据。 总而言之,本书通过系统的介绍和实例演示,帮助读者掌握使用Python进行地理空间分析的基本原理和方法。无论是初学者还是有一定经验的数据分析师,都可以从本书获得实用的知识和技巧。 ### 回答2: 《Python地理空间分析指南》是一本介绍使用Python进行地理空间分析的指南。地理空间分析是指用计算机技术和地理信息系统(GIS)来处理和分析地理数据的方法和工具。该指南主要介绍了如何使用Python编程语言来读取、处理、分析和可视化地理数据。 在这本指南,读者将学习使用Python的主要库和模块,如GDAL、Geopandas、Shapely等,来处理不同格式的地理数据,包括栅格数据和矢量数据。读者将学习如何读取地理数据文件,并进行数据的预处理、筛选和转换。 指南还介绍了一些常见的地理空间分析方法和技术,如空间插值、空间统计分析、地理网络分析等。读者将学会如何使用Python来应用这些方法,并通过可视化工具将分析结果以地图的形式展示出来。 除了基本的地理空间分析方法,指南还介绍了一些高级的主题,如空间回归分析、地理聚类分析、地理大数据处理等。这些主题将帮助读者深入理解地理空间分析的应用领域,并提供了更多应用的思路和方法。 这本指南的目标读者是对地理信息科学和计算机编程有一定了解的人士,希望通过Python来进行地理空间分析的人士。它不仅可以帮助读者掌握Python编程技巧,还可以帮助读者在GIS领域应用Python进行地理数据处理和分析,提高工作效率和数据分析的准确性。 ### 回答3: 《Python地理空间分析指南》是一本介绍如何使用Python进行地理空间分析的电子书,以PDF格式进行发布。该书主要内容涵盖了地理数据处理、空间数据可视化、空间数据挖掘等方面的知识和技巧。 这本指南对于想要利用Python进行地理空间分析的人来说是一本非常有价值的资料。通过学习该指南,读者可以了解如何使用Python来读取、处理和分析地理数据。该指南介绍了一些常用的Python库和工具,比如geopandas、shapely和pySAL等,这些工具可以帮助读者处理地理空间数据,进行地图制作和空间统计分析等工作。 另外,该指南还介绍了一些地理空间分析的常用方法和技术。比如,如何计算地理空间数据之间的距离或相似性,如何进行空间插值和地理加权回归等。这些技术对于研究地理空间问题和解决实际问题都具有重要意义。 总的来说,通过学习《Python地理空间分析指南》,读者可以获得使用Python进行地理空间分析的基础知识和实用技巧。这本指南包含了丰富的实例和案例,以及相关的代码和数据,读者可以通过实践来加深对地理空间分析的理解和应用。无论是从事地理信息系统研究的专业人士,还是对地理空间分析感兴趣的初学者,都能从该指南获益匪浅。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值