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

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

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

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

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

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

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

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

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

Параметры

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

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

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 дня запуска инструмента, и этот параметр отмечен. В этом примере выборка для 14-дневного интервала времени будет с 17:00:00 1 января 2017 г. по 17:00:00 15 января 2017 г. Для того же примера, если этот параметр не отмечен, в качестве времени окончания для последнего периода используется начало текущего дня (на основе локального системного времени). В данном случае выборка для 14-дневного временного среза будет с 00:00:00 1 января 2017 г. по 00:00:00 15 января.

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

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:00 1 января 2017 г. по 17:00:00 15 января 2017 г. Если в том же примере выбрано NO_SYSTEM_TIME, в качестве времени окончания для последнего периода используется начало текущего дня (на основе локального системного времени). В данном случае выборка для 14-дневного временного среза будет с 00:00:00 1 января 2017 г. по 00:00:00 15 января.

Этот параметр активен, только если для параметра 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: Да

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