python地理处理包——hapely介绍及用户手册whgiser

shapely主要是在笛卡尔平面对几何对象进行操作和分析,它是一个BSD授权的Python包。Shapely不关心数据格式或坐标系,但可以很容易地与这些文件包集成。

下面是一个典型的例子,通过点缓冲来构建一个缓冲圆。

Shapely实现的几何对象的基本类型是点、曲线和曲面。每一个都与平面上的三组(可能是无限的)点相关联。要素的内部集、边界集和外部集是互斥的,它们的并集与整个平面重合,其数据模型如下:

1、点有一个正好由一个点组成的内部集,一个完全没有点的边界集,以及一个所有其他点的外部集。点的拓扑维数为0;

2、曲线有一个由沿其长度无限多个点组成的内部集(想象一个在空间中拖动的点),一个由其两个端点组成的边界集,以及一个由所有其他点组成的外部集。曲线的拓扑维数为1;

3、曲面有一个内部集,它由内部无限多个点组成(想象一条曲线在空间中拖动以覆盖一个区域),一个边界集由一条或多条曲线组成,以及所有其他点的外部集,包括可能存在于曲面中的孔内的点。曲面的拓扑维数为2;

点类型由point类实现;curve由LineString和LinearRing类实现;surface由Polygon类实现。Shapely实现不平滑(即具有连续切线)曲线。所有曲线必须用线性样条曲线近似。所有的圆形面片必须由线性样条线包围的区域来近似。

点集合由MultiPoint类实现,曲线集合由MultiLineString类实现,曲面集合由MultiPolygon类实现。这些集合在计算上并不重要,但对某些类型的特征建模非常有用。例如,Y形线要素可以很好地通过多线串作为一个整体进行建模。

空间数据模型伴随着一组几何对象之间的自然语言关系(包含、相交、重叠、接触等),以及一个使用其组成点集3的相互交集的3x3矩阵来理解它们的理论框架:DE-9IM。这是一种拓扑模型,用于描述两个几何图形空间关系的一种标准,学过地理课程的一般都了解

根据JTS技术规范,本手册将区分构造(缓冲区、凸壳)和集合论操作(交集、并集等)。

Shapely不支持坐标系转换。对两个或多个特征的所有操作都假定这些特征存在于同一个笛卡尔平面上。

几何对象是以典型的Python方式创建的,使用类本身作为实例工厂。

Point、LineString和LinearRing的实例最重要的属性是确定其内部、边界和外部点集的有限坐标序列。一个线串可以由2个点确定,但包含无限多个点。坐标序列是不变的。构造实例时可以使用第三个z坐标值,但对几何分析没有影响。所有操作都在x-y平面上进行。

在所有构造函数中,数值被转换为float类型。换句话说,点(0,0)和点(0.0,0.0)生成几何等效的实例。在构造实例时,Shapely不会检查拓扑的简单性或有效性。

返回对象面积(float)

返回对象边界(minx, miny, maxx, maxy) 的元组(float)

返回对象长度(float)

返回可以移动节点以生成无效几何体的最小距离。

返回对象的几何类型

返回到另一个几何对象的最小距离

返回到另一个几何对象的Hausdorff距离(float)。两个几何体之间的Hausdorff距离是任意一个几何体上的一个点与另一个几何体上的最近点之间的最远距离

class Point(coordinates)

点构造函数采用位置坐标值或点元组参数。

1、点的面积和长度属性为0

2、点的边界是均为0的元组

3、点的坐标值可以使用coords, x, y, 和z 获取

4、坐标可以被切片(1.2.14版本新特性)

5、Point构造函数还接受另一个Point实例,从而生成一个副本

LineString构造函数采用2个或更多(x,y[,z])点元组的有序序列

构造的LineString对象表示点之间的一个或多个连接的线性样条曲线。允许按顺序重复点,但可能会导致性能损失,应避免。线串可以交叉(即复杂而不简单)

图1 左边是一个简单的LineString,右边是一个复杂的LineString。每个点的(MultiPoint)边界显示为黑色,描述这些线的其他点显示为灰色

1、LineString的面积为0,长度不为0

2、LineString的边界是 (minx, miny, maxx, maxy) 的元组

3、LineString的坐标值可以使用coords获取

4、坐标可以被切片(1.2.14版本新特性)

5、LineString构造函数还接受另一个LineString实例,从而生成一个副本

6、也可以使用一系列混合点实例或坐标元组来构造LineString。各个坐标将复制到新对象中

LinearRing构造函数采用(x,y[,z])点元组的有序序列

通过在第一个和最后一个索引中传递相同的值,可以显式地闭合序列。否则,将通过将第一个元组复制到最后一个索引来隐式闭合序列。与LineString一样,允许有序序列中的重复点,但可能会导致性能损失,因此应该避免。线迹不能交叉,也不能单点接触

图2 左边是有效的LinearRing,右边是无效的自相交LinearRing。描述环的点以灰色显示。环的边界是空的

1、LinearRing的面积为0,长度不为0

2、LinearRing的边界是 (minx, miny, maxx, maxy) 的元组

3、LinearRing的坐标值可以使用coords获取

4、坐标可以被切片(1.2.14版本新特性)

5、LinearRing构造函数还接受另一个LinearRing实例,从而生成一个副本

Polygon构造函数接受两个位置参数。第一个是(x,y[,z])点元组的有序序列,其处理方式与LinearRing完全相同。第二个是一个可选的无序的环状序列,指定了特征的内部边界或“洞”

有效多边形的环不能相互交叉,且只能接触一个点。同样,Shapely不会阻止无效特性的创建,但是在操作它们时会引发异常

a)有效,其中一个内环在一个点上与外环接触;b)无效,因为它的内环在多个点上与外环接触;c)无效,因为它的外环和内环沿一条线接触;d)无效,因为它的内环沿着一条线接触

1、Polygon的面积和长度不为0

2、Polygon的边界是(minx, miny, maxx, maxy)数组

3、Polygon的构成环通过exterior 和 interiors 属性获取

4、Polygon的构造接受LineString 和LinearRing实例

返回给定多边形的正确定向副本。返回结果有符号区域将具有给定的符号。符号1.0表示其外环的坐标方向将为逆时针方向

a)一条绿色和黄色的线,沿着一条线以及一个点相交;b)交点(蓝色)是一个包含一个LineString 和一个Point的集合

1、GeometryCollection的成员可以通过geoms属性或迭代器协议in或list()进行访问

2、集合也可以切片(1.2.14新版本特性)

注意:如果可能的话,最好使用下面描述的同类集合类型之一。

MultiPoint 构造函数接受一系列(x,y[,z])点元组

1、MultiPoint 面积和长度为0

2、其 x-y 边界范围是(minx, miny, maxx, maxy) 元组

3、GeometryCollection的成员可以通过geoms属性或迭代器协议in或list()进行访问

4、构造函数还接受另一个MultiPoint 实例或无序的点实例序列,从而生成副本

MultiLineString构造函数接受一系列类似于直线的序列或对象

a)不连接的MultiLineString;b)复杂的 MultiLineString

1、MultiLineString 的面积和长度为0

2、其 x-y 边界范围是(minx, miny, maxx, maxy) 元组

3、它的成员是LineString的实例,可以通过geoms属性或迭代器协议in或list()进行访问

4、构造函数还接受多行字符串的另一个实例或无序的LineString实例序列,从而生成副本

MultiPolygon构造函数采用一系列外部环和孔列表元组:[((a1,…,aM),[(b1,…,bN),…]),…]

a)有效的有两个成员的MultiPolygon;b)无效MultiPolygon,因为它的成员接触到无限多个点(沿着一条线)

1、其 x-y 边界范围是(minx, miny, maxx, maxy) 元组

2、它的成员是Polygon的实例,可以通过geoms属性或迭代器协议in或list()进行访问

2、可以设置空要素的坐标,之后几何图形不再为空

2、坐标序列可以被索引、切片和迭代,就像它们是一个坐标元组的列表一样。

3、多边形的外部和每个内环都有一个坐标序列

4、多部分几何图形没有坐标序列。其坐标序列存储在组成的几何图形上

返回沿此几何对象到另一个对象最近的点的距离。

如果normalized  参数为True,则返回对象长度的标准化距离,project()方法是interpolate()的逆方法。

例如,可以使用线性参照方法在指定距离处剪切直线

如果特征不仅具有的x和y坐标,还具有三维(或所谓的2.5D)几何图形的z坐标,则返回True

如果坐标按逆时针顺序(以正向符号包围区域)返回True。此方法仅适用于线性化对象

环可以通过以下方式实现反转:

如果要素的内部和边界(在点集术语中)与空集重合,则返回True

如果要素是闭合的简单LineString,则返回True。一个封闭要素的边界与空集合重合。

此属性适用于LineString和LinearRing实例,但对其他实例没有意义

如果要素不自相交,则返回True (只对LineStrings 和LinearRings有意义)

如果要素是“有效的”,则返回True

一个有效的LinearRing 不能在一个点上与自己交叉或相接。一个有效的Polygon 不能有任何重叠的外环或内环。有效的MultiPolygon 不能集合任何重叠的多边形。对无效要素的操作可能会失败

上面的两个点非常接近,缓冲区操作产生的多边形(在下一节中解释)会重叠

注意:is_valid谓词可用于编写验证装饰器,该装饰器可确保从构造函数函数只返回有效对象

THE END
0.数字人身同一认定的技术力量与规制数字人身同一认定的创新之处在于,极大丰富了三个特别构造要素:第一,以人与机器的有机结合为认识“主体”;第二,以特征反映体及其衍生数据为认识“依据”;第三,以算法比较法为主要的认识“方法”。进而区别于传统人身同一认定。 因此,以生物识别数据为中心而展开的数字人身同一认定,可解读为以人与机器有机结合的“合伙人”为主体,以“ jvzq<84yyy4mgpfnfcom{7hqo0io1rsfgz5dqwygpv532;9/265298hqpvkovh=;:79447mvon
1.东莞谢岗城管:凝心聚力提升城市品质聚力构造优质发展要素 在城市管理工作的重点领域,谢岗城管下大力气开展专项治理工作,凝心聚力,在空间规划、环境治理、配套服务等领域持续开展专项行动,不断构造优质的发展要素。 据介绍,谢岗城管在工作中厚植生态本色,今年以创园为契机,着力打造“绿美谢岗”新样板,完成稔子园村文化公园、康乐口袋公园2个口袋公园建设。jvzquC41pg}t0‚hyd0ipo872453228791euovnsva783:B5740nuo
2.关于要素模板—帮助|ArcGISforDesktop每次在地图上创建要素时,一开始都要用到“创建要素”窗口。可通过单击“编辑器”工具条上的“创建要素”按钮打开该窗口。在“创建要素”窗口中选择某要素模板后,将基于该要素模板的属性建立编辑环境;此操作包括设置要存储新要素的目标图层、激活要素构造工具并做好为所创建要素指定默认属性的准备。为减少混乱,图层不可jvzquC41fgylvxu0ctihk|3eqo5{j6hp1cxdoju132441vfpcik.fjyc1exfc}npi/tfy6kgcv{sg|
3.构造大地测量要素—ArcGISPro|文档构造大地测量要素工具可创建空间精度较高且符合大地测量学准则的增密线和面要素。 您可以创建测地线、等角航线、大椭圆路径、大地测量圆和大地测量椭圆。 此工具位于修改要素窗格中。 大地测量要素考虑到了由于将遵循地球曲率的曲线投影到平面投影空间(例如两个城市之间的飞行路径)而导致的固有变形。 jvzquC41rtu/c{hiku4dqv4|j/io1ywq/cvq1;3;1jkmr8jfkvooi8hqpuzswly/igueg}ne/hkbv~wgu0nuo
4.7.2.Shapely中几何要素的操作—Python与开源GIS多边形构造需要2个位置参数。第一个位置参数是(x,y[,z])点元组的有序序列,并且在LinearRing中被认为是准确的。第二个位置参数是一个可选的、像ring的,无序序列,且位于要素内部,指定边界或洞的环状序列。 一个有效的多边形的环不能相互交叉, 但可以在一个单点接触。 同样,Shapely不会阻止无效要素的创建, 但是当他们运行时,可 jvzquC41yy}/q|lgq0io1y~iku5tjjugn{3hgxrgvt/j}rn
5.QSlider样式表的详细设置及含义本文详细介绍QSlider的样式定制方法,包括其三个组成部分:滑动过的槽、未滑动过的槽及滑块的设计参数。通过具体实例展示如何实现类似QQ音乐播放器的滑条样式。 QSlider的样式表的各项设置含义 qslider的构成(三部分) qslider每部分构造要素 仿照QQ音乐播放器的滑条样式表 jvzquC41dnuh0lxfp0tfv8ugpixvpnp1cxuklqg1fkucrqu13826<683;