Итерировать время (ModelBuilder)

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

  • Этот инструмент доступен только на ленте ModelBuilder для использования в моделях. Этот инструмент недоступен в панели Геообработка или в Python.

  • Инструмент принимает объекты и таблицы с полем даты.

  • Инструмент итерирует и фильтрует строки, попадающие в разные временные интервалы и временные экстенты. Например, вы можете итерировать данные по часам для полного временного экстента данных или поднабора данных. Инструмент создает различные временные срезы, которые можно использовать в качестве входных данных в других инструментах.

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

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

  • Начало и окончание временных срезов вычисляются на основе комбинации значений параметров. В таблице ниже показаны ожидаемые результаты при использовании различных комбинаций параметров со снятой отметкой для параметра Пропустить пустые срезы. Например, данные имеют экстент datetime с 2022-01-03 по 2022-01-31. С интервалом в один день, если значения параметров Время начала итерации и Время окончания итерации не указаны, первый временной срез начнется с 2022-01-03 на основе начала данных и закончится 2022-02-01.

    Время начала итерацииПривязать дату и время начала итерации к даннымВремя окончания итерацииПривязать дату и время окончания итерации к даннымНачало первого временного срезаОкончание последнего временного среза

    2022-01-03

    2022-02-01

    2022-01-01

    Не отмечено

    2022-01-01

    2022-02-01

    2022-01-01

    Отмечено

    2022-01-03

    2022-02-01

    2022-02-01

    Не отмечено

    2022-01-03

    2022-02-01

    2022-02-01

    Отмечено

    2022-01-03

    2022-01-31

    2022-01-01

    Не отмечено

    2022-02-01

    Не отмечено

    2022-01-01

    2022-02-01

    2022-01-01

    Отмечено

    2022-02-01

    Не отмечено

    2022-01-03

    2022-02-01

    2022-01-01

    Не отмечено

    2022-02-01

    Отмечено

    2022-01-01

    2022-01-31

    2022-01-01

    Отмечено

    2022-02-01

    Отмечено

    2022-01-03

    2022-01-31

  • Параметр Включить начало всегда учитывается для первого временного среза, а параметр Включить окончание всегда учитывается для последнего временного среза независимо от значений параметров Включить начало и Включить окончание. Для каждого промежуточного временного среза включение или исключение данных основано на значениях этих параметров. Например, в таблице ниже показан ожидаемый результат подсчета с интервалом в 1 день для итераций с 2022-01-01 по 2022-01-03, если данные имеют значения с 2022-01-01 по 2022-01-03.

    Временной срезПодсчет с обоими параметрами не отмеченнымиПодсчет только с отмеченным параметром Включить началоПодсчет только с отмеченным параметром Включить окончаниеПодсчет с обоими параметрами отмеченными

    2022-01-01 по 2022-01-02

    1

    1

    2 (Включить начало всегда учитывается для первого временного среза)

    2

    2022-01-02 по 2022-01-03

    0

    1

    1

    2

    2022-01-03 по 2022-01-04

    0

    1

    0

    1

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

    Если для параметров Время начала итерации и Время окончания итерации используются разные поля datetime, строки с пустыми значениями будут пропущены по умолчанию. Снимите отметку Пропустить пустые значения, чтобы включить их в итерацию. В приведенных ниже таблицах показано, будет ли строка включена для выходных временных срезов с интервалом в 1 день с 2022-01-01 по 2022-01-03 и отмеченным параметром Включить начало.

    Например, строка имеет пустое значение в поле времени начала, а значение поля времени окончания — 2022-01-02:

    Временной срезОжидаемый результат

    2022-01-01 по 2022-01-02

    Включена (поскольку пустое значение строки в поле начала)

    2022-01-02 по 2022-01-03

    Включена (поскольку параметр Включить начало отмечен)

    2022-01-03 по 2022-01-04

    Не включена

    Например, строка имеет значение 2022-01-02 в поле времени начала, а значение в поле времени окончания пустое:

    Временной срезОжидаемый результат

    2022-01-01 по 2022-01-02

    Не включена

    2022-01-02 по 2022-01-03

    Включена (поскольку пустое значение строки в поле окончания)

    2022-01-03 по 2022-01-04

    Включена (поскольку пустое значение строки в поле окончания)

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

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

  • Для каждой итерации инструмент возвращает следующие выходные данные:

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

  • Два выходных параметра, Время начала и Время окончания, имеют 24-часовой формат. Если время не указано ни в данных, ни в каких-либо значениях параметров, время по умолчанию равно 00:00:00.

  • Значения параметров Время начала и Время окончания можно использовать в качестве замены встроенных переменных для определения имен выходных данных в других инструментах. Для этого отметьте параметр Форматировать выходную строку времени, чтобы вернуть строку datetime без специальных символов, как в примере ниже.

    Выходные данные инструмента как замена встроенной переменной

    Время всегда добавляется к строкам времени начала и окончания. Чтобы удалить время из этой строки, используйте инструмент Вычислить значение и задайте выражение "%Start Time%"[:11] + "_to_" + "%End Time%"[:11]. Выходные данные инструмента Вычислить значение затем можно использовать в качестве замены встроенной переменной в выходных данных инструмента Копировать объекты.

    Выходные данные инструмента без времени как замена встроенной переменной

Параметры

ПодписьОписаниеТип данных
Входная таблица

Входная таблица для итерации.

Table View; Feature Layer
Интервал шкалы времени

Указывает временной интервал, который будет использоваться для создания временных срезов. Допустимыми входными данными являются только целые числа.

  • МинутыДанные будут разделены по минутам.
  • ЧасыДанные будут разделены по часам.
  • ДниДанные будут разделены по дням.
  • НеделиДанные будут разделены по неделям.
  • МесяцыДанные будут разделены по месяцам.
  • ГодыДанные будут разделены по годам.
  • ДесятилетияДанные будут разделены по десятилетиям.
  • ВекаДанные будут разделены по векам.
Time Unit
Поле времени начала

Поле, которое будет использоваться для определения временного экстента и запроса для создания временных срезов.

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

Field
Поле времени окончания
(Дополнительный)

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

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

Field
Время начала итерации
(Дополнительный)

Создает подмножество данных, начиная с указанного значения datetime и после него.

Date
Привязать дату и время начала итерации к данным
(Дополнительный)

Указывает, будет ли начало итерации совпадать с ближайшей датой в данных.

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

    Например, если значение параметра Время начала итерации равно 2022-01-01, а данные начинаются с 2022-01-06, итерация начнется с 2022-01-06 и разделит данные на временной интервал, заданный параметром Интервал временного шага. В случае интервала шага в один месяц срез будет с 2022-01-06 по 2022-02-06 и так далее.

  • Не отмечено — начало итерации будет соответствовать дате, указанной для параметра Время начала итерации. Это значение по умолчанию

    Например, если значение параметра Время начала итерации равно 2022-01-01, а данные начинаются с 2022-01-06, итерация начнется с 2022-01-01 и разделит данные на временной интервал, заданный параметром Интервал временного шага. В случае интервала шага в один месяц срез будет с 2022-01-01 по 2022-02-01 и так далее.

Boolean
Время окончания итерации
(Дополнительный)

Создает поднабор данных до указанного значения datetime и заканчивающегося на нем.

Date
Привязать дату и время окончания итерации к данным
(Дополнительный)

Указывает, будет ли окончание итерации совмещено с ближайшей датой в данных.

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

    Например, если значение параметра Время окончания итерации равно 2022-12-31, а данные заканчиваются на 2022-12-28, итерация завершится на 2022-12-28. Последний срез может быть меньше заданного интервала временного шага.

  • Не отмечено — окончание итерации будет соответствовать ближайшей дате, указанной для параметра Время окончания итерации. Это значение по умолчанию

    Например, если значение параметра Время окончания итерации равно 2022-12-31, а данные заканчиваются на 2022-12-28, итерация завершится на 2022-12-31. Последний срез будет разделен в соответствии с временным интервалом, но завершится в значении, указанном для Время окончания итерации datetime.

Boolean
Включить начало
(Дополнительный)

Указывает, будет ли время начала включено в каждый временной срез.

  • Отмечено — время начала будет включено в каждый временной срез. Это значение по умолчанию
  • Не отмечено — время начала не будет включено в каждый временной срез.
Boolean
Включить окончание
(Дополнительный)

Указывает, будет ли время окончания включено в каждый временной срез. Отметка Включить начало и Включить окончание приведет к двойному подсчету одного и того же события. Если событие произошло в конце предыдущего среза, оно также будет засчитано в следующем срезе (включая начало). Это может понадобиться для непрерывных событий. Например, пожар продолжался три дня, а вы хотите узнать общее количество новых и существующих записей о пожарах.

  • Отмечено — будут включены значения, которые меньше или равны времени окончания.
  • Не отмечено — будут включены значения меньше времени окончания. Это значение по умолчанию
Boolean
Пропустить пустые значения
(Дополнительный)

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

  • Отмечено — строки с пустыми значениями datetime не будут включены. Это значение по умолчанию
  • Не отмечено — строки с пустыми значениями datetimes будут включены.

Снимите отметку с этого параметра в следующих случаях:

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

Boolean
Форматировать выходную строку времени
(Дополнительный)

Указывает, будут ли зарезервированные символы удалены из выходных значений параметров Время начала и Время окончания. Будут сохранены только буквенно-цифровые символы и символы подчеркивания.

  • Отмечено — зарезервированные символы будут удалены из выходных значений параметров Время начала и Время окончания. Например, если значение datetime равно 2022-01-01 08:30:00, отформатированная строка будет иметь вид 2022_01_01_08_30_00.
  • Не отмечено — зарезервированные символы не будут удалены из выходных значений параметров Время начала и Время окончания. Это значение по умолчанию
Boolean
Пропустить пустые срезы
(Дополнительный)

Указывает, будут ли удаляться пустые (количество строк = 0) временные срезы. Пустой временной срез не содержит строк.

  • Отмечено — пустые временные срезы будут удалены. Например, во входных данных нет записей для 2022-01-02 и 2022-01-03. Для периода с 2022-01-01 по 2022-01-05 с интервалом в один день эта опция позволяет пропустить эти два временных среза, и пустой слой не будет возвращен. Это значение по умолчанию
  • Не отмечено — пустые временные срезы не будут удалены. Например, во входных данных нет записей для 2022-01-02 и 2022-01-03. Для периода с 2022-01-01 по 2022-01-05 с интервалом в один день эта опция позволяет сохранить эти два временных среза, и пустые слои будут возвращены.
Boolean

Производные выходные данные

ПодписьОписаниеТип данных
Слой выходного времени

Слой с выбранными строками, соответствующими критериям выделения временных срезов.

Any Value
Время начала

Время начала для каждого среза

String
Время окончания

Время окончания для каждого среза.

String
Количество

Количество строк в каждом срезе.

Long

Параметры среды

Этот инструмент не использует параметры среды геообработки