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ètre | Explication | Type 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à.
| String |
time_type | Spécifie de quelle façon les champs de date et heure sont utilisés pour sélectionner les registres.
| 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.
| 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).
| 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.
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.
| String |
months [months,...] (Facultatif) | Spécifie les mois utilisés pour sélectionner les registres.
| String |
years [years,...] (Facultatif) | Spécifie les années utilisées pour sélectionner les registres. | Long |
Sortie dérivée
Nom | Explication | Type 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
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")
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
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?