Страница 1 из 1

Как соединить две точки в arcpy?

Добавлено: 18 мар 2021, 15:20
Herber
Есть две сущности - Счётчики и Столбы. Их нужно соединить линией.
Для этого я нашел метод

Код: Выделить всё

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'))

Re: Как соединить две точки в arcpy?

Добавлено: 19 мар 2021, 09:35
Herber
Оказывается ошибся. В самом 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

Re: Как соединить две точки в arcpy?

Добавлено: 19 мар 2021, 10:43
Skywalker
Herber, после того, как вы запускаете код на исполнение, вы получаете какое нибудь сообшение от интерпретатора? У вас рабочий код. Единственное, что может смущать Python, это кириллические символы в пути.
Попробуйте в самое начало кода добавить:

Код: Выделить всё

# -*- coding: utf-8 -*-

Re: Как соединить две точки в arcpy?

Добавлено: 19 мар 2021, 13:12
Herber
Skywalker писал(а):
19 мар 2021, 10:43
Herber, после того, как вы запускаете код на исполнение, вы получаете какое нибудь сообшение от интерпретатора? У вас рабочий код. Единственное, что может смущать Python, это кириллические символы в пути.
Ща попробую
1) Сменить путь
2) Вместо ; использовать ,

Re: Как соединить две точки в arcpy?

Добавлено: 19 мар 2021, 13:53
Herber
У меня не создается сущность результат. Вроде все обрабатывает без ошибок

Re: Как соединить две точки в arcpy?

Добавлено: 19 мар 2021, 14:00
Herber

Код: Выделить всё

# -*- 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\Результат уже существует.

Re: Как соединить две точки в arcpy?

Добавлено: 19 мар 2021, 15:41
Skywalker

Код: Выделить всё

ERROR 000725: Выходной класс объектов: Набор данных C:\Project.GDB\Результат уже существует.
означает, что у вас все работает.
Посмотрите с помощью ArcCatalog'а содержимое базы C:\Project.GDB или добавьте непосредственно таблицу 'Результат' из базы C:\Project.GDB\ в ArcMap.