Создать Куб Пространство-Время из указанных местоположений (Углубленный анализ пространственно-временных закономерностей)

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

Использует временные ряды или данные станций (указанные местоположения, в которых география остается постоянной, а атрибуты меняются с течением времени) и структурирует их в формат netCDF, создавая бины пространство-время. Для всех местоположений проводится оценка трендов или суммы значений полей.

Более подробно о том, как работает инструмент Создать куб пространство-время из указанных местоположений

Иллюстрация

Создание куба пространство-время

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

  • Инструмент использует временные ряды или данные станций (указанные местоположения, в которых география остается постоянной, а атрибуты меняются с течением времени) как Входные объекты и структурирует их в бины пространства-времени. Структуру данных, которая будет создана, можно представить в виде трехмерного куба, который состоит из пространственно-временных бинов, где x,y-измерения представляют пространство, а t-измерение представляет время.

    Бины Пространство-Время в виде трехмерного куба.

  • Каждый бин имеет постоянную позицию в пространстве (местоположение x,y, если входные данные – точки, или фиксированный набор вершин, если входные местоположения представлены полигонами) и во времени (t). Бин соответствует области указанного местоположения (или x,y, или набор вершин) и содержат единый ID местоположения. Бины, охватывающие одинаковый временной период, имеют один и тот же идентификатор временного шага.

    Местоположения в кубе Пространство-Время.

  • Каждый бин в кубе Пространство-Время содержит значения LOCATION_ID, time_step_ID и COUNT, а также значения для любых Переменных или Полей суммирования, которые были включены при создании куба. Набор бинов, связанный с одним и тем же местоположением, имеет одинаковый идентификатор местоположения и представляет собой временной ряд. Набор бинов, связанный с одним и тем же временным интервалом, имеет одинаковый идентификатор шага времени и представляет собой временной срез.

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

    Примечание:

    Если ваши Входные объекты хранятся в файловой базе геоданных и содержат кривые (записанные, как дуги, а не как вершины), полигональные объекты при хранении в пространсвенно-временном кубе будут искажены. Чтобы определить, содержат ли ваши Входные объекты кривые, запустите инструмент Проверить геометрию с опцией OGC Метода проверки. Если вы получите ошибку, сообщающую о том, что выбранная опция не поддерживает нелинейные сегменты, значит, что в вашем наборе данных содержатся кривые, и они могут быть удалены и заменены вершинами инструментом Плотность с опцией Угол Метода уплотнения перед созданием куба пространство-время.

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

  • Данный инструмент прекратит работу, если в ходе работы будет создан куб с числом элементов, превышающим два миллиарда бинов.

  • Для точного измерения расстояний этому инструменту требуются проецированные данные.

  • Если отмечен параметр Агрегация времени результирующий куб пространства-времени в каждом бине будет содержать числовое значение, отражающее число событий, произошедших в связанном местоположении в соответствующий временной интервал.

  • Выходными данными этого инструмента будут входные объекты, преобразованные в формат netCDF, а также сообщения, в которых отражены итоговые характеристики куба, которые отображаются в окне Результаты. Сообщения отображаются в нижней части панели Геообработка в процессе выполнения инструмента. Вы можете получить доступ к сообщениям, наведя курсор мыши на индикатор выполнения, щелкнув на кнопку всплывающего окна или развернув раздел сообщений на панели Геообработка. Вы можете получить доступ к сообщениям для выполненного ранее инструмента из панели История геообработки. Вы будете использовать файл netCDF в качестве входных данных для других инструментов, например для инструмента Анализ возникновения горячих точек или Анализ локальных выбросов. См. Визуализация куба Пространство-Время для информации о том, как можно увидеть внутреннюю структуру куба.

  • Укажите поле типа Date для параметра Поле времени. Если в качестве входных данных используется повторяющаяся геометрия, поле должно содержать значение времени, связанное с каждым объектом. Если входные данные содержат Связанную таблицу, поле будет содержать значение времени, связанное с каждой записью в таблице.

  • Параметр Интервал временного шага определяет временные отрезки, на которые будут разбиты данные. Если Агрегация времени не отмечена, Интервал временного шага будет установлен в соответствии с существующей структурой данных. Например, если у вас есть данные переписи, которые фиксировались каждый пять лет, в качестве входных данных указывается 5 лет. Отметьте этот параметр, если вы хотите использовать агрегацию по времени. Допустим, если у вас есть данные сенсора, которые записываются каждые 5 минут, и вы хотите агрегировать всю информацию, например, за один день. Значение интервала временного шага всегда фиксировано, и для инструмента требуется наличие, как минимум, десяти временных шагов.

    Примечание:

    Хотя в ниспадающем списке параметра Интервал временного шага представлены разнообразные варианты единиц измерения, инструмент поддерживает только Годы, Месяцы, Недели, Дни, Часы, Минуты и Секунды.

  • Если куб пространства-времени не может быть создан, инструмент может не структурировать входные данные по 10 интервалам временного шага. Если вы получили сообщение об ошибке при запуске этого инструмента, проверьте метки времени выходных точек, чтобы убедиться, что они содержат диапазон значений (хотя бы десять). Диапазон значений должен охватывать хотя бы 10 секунд, поскольку это минимальное приращение времени, которое необходимо для инструмента. Для статистики Манна-Кендалла требуется десять интервалов временных шагов.

  • Для параметра Базовое время может быть указана дата и время или только дата; только значение времени не может быть указано. Используемый формат даты зависит от региональных настроек компьютера.

  • Анализ трендов выполняется по агрегированным переменным или по значениям суммируемых полей с применением статистики Манна-Кендалла.

  • Для агрегации атрибутов в этом инструменте доступны следующие статистические операции: Сумма, Среднее, Минимум, Максимум, Среднеквадратическое отклонение и Медиана.

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

  • Если для заполнения пустых бинов используется опция SPATIAL_NEIGHBORS, инструмент будет вычислять значение на основании 8 ближайших соседей. Для заполнения пустого бина с помощью этой опции требуется, чтобы как минимум 4 бина в окрестности содержали значения.

  • Если для заполнения пустых бинов используется опция SPACE_TIME_NEIGHBORS, инструмент будет вычислять значение на основании 8 ближайших соседей. Дополнительно, для каждого из этих бинов в качестве пространственных используются временные окрестности, что достигается переходом вперед и назад на 1 интервал. Для заполнения пустого бина с помощью этой опции требуется минимум 13 окрестностей пространства-времени.

  • При заполнении пустых бинов с TEMPORAL_TREND, первые два и последние два временных периода в данном местоположении должны содержать значения в бинах для интерполяции значений в других интервалах этого местоположения.

  • Тип заполнения TEMPORAL_TREND использует метод Interpolated Univariate Spline из пакета интерполяции SciPy.

  • Этот инструмент пользуется преимуществом увеличения производительности, доступным в системе, использующей несколько CPU (или многоядерные CPU). Инструмент по умолчанию будет использовать 50% доступных процессоров, но количество используемых процессоров может быть увеличено или уменьшено с помощью настройки среды Коэффициент параллельной обработки. Увеличение скорости обработки наиболее заметно при создании больших кубов пространство-время.

Параметры

ПодписьОписаниеТип данных
Входные объекты

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

Feature Layer
Выходной куб пространство-время

Выходной куб netCDF, который будет создан.

File
ID местоположения

Целочисленное поле, содержащие уникальные ID каждого местоположения.

Field
Агрегация времени

Определяет, будет ли выполнена агрегация данных по времени.

  • Не отмечено – куб пространство-время будет создан на основании существующей временной структуры Входных объектов. Например, если у вас есть данные с годовой периодичностью, будет создан куб, в котором Интервал временного шага будет – один год. Используется по умолчанию.
  • Отмечено – в кубе пространство-время ваши объекты будут агрегированы по времени на основании указанного вами Интервала временного шага. Например, если у вас есть данные, которые записывались с периодичностью в один день, а вы хотите создать куб с Интервалом временного шага – одна неделя.
Boolean
Поле времени

Поле, содержащее значения временного шага для каждой строки в наборе данных. Это поле должно иметь тип Date.

Field
Интервал временного шага
(Дополнительный)

Число секунд, минут, часов, дней, недель или лет, которое будет представлять один временной шаг. Примером этого параметра может быть значение 1 Неделя, 13 Дней или 1 Месяц.

Если Агрегация времени не отмечена, данные не будут агрегированы и значение этого параметра будет установлено в соответствии с существующей временной структурой данных.

Если Агрегация времени отмечена, данные будут агрегированы по времени и этот параметр будет установлен в соответствии с указанным вами Интервалом временного шага. Агрегированы будут все объекты в пределах Интервала временного шага.

Time Unit
Выравнивание временного шага
(Дополнительный)

Определяет структуру куба, которая будет основана на данном Интервале временного шага.

  • Конечное время —Временные шаги выравниваются по последнему событию и агрегируются во времени назад. Это значение используется по умолчанию.
  • Начальное время —Временные шаги выравниваются по первому событию и агрегируются во времени вперед.
  • Базовое время —Временной шаг будет расположен в определенной указанной вами точке дата/время. Если все точки во входных объектах имеют временную метку, которая больше, чем указанное Базовое время (или точно соответствует начальному времени входных объектов), интервал временного шага начнется с этого времени, а агрегирование пойдет во времени вперед (так, как это происходит с выравниванием Начальное время). Если все точки во входных объектах имеют временную метку, которая меньше, чем указанное базовое время (или точно соответствует конечному времени входных объектов), интервал временного шага начнется с этого времени, а агрегирование пойдет во времени назад (так, как это происходит с выравниванием Конечное время). Если указанное Базовое время будет находиться в середине временного экстента ваших данных, то интервал временного шаг создается по окончанию базового времени (так, как это происходит с выравниванием Конечного времени); дополнительные интервалы будут создаваться до и после базового времени, пока не будет охвачен весь временной экстент ваших данных.
String
Базовое время
(Дополнительный)

Дата/время для выравнивания интервалов временных шагов. Например, если вы хотите сгруппировать ваши данные по неделям (с понедельника по воскресенье), то вы можете выбрать для базового времени разделения элементов полночь воскресенья.

Date
Переменные
(Дополнительный)

Числовое поле, содержащее значения атрибута, которое будет использовано для куба пространство-время.

Доступные типы заполнения:

  • DROP_LOCATIONS – местоположения с отсутствующими данными для любой из переменных будут пропущены при создании выходного куба пространство-время.
  • ZEROS – заполняет пустые бины нулями.
  • SPATIAL_NEIGHBORS – заполняет пустые бины средними значениями пространственных окрестностей
  • SPACE_TIME_NEIGHBORS – заполняет пустые бины средними значениями окрестностей пространства–времени.
  • TEMPORAL_TREND – заполняет пустые бины, используя алгоритм одномерного интерполированного сплина.

Примечание:

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

Value Table
Поля суммирования
(Дополнительный)

Числовое поле, содержащее значения атрибута, для которого будет вычислен определенный статистический показатель при агрегации в куб пространства-времени. Могут быть заданы различные комбинации статистических показателей и полей. Значения Null, имеющиеся в любых полях, приведут к исключению таких объектов из выходного куба. Если ваши Входные объекты содержат значения Null, рекомендуется запустить инструмент Заполнить отсутствующие значения до создания куба Пространство-Время.

Доступные типы статистики:

  • SUM – вычисляет суммарное значение указанного поля в каждом бине.
  • MEAN – вычисляет среднее значение для указанного поля в каждом бине.
  • MIN – находит наименьшее значение для всех записей заданного поля в каждом бине.
  • MAX – находит наибольшее значение для всех записей заданного поля в каждом бине.
  • STD – вычисляет значение среднеквадратичного отклонения для значений данного поля в каждом бине.
  • MEDIAN – находит отсортированное среднее значение всех записей заданного поля в каждом бине.

Доступные типы заполнения:

  • ZEROS – заполняет пустые бины нулями.
  • SPATIAL_NEIGHBORS – заполняет пустые бины средними значениями пространственных окрестностей
  • SPACE_TIME_NEIGHBORS – заполняет пустые бины средними значениями окрестностей пространства–времени.
  • TEMPORAL_TREND – заполняет пустые бины, используя алгоритм одномерного интерполированного сплина.

Примечание:

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

Value Table
Связанная таблица
(Дополнительный)

Таблица или представление таблицы, которая будет связана с входными объектами.

Table View
Связанный ID местоположения
(Дополнительный)

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

Field

arcpy.stpm.CreateSpaceTimeCubeDefinedLocations(in_features, output_cube, location_id, temporal_aggregation, time_field, {time_step_interval}, {time_step_alignment}, {reference_time}, {variables}, {summary_fields}, {in_related_table}, {related_location_id})
ИмяОписаниеТип данных
in_features

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

Feature Layer
output_cube

Выходной куб netCDF, который будет создан.

File
location_id

Целочисленное поле, содержащие уникальные ID каждого местоположения.

Field
temporal_aggregation
  • APPLY_TEMPORAL_AGGREGATIONВ кубе пространство-время ваши объекты будут агрегированы по времени на основании указанного вами time_step_interval. Например, если у вас есть данные, которые записывались с периодичностью в один день, а вы хотите создать куб, в котором time_step_interval – одна неделя.
  • NO_TEMPORAL_AGGREGATIONНе отмечено – куб пространство-время будет создан на основании существующей временной структуры in_features. Например, если у вас есть данные с годовой периодичностью, будет создан куб, в котором time_step_interval будет – один год. Используется по умолчанию.
Boolean
time_field

Поле, содержащее значения временного шага для каждой строки в наборе данных. Это поле должно иметь тип Date.

Field
time_step_interval
(Дополнительный)

Число секунд, минут, часов, дней, недель или лет, которое будет представлять один временной шаг. Примером этого параметра может быть значение 1 Неделя, 13 Дней или 1 Месяц.

Если temporal_aggregation не отмечена, данные не будут агрегированы и значение этого параметра будет установлено в соответствии с существующей временной структурой данных.

Если параметр temporal_aggregationотмечен, данные будут агрегированы по времени, и этот параметр будет установлен в соответствии с указанным вами time_step_interval. Будут агрегированы все объекты, расположенные в пределах одного и того же time_step_interval.

Time Unit
time_step_alignment
(Дополнительный)

Определяет структуру куба, которая будет основана на данном time_step_interval.

  • END_TIMEВременные шаги выравниваются по последнему событию и агрегируются во времени назад.
  • START_TIMEВременные шаги выравниваются по первому событию и агрегируются во времени вперед.
  • REFERENCE_TIMEВременной шаг будет расположен в определенной указанной вами точке дата/время. Если все точки во входных объектах имеют временную метку, которая больше, чем указанное базовое время (или точно соответствует начальному времени входных объектов), интервал временного шага начнется с этого времени, а агрегирование пойдет во времени вперед (так, как это происходит с выравниванием START_TIME). Если все точки во входных объектах имеют временную метку, которая меньше, чем указанное базовое время (или точно соответствует конечному времени входных объектов), интервал временного шага начнется с этого времени, а агрегирование пойдет во времени назад (так, как это происходит с выравниванием END_TIME). Если указанное вами базовое время будет находиться в середине временного экстента ваших данных, то интервал временного шаг создается по окончанию базового времени (так, как это происходит с выравниванием END_TIME); дополнительные интервалы будут создаваться до и после базового времени, пока не будет охвачен весь временной экстент ваших данных.
String
reference_time
(Дополнительный)

Дата/время для выравнивания интервалов временных шагов. Например, если вы хотите сгруппировать ваши данные по неделям (с понедельника по воскресенье), то вы можете выбрать для базового времени разделения элементов полночь воскресенья.

Date
variables
[[Field, Fill Empty Bins with],...]
(Дополнительный)

Числовое поле, содержащее значения атрибута, которое будет использовано для куба пространство-время.

Доступные типы заполнения:

  • DROP_LOCATIONS – местоположения с отсутствующими данными для любой из переменных будут пропущены при создании выходного куба пространство-время.
  • ZEROS – заполняет пустые бины нулями.
  • SPATIAL_NEIGHBORS – заполняет пустые бины средними значениями пространственных окрестностей
  • SPACE_TIME_NEIGHBORS – заполняет пустые бины средними значениями окрестностей пространства–времени.
  • TEMPORAL_TREND – заполняет пустые бины, используя алгоритм одномерного интерполированного сплина.

Примечание:

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

Value Table
summary_fields
[[Field, Statistic, Fill Empty Bins with],...]
(Дополнительный)

Числовое поле, содержащее значения атрибута, для которого будет вычислен определенный статистический показатель при агрегации в куб пространства-времени. Могут быть заданы различные комбинации статистических показателей и полей. Значения Null, имеющиеся в любых полях, приведут к исключению таких объектов из выходного куба. Если ваши Входные объекты содержат значения Null, рекомендуется запустить инструмент Заполнить отсутствующие значения до создания куба Пространство-Время.

Доступные типы статистики:

  • SUM – вычисляет суммарное значение указанного поля в каждом бине.
  • MEAN – вычисляет среднее значение для указанного поля в каждом бине.
  • MIN – находит наименьшее значение для всех записей заданного поля в каждом бине.
  • MAX – находит наибольшее значение для всех записей заданного поля в каждом бине.
  • STD – вычисляет значение среднеквадратичного отклонения для значений данного поля в каждом бине.
  • MEDIAN – находит отсортированное среднее значение всех записей заданного поля в каждом бине.

Доступные типы заполнения:

  • ZEROS – заполняет пустые бины нулями.
  • SPATIAL_NEIGHBORS – заполняет пустые бины средними значениями пространственных окрестностей
  • SPACE_TIME_NEIGHBORS – заполняет пустые бины средними значениями окрестностей пространства–времени.
  • TEMPORAL_TREND – заполняет пустые бины, используя алгоритм одномерного интерполированного сплина.

Примечание:

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

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

Таблица или представление таблицы, которая будет связана с входными объектами.

Table View
related_location_id
(Дополнительный)

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

Field

Пример кода

CreateSpaceTimeCubeDefinedLocations, пример 1 (окно Python)

В следующем скрипте окна Python показано, как используется инструмент CreateSpaceTimeCubeDefinedLocations.

import arcpy
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
arcpy.CreateSpaceTimeCubeDefinedLocations_stpm("Chicago_Data", r"C:\STPM\Chicago_Cube.nc", "MYID",
                                               "NO_TEMPORAL_AGGREGATION", "TIME", "1 Months",
                                               "END_TIME", "", "COUNT ZEROS")
CreateSpaceTimeCubeDefinedLocations, пример 2 (автономный скрипт Python)

Следующий автономный скрипт Python демонстрирует, как использовать инструмент CreateSpaceTimeCubeDefinedLocations.

# Fill missing values using a feature set and related table
# Use the results to create a space-time cube from defined locations
# Run Emerging Hot Spot Analysis on the data
# Visualize the results in 3d
# Import system modules
import arcpy
# Set geoprocessor object property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
# Local variables ...
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
try:
    # Fill missing values in a feature class containing block group polygon shapes and a related table containing the incidents
    # Since some of the values are missing we will fill them using the temporal trend method.
    arcpy.FillMissingValues_stpm("Chicago_Feature", "Chicago_FilledFeature", "COUNT", "TEMPORAL_TREND", "", "", NoneNone,
                                 "TIME", "", "MYID", "Chicago_Table", "MYID", "", "", "", "Chicago_FilledTable")
    # Create a defined location space time cube using a related table
    # Using a reference time at the start of the month to force binning fall on month breaks
    # Using temporal aggregation to sum multiple entries into one month
    # Using the method drop location if missing values since we already filled using Fill Missing Values
    arcpy.CreateSpaceTimeCubeDefinedLocations_stpm("Chicago_FilledFeature", r"C:\STPM\Chicago_Cube.nc", "MYID",
                                                   "APPLY_TEMPORAL_AGGREGATION", "TIME", "1 Months", "REFERENCE_TIME",
                                                   "10/1/2015", "", "COUNT SUM DROP_LOCATIONS", "Chicago_FilledTable",
                                                   "MYID")
    # Run an emerging hot spot analysis on the defined locations cube
    # Using contiguity edges so only block groups which bound each other are considered neighbours
    arcpy.EmergingHotSpotAnalysis_stpm(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE",
                                       "Chicago_Cube_EmergingHotSpot", "", 1, "",
                                       "CONTIGUITY_EDGES_ONLY")
    # Use Visualize Cube in 3d to see the hot spot results for each time slice
    arcpy.VisualizeSpaceTimeCube3D_stpm(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE", "HOT_AND_COLD_SPOT_RESULTS",
                                        "Chicago_Cube_Visualize3d")
except arcpy.ExecuteError:
    # If any error occurred when running the tool, print the messages
    print(arcpy.GetMessages())

Связанные разделы