Всем привет!
Подскажите, пожалуйста.
У объектов в 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 и т.п. таким способом вообще не пройдут.
Методы Arcpy
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 27 янв 2025, 07:27
- Репутация: 0
- Откуда: Красноярск
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 27 янв 2025, 07:27
- Репутация: 0
- Откуда: Красноярск
Re: Методы Arcpy
Решил еще раз поработать напрямую в окне питона.
После точки lin. отображается полный список методов.
Интересно, что в этом списке есть еще и просто length. И вот она возвращает нормальную длину.
Ясно, тут отображаются не только методы, но и свойства. Можно получить центроид, начальную и конечную точки. Уже неплохо. Правда, как работать с методами (contains, intersect и т.п.) пока еще не понятно.
После точки lin. отображается полный список методов.
Интересно, что в этом списке есть еще и просто length. И вот она возвращает нормальную длину.
Ясно, тут отображаются не только методы, но и свойства. Можно получить центроид, начальную и конечную точки. Уже неплохо. Правда, как работать с методами (contains, intersect и т.п.) пока еще не понятно.
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 27 янв 2025, 07:27
- Репутация: 0
- Откуда: Красноярск
Re: Методы Arcpy
Ну, слава Богу, разобрался.
Методы нужно использовать в соответствии с их параметрами (ну, а как же ещё
).
Например, для линии из 0,0 в 0,20:
>>> point = arcpy.Point(0, 16)
>>> lin3.distanceTo(point)
0.0
>>> lin3.contains(point)
True
Всем удачи!
Методы нужно использовать в соответствии с их параметрами (ну, а как же ещё

Например, для линии из 0,0 в 0,20:
>>> point = arcpy.Point(0, 16)
>>> lin3.distanceTo(point)
0.0
>>> lin3.contains(point)
True
Всем удачи!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 27 гостей