Как извлечь координаты геометрического объекта без массива в Shapely - PullRequest
0 голосов
/ 13 июня 2019

Как извлечь только значение из массива без текста «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... как поплавок не весь массив бизнес.

Ответы [ 2 ]

1 голос
/ 18 июня 2019

Фактически, к отдельным координатам Point можно получить доступ через свойства x и y. И поскольку object.centroid возвращает Point, вы можете просто сделать:

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

Кроме того, геометрические объекты, такие как Point, LinearRing и LineString, имеют атрибут 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)
1 голос
/ 13 июня 2019
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])
...