参考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使用指南详解相关推荐

  1. 信息学奥赛 python 教程_Python在信息学竞赛中的运用及Python的基本用法(详解)

    前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在<算法竞赛入门经典-训练指南>中所说的一样,如果会用 ...

  2. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  3. python字典之defaultdict详解

    python字典之defaultdict详解 defaultdict为你的字典设定一个默认值或者默认值的数据类型: defaultdict接受一个工厂函数作为参数,如下来构造: dict =defau ...

  4. Python数据科学-技术详解与商业实践视频教程

    Python数据科学-技术详解与商业实践(八大案例) 网盘地址:https://pan.baidu.com/s/13QrR_5Er6LgWCWzSb7qOrQ 提取码:s7vw 备用地址(腾讯微云): ...

  5. python turtle循环图案-Python内置模块turtle绘图详解

    urtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的 ...

  6. python爬虫入门实例-Python爬虫天气预报实例详解(小白入门)

    本文研究的主要是Python爬虫天气预报的相关内容,具体介绍如下. 要求是把你所在城市过去一年的历史数据爬出来. 分析网站 我们可以看到,我们需要的天气数据都是放在图表上的,在切换月份的时候,发现只有 ...

  7. python 自动化-Python API 自动化实战详解(纯代码)

    主要讲如何在公司利用Python 搞API自动化. 1.分层设计思路 dataPool :数据池层,里面有我们需要的各种数据,包括一些公共数据等 config :基础配置 tools : 工具层 co ...

  8. python序列类型-python序列类型种类详解

    python序列类型包括哪三种 python序列类型包括:列表.元组.字典 列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加: ...

  9. python流程控制语句-python学习 流程控制语句详解

    ###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的 ...

最新文章

  1. mysql登录报错:ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)
  2. Xamarin XAML语言教程构建进度条ProgressBar
  3. 重采样算法实践 --- (一)
  4. 20大新兴物联网趋势
  5. 密钥登陆Linux服务器
  6. 缓存目录的区别getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用
  7. 隐马尔科夫模型C#语言算法实现
  8. Java 设计模式 Day1 之面向抽象原则:抽象(abstract)类的设计与应用分析
  9. 【转】jsp+servlet和SSM分别是如何实现文件上传(示例)
  10. 习题3.5 求链表的倒数第m个元素 (20 分)
  11. A 服务器上运行B 服务器上可以正常运行的程序出现问题
  12. 杭电2539点球大战
  13. Graphviz 绘制流程图
  14. 1030: [JSOI2007]文本生成器
  15. mysql原理以及相关优化
  16. 红米3s进不了recovery_红米手机3S/3X刷recovery教程及第三方recovery下载
  17. 实验三 直流扫描分析
  18. 工作记录 io流写入linux文件
  19. JS临时死区(TDZ)
  20. 免杀实战之面向PHP的WebShell免杀

热门文章

  1. 网络基础知识(ESP8266开发篇)
  2. WPF 视觉树和逻辑树区别,以及其子节点的遍历过程。
  3. 腾讯地图获取所选区域坐标
  4. Latex在footnote或在bib中插入链接时出现波浪号~的解决方案
  5. 学编程要学好英语吗?
  6. matlab获取ipv4地址,【MATLAB】从 IP camera 撷取影像
  7. ffmpeg下载安装,以及springboot 整合视频点播学习
  8. The projects in the reactor contain a cyclic reference
  9. C/C++开3次方函数cbrt
  10. Chrome浏览器上集成IE内核方案