Sélectionner une couche par date et heure (Analyse criminelle et sécurité)

Résumé

Sélectionne les registres en fonction des plages de date et heure ou des propriétés de date, par exemple, date unique, plage de temps, période, jours de la semaine, mois, ou année.

Utilisation

  • L'entrée doit être une couche d'entités ou vue tabulaire.

  • L’entrée doit contenir un champ de date. Si votre entrée ne comprend pas de champ de date, utilisez l’outil Convertir un champ temporel pour générer un champ de date à partir de dates au format texte d’un champ de texte.

  • Cet outil effectue utilise l’ensemble des critères de sélection pour effectuer une sélection. Lorsqu’une partie quelconque de la date en entrée ne correspond pas aux critères de sélection, l’entité n’est pas sélectionnée.

  • Pour utiliser cet outil dans un modèle ou script, utilisez l’outil Générer une vue tabulaire ou Générer une couche pour convertir une classe d'entités en entrée en vue tabulaire ou couche d’entités, respectivement, avant d’exécuter cet outil.

Syntaxe

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})
ParamètreExplicationType de données
in_layer_or_view

Les données contenant un champ de date sur lesquelles la sélection est appliquée.

Table View
selection_type

Détermine la manière dont la sélection doit être appliquée et ce qui se produit lorsqu’une sélection existe déjà.

  • NEW_SELECTION La sélection obtenue remplace la sélection courante. Il s’agit de l’option par défaut.
  • ADD_TO_SELECTION La sélection obtenue est ajoutée à la sélection courante. S'il n'existe aucune sélection, elle est identique à la nouvelle sélection.
  • REMOVE_FROM_SELECTION La sélection obtenue est supprimée de la sélection courante. S'il n'existe aucune sélection, cette option ne produit aucun effet.
  • SUBSET_SELECTION La sélection obtenue est associée à la sélection courante. Seuls les enregistrements communs aux deux restent sélectionnés.
String
time_type

Spécifie de quelle façon les champs de date et heure sont utilisés pour sélectionner les registres.

  • SINGLE_TIME_FIELDLes registres sont sélectionnés en fonction d’un seul champ temporel dans l’entité en entrée.
  • TIME_RANGE_FIELDSLes registres sont sélectionnés en fonction d’un champ Heure de début et de fin dans l’entité en entrée.
String
date_field
(Facultatif)

Le champ Date de la couche en entrée sur lequel sera basée la sélection. Ce paramètre est inactif si Time Type (Type de temps) n’est pas défini sur Single Time Field (Champ temporel unique).

Field
start_date_field
(Facultatif)

Le champ Date de début issu de plage de temps sur laquelle sera basée la sélection. Ce paramètre est inactif si Time Type (Type de temps) n’est pas défini sur Time Range Fields (Champs Plage temporelle).

Field
end_date_field
(Facultatif)

Le champ Date de fin issu de plage temporelle sur laquelle sera basée la sélection. Ce paramètre est inactif si Time Type (Type de temps) n’est pas défini sur Time Range Fields (Champs Plage temporelle).

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

Spécifie comment seront effectuées les sélections de date et heure.

  • DATELa sélection sera effectuée par date.
  • TIMELa sélection sera effectuée par heure de la journée.
  • DAY_OF_WEEKLa sélection sera effectuée par jour la semaine.
  • MONTHLa sélection sera effectuée par mois.
  • YEARLa sélection sera effectuée par année.
String
date_selection_type
(Facultatif)

Spécifie si les registres seront sélectionnés en fonction d’une plage de dates, d’une date unique, d’une période de récence, ou d’une période de comparaison.

Ce paramètre n’est actif que lorsque la Date est spécifiée pour le paramètre Selection Options (Options de sélection).

  • DATE_RANGELes registres seront sélectionnés en fonction d’une plage de dates de début et de fin.
  • SINGLE_DATELes registres seront sélectionnés en fonction de la date spécifiée.
  • RECENCYLa sélection des registres s’effectuera en fonction d’une période donnée par rapport à la date actuelle (date et heure système), par exemple, au cours des 14 derniers jours.
  • COMPARATIVELa sélection des registres s’effectuera en fonction de la période précédant immédiatement une période récente par rapport à la date actuelle (date et heure système). Par exemple, si la date actuelle est le 29 janvier et que la période considérée est 14 jours, les registres compris entre le 1er janvier et le 14 janvier seront sélectionnés. Cette option peut être combinée à une sélection By Recency (Par récence) afin de comparer le nombre de registres entre deux périodes adjacentes (par exemple, les deux périodes de 14 jours allant du 1er au 14 janvier et du 15 au 28 janvier).
String
single_date
(Facultatif)

La date et l’heure unique à sélectionner.

Ce paramètre n’est actif que lorsque By Single Date (Par date unique) est spécifié pour le paramètre Date Selection Type (Type de sélection de date).

Date
start_date
(Facultatif)

La date de début de la plage de dates.

Ce paramètre n’est actif que lorsque By Date Range (Par plage de dates) est spécifié pour le paramètre Date Selection Type (Type de sélection de date).

Date
end_date
(Facultatif)

La date de fin de la plage de dates.

Ce paramètre n’est actif que lorsque By Date Range (Par plage de dates) est spécifié pour le paramètre Date Selection Type (Type de sélection de date).

Date
use_system_time
(Facultatif)

Spécifie si les registres de la journée en cours (heure système locale) seront inclus dans la sélection s’ils existent dans la période récente.

  • SYSTEM_TIMELes registres de la journée en cours seront inclus dans la sélection.
  • NO_SYSTEM_TIMELes registres de la journée en cours ne seront pas inclus dans la sélection. Il s’agit de l’option par défaut.

Par exemple, si l’intervalle de temps spécifié est de 14 jours, que l’outil est exécuté le 15 janvier à 17 h 00 (heure système locale), la période de récence inclut tous les registres compris dans la période commençant 14 jours auparavant à 17 h, et le paramètre SYSTEM_TIME est sélectionné. Dans cet exemple, la sélection sera comprise entre le 1er janvier 2017, 17 h 00 et le 15 janvier 2017 à 17 h 00. Si l’on utilise le même exemple, en sélectionnant NO_SYSTEM_TIME, la période récente utilise le début de la journée actuelle comme heure de fin (selon l’heure système locale). Dans notre exemple, cela signifie que la sélection sera comprise entre le 1er janvier 2017 à minuit et le 15 janvier 2017 à minuit pour l’intervalle de 14 jours.

Boolean
time_slice
(Facultatif)

Le nombre d’unité de temps (minutes, heures, jours, semaines, mois, ou années) définissant la période récente sur laquelle sera basée la sélection, par exemple, les événements ayant eu lieu dans les 14 derniers jours.

Ce paramètre n’est actif que lorsque By Comparative Time Period (Par période comparative) et By Recency (Par récence) sont spécifiés pour le paramètre Date Selection Type (Type de sélection de date).

Time Unit
start_time
(Facultatif)

L’heure de début de la plage temporelle.

Date
end_time
(Facultatif)

L’heure de fin de la plage temporelle.

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

Spécifie les jours de la semaine utilisés pour sélectionner les registres.

  • MONDAYLes registres enregistrés le lundi seront sélectionnés.
  • TUESDAYLes registres enregistrés le mardi seront sélectionnés.
  • WEDNESDAYLes registres enregistrés le mercredi seront sélectionnés.
  • THURSDAYLes registres enregistrés le jeudi seront sélectionnés.
  • FRIDAYLes registres enregistrés le vendredi seront sélectionnés.
  • SATURDAYLes registres enregistrés le samedi seront sélectionnés.
  • SUNDAYLes registres enregistrés le dimanche seront sélectionnés.
String
months
[months,...]
(Facultatif)

Spécifie les mois utilisés pour sélectionner les registres.

  • JANUARYLes registres enregistrés en janvier seront sélectionnés.
  • FEBRUARYLes registres enregistrés en février seront sélectionnés.
  • MARCHLes registres enregistrés en mars seront sélectionnés.
  • APRILLes registres enregistrés en avril seront sélectionnés.
  • MAYLes registres enregistrés en mai seront sélectionnés.
  • JUNELes registres enregistrés en juin seront sélectionnés.
  • JULYLes registres enregistrés en juillet seront sélectionnés.
  • AUGUSTLes registres enregistrés en août seront sélectionnés.
  • SEPTEMBERLes registres enregistrés en septembre seront sélectionnés.
  • OCTOBERLes registres enregistrés en octobre seront sélectionnés.
  • NOVEMBERLes registres enregistrés en novembre seront sélectionnés.
  • DECEMBERLes registres enregistrés en décembre seront sélectionnés.
String
years
[years,...]
(Facultatif)

Spécifie les années utilisées pour sélectionner les registres.

Long

Sortie dérivée

NomExplicationType de données
out_layer_or_view

Entrées mises à jour avec sélections appliquées.

Vue tabulaire
count

Nombre d’enregistrements sélectionnés.

Longue

Exemple de code

Exemple 1 d'utilisation de la fonction SelectLayerByDateAndTime (fenêtre Python)

Le script ci-dessous illustre l’utilisation de la fonction SelectLayerByDateAndTime en mode immédiat.

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")
Exemple 2 d’utilisation de la fonction SelectLayerByDateAndTime (fenêtre autonome)

Le script autonome suivant est un exemple d'utilisation de la fonction SelectLayerByDateAndTime dans 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")

Environnements

Cet outil n'utilise pas d’environnement de géotraitement.

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes