Подпись | Описание | Тип данных |
Входной слой | Точки и полигоны, которые будут перестроены в треки. Входным слоем должен быть слой с включенным временем, отображающий определенный момент времени. | Feature Layer |
Выходной класс пространственных объектов | Новый класс пространственных объектов с результирующими треками. | Feature Class |
Поля трека | Одно или несколько полей, которые будут использованы для идентификации уникальных треков. | Field |
Метод | Определяет критерии, которые будут использоваться для перестроения треков. Если используется буфер, параметр Метод определяет его тип.
| String |
Тип буфера | Определяет, как задается буферное расстояние.
| String |
Поле буфера (Дополнительный) | Поле, используемое для буферизации входных объектов. Значения полей применяются в единицах измерения пространственной привязки входных данных, но если используется географическая система координат – единицами измерения будут метры. | Field |
Выражение буфера (Дополнительный) | Выражение, используемое для буферизации входных объектов. Поля должны быть числовыми, и в выражение могут включаться операторы [+ - * / ] и несколько полей. Вычисленные значения применяются в единицах измерения пространственной привязки входных данных, но если используется географическая система координат – единицами измерения будут метры. Используйте выражения Arcade, например as_kilometers($feature.distance) * 2 + as_meters(15). Если слой добавлен на карту, фильтры Поля и Помощник могут использоваться для построения выражения. | Calculator Expression |
Разбиение по времени (Дополнительный) | Объекты, отстоящие во времени дальше, чем продолжительность разбиения, будут разделены на отдельные треки. | Time Unit |
Расстояние разбиения (Дополнительный) | Объекты, отстоящие по расстоянию дальше, чем значение расстояния разбиения, будут разделены на отдельные треки. | Linear Unit |
Разбиение временных границ (Дополнительный) |
Временной промежуток, на который делятся входные данные для анализа. Временные границы позволяют анализировать значения в пределах заданного отрезка времени. Например, если вы выбрали границу в 1 день, и задали дату начала 1 января 1980, треки будут разделяться в начале каждого дня. | Time Unit |
Начало отсчета временных границ (Дополнительный) |
Базовое время, используемое для деления входных данных для анализа. Временные границы будут созданы для всего диапазона времени, а время начала отсчета не обязательно должно быть в самом начале. Если базовое время не задано, используется 1 января 1970. | Date |
Поля суммирования (Дополнительный) | Статистика, которая будет рассчитываться по определенным полям.
| Value Table |
Выражение разбиения (Дополнительный) | Выражение, которое разбивают треки на основе значений, геометрии или значений времени. Выражения, подтверждающие значение true, будут разбиты. | Calculator Expression |
Тип разбиения (Дополнительный) | Определяет, как сегмент трека между двумя объектами создается при разделении трека. Тип разбиения применяется к выражениям разбиения и разбиению по времени или по расстоянию.
| String |
Краткая информация
Создает линейные или полигональные треки из входных данных с включенным временем.
Иллюстрация
Использование
Инструмент Заново создать треки работает с точечными и полигональными объектами. Входным слоем должен быть слой с включённым временем, с объектами, представляющими определённый момент времени.
Вы можете указать одно или более полей для идентификации треков. Треки представлены с помощью уникальной комбинации одного или нескольких полей трека. Например, если поля flightID и Destination используются в качестве идентификаторов трека, объекты ID007, Solden и ID007, Tokyo попадут в два отдельных трека, поскольку они имеют отличающиеся значения в поле Destination.
Объекты с буфером позволят создать полигональные треки. Входные точечные объекты без буфера создают полилинейные треки.
Входные объекты будут содержать объекты с включенным временем, которые представляют определенный момент времени. Результатами будут линейные или площадные объекты, представляющие временной интервал. Начало и конец интервала определяются временем на первом и последнем объектах трека.
Для линейных результатов будут возвращены только треки, содержащие более одной точки. Если вы применяете буфер, будут возвращены все объекты.
У вас есть возможность дополнительно применить буфер ко входным объектам. Если вы применяете буфер, итоговые треки будут полигональными объектами.
Если буфер применяется к нескольким входным объектам, буфер строится для каждого объекта. Затем для создания полигонального трека создается выпуклая оболочка.
Поля, использующиеся для построения буфера, должны быть числовыми и используются с учетом единиц измерения входной пространственной привязки. Для дополнительной информации см. Выражения Arcade в наборе инструментов GeoAnalytics Desktop. Вы можете использовать уравнения с включенным трекингом.
По умолчанию вычисляется только число точек или полигонов в треке. Дополнительную статистику можно вычислить, задав значение параметру Поля суммирования.
По умолчанию треки создаются с использованием геодезического метода. Этот метод применяется к следующим двум компонентам анализа:
- Треки, пересекающие международную линию перемены даты – при использовании геодезического метода входные слои, пересекающие международную линию перемены даты, будут иметь треки, надлежащим образом пересекающие эту линию. Используется по умолчанию. Ваш входной слой или пространственная привязка обработки должны быть настроены на пространственную привязку, поддерживающую переход через международную линию перемены даты, например, глобальную проекционную привязку типа World Cylindrical Equal Area.
- Буферы – у вас есть возможность дополнительно применить буфер ко входным объектам. Более подробно о случаях применения геодезического или плоскостного буфера см. в разделе Создание буферов.
Вы можете разбивать треки следующими способами:
- Разбиение по времени — На основе времени между входными данными. Применение разбиения по времени разделяет трек на части, когда входные данные разнесены на большее время, чем заданное. Например, если у вас было пять объектов с одним и тем же идентификатором трека и временем [01:00, 02:00, 03:30, 06:00, 06:30] и вы установили для времени разбиения 2 часа, любые объекты, измерение которых разделяет более 2 часов, будут разбиты. В этом примере результатом будет трек с [01:00, 02:00, 03:30] и [06:00, 06:30], потому что разница между 03:30 и 6:00 больше 2 часов.
- Разбиение временных границ — На основе заданных временных интервалов. Применение разбиения временных границ разделяет треки на заданные интервалы. Например, если вы выбрали временную границу в 1 день, начиная с 9:00 1 января 1990 г. каждый трек будет обрезан в 9:00 утра каждого дня. Такое разбиение ускоряет обработку, т.к. анализа создаются меньшие треки. Если разбиение на повторяющиеся интервалы подходит для вашего анализа, оно рекомендуется для обработки больших данных.
- Разбиение по расстоянию — На основе расстояния между входными данными. Применение разбиения по расстоянию приведет к разделению трека на части, если входные данные разделены расстоянием больше указанного.* Например, если вы установили разбиение по расстоянию 5 километров, каждая последовательность пространственных объектов, превышающая 5 километров, будет выделена в отдельный трек.
- Выражение разбиения — На основе выражения Arcade. Применение выражения разбиения разделяет треки на основе значений, геометрии или значений времени. Например, вы можете разделить треки, если значение поля более чем в два раза превышает предыдущее значение в треке. Для этого, используя пример поля с именем WindSpeed, вы можете использовать следующее выражение: var speed = TrackFieldWindow("WindSpeed", -1, 1); 2* speed[0] < speed[1]. Треки будут разделены, если предыдущее значение (speed[0]) меньше, более чем в два раза, по сравнению с текущим значением.
Можно применить одновременно одну, две, три или четыре опции разбиения, либо не применять никакой. Все примеры ниже используют разделение в виде разрыва. Результаты, полученные при применении разделения по времени через 6 часов, временной границы в 1 день и по расстоянию в 16 километров, будут следующими:
Опция разбиения Описание Шесть входных точек со временем и местоположением.
Входные точки с одинаковым идентификатором. Расстояние между точками показано над пунктирной линией, а время измерения каждой точки подписывается под точками. Есть четыре разделения на временной линии. Красными разделителями показана временная граница в один день - начиная с 00:00. Синий разделитель соответствует разделению по расстоянию, если расстояние между двумя точками превышает 16 километров. Фиолетовый разделитель отображает разделение по времени, если временное расстояние между двумя последовательными точками превышает шесть часов.
Пример без разбиения по времени или расстоянию
Пример с разбиением по времени в шесть часов. Все пространственные объекты, отстоящие дальше чем на два часа, разбиваются в отдельные треки.
Пример с границей по времени в один день, начиная с полночи. Через каждый 1-дневный интервал, начиная с указанного времени (в данном случае - с 00:00), создается новый трек.
Пример с разбиением по расстоянию через 16 километров. Все пространственные объекты, отстоящие дальше чем на 16 километров (объекты в моменты 05:00 и 06:00), разбиваются на отдельные треки.
Пример с разбиением по времени через шесть часов и границей по времени в один день в 00:00. Все объекты, отстоящие дальше, чем на шесть часов, либо пересекающие временной отрезок в 00:00, разбиваются на отдельные треки.
Пример с разбиением по времени через шесть часов и по расстоянию через 16 километров. Все пространственные объекты, отстоящие дальше чем на шесть часов (6:00 и 19:00) или на 16 километров, разбиваются в отдельные треки.
Пример с разбиением по расстоянию через 16 километров и границей по времени в 1 день в 00:00. Все объекты, отстоящие дальше, чем на 16 километров, либо пересекающие временной отрезок в 00:00, разбиваются на отдельные треки.
Пример с разбиением по расстоянию через 16 километров, разбиением по времени через шесть часов и границей по времени в 1 день в 00:00. Все объекты, отстоящие дальше, чем на 16 километров, либо дальше, чем на шесть часов или пересекающие временной отрезок в 00:00, разбиваются на отдельные треки.
При разделении трека с помощью разбиения по времени, расстоянию или выражению, вы можете решить, как будут создаваться сегменты между треками. У вас имеются следующие возможности:
- Пробел - создается разрыв между двумя объектами, которые были разбиты.
- Завершить после - создается сегмент, который заканчивается после разбиения.
- Начать до - создается сегмент, который заканчивается и начинается после разбиение.
На рисунке вы видите пример типов разбиения:
Показаны три примера разбиения по времени на одних и тех же входных точках (желтые). Опция разбиения по времени Описание Пять входных точек со временем и местоположением.
Пять входных точек с одинаковым идентификатором. Время каждой точки отмечено под пунктирной линией. Существует одно разделение между 02:00 и 05:00 для всех примеров. Каждый трек разделен на два сегмента между третьей и четвертой точками на треке. Первый трек зелёный, а второй фиолетовый. Способ разделения треков определяется параметром тип разбиения.
Пробел
Пример с разрывом между двумя точками, которые были разбиты. Используется по умолчанию.
Завершить после
Пример, в котором трек заканчивается после разбиения, в четвертой точке. Второй трек начинается в четвертой точке.
Начало до
Пример, в котором трек разбивается до разбиения, в третьей точке. Второй трек начинается в третьей точке.
Ниже приведены примеры того, как можно задавать треки, используя параметры разбиения и параметр поля идентификатора, на примере рейс авиакомпании:
- У объекта-самолета есть поля aircraft ID, flight ID, pilot name, start time, и flight_maneuver. Поле flight_maneuver показывает, находится ли самолет на земле, поднимается, опускается или находится на постоянной высоте.
- Используйте поле aircraft ID в качестве идентификатора, чтобы увидеть, куда пролетел каждый самолет.
- Используйте поля aircraft ID и flight ID в качестве идентификаторов для сравнения разных маршрутов.
- Используйте поле aircraft ID и временную границу в один год, если хотите изучить полеты каждого самолета за год.
- Используйте поля pilot name, aircraft ID и start time для просмотра полета каждого пилота.
- Используйте поле aircraft ID в качестве идентификатора и разбиение через расстояния больше 1000 км, чтобы задать новые треки, чтобы трек был разбит через каждые 1,000-км на новые треки.
- Используйте поле aircraft ID в качестве идентификатора и разбивайте его с помощью выражения при изменении значения в поле flight_maneuver. Например, var flight_manuever = TrackFieldWindow("maneuver", -1, 1); flight_maneuver[0] != flight_maneuver[1] проверяет, совпадает ли текущее значение в треке с предыдущим значением. Если нет, трек разбивается.
- У объекта-самолета есть поля aircraft ID, flight ID, pilot name, start time, и flight_maneuver. Поле flight_maneuver показывает, находится ли самолет на земле, поднимается, опускается или находится на постоянной высоте.
Выходные треки будут возвращать поля, используемые в качестве идентификаторов треков, количество объектов в треке (count), время начала и окончания каждого трека (start_date и end_date), продолжительность трека в миллисекундах (duration) и любую другую дополнительную статистику (форматированную как statisticstype_fieldname)).
Вы можете повысить производительность инструмента Заново создать треки, выполнив одно или несколько из следующих действий:
- Установите параметр среды экстента таким образом, чтобы анализировались только интересующие вас данные.
- Используйте планарный метод вместо геодезического.
- Не применяйте буфер.
- Разбивайте треки с помощью параметров Разбиение по времени, Разбиение временных границ, Разбиение по расстоянию или Выражение разбиения. Параметр Разбиение временных границ будет иметь наивысшее улучшение в производительности.
- Используйте локальные данные, относительно места выполнения анализа.
Этот инструмент геообработки работает от Spark. Анализ выполняется на настольном компьютере с использованием нескольких ядер параллельно. См. Информация по инструментами GeoAnalytics Desktop, чтобы узнать больше о выполнении анализа.
При запуске инструментов GeoAnalytics Desktop анализ выполняется на настольном компьютере. Для оптимальной производительности данные должны быть доступны на настольном компьютере. Если используется размещенный векторный слой, рекомендуется применить ArcGIS GeoAnalytics Server. Если данные находятся не на жестком диске, для запуска инструмента потребуется больше времени. Чтобы использовать ArcGIS GeoAnalytics Server для выполнения анализа, см. GeoAnalytics Tools.
Аналогичный анализ можно выполнить следующим образом:
- Инструмент Точки в линию в наборе инструментов Управление данными.
Параметры
arcpy.gapro.ReconstructTracks(input_layer, out_feature_class, track_fields, method, buffer_type, {buffer_field}, {buffer_expression}, {time_split}, {distance_split}, {time_boundary_split}, {time_boundary_reference}, {summary_fields}, {split_expression}, {split_type})
Имя | Описание | Тип данных |
input_layer | Точки и полигоны, которые будут перестроены в треки. Входным слоем должен быть слой с включенным временем, отображающий определенный момент времени. | Feature Layer |
out_feature_class | Новый класс пространственных объектов с результирующими треками. | Feature Class |
track_fields [track_fields,...] | Одно или несколько полей, которые будут использованы для идентификации уникальных треков. | Field |
method | Определяет критерии, которые будут использоваться для перестроения треков. Если используется буфер, параметр method определяет его тип.
| String |
buffer_type | Определяет, как задается буферное расстояние.
| String |
buffer_field (Дополнительный) | Поле, используемое для буферизации входных объектов. Значения полей применяются в единицах измерения пространственной привязки входных данных, но если используется географическая система координат – единицами измерения будут метры. | Field |
buffer_expression (Дополнительный) |
Выражение, используемое для буферизации входных объектов. Поля должны быть числовыми, и в выражение могут включаться операторы [+ - * / ] и несколько полей. Вычисленные значения применяются в единицах измерения пространственной привязки входных данных, но если используется географическая система координат – единицами измерения будут метры. Используйте выражения Arcade, например as_kilometers($feature.distance) * 2 + as_meters(15). | Calculator Expression |
time_split (Дополнительный) | Объекты, отстоящие во времени дальше, чем продолжительность разбиения, будут разделены на отдельные треки. | Time Unit |
distance_split (Дополнительный) | Объекты, отстоящие по расстоянию дальше, чем значение расстояния разбиения, будут разделены на отдельные треки. | Linear Unit |
time_boundary_split (Дополнительный) |
Временной промежуток, на который делятся входные данные для анализа. Временные границы позволяют анализировать значения в пределах заданного отрезка времени. Например, если вы выбрали границу в 1 день, и задали дату начала 1 января 1980, треки будут разделяться в начале каждого дня. | Time Unit |
time_boundary_reference (Дополнительный) |
Базовое время, используемое для деления входных данных для анализа. Временные границы будут созданы для всего диапазона времени, а время начала отсчета не обязательно должно быть в самом начале. Если базовое время не задано, используется 1 января 1970. | Date |
summary_fields [summary_fields,...] (Дополнительный) | Статистика, которая будет рассчитываться по определенным полям.
| Value Table |
split_expression (Дополнительный) | Выражение, которое разбивают треки на основе значений, геометрии или значений времени. Выражения, подтверждающие значение true, будут разбиты. | Calculator Expression |
split_type (Дополнительный) | Определяет, как сегмент трека между двумя объектами создается при разделении трека. Тип разбиения применяется к выражениям разбиения и разбиению по времени или по расстоянию.
| String |
Пример кода
В следующем автономном скрипте показано использование функции ReconstructTracks.
# Name: ReconstructTracks.py
# Description: Reconstruct hurricane points into hurricane tracks, where each
# location is buffered by the wind speed * 100.
# 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\Hurricanes.lyrx'
# MakeFeatureLayer converts the .lyrx to features
hurricanesLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Hurricanes Layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(hurricanesLayer, inputLyrx)
# Set local variables
trackIdentifier = "EVENTID"
out = "c:/mydata/OutputDatasets.gdb/HurricaneTracks"
bufferExpression = "WINDSPEED * 100"
statistics = [["PRESSURE", "MEAN"]]
# Run Reconstruct Tracks
arcpy.gapro.ReconstructTracks(hurricanesLayer, out, trackIdentifier,
"GEODESIC", "EXPRESSION", None,
bufferExpression, None, statistics)
Параметры среды
Информация о лицензиях
- Basic: Нет
- Standard: Нет
- Advanced: Да