ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
-
Herber
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 17 сен 2020, 11:18
- Репутация: 0
- Откуда: Махачкала
Сообщение
Herber » 18 мар 2021, 15:20
Есть две сущности - Счётчики и Столбы. Их нужно соединить линией.
Для этого я нашел метод
Код: Выделить всё
arcpy.management.PointsToLine(Input_Features, Output_Feature_Class, {Line_Field}, {Sort_Field}, {Close_Line})
Как использовать этот метод? По идее у меня есть координаты x,y одной точки и второй. Непонятно как их соединить
Код: Выделить всё
schetchiki = r'база.gdb\Счетчики'
cursor = arcpy.SearchCursor(schetchiki)
for row in cursor:
js = json.loads(row.getValue('Shape').JSON)
x = js["x"] # тут координата x
y = js["y"] # тут координата y
print(row.getValue('Name'))
-
Herber
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 17 сен 2020, 11:18
- Репутация: 0
- Откуда: Махачкала
Сообщение
Herber » 19 мар 2021, 09:35
Оказывается ошибся. В самом Arcgis нашёл метод XY в линию. Почему то не чертит на выходе ничего
Код: Выделить всё
input_table = r"C:\Users\Admin\table.csv"
out_lines = r"C:\Users\Проект.gdb\Результат"
#XY To Line
arcpy.management.XYToLine(input_table,out_lines,
"LOND1","LATD1","LOND2",
"LATD2","GEODESIC","idnum")
table.csv
Код: Выделить всё
idnum;LOND1;LATD1;LOND2;LATD2
1;47.43388800000008;42.983686000000034;47.43402500000008;42.98425700000007
2;47.43412900000004;42.98377300000004;47.43314600000008;42.981682000000035
3;47.433530000000076;42.983711000000085;47.43436800000006;42.985129000000086
-
Skywalker
- Участник
- Сообщения: 79
- Зарегистрирован: 01 май 2013, 22:38
- Репутация: 30
- Откуда: Сыктывкар
Сообщение
Skywalker » 19 мар 2021, 10:43
Herber, после того, как вы запускаете код на исполнение, вы получаете какое нибудь сообшение от интерпретатора? У вас рабочий код. Единственное, что может смущать Python, это кириллические символы в пути.
Попробуйте в самое начало кода добавить:
-
Herber
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 17 сен 2020, 11:18
- Репутация: 0
- Откуда: Махачкала
Сообщение
Herber » 19 мар 2021, 13:12
Skywalker писал(а): ↑19 мар 2021, 10:43
Herber, после того, как вы запускаете код на исполнение, вы получаете какое нибудь сообшение от интерпретатора? У вас рабочий код. Единственное, что может смущать Python, это кириллические символы в пути.
Ща попробую
1) Сменить путь
2) Вместо ; использовать ,
-
Herber
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 17 сен 2020, 11:18
- Репутация: 0
- Откуда: Махачкала
Сообщение
Herber » 19 мар 2021, 13:53
У меня не создается сущность результат. Вроде все обрабатывает без ошибок
-
Herber
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 17 сен 2020, 11:18
- Репутация: 0
- Откуда: Махачкала
Сообщение
Herber » 19 мар 2021, 14:00
Код: Выделить всё
# -*- coding: utf-8 -*-
import arcpy
import os
import json
arcpy.env.workspace = r"C:\Project.GDB"
from arcpy import env
featureList = []
input_table = r"C:\Users\Admin\table.csv"
out_lines = r"C:\Project.GDB\Результат"
arcpy.management.XYToLine(input_table,out_lines,
"LOND1","LATD1","LOND2",
"LATD2","GEODESIC","idnum")
Когда два раза запускаю - он выдаёт ошибку. Значит код работает и объект Результат создан. Только как его увидеть в Arcgis?
Код: Выделить всё
ERROR 000725: Выходной класс объектов: Набор данных C:\Project.GDB\Результат уже существует.
-
Skywalker
- Участник
- Сообщения: 79
- Зарегистрирован: 01 май 2013, 22:38
- Репутация: 30
- Откуда: Сыктывкар
Сообщение
Skywalker » 19 мар 2021, 15:41
Код: Выделить всё
ERROR 000725: Выходной класс объектов: Набор данных C:\Project.GDB\Результат уже существует.
означает, что у вас все работает.
Посмотрите с помощью ArcCatalog'а содержимое базы C:\Project.GDB или добавьте непосредственно таблицу 'Результат' из базы C:\Project.GDB\ в ArcMap.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 30 гостей