Методы Arcpy

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Serp25
Новоприбывший
Сообщения: 3
Зарегистрирован: 27 янв 2025, 07:27
Репутация: 0
Откуда: Красноярск

Методы Arcpy

Сообщение Serp25 »

Всем привет!
Подскажите, пожалуйста.
У объектов в Arcpy есть масса методов, но непонятно, как их применять.
Например, получить азимут или длину линии. Так, чтоб, как в детстве, Line.GetLength и т.д.
Формально, у полилинии есть метод getLength, но, как его не подставляй, все равно получается не то:

lin = arcpy.Polyline(arcpy.Array([arcpy.Point(*coords) for coords in feature]))
l = lin.getLength
>>> print lin
<geoprocessing describe geometry object object at 0x2A127560>

Я могу, конечно, получить длину через SearchCursor, но это такая тягомотина, и вообще, не все методы можно так использовать.

fields = ["SHAPE@XY", "SHAPE@LENGTH"]
with arcpy.da.SearchCursor(rzfc, fields) as cursor:
for row in cursor:
print(u'{0}, {1}'.format(row[0], row[1]))

Например, contains, intersect и т.п. таким способом вообще не пройдут.
Serp25
Новоприбывший
Сообщения: 3
Зарегистрирован: 27 янв 2025, 07:27
Репутация: 0
Откуда: Красноярск

Re: Методы Arcpy

Сообщение Serp25 »

Решил еще раз поработать напрямую в окне питона.
После точки lin. отображается полный список методов.
Интересно, что в этом списке есть еще и просто length. И вот она возвращает нормальную длину.
Ясно, тут отображаются не только методы, но и свойства. Можно получить центроид, начальную и конечную точки. Уже неплохо. Правда, как работать с методами (contains, intersect и т.п.) пока еще не понятно.
Serp25
Новоприбывший
Сообщения: 3
Зарегистрирован: 27 янв 2025, 07:27
Репутация: 0
Откуда: Красноярск

Re: Методы Arcpy

Сообщение Serp25 »

Ну, слава Богу, разобрался.
Методы нужно использовать в соответствии с их параметрами (ну, а как же ещё :-)).
Например, для линии из 0,0 в 0,20:

>>> point = arcpy.Point(0, 16)
>>> lin3.distanceTo(point)
0.0
>>> lin3.contains(point)
True

Всем удачи!
Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя