Seleccionar capa por fecha y hora (Análisis de criminalidad y seguridad)

Resumen

Selecciona registros basados en rangos de fecha y hora o propiedades de fecha, por ejemplo, fecha única, rango de tiempo, periodo de tiempo, días de la semana, mes o año.

Uso

  • La entrada debe ser una capa de entidades o una vista de tabla.

  • La entrada debe contener un campo de fecha. Si su entrada no contiene ningún campo de fecha, use la herramienta Convertir campo de tiempo para generar un campo de fecha derivado de fechas con formato de texto en un campo de texto.

  • Esta herramienta realiza una selección con todos los criterios de selección, en caso de que alguna parte de la fecha de entrada no coincida con dichos criterios, la entidad no se seleccionará.

  • Para usar esta herramienta en un modelo o script, use las herramientas Crear vista de tabla o Crear capa de entidades para convertir una clase de entidad de entrada en una vista de tabla o capa de entidades, respectivamente, antes de ejecutar esta herramienta.

Sintaxis

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})
ParámetroExplicaciónTipo de datos
in_layer_or_view

Los datos con un campo de fecha a los que se aplicará la selección.

Table View
selection_type

Especifica cómo se aplicará la selección y qué pasará si ya existe alguna.

  • NEW_SELECTION La selección resultante reemplaza a la selección actual. Esta es la opción predeterminada.
  • ADD_TO_SELECTION La selección resultante se agrega a la selección actual, si la hay. Si no existe ninguna selección, coincide con la opción de nueva selección.
  • REMOVE_FROM_SELECTION La selección resultante se quita de la selección actual. Si no existe ninguna selección, esta opción no tendrá efecto.
  • SUBSET_SELECTION La selección resultante se combina con la selección actual. Solo permanecen seleccionados los registros comunes a ambas selecciones.
String
time_type

Especifica cómo se usarán los campos de fecha y hora para seleccionar registros.

  • SINGLE_TIME_FIELDLos registros se seleccionarán en función de un campo de hora única en la entidad de entrada.
  • TIME_RANGE_FIELDSLos registros se seleccionarán en función de los campos de hora de inicio y finalización en la entidad de entrada.
String
date_field
(Opcional)

El campo de fecha de la capa de entrada en la que se basará la selección. Este parámetro está inactivo si Tipo de hora no está definido como Campo de hora única.

Field
start_date_field
(Opcional)

El campo de fecha de inicio del rango de hora en el que se basará la selección. Este parámetro está inactivo si Tipo de hora no está definido como Campos de rango de hora.

Field
end_date_field
(Opcional)

El campo de fecha de finalización del rango de hora en el que se basará la selección. Este parámetro está inactivo si Tipo de hora no está definido como Campos de rango de hora.

Field
selection_options
[selection_options,...]
(Opcional)

Especifica cómo se realizarán las selecciones de fecha y hora.

  • DATELa selección será por fecha.
  • TIMELa selección será por hora del día.
  • DAY_OF_WEEKLa selección será por día de la semana.
  • MONTHLa selección será por mes.
  • YEARLa selección será por año.
String
date_selection_type
(Opcional)

Especifica si los registros se seleccionarán en función de un rango de fecha, fecha única, periodo reciente o periodo de tiempo comparativo.

Este parámetro solo está activo si se especifica Fecha para el parámetro Opciones de selección.

  • DATE_RANGELos registros se seleccionarán en función del rango de fecha de inicio y finalización.
  • SINGLE_DATELos registros se seleccionarán en función de la fecha especificada.
  • RECENCYLos registros se seleccionarán en función de un periodo de tiempo relacionado con la fecha actual (fecha y hora del sistema), por ejemplo, en los últimos 14 días.
  • COMPARATIVELos registros se seleccionarán en función del periodo de tiempo inmediatamente anterior a un periodo de tiempo reciente en relación con la fecha actual (fecha y hora del sistema). Por ejemplo, si la fecha actual es 29 de enero y el periodo de tiempo es 14 días, se seleccionarán los registros desde el 1 de enero hasta el 14 de enero. Esta opción se puede usar junto con una selección Por reciente subsiguiente para comparar recuentos de registros entre dos periodos de tiempo adyacentes (por ejemplo, los dos periodos de tiempo de 14 días del 1 al 14 de enero y del 15 al 28 de enero).
String
single_date
(Opcional)

La fecha y hora únicas que se van a seleccionar.

Este parámetro solo está activo si se especifica Por fecha única para el parámetro Tipo de selección de fecha.

Date
start_date
(Opcional)

La fecha de inicio del rango de fecha.

Este parámetro solo está activo si se especifica Por rango de fechas para el parámetro Tipo de selección de fecha.

Date
end_date
(Opcional)

La fecha de finalización del rango de fecha.

Este parámetro solo está activo si se especifica Por rango de fechas para el parámetro Tipo de selección de fecha.

Date
use_system_time
(Opcional)

Especifica si los registros del día actual (hora local del sistema) se incluirán en la selección si existen en el periodo de tiempo reciente.

  • SYSTEM_TIMELos registros del día actual se incluirán en la selección.
  • NO_SYSTEM_TIMELos registros del día actual no se incluirán en la selección. Esta es la opción predeterminada.

Por ejemplo, el periodo de tiempo especificado son 14 días, la hora local del sistema son las 5:00 p.m. del 15 de enero cuando se ejecuta la herramienta, el periodo de tiempo actual incluye todos los registros entre las 5:00 p.m. de hace 14 días y las 5:00 p.m. del día en que se ejecuta la herramienta, y SYSTEM_TIME está seleccionado. En este ejemplo, la selección será desde el 1 de enero de 2017 a las 5:00:00 PM hasta el 15 de enero de 2017 a las 5:00:00 PM. Con este mismo ejemplo con NO_SYSTEM_TIME seleccionado, el periodo reciente utiliza el comienzo del día actual como la hora de finalización (en función de la hora local del sistema). En este caso, la selección será desde el 1 de enero de 2017 a las 12:00:00 AM hasta el 15 de enero a las 12:00:00 AM para el periodo de tiempo de 14 días.

Boolean
time_slice
(Opcional)

El número de unidades de tiempo (minutos, horas, días, semanas, meses o años) que definen el periodo de tiempo reciente en el que estará basada la selección, por ejemplo, en eventos de los últimos 14 días.

Este parámetro solo está activo si se especifican Por periodo de tiempo comparativo y Por reciente para el parámetro Tipo de selección de fecha.

Time Unit
start_time
(Opcional)

La hora de inicio del rango de hora.

Date
end_time
(Opcional)

La hora de finalización del rango de hora.

Date
days_of_week
[days_of_week,...]
(Opcional)

Especifica los días de la semana que se usarán para seleccionar registros.

  • MONDAYSe seleccionarán los registros que se produzcan los lunes.
  • TUESDAYSe seleccionarán los registros que se produzcan los martes.
  • WEDNESDAYSe seleccionarán los registros que se produzcan los miércoles.
  • THURSDAYSe seleccionarán los registros que se produzcan los jueves.
  • FRIDAYSe seleccionarán los registros que se produzcan los viernes.
  • SATURDAYSe seleccionarán los registros que se produzcan los sábados.
  • SUNDAYSe seleccionarán los registros que se produzcan los domingos.
String
months
[months,...]
(Opcional)

Especifica los meses que se usarán para seleccionar registros.

  • JANUARYSe seleccionarán los registros que se produzcan en enero.
  • FEBRUARYSe seleccionarán los registros que se produzcan en febrero.
  • MARCHSe seleccionarán los registros que se produzcan en marzo.
  • APRILSe seleccionarán los registros que se produzcan en abril.
  • MAYSe seleccionarán los registros que se produzcan en mayo.
  • JUNESe seleccionarán los registros que se produzcan en junio.
  • JULYSe seleccionarán los registros que se produzcan en julio.
  • AUGUSTSe seleccionarán los registros que se produzcan en agosto.
  • SEPTEMBERSe seleccionarán los registros que se produzcan en septiembre.
  • OCTOBERSe seleccionarán los registros que se produzcan en octubre.
  • NOVEMBERSe seleccionarán los registros que se produzcan en noviembre.
  • DECEMBERSe seleccionarán los registros que se produzcan en diciembre.
String
years
[years,...]
(Opcional)

Especifica los años que se usarán para seleccionar registros.

Long

Salida derivada

NombreExplicaciónTipo de datos
out_layer_or_view

Las entradas actualizadas con selecciones aplicadas.

Vista de tabla
count

El número de registros seleccionados.

Largo

Muestra de código

Ejemplo 1 de SelectLayerByDateAndTime (ventana de Python)

El siguiente script muestra cómo utilizar la función SelectLayerByDateAndTime en el modo inmediato.

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")
Ejemplo 2 de SelectLayerByDateAndTime (ventana independiente)

El siguiente script independiente es un ejemplo de cómo utilizar la función SelectLayerByDateAndTime en un script:

# 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")

Entornos

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados