Выбрать в слое по дате и времени (Анализ преступности и безопасность)

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

Выбирает записи на основе диапазонов даты и времени или свойств дат, например, одиночные даты, диапазоны, периоды, дни недели, месяцы или годы.

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

  • Входными данными должен быть векторный слой или представление таблицы.

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

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

  • Чтобы использовать инструмент в модели или в скрипте, используйте инструмент Создать представление таблицы или Создать векторный слой, чтобы конвертировать входной класс объектов в представление таблицы или векторный слой, соответственно, перед запуском этого инструмента.

Параметры

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

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

Table View; Feature Layer
Тип выборки

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

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

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

  • Одно поле времениЗаписи будут выбраны на основе одного поля времени во входном объекте.
  • Поля временного диапазонаЗаписи будут выбраны на основе одного полей начала и окончания во входном объекте.
String
Поле даты
(Дополнительный)

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

Field
Поле начальной даты
(Дополнительный)

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

Field
Поле конечной даты
(Дополнительный)

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

Field
Опции выборки
(Дополнительный)

Задает способ выбора даты и времени.

  • ДатаВыборка по времени.
  • ВремяВыборка по времени дня.
  • День неделиВыборка по дню недели.
  • МесяцВыборка по месяцу.
  • ГодВыборка по году.
String
Тип выборки времени
(Дополнительный)

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

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

  • По диапазону датЗаписи будут выбираться на основе начального и конечного диапазона дат.
  • По одной датеЗаписи будут выбираться на основе заданной даты.
  • По недавнимЗаписи будут выбираться на основе периода относительно текущей даты (системных даты и времени), например, за последние 14 дней.
  • По сравнительному периоду времениЗаписи будут выбираться на основе периода, предшествующего недавнему периоду, относительно текущей даты (системных даты и времени). Например, если текущая дата - это 29 января, а временной срез составляет 14 дней, будут выбраны записи с 1 по 14 января. Эта опция может использоваться в комбинации с последующей выборкой По недавним (RECENCY в Python) для сравнения числа записей в двух смежных периодах времени (например, два 14-дневных периода, 1–14 января и 15–28 января).
String
Дата
(Дополнительный)

Выбирается одна дата и время.

Этот параметр активен только в случае, если параметр Тип выборки даты задан как По одной дате.

Date
Дата начала
(Дополнительный)

Дата начала диапазона дат.

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

Date
Дата окончания
(Дополнительный)

Дата окончания диапазона дат.

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

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

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

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

Например, если срез времени задан как 14 дней, то при запуске инструмента локальное системное время будет 17:00 15 января, период времени давности включает все записи с 17:00 14 дней назад и 17:00 в день выполнения инструмента, и этот параметр отмечен. В данном примере в выборку войдут данные с 17:00 1 января до 17:00 15 января 2017 года. При использовании этого примера с отключенным параметром, последний период будет использовать начало текущего дня в качестве времени окончания (на основе локального системного времени). В данном случае в выборку войдут данные с 0:00:00 1 января до 0:00:00 15 января 2017 года.

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

Boolean
Временной срез
(Дополнительный)

Количество единиц измерения времени (минуты, часы, дни, недели, месяцы или годы), определяющее последний период времени, на котором будет основана выборка, например, события, произошедшие в последние 14 дней.

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

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

Время начала диапазона.

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

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

Время окончания диапазона.

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

Date
Дни недели
(Дополнительный)

Задает дни недели, в которые выбираются записи.

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

  • ПонедельникВыбираются записи за понедельник.
  • ВторникВыбираются записи за вторник.
  • СредаВыбираются записи за среду.
  • ЧетвергВыбираются записи за четверг.
  • ПятницаВыбираются записи за пятницу.
  • СубботаВыбираются записи за субботу.
  • ВоскресеньеВыбираются записи за воскресенье.
String
Месяцы
(Дополнительный)

Задает месяцы, в которые выбираются записи.

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

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

Задает год, в который выбираются записи.

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

Long

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

ПодписьОписаниеТип данных
Обновленный слой или представление таблицы

Обновленный входной слой с применением выборки.

Table View; Feature Layer
Количество строк

Число выбранных записей.

Long

arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view, selection_type, time_type, {date_field}, {start_date_field}, {end_date_field}, {selection_options}, {date_selection_type}, {single_date}, {start_date}, {end_date}, {use_system_time}, {time_slice}, {start_time}, {end_time}, {days_of_week}, {months}, {years})
ИмяОписаниеТип данных
in_layer_or_view

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

Table View; Feature Layer
selection_type

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

  • NEW_SELECTIONРезультирующая выборка заменяет текущую. Это значение по умолчанию
  • ADD_TO_SELECTIONРезультирующая выборка добавляется к текущей, если таковая существует. Если никакой выборки нет, данная опция работает так же, как и опция создания новой выборки.
  • REMOVE_FROM_SELECTIONРезультирующая выборка будет удалена из текущей выборки. Если во входном слое объекты не были выбраны, выбор данной опции не приведет ни к какому результату.
  • SUBSET_SELECTIONРезультирующая выборка будет соединена с текущей выборкой. Выбранными останутся только те записи, которые являются общими для обеих выборок.
String
time_type

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

  • SINGLE_TIME_FIELDЗаписи будут выбраны на основе одного поля времени во входном объекте.
  • TIME_RANGE_FIELDSЗаписи будут выбраны на основе одного полей начала и окончания во входном объекте.
String
date_field
(Дополнительный)

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

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

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

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

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

Field
selection_options
[selection_options,...]
(Дополнительный)

Задает способ выбора даты и времени.

  • DATEВыборка по времени.
  • TIMEВыборка по времени дня.
  • DAY_OF_WEEKВыборка по дню недели.
  • MONTHВыборка по месяцу.
  • YEARВыборка по году.
String
date_selection_type
(Дополнительный)

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

Это параметр активен только в тех случаях, когда параметр selection_options установлен на DATE.

  • DATE_RANGEЗаписи будут выбираться на основе начального и конечного диапазона дат.
  • SINGLE_DATEЗаписи будут выбираться на основе заданной даты.
  • RECENCYЗаписи будут выбираться на основе периода относительно текущей даты (системных даты и времени), например, за последние 14 дней.
  • COMPARATIVEЗаписи будут выбираться на основе периода, предшествующего недавнему периоду, относительно текущей даты (системных даты и времени). Например, если текущая дата - это 29 января, а временной срез составляет 14 дней, будут выбраны записи с 1 по 14 января. Эта опция может использоваться в комбинации с последующей выборкой По недавним (RECENCY в Python) для сравнения числа записей в двух смежных периодах времени (например, два 14-дневных периода, 1–14 января и 15–28 января).
String
single_date
(Дополнительный)

Выбирается одна дата и время.

Это параметр активен только в тех случаях, когда параметр date_selection_type установлен на SINGLE_DATE.

Date
start_date
(Дополнительный)

Дата начала диапазона дат.

Это параметр активен только в тех случаях, когда параметр date_selection_type установлен на DATE_RANGE.

Date
end_date
(Дополнительный)

Дата окончания диапазона дат.

Это параметр активен только в тех случаях, когда параметр date_selection_type установлен на DATE_RANGE.

Date
use_system_time
(Дополнительный)

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

  • SYSTEM_TIMEЗаписи текущего дня будут включены в выборку.
  • NO_SYSTEM_TIMEЗаписи текущего дня не будут включены в выборку. Это значение по умолчанию

Например, задан период 14 дней, локальное время запуска инструмента 17:00 15 января, недавний временной интервал включает все записи с 17:00 на дату 14 дней назад до 17:00 в день запуска инструмента, и параметр SYSTEM_TIME включен. В данном примере в выборку войдут данные с 17:00 1 января до 17:00 15 января 2017 года. При использовании этого примера с выбранным NO_SYSTEM_TIME, последний период будет использовать начало текущего дня в качестве времени окончания (на основе локального системного времени). В данном случае в выборку войдут данные с 0:00:00 1 января до 0:00:00 15 января 2017 года.

Это параметр активен только в тех случаях, когда параметр date_selection_type установлен на COMPARATIVE или RECENCY.

Boolean
time_slice
(Дополнительный)

Количество единиц измерения времени (минуты, часы, дни, недели, месяцы или годы), определяющее последний период времени, на котором будет основана выборка, например, события, произошедшие в последние 14 дней.

Это параметр активен только в тех случаях, когда параметр date_selection_type установлен на COMPARATIVE или RECENCY.

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

Время начала диапазона.

Это параметр активен только в тех случаях, когда параметр selection_options установлен на TIME.

Date
end_time
(Дополнительный)

Время окончания диапазона.

Это параметр активен только в тех случаях, когда параметр selection_options установлен на TIME.

Date
days_of_week
[days_of_week,...]
(Дополнительный)

Задает дни недели, в которые выбираются записи.

  • MONDAYВыбираются записи за понедельник.
  • TUESDAYВыбираются записи за вторник.
  • WEDNESDAYВыбираются записи за среду.
  • THURSDAYВыбираются записи за четверг.
  • FRIDAYВыбираются записи за пятницу.
  • SATURDAYВыбираются записи за субботу.
  • SUNDAYВыбираются записи за воскресенье.

Это параметр активен только в тех случаях, когда параметр selection_options установлен на DAY_OF_WEEK.

String
months
[months,...]
(Дополнительный)

Задает месяцы, в которые выбираются записи.

  • JANUARYВыбираются записи за январь.
  • FEBRUARYВыбираются записи за февраль.
  • MARCHВыбираются записи за март.
  • APRILВыбираются записи за апрель.
  • MAYВыбираются записи за май.
  • JUNEВыбираются записи за июнь.
  • JULYВыбираются записи за июль.
  • AUGUSTВыбираются записи за август.
  • SEPTEMBERВыбираются записи за сентябрь.
  • OCTOBERВыбираются записи за октябрь.
  • NOVEMBERВыбираются записи за ноябрь.
  • DECEMBERВыбираются записи за декабрь.

Это параметр активен только в тех случаях, когда параметр selection_options установлен на MONTH.

String
years
[years,...]
(Дополнительный)

Задает год, в который выбираются записи.

Это параметр активен только в тех случаях, когда параметр selection_options установлен на YEAR.

Long

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

ИмяОписаниеТип данных
out_layer_or_view

Обновленный входной слой с применением выборки.

Table View; Feature Layer
count

Число выбранных записей.

Long

Пример кода

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

В следующем скрипте показано использование функции SelectLayerByDateAndTime в режиме прямого запуска.

import arcpy
arcpy.env.workspace = r"C:/data/city_pd.gdb"

arcpy.ca.SelectLayerByDateAndTime("Crimes",
                                "NEW_SELECTION",
                                "SINGLE_TIME_FIELD",
                                "offendate",
                                None,
                                None,
                                "DATE",
                                "DATE_RANGE",
                                None,
                                "8/1/2018",
                                "8/31/2018")
SelectLayerByDateAndTime, пример 2 (автономное окно)

Автономный скрипт – пример использования функции SelectLayerByDateAndTime в скрипте:

# Name: SelectLayerByDateAndTime.py
# Description: Select crimes that occurred in the past 28 days, from 9 PM to 1 PM, on the weekend, from the month of October to December,
#              in the year 2018, and show the selection count. Finally, make a selection based on all the queries above.

# Import script modules
import arcpy

# Set the workspace
arcpy.env.workspace = r"C:\data\city_pd.gdb"

# Convert Feature class to table view
arcpy.management.MakeTableView("Crimes", "Crimes_View")

lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",
                                                selection_type="NEW_SELECTION",
                                                time_type="SINGLE_TIME_FIELD",
                                                date_field="offendate",
                                                selection_options="DATE",
                                                date_selection_type="RECENCY",
                                                time_slice="28 Days")

arcpy.AddMessage("Crimes that occurred in past 28 days: {}".format(str(count)))
arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")

lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",
                                                selection_type="NEW_SELECTION",
                                                time_type="SINGLE_TIME_FIELD",
                                                date_field="offendate",
                                                selection_options="TIME",
                                                start_time="9:00 PM",
                                                end_time="1:00 AM")

arcpy.AddMessage("All crimes that occurred between 9PM and 1AM: {}".format(count))
arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")

lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",
                                                selection_type="NEW_SELECTION",
                                                time_type="SINGLE_TIME_FIELD",
                                                date_field="offendate",
                                                selection_options="DAY_OF_WEEK",
                                                days_of_week=["SATURDAY", "SUNDAY"])

arcpy.AddMessage("All crimes that occurred on the weekend: {}".format(count))
arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")

lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",
                                                selection_type="NEW_SELECTION",
                                                time_type="SINGLE_TIME_FIELD",
                                                date_field="offendate",
                                                selection_options="MONTH",
                                                months=["OCTOBER", "NOVEMBER", "DECEMBER"])

arcpy.AddMessage("All crimes that occurred October through December: {}".format(count))
arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")


lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",
                                                selection_type="NEW_SELECTION",
                                                time_type="SINGLE_TIME_FIELD",
                                                date_field="offendate",
                                                selection_options="YEAR",
                                                years=[2018])

arcpy.AddMessage("All crimes that occurred in the year 2018: {}".format(count))
arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")


# Combine selection options for more detailed time queries
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",
                                                selection_type="NEW_SELECTION",
                                                time_type="SINGLE_TIME_FIELD",
                                                date_field="offendate",
                                                selection_options=["TIME", "DAY_OF_WEEK", "MONTH","YEAR"],
                                                start_time="9:00 PM",
                                                end_time="1:00 AM",
                                                days_of_week=["SATURDAY", "SUNDAY"],
                                                months=["OCTOBER", "NOVEMBER", "DECEMBER"],
                                                years=[2018])

message = """All crimes that occurred in the year 2018 during the months
of October through November on the weekends from 9PM to 1AM: {}
""".format(count)

arcpy.AddMessage(message)
arcpy.management.SelectLayerByAttribute("Crimes_View", "CLEAR_SELECTION")

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

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

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да

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