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

Сводка

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

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

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

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

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

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

Синтаксис

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})
ParameterОбъяснениеТип данных
in_layer_or_view

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

Table View
selection_type

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 года.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Long

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

NameОбъяснениеТип данных
out_layer_or_view

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

Вид Таблица
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")

Environments

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

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

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

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