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

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

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

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

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

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

  • Используйте параметр Поднабор для создания одного или нескольких поднаборов в каждом временном срезе. В таблице ниже показаны примеры различных значений для опций Задержка поднабора и Продолжительность поднабора при временном срезе с 1‑го января 2022 года, 1.00 (2022-01-01 01:00:00) до 2‑го января 2022 года, 1.00 (2022-01-02 01:00:00).

    СлучайЗначение поднабораРезультат

    1

    Задержка поднабора: 2 часа

    Продолжительность поднабора: 2 часа

    Будут возвращены данные с 3.00 (2022-01-01 00:03:00) до 5.00 (2022-01-01 00:05:00).

    2

    Задержка поднабора: 2 часа

    Продолжительность поднабора: 2 часа

    Задержка поднабора: 8 часов

    Продолжительность поднабора: 4 часа

    Будут возвращены данные с 3.00 (2022-01-01 00:03:00) до 5.00 (2022-01-01 00:05:00), и с 9.00 (2022-01-01 00:09:00) до 13.00 (2022-01-01 00:13:00).

    3

    Задержка поднабора: 2 часа

    Продолжительность поднабора: Нет

    Будут возвращены данные с 3.00 (2022-01-01 00:03:00) до 13.00 следующего дня (2022-01-02 00:01:00).

    4

    Задержка поднабора: 2 часа

    Продолжительность поднабора: 0 часов

    Будут возвращены данные с 3.00 (2022-01-01 00:03:00).

    Примеры поднаборов при итерации времени

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

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

  • Начало и окончание временных срезов вычисляются на основе комбинации значений параметров. В таблице ниже показаны ожидаемые результаты при использовании различных комбинаций параметров со снятой отметкой для параметра Пропустить пустые срезы. Например, экстент данных - с 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

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

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

    Если для параметров Время начала итерации и Время окончания итерации используются разные поля , строки с пустыми значениями будут пропущены по умолчанию. Снимите отметку Пропустить пустые значения, чтобы включить их в итерацию. В приведенных ниже таблицах показано, будет ли строка включена для выходных временных срезов с интервалом в 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.

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

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

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

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

Параметры

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

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

Table View; Feature Layer
Определение времени
(Дополнительный)

Определяет фильтр, который будет применен к данным.

  • НетФильтр применяться не будет.
  • Дни неделиДанные будут отфильтрованы с использованием значения параметра Дни.
  • МесяцыДанные будут отфильтрованы с использованием значения параметра Месяцы.
String
Месяцы
(Дополнительный)

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

Этот параметр активен, если для значения параметра Определение времени задано Месяцы.

  • ЯнварьБудут возвращены данные за Январь.
  • ФевральБудут возвращены данные за Февраль.
  • МартБудут возвращены данные за Март.
  • АпрельБудут возвращены данные за Апрель.
  • МайБудут возвращены данные за Май.
  • ИюньБудут возвращены данные за Июнь.
  • ИюльБудут возвращены данные за Июль.
  • АвгустБудут возвращены данные за Август.
  • СентябрьБудут возвращены данные за Сентябрь.
  • ОктябрьБудут возвращены данные за Октябрь.
  • НоябрьБудут возвращены данные за Ноябрь.
  • ДекабрьБудут возвращены данные за Декабрь.
String
Дни
(Дополнительный)

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

Этот параметр активен, если для значения параметра Определение времени задано Дни.

  • ПонедельникБудут возвращены данные за Понедельник.
  • ВторникБудут возвращены данные за Вторник.
  • СредаБудут возвращены данные за Среду.
  • ЧетвергБудут возвращены данные за Четверг.
  • ПятницаБудут возвращены данные за Пятница.
  • СубботаБудут возвращены данные за Субботу.
  • ВоскресеньеБудут возвращены данные за Воскресенье.
String
Интервал шкалы времени

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

Time Unit
Поднабор
(Дополнительный)

Один или несколько временных поднаборов в каждой итерации. Каждый поднабор определяется парой значений Задержка поднабора и Продолжительность поднабора.

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

Например, временной срез определен между 1-м января 2022 года, 1:00 (2022-01-01 01:00:00) и 2-м января 2022 года, 1:00 (2022-01-02 01:00:00) со значением Продолжительность поднабора - 2 часа.

  • Если Продолжительность поднабора - 2 часа, временной срез начнется в 3:00 (2022-01-01 00:03:00) и закончится в 5:00 (2022-01-01 00:05:00).
  • Если значение Продолжительности поднабора пустое, временной срез начнется в 3:00 (2022-01-01 00:03:00) и закончится в 1:00 следующего дня (2022-01-02 00:05:00).
  • Если Продолжительность поднабора - 0, будут возвращены данные только на 3:00 (2022-01-01 00:03:00).
Value Table
Поле времени начала

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

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

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

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

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

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

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

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
Время окончания итерации
(Дополнительный)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Отмечено — пустые временные срезы будут удалены. Например, во входных данных нет записей для 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

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

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