python Shapely使用指南详解
参考python Shapely使用指南详解 - 云+社区 - 腾讯云
Shapely是一个Python库,用于操作和分析笛卡尔坐标系中的几何对象。
引入包
from shapely.geometry import Pointfrom shapely.geometry import LineString
共有的变量和方法
object.areaReturns 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.area0.0>>> line.bounds(0.0, 0.0, 1.0, 2.0)>>> line.length2.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.area0.0>>> point.length0.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.x2.0>>> p.y3.0
coords可以被切片
>>> p.coords[:][(2.0, 3.0)]
LineStrings
LineStrings构造函数传入参数是2个或多个点序列
一个LineStrings对象area为0,长度非0
>>> line = LineString([(0,0), (0,1), (1,2)])>>> line.area0.0>>> line.length2.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)]
python Shapely使用指南详解相关推荐
- 信息学奥赛 python 教程_Python在信息学竞赛中的运用及Python的基本用法(详解)
前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在<算法竞赛入门经典-训练指南>中所说的一样,如果会用 ...
- python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解
本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...
- python字典之defaultdict详解
python字典之defaultdict详解 defaultdict为你的字典设定一个默认值或者默认值的数据类型: defaultdict接受一个工厂函数作为参数,如下来构造: dict =defau ...
- Python数据科学-技术详解与商业实践视频教程
Python数据科学-技术详解与商业实践(八大案例) 网盘地址:https://pan.baidu.com/s/13QrR_5Er6LgWCWzSb7qOrQ 提取码:s7vw 备用地址(腾讯微云): ...
- python turtle循环图案-Python内置模块turtle绘图详解
urtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的 ...
- python爬虫入门实例-Python爬虫天气预报实例详解(小白入门)
本文研究的主要是Python爬虫天气预报的相关内容,具体介绍如下. 要求是把你所在城市过去一年的历史数据爬出来. 分析网站 我们可以看到,我们需要的天气数据都是放在图表上的,在切换月份的时候,发现只有 ...
- python 自动化-Python API 自动化实战详解(纯代码)
主要讲如何在公司利用Python 搞API自动化. 1.分层设计思路 dataPool :数据池层,里面有我们需要的各种数据,包括一些公共数据等 config :基础配置 tools : 工具层 co ...
- python序列类型-python序列类型种类详解
python序列类型包括哪三种 python序列类型包括:列表.元组.字典 列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加: ...
- python流程控制语句-python学习 流程控制语句详解
###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的 ...
最新文章
- mysql登录报错:ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)
- Xamarin XAML语言教程构建进度条ProgressBar
- 重采样算法实践 --- (一)
- 20大新兴物联网趋势
- 密钥登陆Linux服务器
- 缓存目录的区别getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用
- 隐马尔科夫模型C#语言算法实现
- Java 设计模式 Day1 之面向抽象原则:抽象(abstract)类的设计与应用分析
- 【转】jsp+servlet和SSM分别是如何实现文件上传(示例)
- 习题3.5 求链表的倒数第m个元素 (20 分)
- A 服务器上运行B 服务器上可以正常运行的程序出现问题
- 杭电2539点球大战
- Graphviz 绘制流程图
- 1030: [JSOI2007]文本生成器
- mysql原理以及相关优化
- 红米3s进不了recovery_红米手机3S/3X刷recovery教程及第三方recovery下载
- 实验三 直流扫描分析
- 工作记录 io流写入linux文件
- JS临时死区(TDZ)
- 免杀实战之面向PHP的WebShell免杀