Сводка
Выбирает записи на основе диапазонов даты и времени или свойств дат, например, одиночные даты, диапазоны, периоды, дни недели, месяцы или годы.
Использование
Входными данными должен быть векторный слой или представление таблицы.
Входные данные должны содержать поле даты. Если поле даты отсутствует, используйте инструмент Конвертировать поле времени, чтобы сгенерировать поле даты по датам, отформатированным как текст в текстовом поле.
Инструмент выполняет выборку, используя все критерии выборки, если любая часть данных не соответствует критериям, объект не будет выбран.
Чтобы использовать инструмент в модели или в скрипте, используйте инструмент Создать представление таблицы или Создать векторный слой, чтобы конвертировать входной класс объектов в представление таблицы или векторный слой, соответственно, перед запуском этого инструмента.
Синтаксис
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: Да