Заново создать треки (GeoAnalytics Desktop)

Краткая информация

Создаёт линейные или полигональные треки из входных данных с включённым временем.

Иллюстрация

Иллюстрация к инструменту Заново создать треки

Использование

  • Заново создать треки работает с точечными или полигональными объектами. Входным слоем должен быть слой с включенным временем, с объектами, представляющими определенный момент времени.

  • Вы можете указать одно или более полей для идентификации треков. Треки представлены с помощью уникальной комбинации одного или нескольких полей трека. Например, если поля flightID и Destination используются в качестве идентификаторов трека, объекты ID007, Solden и ID007, Tokyo попадут в два отдельных трека, поскольку содержат разные значения в поле Destination.

  • Объекты с буфером позволят создать полигональные треки. Входные точечные объекты без буфера создают полилинейные треки.

  • Входные объекты будут содержать объекты с включенным временем, которые представляют определенный момент времени. Результатами будут линейные или площадные объекты, представляющие временной интервал. Начало и конец интервала определяются временем на первом и последнем объектах трека.

    Входные пространственные объекты с двумя разными треками (зелёным и красны), показывают мгновенный тип времени (слева) и результирующие треки (справа) или тип временного интервала
    Показаны входные пространственные объекты с двумя разными треками (зелёным и красным), у которых есть мгновенный тип времени (слева) и результирующие треки (справа) или тип временного интервала.

  • Для линейных результатов будут возвращены только треки, содержащие более одной точки. Если вы применяете буфер, будут возвращены все объекты.

  • У вас есть возможность дополнительно применить буфер ко входным объектам. Если вы применяете буфер, итоговые треки будут полигональными объектами.

    Входные точки с примененным буфером, заново перестроенные в треки
    Входные точки с примененным буфером, заново перестроенные в треки.

  • Если буфер применяется к нескольким входным объектам, буфер строится для каждого объекта. Затем для создания полигонального трека создается замкнутая оболочка.

    Входные точки (зеленые), промежуточный буфер для визуализации (синяя штриховка) и итоговый полигональный трек (синий)
    Показан пример входных точек (зеленые), промежуточного буфера для визуализации (синяя штриховка) и итогового полигонального трека (синий).

  • Поля, используемые для выражения буфера, должны быть числовыми и применяться с использованием единиц измерения пространственной привязки входных данных. Более подробно см. Выражения Arcade в наборе инструментов геоаналитики Desktop. Можете использовать уравнения для треков.

  • По умолчанию вычисляется только число точек или полигонов в треке. Дополнительную статистику можно рассчитать с помощью значения параметра Поля суммирования.

  • По умолчанию треки создаются с использованием геодезического метода. Этот метод применяется к следующим двум компонентам анализа:

    • Треки, пересекающие международную линию перемены даты – при использовании геодезического метода входные слои, пересекающие международную линию перемены даты, будут иметь треки, надлежащим образом пересекающие эту линию. Это значение по умолчанию Ваш входной слой или пространственная привязка обработки должны быть настроены на пространственную привязку, поддерживающую переход через международную линию перемены даты, например, глобальную проекционную привязку типа World Cylindrical Equal Area.
    • Буферы – у вас есть возможность дополнительно применить буфер ко входным объектам. Более подробно о случаях применения геодезического или плоскостного буфера см. в разделе Создание буферов.

  • Разбивать треки можно следующими способами:

    • Разбиение по времени - основано на времени между входными данными. Применение времени разбиения приводит к разделению любого трека, если входные данные выходят за указанное время. Например, если у вас есть пять объектов с одним и тем же идентификатором трека и временами [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]) составляет меньше половины текущего.

  • Можно применить одновременно одну, две, три или четыре опции разбиения. Во всех приведенных ниже примерах используется разбиение промежутков. Результаты, полученные при применении разбиения по времени через 6 часов, временной границы в 1 день и по расстоянию в 16 километров, будут следующими:

    Пять примеров входных точек (зелёные) с различным разбиением по времени и расстоянию
    Показаны пять примеров входных точек (желтые) с различным разбиением по времени и расстоянию .

    Опция разбиенияОписание

    Шесть входных точек со временем и местоположением

    Входные точки с одинаковым идентификатором. Расстояние между точками показано над пунктирной линией, а время измерения каждой точки подписывается под точками. Есть четыре разделения на временной линии. Красными разделителями показана временная граница в 1 день с 00:00. Синий разделитель соответствует разделению по расстоянию расстояние между двумя точками превышает 16 км. Фиолетовый разделитель отображает разбиение по времени, если временное расстояние между двумя последовательными точками превышает 6 часов.

    Пример без разбиения по времени или расстоянию

    Пример без разбиения по времени или расстоянию

    Пример с разбиением по времени через шесть часов

    Пример с разбиением по времени через шесть часов. Все пространственные объекты, отстоящие дальше чем на два часа, разбиваются в отдельные треки.

    Пример с границей по времени через один день

    Пример с границей по времени в 1 день, начиная с полуночи. Через каждый однодневный интервал, начиная с указанного времени (в данном случае - с 00:00), создается трек.

    Пример с разбиением по расстоянию через 16 километров

    Пример с разбиением по расстоянию через 16 километров. Все пространственные объекты, отстоящие дальше чем на 16 километров (объекты в моменты 5:00 и 6:00), разбиваются на отдельные треки.

    Пример с разбиением по времени через 6 часов и границей по времени в 1 день в 00:00

    Пример с разбиением по времени через 6 часов и границей по времени в 1 день в 00:00. Все объекты, отстоящие более, чем на шесть часов либо пересекающие временной отрезок в 00:00, разбиваются на отдельные треки.

    Пример с разбиением по времени через 6 часов и по расстоянию через 16 км

    Пример с разбиением по времени через 6 часов и по расстоянию через 16 км. Все пространственные объекты, отстоящие дальше чем на 6 часов (6:00 и 19:00) или на 16 км, разбиваются на отдельные треки.

    Пример с разбиением по расстоянию через 16 км и границей по времени в 1 день в 00:00.

    Пример с разбиением по расстоянию через 16 км и границей по времени в 1 день в 00:00. Все объекты, отстоящие дальше, чем на 16 км, либо пересекающие временной отрезок в 00:00, разбиваются на отдельные треки.

    Пример с разбиением по расстоянию через 16 км, разбиением по времени через 6 часов и границей по времени в 1 день в 00:00

    Пример с разбиением по расстоянию через 16 км, разбиением по времени через 6 часов и границей по времени в 1 день в 00:00. Все объекты, отстоящие дальше, чем на 16 км, либо больше, чем на шесть часов, либо пересекающие временной отрезок в 00:00, разбиваются на отдельные треки.

  • Когда вы разбиваете трек, используя разбиение по времени, расстоянию или выражение разбиения, вы можете определить, как будут создаваться сегменты разбиения. У вас имеются следующие опции:

    • Промежуток - создает промежуток между двумя объектами, которые были разделены.
    • Завершить после - создает сегмент, который завершается после разбиения.
    • Начать до - создает сегмент, который завершается и начинается перед разбиением.

    На рисунке ниже показан пример типов разбиения:

    Три типа разбиений по времени

    Показаны три примера разбиений по времени для одних и тех же входных точек (желтых).

    Опция разбиения по времениОписание

    Пять входных точек со временем и местоположением

    Пять входных точек с одинаковым идентификатором. Время каждой точки показано под пунктирной линией. Есть одно разбиение в промежутке между 2:00 и 5:00 для всех примеров. Каждый трек разделен на два сегмента между третьей и четвертой точками трека. Первое трек зеленый, а второй - пурпурный. Способ разделения треков определяется параметром типа разбиения.

    Промежуток Промежуток разбиения

    Пример промежутка между двумя точками, которые были разделены. Это значение по умолчанию

    Завершить после Завершить после разбиения

    Пример завершения трека после разбиения в четвертой точке. Второй трек начинается в четвертой точке.

    Начать до Начать до разбиения

    Пример разбиения трека перед разбиением, в четвертой точке. Второй трек начинается в третьей точке.

  • Ниже приведены примеры задания треков с использованием параметров разбиения и параметра поля идентификатора, на примере рейса авиакомпании:

    • У объекта-самолета есть поля aircraft ID, flight ID, pilot name, start time и flight_maneuver. Поле flight_maneuver показывает, находится ли самолет на земле, поднимается, опускается или находится на постоянной высоте.
      • Используйте поле aircraft ID как идентификатор, чтобы увидеть, где находится каждый самолет.
      • Используйте поля aircraft ID и flight ID как идентификаторы для сравнения отдельных маршрутов.
      • Используйте поле aircraft ID и временную границу в 1 год, чтобы изучить полеты каждого самолета в течение года.
      • Используйте поля pilot name, aircraft ID и start time для просмотра полетов каждого пилота.
      • Используйте поле aircraft ID в качестве идентификатора и разбиение по расстоянию больше 1000 км, чтобы определить новые треки, при этом каждый 1000-километровый отрезок не должен принадлежать одному и тому же треку.
      • Используйте поле aircraft ID в качестве идентификатора и разбивайте его с помощью выражения при изменении значения в поле flight_maneuver. Например, var flight_manuever = TrackFieldWindow("maneuver", -1, 1); flight_maneuver[0] != flight_maneuver[1] проверяет, совпадают ли текущее значение в треке и предыдущее значение. Если нет, трек разбивается.

  • Выходные треки будут возвращать поля, используемые в качестве идентификаторов треков, количество объектов в треке (count), время начала и окончания каждого трека (start_date и end_date), продолжительность трека в миллисекундах (duration) и любую другую дополнительную статистику (отформатирована как statisticstype_fieldname)).

  • Вы можете повысить производительность инструмента Заново создать треки следующими способами:

    • Установите параметр среды Экстент так, чтобы вы анализировали только интересующие вас данные.
    • Используйте планарный метод вместо геодезического.
    • Не применяйте буфер.
    • Разбивайте треки, используя параметры Разбиение по времени, Разбиение по временной границе, Разбиение по расстоянию и Выражение разбиения. Использование параметра Разбиение по временной границе обеспечивает наилучшую производительность.
    • Используйте локальные данные там, где запускается анализ.

  • Этот инструмент геообработки работает от Spark. Анализ выполняется на настольном компьютере с использованием нескольких ядер параллельно. См. Информация по инструментами GeoAnalytics Desktop, чтобы узнать больше о выполнении анализа.

  • При запуске инструментов GeoAnalytics Desktop анализ выполняется на настольном компьютере. Для оптимальной производительности данные должны быть доступны на настольном компьютере. Если используется размещенный векторный слой, рекомендуется применить ArcGIS GeoAnalytics Server. Если данные находятся не на жестком диске, для запуска инструмента потребуется больше времени. Чтобы использовать ArcGIS GeoAnalytics Server для выполнения анализа, см. GeoAnalytics Tools.

  • Аналогичный анализ можно выполнить следующим образом:

    • Инструмент Точки в линию из набора инструментов Управление данными.

Параметры

ПодписьОписаниеТип данных
Входной слой

Точки или полигоны, которые будут перестроены в треки. Входным слоем должен быть слой с включенным временем, представляющий определенный момент времени.

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
Поля суммирования
(Дополнительный)

Статистика, которая будет рассчитываться по определенным полям.

  • Количество – количество не пустых значений. Может использоваться с числовыми или текстовыми полями. Количество [null, 0, 2] равно 2.
  • Сумма – сумма числовых значений в поле. Сумма [null, null, 3] равна 3.
  • Среднее – среднее арифметическое числовых значений. Среднее [0, 2, null] равно 1.
  • Мин – минимальное значение числового поля. Минимум [0, 2, null] равен 0.
  • Макс – максимальное значение числового поля. Максимальное значение [0, 2, null] равно 2.
  • Среднеквадратическое отклонение – Среднеквадратическое отклонение числового поля. Среднеквадратическое отклонение [1] равно null. Среднеквадратическое отклонение [null, 1,1,1] равно null.
  • Дисперсия – дисперсия по числовому полю в треке. Дисперсия [1] равна null. Дисперсия [null, 1, 1, 1] равна null.
  • Диапазон – диапазон числового поля. Он вычисляется вычитанием минимального значения из максимального. Диапазон [0, null, 1] равен 1. Диапазон [null, 4] равен 0.
  • Любой – пример строки из текстового поля.
  • Первый – первое значение указанного поля в треке.
  • Последнее – последнее значение указанного поля в треке.

Value Table
Выражения разбиения
(Дополнительный)

Выражения разбиения, которое позволяет разбить треки на основе значений, геометрии или времени. Выражение, равное true, будет выполнять разбиение.

Calculator Expression
Тип разбиения
(Дополнительный)

Определяет порядок создания сегмента трека между двумя объектами при разбиении. Тип разбиения применяется к выражениям разбиения, разбиению по расстоянию и разбиению по времени.

  • ПробелМежду двумя объектами сегменты не создаются. Это значение по умолчанию
  • Завершить послеМежду двумя объектами, заканчивающимися после разбиения, создается сегмент.
  • Начать доМежду двумя объектами, заканчивающимися перед разбиением, создается сегмент.
String

arcpy.geoanalytics.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 определяется тип буфера.

  • GEODESICЕсли пространственная привязка может быть перемещена, треки будут пересекать линию даты, когда это необходимо. Если пространственная привязка не позволяет, треки будут ограничены экстентом системы координат и могут обрываться.
  • PLANARТреки не будут пересекать линию дат.
String
buffer_type

Указывает, как будет задаваться буферное расстояние.

  • FIELDДля определения буферного расстояния будет использоваться одно поле.
  • EXPRESSIONДля определения буферного расстояния будут использоваться поля и математические операторы.
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,...]
(Дополнительный)

Статистика, которая будет рассчитываться по определенным полям.

  • COUNT – количество ненулевых значений. Может использоваться с числовыми или текстовыми полями. Количество [null, 0, 2] равно 2.
  • SUM – сумма числовых значений в поле. Сумма [null, null, 3] равна 3.
  • MEAN – среднее арифметическое числовых значений. Среднее [0,2, null] равно 1.
  • MIN – минимальное значение числового поля. Минимум [0, 2, null] равен 0.
  • MAX – максимальное значение числового поля. Максимальное значение [0, 2, null] равно 2.
  • STDDEV – среднеквадратическое отклонение числового поля. Среднеквадратическое отклонение [1] равно null. Среднеквадратическое отклонение [null, 1,1,1] равно null.
  • VAR – дисперсия по числовому полю в треке. Дисперсия [1] равна null. Дисперсия [null, 1,1,1] равна null.
  • RANGE – диапазон числового поля. Он вычисляется вычитанием минимального значения из максимального. Диапазон [0, null, 1] равен 1. Диапазон [null, 4] равен 0.
  • ANY – пример строки из текстового поля.
  • FIRST – первое значение указанного поля в треке.
  • LAST – последнее значение указанного поля в треке.

Value Table
split_expression
(Дополнительный)

Выражения разбиения, которое позволяет разбить треки на основе значений, геометрии или времени. Выражение, равное true, будет выполнять разбиение.

Calculator Expression
split_type
(Дополнительный)

Определяет порядок создания сегмента трека между двумя объектами при разбиении. Тип разбиения применяется к выражениям разбиения, разбиению по расстоянию и разбиению по времени.

  • GAPМежду двумя объектами сегменты не создаются. Это значение по умолчанию
  • FINISH_LASTМежду двумя объектами, заканчивающимися после разбиения, создается сегмент.
  • START_NEXTМежду двумя объектами, заканчивающимися перед разбиением, создается сегмент.
String

Пример кода

ReconstructTracks, пример (автономный скрипт)

В следующем автономном скрипте показано использование функции 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)