python Shapely使用指南详解
作者:jihite 时间:2022-11-01 23:38:04
Shapely是一个Python库,用于操作和分析笛卡尔坐标系中的几何对象。
引入包
from shapely.geometry import Point
from shapely.geometry import LineString
共有的变量和方法
object.area
Returns the area (float) of the object.
object.bounds
返回对象的(minx,miny,maxx,maxy)元组(float类型)
object.length
返回对象的长度
object.geom_type
返回对象类型
object.distance(other)
返回本对象和另一个对象的距离
object.representative_point()
Returns a cheaply computed point that is guaranteed to be within the geometric object.
>>> from shapely.geometry import Point
>>> print Point(0,0).distance(Point(0,1))
1.0
>>> from shapely.geometry import LineString
>>> line = LineString([(0,0), (1,1), (1,2)])
>>> line.area
0.0
>>> line.bounds
(0.0, 0.0, 1.0, 2.0)
>>> line.length
2.414213562373095
>>> line.geom_type
'LineString'
Point
class Point(coordinates)
三种赋值方式
>>> point = Point(0,0)
>>> point_2 = Point((0,0))
>>> point_3 = Point(point)
一个点对象有area和长度都为0
>>> point.area
0.0
>>> point.length
0.0
坐标可以通过coords或x、y、z得到
>>> p = Point(2,3)
>>> p.coords
<shapely.coords.CoordinateSequence object at 0x7ffbc3d60dd0>
>>> list(p.coords)
[(2.0, 3.0)]
>>> p.x
2.0
>>> p.y
3.0
coords可以被切片
>>> p.coords[:]
[(2.0, 3.0)]
LineStrings
LineStrings构造函数传入参数是2个或多个点序列
一个LineStrings对象area为0,长度非0
>>> line = LineString([(0,0), (0,1), (1,2)])
>>> line.area
0.0
>>> line.length
2.414213562373095
获得坐标
>>> line.coords[:]
[(0.0, 0.0), (0.0, 1.0), (1.0, 2.0)]
>>> list(line.coords)
[(0.0, 0.0), (0.0, 1.0), (1.0, 2.0)]
LineString依然可以接受一个同类型对象
>>> line2 = LineString(line)
>>> line2.coords[:]
[(0.0, 0.0), (0.0, 1.0), (1.0, 2.0)]
常见格式转换
>>> Point(1,1).wkt
'POINT (1 1)'
>>> Point(1,1).wkb
'\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?'
>>> Point(1,1).wkb.encode('hex')
'0101000000000000000000f03f000000000000f03f'
>>>
>>> Point(1,1).wkb.encode('hex')
'0101000000000000000000f03f000000000000f03f'
两者都有loads和dumps方法
对于wkt
>>> from shapely.wkt import dumps, loads
>>> s = dumps(Point(1,2))
>>> s
'POINT (1.0000000000000000 2.0000000000000000)'
>>> ss = loads(s)
>>> ss
<shapely.geometry.point.Point object at 0x7ffbc3d783d0>
>>> ss.coords[:]
[(1.0, 2.0)]
对于wkb
>>> from shapely.wkb import dumps, loads
>>> s = dumps(Point(1,2), hex=True)
>>> s
'0101000000000000000000F03F0000000000000040'
>>> ss = loads(s, hex=True)
>>> ss
<shapely.geometry.point.Point object at 0x7ffbc3d78790>
>>> ss.coords
<shapely.coords.CoordinateSequence object at 0x7ffbc3d783d0>
>>> ss.coords[:]
[(1.0, 2.0)]
来源:https://www.cnblogs.com/kaituorensheng/p/5711752.html
标签:python,几何
0
投稿
猜你喜欢
Python cv2 图像自适应灰度直方图均衡化处理方法
2022-09-21 17:01:57
基于spring boot 日志(logback)报错的解决方式
2022-05-12 08:13:46
Python numpy 模块介绍
2022-06-04 02:03:00
python实现监控windows服务并自动启动服务示例
2021-01-19 01:30:13
Python 文件重命名工具代码
2022-09-25 05:15:32
SQL Server恢复模型之批量日志恢复模式
2024-01-28 07:34:22
sql删除重复数据的详细方法
2024-01-14 15:22:21
Go slice切片使用示例详解
2023-07-09 12:07:02
Golang JSON的进阶用法实例讲解
2024-02-20 00:24:00
git本地分支和stash内容报错消失的问题
2023-10-19 01:48:47
keras 多任务多loss实例
2022-09-21 12:49:33
Python中动态获取对象的属性和方法的教程
2022-07-12 07:01:20
用Python编写简单的gRPC服务的详细过程
2023-07-22 13:41:39
详解TreeView绑定数据库
2024-01-17 17:09:13
numpy中实现ndarray数组返回符合特定条件的索引方法
2023-04-21 06:21:53
Python中人脸图像特征提取方法(HOG、Dlib、CNN)简述
2021-09-16 21:38:59
Python format字符串格式化函数的使用
2023-12-20 12:45:59
javascript实现json页面分页实例代码
2024-02-25 09:38:56
sqlserver中创建链接服务器图解教程
2024-01-23 18:14:13
asp使用 sql_dmo 添加新数据库代码
2010-03-17 20:57:00