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

Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 14:35
Geoig
Прошу помощи, так как самостоятельные поиски не помогли :(
Необходимо автоматизированно создать точки на GPS-треке с частотой 50 м. Преобразую GPX в SHP, пытаюсь расставить точки(предпоследняя строка), но итог - только крайние точки линии(параметр END, START или BOTH), в таблице атрибутов - та же ерунда. С обычными .SHP - работает безотказно.
Для этого использую скрипт:

import arcpy
import tkFileDialog
filename = tkFileDialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("gpx files","*.gpx"),("all files","*.*")))
points = arcpy.CreateUniqueName("D:\Diplom\Temp\Way_points.shp")
arcpy.GPXtoFeatures_conversion(filename, points)
line = arcpy.CreateUniqueName("D:\Diplom\Temp\Ways.shp")
arcpy.PointsToLine_management(points, line)
arcpy.ImportToolbox("C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcToolbox\Toolboxes\CreatePointsLines.tbx")
points50 = arcpy.CreateUniqueName("D:\Diplom\Temp\points50.shp")
arcpy.CreatePointsLines_CreatePointsLines(line, "INTERVAL BY DISTANCE", "BEGINNING", "NO", "", 50, "END", points50)
print points50

Помогииите!!!
Спасиибо!

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 14:43
trir
почему points arcpy.GPXtoFeatures_conversion(filename, points) если это трек?
Какая СК у shp'ов?

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 14:45
Geoig
points -не тип данных, а название переменной здесь, показывает, что записывать данные в файл, созданный строчкой выше.

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 14:46
trir
points -не тип данных, а название переменной здесь
разве?
arcpy.PointsToLine_management(points, line)

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 14:48
Geoig
точно, это можно менять на любые символы

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 14:50
Geoig
Поменял на другие переменные, чтобы не путать с типами.

import arcpy
import tkFileDialog
filename = tkFileDialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("gpx files","*.gpx"),("all files","*.*")))
tut = arcpy.CreateUniqueName("D:\Diplom\Temp\Way_points.shp")
arcpy.GPXtoFeatures_conversion(filename, tut)
zdes = arcpy.CreateUniqueName("D:\Diplom\Temp\Ways.shp")
arcpy.PointsToLine_management(tut, zdes)
arcpy.ImportToolbox("C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcToolbox\Toolboxes\CreatePointsLines.tbx")
points50 = arcpy.CreateUniqueName("D:\Diplom\Temp\points50.shp")
arcpy.CreatePointsLines_CreatePointsLines(zdes, "INTERVAL BY DISTANCE", "BEGINNING", "NO", "", 50, "END", points50)
print points50

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 14:54
trir
думаю неправильная СК у линии, попробуй явно указать epsg 4326 или перепроицировать в UTM

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 14:58
Geoig
СК - вероятнее всего импортируется из GPX-файла, промежуточные shp - GCS_WGS_1984

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 14:59
Geoig
попробую, возможно так и есть. Не люблю я разности в СК))

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 15:09
Geoig
Огромное спасибо!
В этом и была загвоздка.
То, что я пытался решить несколько дней - решилось за полчаса)

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 15:27
Geoig
Конечный вариант с перепроецированием, если кому пригодится)

import arcpy
import tkFileDialog
filename = tkFileDialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("gpx files","*.gpx"),("all files","*.*")))
tut = arcpy.CreateUniqueName("D:\Diplom\Temp\Way_points.shp")
arcpy.GPXtoFeatures_conversion(filename, tut)
sk = arcpy.SpatialReference('WGS 1984 UTM zone 37N')
tut_new_sk = arcpy.CreateUniqueName("D:\Diplom\Temp\Way_points_sk.shp")
sk_tut = arcpy.Project_management(tut, tut_new_sk, sk)
zdes = arcpy.CreateUniqueName("D:\Diplom\Temp\Ways.shp")
arcpy.PointsToLine_management(sk_tut, zdes)
arcpy.ImportToolbox("C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcToolbox\Toolboxes\CreatePointsLines.tbx")
points50 = arcpy.CreateUniqueName("D:\Diplom\Temp\points50.shp")
arcpy.CreatePointsLines_CreatePointsLines(zdes, "INTERVAL BY DISTANCE", "BEGINNING", "NO", "", 50, "END", points50)
print points50

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 15:29
trir
походу, у тебя расстояние было - 50 градусов

Re: Работа с Create points on lines, GPX.

Добавлено: 21 июн 2017, 15:31
Geoig
Возможно :D :D