Сводка
Выбирает записи на основе диапазонов даты и времени или свойств дат, например, одиночные даты, диапазоны, периоды, дни недели, месяцы или годы.
Использование
Входными данными должен быть векторный слой или представление таблицы.
Входные данные должны содержать поле даты. Если поле даты отсутствует, используйте инструмент Конвертировать поле времени, чтобы сгенерировать поле даты по датам, отформатированным как текст в текстовом поле.
Инструмент выполняет выборку, используя все критерии выборки, если любая часть данных не соответствует критериям, объект не будет выбран.
Чтобы использовать инструмент в модели или в скрипте, используйте инструмент Создать представление таблицы или Создать векторный слой, чтобы конвертировать входной класс объектов в представление таблицы или векторный слой, соответственно, перед запуском этого инструмента.
Синтаксис
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 | Задает, как будет применяться выборка и что произойдет, если выборка уже существует.
| String |
time_type | Определяет, как поля даты и времени будут использоваться для выбора записей.
| String |
date_field (Дополнительный) | Поле даты входного слоя, на котором будет основана выборка. Этот параметр активен только в случае, если параметр Тип времени задан как Одно поле времени. | Field |
start_date_field (Дополнительный) | Поле начальной даты диапазона, на котором будет основана выборка. Этот параметр активен только в случае, если параметр Тип времени задан как Поля временного диапазона. | Field |
end_date_field (Дополнительный) | Поле конечной даты диапазона, на котором будет основана выборка. Этот параметр активен только в случае, если параметр Тип времени задан как Поля временного диапазона. | Field |
selection_options [selection_options,...] (Дополнительный) | Задает способ выбора даты и времени.
| String |
date_selection_type (Дополнительный) | Задает выборку записей по диапазону дат, отдельной дате, недавнему периоду или относительному периоду. Это параметр активен только в тех случаях, когда параметр Опции выборки имеет значение Дата.
| String |
single_date (Дополнительный) | Выбирается одна дата и время. Этот параметр активен только в случае, если параметр Тип выборки даты задан как По одной дате. | Date |
start_date (Дополнительный) | Дата начала диапазона дат. Это параметр активен только в тех случаях, когда параметр Тип выборки даты имеет значение По диапазону дат. | Date |
end_date (Дополнительный) | Дата окончания диапазона дат. Это параметр активен только в тех случаях, когда параметр Тип выборки даты имеет значение По диапазону дат. | Date |
use_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,...] (Дополнительный) | Задает дни недели, в которые выбираются записи.
Это параметр активен только в тех случаях, когда параметр Опции выборки имеет значение День недели. | String |
months [months,...] (Дополнительный) | Задает месяцы, в которые выбираются записи.
Это параметр активен только в тех случаях, когда параметр Опции выборки имеет значение Месяц. | String |
years [years,...] (Дополнительный) | Задает год, в который выбираются записи. Это параметр активен только в тех случаях, когда параметр Опции выборки имеет значение Годы. | Long |
Производные выходные данные
Name | Объяснение | Тип данных |
out_layer_or_view | Обновленный входной слой с применением выборки. | Вид Таблица |
count | Число выбранных записей. | Long |
Пример кода
В следующем скрипте показано использование функции 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 в скрипте:
# 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: Да