python 笔记:shapely(形状篇)
主要是点(point)、线(linestring)、面(surface)
1 基本方法和属性
object.area | 返回对象的面积(浮点数) |
object.bounds | 返回一个(minx, miny, maxx, maxy)元组(浮点值),该元组界定了对象的边界 |
object.length | 返回对象的长度(浮点数) |
object.minimum_clearance | 返回通过移动一个节点所能产生的无效几何形状的最小距离 这可以被视为几何形状的稳健性的度量,其中较大的最小清晰度值表示更稳健的几何形状。 如果一个几何形状不存在最小清晰度,例如一个点,这将返回math.infinity。
|
object.geom_type | 返回一个字符串,指定对象的几何类
|
object.distance | 返回到另一个几何对象的最小距离(浮点数)
|
object.hausdorff_distance | 返回到另一个几何对象的豪斯多夫距离(浮点数)。 两个几何形状之间的豪斯多夫距离是一个几何形状上的点到另一个几何形状上最近点的最远距离
|
object.representative_point |
|
2 Points
2.1 创建点
使用 Shapely 创建点时,可以直接提供 x 和 y 的坐标值,或者提供一个包含 x 和 y 值的元组
from shapely import Point# 使用位置坐标值创建点
point = Point(0.0, 0.0)# 使用点元组参数创建点
q = Point((0.0, 0.0))
2.2 属性和方法
point.area | 始终是0 |
point.length | 始终是0 |
point.bounds | 对于点来说,这些值是点的坐标
|
| 访问坐标值
coords还可以这样使用:
|
3 LineStrings
- 接受一个有序的2个或更多个 (x, y[, z]) 点元组序列
- 构造出的
LineString对象代表点之间的一个或多个连接的线性样条。有序序列中允许重复的点,但可能会导致性能损失,应该避免。LineString可以自我交叉

3.1 方法和属性
line.area | 始终是0 |
line.length | 线段的长度 |
line.bounds | x-y 边界框是一个 (minx, miny, maxx, maxy) 元组
|
line.coords | 定义的坐标值可以通过
|
4 LinearRing
- 受一个有序的 (x, y[, z]) 点元组序列
- 序列可以通过在第一个和最后一个索引处传递相同的值来显式关闭。否则,序列将通过将第一个元组复制到最后一个索引来隐式关闭
LinearRing有零面积和非零长度- 与
LineString一样,有序序列中允许重复的点,但可能会导致性能损失,应该避免。LinearRing不能自我交叉,也不能在单个点上接触自身

coords | ![]() |
area | 始终为0 |
length | 长度 |
bounds |
5 polygon
Polygon类的构造函数接受两个位置参数。- 第一个参数是一个有序的 (x, y[, z]) 点元组序列,这与
LinearRing的情况完全相同。 - 第二个参数是一个可选的,无序的环状序列序列,指定了特征的内部边界或“洞”(同时在第一个LinearRing里面的部分挖掉,不在第一个
- 第一个参数是一个有序的 (x, y[, z]) 点元组序列,这与
from shapely import Polygonpoly=Polygon([(0,2),(2,2),(2,0)],[[(0.5, 1.5), (1.5, 1.5), (1.5, 0.5), (0.5, 0.5)]])
poly

area | 面积 |
length | |
bounds | |
exteriorinteriors | 访问组成环(外环 内环)
|
6 box
方形多边形
from shapely.geometry import boxbox(0,0,1,2)

7 形状的集合
7.1 GeometryCollection
- 当两个几何对象的交集包含多种类型的几何元素时,例如
LineString和Point,Shapely 会使用GeometryCollection类型来表示这些结果
from shapely.geometry import LineStringa = LineString([(0, 0), (1, 1), (1,2), (2,2)])
b = LineString([(0, 0), (1, 1), (2,1), (2,2)])
x = a.intersection(b)
print(x)
#GEOMETRYCOLLECTION (LINESTRING (0 0, 1 1), POINT (2 2))

7.1.1 geoms
通过 geoms 属性访问 GeometryCollection 中的成员
list(x.geoms)
#[<LINESTRING (0 0, 1 1)>, <POINT (2 2)>]
7.2 集合中的点:MultiPoint 类
MultiPoint 类用于表示点的集合。
构造函数接受一个点的序列,其中每个点可以是 (x, y[, z]) 形式的元组。
from shapely import MultiPoint
points = MultiPoint([(0.0, 0.0), (1.0, 1.0)])
print(points.area)
# 输出 0.0
print(points.length)
# 输出 0.0
area | 始终为0 |
length | 始终为0 |
bounds | |
geoms | MultiPoint中的点
|
7.3 集合中的线:MultiLineString 类
MultiLineString 类表示线的集合。构造函数接受一系列类似线的序列或对象。
一个 MultiLineString 对象的面积为零,长度为非零

from shapely import MultiLineString
coords = [((0, 0), (1, 1)), ((-1, 0), (1, 0))]
lines = MultiLineString(coords)
lines

area | 始终为0 |
length | |
bounds | |
geoms | MultiLineString中的点
|
7.4 多边形中的点 MultiPolygon
from shapely import Polygon
from shapely import MultiPolygon
polygon1 = Polygon([(0, 0), (1, 1), (1, 0),(0,1)])
polygon2 = Polygon([(0,0),(0,2),(1,1)])multiPolygon=MultiPolygon([polygon1,polygon2])
multiPolygon

area | |
length | |
bounds | |
geoms | ![]() |
相关文章:
python 笔记:shapely(形状篇)
主要是点(point)、线(linestring)、面(surface) 1 基本方法和属性 object.area 返回对象的面积(浮点数) object.bounds 返回一个(minx, miny, maxx, maxy)元…...
开源的JS动画框架库介绍
开源的JS动画框架库介绍 在现代网页设计中,动画已经成为提升用户体验的重要手段。它们不仅能够吸引用户的注意力,还能够帮助用户更好地理解和导航网站。JavaScript 动画框架库提供了一套丰富的动画效果,让开发者能够轻松地实现复杂的…...
MATLAB实现随机森林回归算法
随机森林回归是一种基于集成学习的机器学习算法,它通过组合多个决策树来进行回归任务。随机森林的基本思想是通过构建多个决策树,并将它们的预测结果进行平均或投票来提高模型的准确性和鲁棒性。 以下是随机森林回归的主要特点和步骤: 决策树…...
时间序列预测——BiGRU模型
时间序列预测——BiGRU模型 时间序列预测是指根据历史数据的模式来预测未来时间点的值或趋势的过程。在深度学习领域,循环神经网络(Recurrent Neural Networks, RNNs)是常用于时间序列预测的模型之一。在RNNs的基础上,GRU&#x…...
django中实现数据库操作
在Django中,数据库操作通常通过Django的ORM(Object-Relational Mapping)来实现。ORM允许你使用Python类来表示数据库表,并可以使用Python语法来查询和操作数据库。 以下是在Django中实现数据库操作的基本步骤: 一&am…...
使用 FFmpeg 将视频转换为 GIF 动画的技巧
使用 FFmpeg 将视频转换为 GIF 动画 FFmpeg 可以将视频转换为 GIF 动画,方法如下: 1. 准备工作 确保您已经安装了 FFmpeg。 熟悉 FFmpeg 的命令行使用。 了解 GIF 动画的基本知识。 2. 基本命令 ffmpeg -i input.mp4 output.gif 3. 参数说明 -i in…...
2024春晚纸牌魔术原理----环形链表的约瑟夫问题
一.题目及剖析 https://www.nowcoder.com/practice/41c399fdb6004b31a6cbb047c641ed8a?tabnote 这道题涉及到数学原理,有一般公式,但我们先不用公式,看看如何用链表模拟出这一过程 二.思路引入 思路很简单,就试创建一个单向循环链表,然后模拟报数,删去对应的节点 三.代码引…...
HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核内存管理-静态内存
目录 一、内存管理二、静态内存2.1、静态内存运行机制2.2、静态内存开发流程2.3、静态内存接口2.4、实例2.5、代码分析(待续...)坚持就有收货 一、内存管理 内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要包括…...
什么是vite,如何使用
参考: 主要:由一次业务项目落地 Vite 的经历,我重新理解了 Vite 预构建 vite官方文档 为什么有人说 vite 快,有人却说 vite 慢? 深入理解Vite核心原理 面向未来的前端构建工具-vite 聊一聊 Vite 的预构建和二次预构建 …...
基于大语言模型的AI Agents
代理(Agent)指能自主感知环境并采取行动实现目标的智能体。基于大语言模型(LLM)的 AI Agent 利用 LLM 进行记忆检索、决策推理和行动顺序选择等,把Agent的智能程度提升到了新的高度。LLM驱动的Agent具体是怎么做的呢&a…...
23种设计模式之抽象工厂模式
目录 什么是抽象工厂模式 基本结构 基本实现步骤 实现代码(有注释) 应用场景 简单工厂、工厂方法、抽象工厂的区别 什么是抽象工厂模式 抽象工厂模式也是一种创建型设计模式,提供了一系列相关或相互依赖对象的接口,而无需…...
飞天使-linux操作的一些技巧与知识点9-zabbix6.0 容器之纸飞机告警设置
文章目录 zabbix 告警纸飞机方式webhook 方式 告警设置 zabbix 告警纸飞机方式 第一种方式参考 https://blog.csdn.net/yetugeng/article/details/99682432bash-4.4$ cat telegram.sh #!/bin/bashMSG$1TOKEN"61231432278:AAsdfsdfsdfsdHUxBwPSINc2kfOGhVik" CHAT_I…...
京东组件移动端库的使用 Nut-UI
1.介绍 NutUI NutUI-Vue 组件库,基于 Taro,使用 Vue 技术栈开发小程序应用,开箱即用,帮助研发快速开发用户界面,提升开发效率,改善开发体验。 特性 🚀 80 高质量组件,覆盖移动端主…...
用Python来实现2024年春晚刘谦魔术
简介 这是新春的第一篇,今天早上睡到了自然醒,打开手机刷视频就被刘谦的魔术所吸引,忍不住用编程去模拟一下这个过程。 首先,声明的一点,大年初一不学习,所以这其中涉及的数学原理约瑟夫环大家可以找找其…...
TestNG基础教程
TestNG基础教程 一、常用断言二、执行顺序三、依赖测试四、参数化测试1、通过dataProvider实现2、通过xml配置(这里是直接跑xml) 五、testng.xml常用配置方式1、分组维度控制2、类维度配置3、包维度配置 六、TestNG并发测试1、通过注解来实现2、通过xml来…...
###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 一. 两个主要软件的介绍 1.KeiluVision5软件 Keil uVision5是一款集成开发…...
Android 9.0 任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态问题的解决
1.概述 在9.0的rom定制化开发中,在点击系统自带的播放器以后,播放音乐的时候,在最近任务栏recents列表中,点击全部清除,发现音乐播放器还在播放音乐,导致出现bug,完整的 解决方法,肯定是需要点击全部清除以后,音乐播放器也被杀掉进程,接下来分析下这个移除任务栏流程…...
【笔记】Helm-5 Chart模板指南-13 调是模版
调试模板 调试模板可能很棘手,因为渲染后的模板发送了kubernetes API server,可能会以格式化以外的原因拒绝YAML文件。 以下命令有助于调试: 1、helm lint 是验证chart是否遵循最佳实践的首选工具。 2、helm template --debug在本地测试渲…...
Gateway反向代理配置
前言 一般而言,反向代理都是在Nginx中来实现的,其实Gateway也可以作为反向代理服务,不过一般不会这么做,只不过最近的项目,在通过Nginx反向代理之后,iPhone手机访问接口代理地址会异常,安卓手机…...
HiveSQL——共同使用ip的用户检测问题【自关联问题】
注:参考文章: SQL 之共同使用ip用户检测问题【自关联问题】-HQL面试题48【拼多多面试题】_hive sql 自关联-CSDN博客文章浏览阅读810次。0 问题描述create table log( uid char(10), ip char(15), time timestamp);insert into log valuesinsert into l…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...














