如何在Shapely中提取没有数组的几何对象的坐标

时间:2019-06-13 10:54:21

标签: python arrays shapely

如何仅从数组中提取不包含文本“ array”和“ typecode”的值?

数组为shapely.linestring.centroid.xy

a = LineString.centroid.xy
print(a)
>> (array('d', [-1.72937...45182697]), array('d', [2.144161...64685937]))
print(a[0])
>> array('d', [-1.7293720645182697])

我只需要-1.7293...作为浮点数,而不需要整个 array 业务。

2 个答案:

答案 0 :(得分:1)

print(a[0][0])

您正在使用数组内部的数组。

enter image description here

import array
a=(array.array('d',[-2.2,3,2,2]),array('d',[2,3,4]))
print(a[0][0])

答案 1 :(得分:1)

实际上,Point的各个坐标可以通过xy属性来访问。并且由于object.centroid返回了Point,因此您可以轻松做到:

>>> from shapely.geometry import LineString
>>> line = LineString([(0, 0), (2, 1)])
>>> line.centroid.x
1.0
>>> line.centroid.y
0.5

此外,诸如PointLinearRingLineString之类的几何对象具有coords属性,该属性返回特殊的CoordinateSequence对象,您可以从中获取单个对象坐标:

>>> line.coords
<shapely.coords.CoordinateSequence at 0x7f60e1556390>
>>> list(line.coords)
[(0.0, 0.0), (2.0, 1.0)]
>>> line.centroid.coords[0]
(1.0, 0.5)