Подпись | Описание | Тип данных |
Входной точечный слой | Точки, которые будут сопоставлены с линиями. Входным слоем должен быть точечный слой с поддержкой времени, представляющий определенный момент времени, который должен содержать хотя бы одно поле, идентифицирующее уникальные треки. | Feature Layer |
Входной линейный слой | Линии, которым будут сопоставлены точки. Входной слой должен содержать поле со значениями, указывающими узлы От и До линии. | Feature Layer |
Выходной класс пространственных объектов | Класс объектов, который будет содержать сопоставленные точки. | Feature Class |
Поля трека | Одно или несколько полей, используемых для идентификации уникальных треков. | Field |
Расстояние поиска | Максимально допустимое расстояние между точкой и любой линией, рассматриваемой для сопоставления. Рекомендуется использовать значение меньшее и равное 75 метрам. Большее расстояние приведет к увеличению времени обработки и менее точным результатам. | Linear Unit |
Сопоставление полей связности | Поля линейного слоя, которые будут использоваться для определения связности входных линейных объектов.
| Value Table |
Поля линий для включения (Дополнительный) | Одно или несколько полей из входного линейного слоя, которые будут включены в выходной результат. | Field |
Метод расстояний (Дополнительный) | Указывает метод, который будет использоваться для вычисления расстояний между точками и линиями.
| String |
Сопоставление значения направления (Дополнительный) | Поля линейного слоя и значения атрибутов, которые будут использоваться для определения направления входных линейных объектов. Например, в линейном слое есть поле с именем direction со значениями T (назад), F (вперед), B (в обоих) и "" (нет). Если значение не указано, линия рассматривается как двунаправленная.
| Value Table |
Выходной режим (Дополнительный) | Указывает, будут ли возвращены все входные объекты или только те, что сопоставлены с линейным объектом.
| String |
Разбиение по времени (Дополнительный) | Объекты, находящиеся дальше во времени, чем длительность, будут разделены на отдельные треки. | Time Unit |
Расстояние разбиения (Дополнительный) | Объекты, находящиеся дальше по расстоянию, чем длительность, будут разделены на отдельные треки. | Linear Unit |
Установка временного шага (Дополнительный) |
Временной промежуток, на который делятся входные данные для анализа. Временные границы позволяют анализировать значения в пределах заданного отрезка времени. Например, если вы выбрали границу в 1 день, и задали дату начала 1 января 1980, треки будут разделяться в начале каждого дня. | Time Unit |
Реперная точка временных шагов (Дополнительный) |
Базовое время, используемое для деления входных данных для анализа. Временные границы будут созданы для всего диапазона времени, а время начала отсчета не обязательно должно быть в самом начале. Если базовое время не задано, используется 1 января 1970. | Date |
Краткая информация
Замыкает входные точки трека на линии. Точечные данные с поддержкой времени должны включать объекты, представляющие момент времени. Для анализа необходимы проходимые линии с полями, указывающими узлы От и До.
Иллюстрация
Использование
В следующей таблице приведена терминология, используемая в инструменте Замкнуть треки:
Термин Описание Трек
Последовательность пространственных объектов с поддержкой времени с мгновенным типом времени. Пространственные объекты определяются как последовательность при помощи поля идентификатора трека и упорядочены во времени. Например, у городской коммунальной службы может быть парк снегоуборочной техники, в котором записывается местоположение каждой машины каждые 30 секунд. ID транспортного средства может представлять собой отдельные треки.
Наблюдение
Точка в треке.
Узел
Узлы - это конечные вершины линейных объектов, используемые для указания направления линии. Начало линии – это узел От, а конец – узел До.
Направление
Направление линии. Направление указывает, как можно пройти линию между узлами От и До.
Связность
Связность описывает, как соединены линии, чтобы представлять проходимую сеть. Линии соединяются на основании их значений в узлах От и До. Линии, которые точка не может достигнуть на основании связности, не будут рассматриваться, как совпадающие.
Проходимо
Линии являются проходимыми, если они соединены по общим узлам. Например, если узел От линии А совпадает с узлом До линии В, они проходимы.
Для инструмента необходимы следующие входные слои параметров:
- Входной точечный слой — должен быть наблюдениями, поддерживающими время, которые представляют мгновение во времени. Наблюдения трека, не содержащие корректные временные метки, будут исключены из анализа.
- Входной линейный слой — должен содержать поля со следующей информацией о связности, и он должен быть указан в параметре Сопоставление полей связности:
- Unique ID- Уникальный идентификатор линии.
- From nodeУзел, из которого начинается перемещение по линии
- To node- Узел, в который приводит перемещение по линии
Пространственная привязка значений параметров Входной точечный слой и Входной линейный слой должна совпадать. Если пространственная привязка наборов данных не совпадает, используйте параметр среды Выходная система координат, чтобы указать пространственную привязку для применения в анализе, или спроецируйте наборы данных до выполнения анализа.
Вы можете указать одно или более полей для идентификации треков. Треки представлены с помощью уникальной комбинации одного или нескольких полей трека. Например, если поля flightID и Destination используются в качестве идентификаторов трека, объекты ID007, Solden и ID007, Tokyo попадут в два отдельных трека, поскольку содержат разные значения в поле Destination.
Трек должен содержать более одного наблюдения, чтобы использовать в анализе. Треки с единственным наблюдением не будут сопоставлены.
Сопоставление точки к линии выполняется при соблюдении следующих условий:
- Наблюдение находится в пределах расстояния поиска от линии. Это минимальное требование. Наблюдения не будут сопоставлены, если они не удовлетворяют условию расстояния поиска.
- Наблюдение может проходить линии на основании их связности.
- Наблюдения перемещаются в направлении, поддерживаемом линией. Это дополнительное условие, которое может быть установлено, если указать значения для параметра Сопоставление значения направления. Результаты, удовлетворяющие дополнительному условию, будут более точными.
Используйте параметр Расстояние поиска, чтобы указать максимально допустимое расстояние между наблюдением и линией. Например, если вы знаете, что точность точек GPS составляет приблизительно 100 метров, укажите расстояние поиска в 100 метров.
Параметр Метод расстояния определяет, как будут вычисляться расстояния поиска. Доступно два метода расстояния:
- Геодезический — если в пространственной привязке включен переход через линию перемены дат, треки могут пересекать эту линию, когда необходимо. В противном случае треки будут ограничены экстентом системы координат и могут обрываться. Это значение по умолчанию
- Планарный — треки не будут пересекать линию перемены дат (антимеридиан). Применяйте эту опцию, если входные данные используют система координат проекции
Чтобы включить дополнительные атрибуты линии в выходные результаты, укажите имена полей при помощи параметра Поля линий для включения. Эти поля не будут использоваться в аналитических целях и включаются для вашего использования. Вы не можете включить поля геометрии выходной результат.
Используйте параметр Сопоставление значения направления, чтобы задать поддерживаемые направления для каждого линейного объекта. Например, в линейном слое есть поле с именем direction со значениями T (назад), F (вперед), B (в обоих) и "" (нет). Сопоставление направления не является обязательным, но рекомендуется для получения точных результатов. Если сопоставление направления не указано, линия рассматривается как двунаправленная.
Инструмент возвращает точки, замкнутые на ближайшее местоположение вдоль линии, с которой они сопоставлены. Линейные объекты не возвращаются. Уникальный идентификатор набора данных линий будет доступен для сопоставленных результатов. Поле уникального идентификатора указывается при помощи параметра Сопоставление полей связности. Вы можете определить сопоставленные линии, обратившись к этому полю.
Разбивать треки можно следующими способами:
- Разбиение по времени - основано на времени между входными данными. Применение времени разбиения приводит к разделению любого трека, если входные данные выходят за указанное время. Например, если у вас есть пять объектов с одним и тем же идентификатором трека и временами [01:00, 02:00, 03:30, 06:00, 06:30], и вы установите время разбиения равным 2 часам, любые объекты длительностью более двух часов друг от друга будут разделены. В данном примере, результатом будет трек с [01:00, 02:00, 03:30] и трек с [06:00, 06:30], поскольку разница между 03:30 и 6:00 больше, чем два часа.
- Разделение по временной границе - основано на заданных интервалах. Применение временного интервала разделяет треки на заданные интервалы. Например, если вы выбрали в границу в 1 день, начиная с 9:00 1 января , 1990 каждый трек будет обрезан в 9:00 утра AM каждого дня. Такое разбиение позволяет ускорить обработку, так как небольшие треки для анализа создаются быстрее. Если разбиение на повторяющиеся интервалы может влиять на результаты анализа и рекомендуется для обработки больших данных.
- Разбиение по расстоянию - основано на расстоянии между входными данными. Применение расстояния разбиения приводит к разделению любого трека, если входные данные выходят за указанное расстояние. Например, если вы установили разбивку по расстоянию, равному 5 километрам, каждая последовательность пространственных объектов, превышающая 5 километров, будет выделена в отдельный трек.
- Выражение разбиения - основывается на выражении Arcade. Применение выражения разбиения позволяет разбить треки на основе значений, геометрии или времени. Например, вы можете разбивать треки в случаях, когда значение поля более чем вдвое превышает предыдущее значение трека. Для этого, используя пример поля с именем WindSpeed, вы можете использовать следующее выражение: var speed = TrackFieldWindow("WindSpeed", -1, 1); 2* speed[0] < speed[1]. Треки будут разбиваться, если предыдущее значение (speed[0]) составляет меньше половины текущего.
В дополнение к полям из значения параметра Входной точечный слой и к любым полям, указанным в параметре Поля линий для включения, в выходные данные будут включены следующие поля:
Имя поля Описание MatchStatus
Указывает, сопоставлено ли наблюдение линии. Значение M указывает, что объекты сопоставлены, а U - что нет.
OrigX
X-координата входного наблюдения. Координаты хранятся в единицах выходной пространственной привязки.
OrigY
Y-координата входного наблюдения Координаты хранятся в единицах выходной пространственной привязки.
MatchX
X-координата сопоставленного результата на линии. Координаты хранятся в единицах выходной пространственной привязки.
MatchY
Y-координата сопоставленного результата на линии. Координаты хранятся в единицах выходной пространственной привязки.
MatchDist
Расстояние между исходным и сопоставленным местоположениями наблюдения. Расстояние вычисляется на основании указанного метода расстояния (геодезического или плоскостного). Значения записываются в метрах.
DATE
Метка времени наблюдения.
Если значение параметра Выходной режим задано как Все объекты, будут возвращены и сопоставленные, и не сопоставленные точки. Для несопоставленных точек выходные результирующие поля буду присоединены со значениями null для числовых полей и с пустыми строками для текстовых полей. Поля, которые будут присоединены со значениями null, это поля линий, указанные при помощи параметра Поля линий для включения, поля MatchX, MatchY и MatchDist.
Аналогичный анализ можно выполнить следующим образом:
- Восстановите точки трека с поддержкой времени в линии при помощи инструмента Заново создать треки.
- Замкните точки, мультиточки, линии или полигоны на другие объекты при помощи инструмента Замкнуть. Этот инструмент изменяет входные значения.
Этот инструмент геообработки работает от Spark. Анализ выполняется на настольном компьютере с использованием нескольких ядер параллельно. См. Информация по инструментами GeoAnalytics Desktop, чтобы узнать больше о выполнении анализа.
При запуске инструментов GeoAnalytics Desktop анализ выполняется на настольном компьютере. Для оптимальной производительности данные должны быть доступны на настольном компьютере. Если используется размещенный векторный слой, рекомендуется применить ArcGIS GeoAnalytics Server. Если данные находятся не на жестком диске, для запуска инструмента потребуется больше времени. Чтобы использовать ArcGIS GeoAnalytics Server для выполнения анализа, см. GeoAnalytics Tools.
Примечание:
Лицензированные StreetMap Premium векторные слои баз геоданных не поддерживаются в качестве входных данных для ArcGIS Pro 3.0.
Параметры
arcpy.geoanalytics.SnapTracks(input_points, input_lines, out_feature_class, track_fields, search_distance, connectivity_field_matching, {line_fields_to_include}, {distance_method}, {direction_value_matching}, {output_mode}, {time_split}, {distance_split}, {time_boundary_split}, {time_boundary_reference})
Имя | Описание | Тип данных |
input_points | Точки, которые будут сопоставлены с линиями. Входным слоем должен быть точечный слой с поддержкой времени, представляющий определенный момент времени, который должен содержать хотя бы одно поле, идентифицирующее уникальные треки. | Feature Layer |
input_lines | Линии, которым будут сопоставлены точки. Входной слой должен содержать поле со значениями, указывающими узлы От и До линии. | Feature Layer |
out_feature_class | Класс объектов, который будет содержать сопоставленные точки. | Feature Class |
track_fields [track_fields,...] | Одно или несколько полей, используемых для идентификации уникальных треков. | Field |
search_distance | Максимально допустимое расстояние между точкой и любой линией, рассматриваемой для сопоставления. Рекомендуется использовать значение меньшее и равное 75 метрам. Большее расстояние приведет к увеличению времени обработки и менее точным результатам. | Linear Unit |
connectivity_field_matching [connectivity_field_matching,...] | Поля линейного слоя, которые будут использоваться для определения связности входных линейных объектов.
| Value Table |
line_fields_to_include [line_fields_to_include,...] (Дополнительный) | Одно или несколько полей из входного линейного слоя, которые будут включены в выходной результат. | Field |
distance_method (Дополнительный) | Указывает метод, который будет использоваться для вычисления расстояний между точками и линиями.
| String |
direction_value_matching [direction_value_matching,...] (Дополнительный) | Поля линейного слоя и значения атрибутов, которые будут использоваться для определения направления входных линейных объектов. Например, в линейном слое есть поле с именем direction со значениями T (назад), F (вперед), B (в обоих) и "" (нет). Если значение не указано, линия рассматривается как двунаправленная.
| Value Table |
output_mode (Дополнительный) | Указывает, будут ли возвращены все входные объекты или только те, что сопоставлены с линейным объектом.
| String |
time_split (Дополнительный) | Объекты, находящиеся дальше во времени, чем длительность, будут разделены на отдельные треки. | Time Unit |
distance_split (Дополнительный) | Объекты, находящиеся дальше по расстоянию, чем длительность, будут разделены на отдельные треки. | Linear Unit |
time_boundary_split (Дополнительный) |
Временной промежуток, на который делятся входные данные для анализа. Временные границы позволяют анализировать значения в пределах заданного отрезка времени. Например, если вы выбрали границу в 1 день, и задали дату начала 1 января 1980, треки будут разделяться в начале каждого дня. | Time Unit |
time_boundary_reference (Дополнительный) |
Базовое время, используемое для деления входных данных для анализа. Временные границы будут созданы для всего диапазона времени, а время начала отсчета не обязательно должно быть в самом начале. Если базовое время не задано, используется 1 января 1970. | Date |
Пример кода
В следующем автономном скрипте показано использование функции SnapTracks.
# Name: SnapTracks.py
# Description: Snap snowplow fleet tracks to roads to uncover areas that
# may need more resources for snow removal efforts
# Import system modules
import arcpy
# Enable time on the input features using an .lyrx file.
# To create the .lyrx file, add your layer to a map, open the layer properties
# and enable time. Then right-click the layer and select Share As Layer File.
inputLyrx = r'C:\data\Snowplow.lyrx'
# MakeFeatureLayer converts the .lyrx to features
snowplowsLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Snowplows Layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(snowplowsLayer, inputLyrx)
# Set local variables
lineLayer = "c:/mydata/Roads.gdb/CityStreets"
trackIdentifier = "vehicle_id"
out = "c:/mydata/OutputDatasets.gdb/Snowplows_snapped_to_streets"
searchDistance = "10 Meters"
connectivityFieldMatching = "unique_ID from_node to_node"
directionValueMatching = "dir_travel F T B #"
# Run Snap Tracks
arcpy.gapro.SnapTracks(snowplowsLayer, lineLayer, out, trackIdentifier,
searchDistance, connectivityFieldMatching, None,
"GEODESIC", directionValueMatching, "MATCHED_FEATURES")