Mettre les entités à jour avec les registres d’incidents (Analyse criminelle et sécurité)

Résumé

Convertit une table non spatiale en entités ponctuelles en fonction de coordonnées x,y ou d’adresses et qui actualise un jeu de données existant avec des informations d’enregistrement nouvelles ou actualisées de la table.

Utilisation

  • Une classe d’entités ponctuelles ou une couche d’entités doit exister pour ajouter ou actualiser les enregistrements de la table en entrée.

  • Vous pouvez utiliser des données tabulaires exportées depuis votre système de répartition assisté par ordinateur ou système de gestion des enregistrements dans cet outil.

  • Cet outil prend en charge les formats tabulaires suivants en entrée :

    • Géodatabase
    • dBASE (.dbf)
    • Valeurs séparées par des virgules (.csv ou .txt)
    • Feuilles de calcul Microsoft Excel (.xls ou .xlsx)
    • Vues tabulaires en mémoire

    Dans le cas d'une entrée de fichier (.csv ou .txt), la première ligne du fichier en entrée est utilisée comme nom des champs de la table en sortie. Les noms de champ ne peuvent pas contenir d'espaces ou de caractères spéciaux (tels que $ ou *). Vous recevrez une erreur si la première ligne du fichier en entrée contient des espaces ou des caractères spéciaux.

  • Les opérations de géocodage faisant appel à ArcGIS World Geocoding Service requièrent un abonnement d’organisation ArcGIS Online et consomment des crédits. Le compte d’organisation doit disposer de suffisamment de crédits pour satisfaire à la totalité de la demande de géocodage.

  • Lorsque la table du paramètre Invalid Records Table (Table des enregistrements non valides) facultatif est créée, la table contient des enregistrements qui n’ont pas été traités comme entités nouvelles ou actualisées. L’enregistrement complet de la table en entrée est ajouté à la table du paramètre Invalid Records Table (Table des enregistrements non valides) ainsi qu’un champ INV_REASON. Le champ INV_REASON contient un code qui identifie la raison pour laquelle l’enregistrement n’a pas été traité comme entités nouvelles ou actualisées.

    Le champ INV_REASON est ajouté au paramètre Invalid Records Table (Table des enregistrements non valides) avec les codes suivants :

    • NULL_ADDR : tous les champs d’adresse dans l’enregistrement de la table en entrée contiennent des valeurs nulles.
    • NULL_ID : les champs d’ID en entrée l’enregistrement de la table en entrée contiennent des valeurs nulles.
    • NULL_XY : les champs de coordonnées x et y de la table en entrée contiennent une valeur nulle.
    • BAD_DATE : la date en entrée de l’enregistrement de la table en entrée est nulle ou ne peut pas être convertie en date valide.
    • BAD_ADDR : l’adresse candidate de l’enregistrement de la table en entrée n’est pas appariée.
    • BAD_FM : l’appariement de champ de l’enregistrement de la table en entrée n’a pas réussi car une valeur n’a pas pu être ajoutée au champ en sortie. Par exemple, vous ne pouvez pas ajouter des valeurs de texte dans des champs numériques, ni des valeurs de texte dans des champs de texte si elles dépassent la longueur autorisée pour le champ.
    • DUP_ID : l’enregistrement de la table en entrée a un ID dupliqué et n’a pas été mis à jour vers les entités cible car il est antérieur à l’enregistrement existant ou un enregistrement plus récent existe. Ceci est défini par la date de la dernière modification. Si la date de la dernière modification n’est pas utilisée, cela est défini par la valeur OBJECTID la plus élevée.

    Lorsque le paramètre Invalid Records Table (Table des enregistrements non valides) est vide, un fichier invalid_records_<timestamp>.fid est créé dans votre espace de travail temporaire. Ce fichier contient la valeur OBJECTID de chaque enregistrement Input Table (Table en entrée) impossible à ajouter ou à actualiser dans le paramètre Target Features (Entités cible).

  • Lorsque les paramètres Update Existing Target Features (Mettre à jour les entités cible existantes) et Update Geometry for Existing Features (Mettre à jour la géométrie pour les entités existantes) sont tous les deux activés (update_target = "UPDATE" dans Python et update_geometry = "UPDATE_GEOMETRY" dans Python, respectivement), les champs de localisation dans le paramètre Input Table (Table en entrée) sont comparés aux champs de localisation dans le paramètre Target Features (Entités cible) pour déterminer si la géométrie va être actualisée dans le paramètre Target Feature (Entité cible). Lorsque Location Type (Type de localisation) est défini sur Addresses (Adresses), les valeurs Address Fields (Champs d’adresse) sont comparées. Si une différence est détectée entre l’enregistrement Input Table (Table en entrée) et les valeurs de paramètre Target Features (Entités cible), la géométrie Target Features (Entités cible) est actualisée avec la position géocodée en fonction des champs d’adresse dans l’enregistrement Input Table (Table en entrée). L’enregistrement Input Table (Table en entrée) n’est pas géocodé si aucune différence n’est détectée.

Syntaxe

arcpy.ca.UpdateFeaturesWithIncidentRecords(in_table, target_features, location_type, {x_field}, {y_field}, {coordinate_system}, {address_locator}, {address_type}, {address_fields}, {invalid_records_table}, {where_clause}, {update_target}, {match_fields}, {in_date_field}, {target_date_field}, {update_matching}, {update_geometry}, {field_matching_type}, {field_mapping}, time_format)
ParamètreExplicationType de données
in_table

La table contenant les coordonnées x et y ou les adresses qui définissent la position des enregistrements.

Table View
target_features

La classe d’entités ponctuelles ou la classe d’entités à mettre à jour.

Feature Layer
location_type

Indique si les entités sont créées avec des coordonnées x,y ou des adresses.

  • COORDINATESLes entités sont créées avec les coordonnées x,y de l’enregistrement en entrée.
  • ADDRESSESLes entités sont créées avec l’adresse de l’enregistrement en entrée à l’aide d’un localisateur.
String
x_field
(Facultatif)

Champ de la table en entrée contenant les coordonnées X (ou longitude).

Ce paramètre n’est actif que si le paramètre location_type est défini sur COORDINATES.

Field
y_field
(Facultatif)

Champ de la table en entrée contenant les coordonnées Y (ou latitude).

Ce paramètre n’est actif que si le paramètre location_type est défini sur COORDINATES.

Field
coordinate_system
(Facultatif)

Système de coordonnées des coordonnées x et y.

Ce paramètre n’est actif que si le paramètre location_type est défini sur COORDINATES.

Coordinate System
address_locator
(Facultatif)

Localisateur d'adresses à utiliser pour géocoder la table d'adresses.

Lorsque ce paramètre est défini de façon à utiliser ArcGIS World Geocoding Service, cette opération peut consommer des crédits.

Remarque :

Lorsque vous utilisez un localisateur d’adresses local, l’ajout de l’extension .loc après le nom du localisateur à la fin du chemin du localisateur est facultatif.

Ce paramètre n’est actif que si le paramètre location_type est défini sur ADDRESSES.

Address Locator
address_type
(Facultatif)

Indique comment les champs d’adresses utilisés par le localisateur d’adresses sont appariés aux champs de la table d’adresses en entrée.

  • MULTI_FIELD_ADDRESSLes adresses sont fractionnées en plusieurs champs.
  • SINGLE_FIELD_ADDRESSLes adresses sont contenues dans un champ.

Sélectionnez SINGLE_FIELD_ADDRESS si l’adresse complète est stockée dans un champ de la table en entrée, par exemple, 303 Peachtree St NE, Atlanta, GA 30308. Sélectionnez MULTI_FIELD_ADDRESS si les adresses en entrée sont réparties sur plusieurs champs, tels que Adresse, Ville, Région et Code postal.

Ce paramètre n’est actif que si le paramètre location_type est défini sur ADDRESSES.

String
address_fields
[address_fields,...]
(Facultatif)

Les champs de la table en entrée qui correspondent aux champs d’adresses du localisateur d’adresses.

Certains localisateurs prennent en charge plusieurs adresses en entrée telles que Address, Address2 et Address3. Dans ce cas, le composant d’adresse peut être divisé en plusieurs champs et les champs d’adresse sont concaténés au moment du géocodage. Par exemple, 100, Main st et Apt 140 en trois champs ou 100 Main st et Apt 140 constituant deux champs 100 Main st Apt 140 lors du géocodage.

Si vous choisissez de ne pas apparier un champ d’adresse facultatif en entrée utilisé par le localisateur d’adresses à un champ dans la table d’adresses en entrée, spécifiez qu’il n’y a pas d’appariement en ne renseignant pas le nom de champ.

Ce paramètre n’est actif que si le paramètre location_type est défini sur ADDRESSES.

Value Table
invalid_records_table
(Facultatif)

La table en sortie contenant une liste des enregistrements non valides et des codes d’invalidation associés.

Table
where_clause
(Facultatif)

Expression SQL permettant de sélectionner un sous-ensemble d’enregistrements dans les jeux de données en entrée. Si plusieurs jeux de données en entrée sont spécifiés, ils seront tous évalués à l’aide de cette expression. Si aucun enregistrement ne correspond à l’expression pour un jeu de données en entrée, aucun enregistrement de ce jeu de données ne sera ajouté à la cible.

Pour plus d’informations sur la syntaxe SQL reportez-vous à la rubrique Référence SQL pour les expressions de requête utilisées dans ArcGIS.

SQL Expression
update_target
(Facultatif)

Indique si les enregistrements existants sont actualisés dans le paramètre target_features.

  • UPDATELes enregistrements du paramètre in_table sont actualisés dans le paramètre target_features s’ils sont présents.
  • APPENDLes enregistrements du paramètre in_table sont ajoutés au paramètre target_features. Il s’agit de l’option par défaut.
Boolean
match_fields
[match_fields,...]
(Facultatif)

Le ou les champs d’ID qui servent à déterminer les appariements entre les valeurs in_table et les valeurs target_features.

Ce paramètre n’est actif que si le paramètre update_target est défini sur UPDATE.

Value Table
in_date_field
(Facultatif)

La dernière date de modification des enregistrements in_table.

Les champs de type date et chaîne sont pris en charge.

Ce paramètre n’est actif que si le paramètre update_target est défini sur UPDATE.

Field
target_date_field
(Facultatif)

Le champ contenant la dernière date de modification des enregistrements target_features.

Ce champ doit être de type date.

Ce paramètre n’est actif que si le paramètre update_target est défini sur UPDATE.

Field
update_matching
(Facultatif)

Indique si seuls les enregistrements existants sont mis à jour ou si les enregistrements existants sont mis à jour et les nouveaux enregistrements sont ajoutés.

  • UPDATE_MATCHING_ONLYSeuls les enregistrements existants sont mis à jour.
  • UPSERTLes enregistrements existants sont mis à jour et les nouveaux enregistrements sont ajoutés. Il s’agit de l’option par défaut.

Ce paramètre n’est actif que si le paramètre update_target est défini sur UPDATE.

Boolean
update_geometry
(Facultatif)

Indique si la géométrie des entités existantes est mise à jour.

  • UPDATE_GEOMETRYLa géométrie des enregistrements existants est mise à jour lorsque les informations géométriques du paramètre in-table sont différentes de celles du paramètre target_features. Il s’agit de l’option par défaut.
  • KEEP_GEOMETRYLa géométrie des enregistrements existants n’est pas mise à jour.

Ce paramètre n’est actif que si le paramètre update_target est défini sur UPDATE.

Boolean
field_matching_type
(Facultatif)

Indique si les champs de la table en entrée doivent correspondre aux champs des entités cible pour que les données soient ajoutées.

  • AUTOMATICLes champs du jeu de données en entrée correspondent aux champs du jeu de données cible. Les champs qui ne correspondent pas sont ignorés. Il s'agit du paramètre par défaut.
  • FIELD_MAPIl n’est pas nécessaire que les champs du jeu de données en entrée correspondent aux champs du jeu de données cible. Les champs du jeu de données en entrée qui ne correspondent pas aux champs du jeu de données cible ne sont pas appariés au jeu de données cible à moins que l’appariement soit explicitement défini dans le paramètre Field Map (Appariement des champs).
String
field_mapping
(Facultatif)

Contrôle la manière dont les champs attributaires de la table en entrée sont transférés ou appariés aux entités cible.

Ce paramètre n’est actif que si le paramètre field_matching_type est défini sur FIELD_MAP.

Comme les valeurs de la table en entrée sont ajoutées à une entité cible existante possédant des champs prédéfinis, vous ne pouvez pas ajouter, supprimer ou modifier le type des champs dans l’appariement des champs. Vous pouvez en revanche définir des règles de combinaison pour chaque champ en sortie.

Les règles de combinaison permettent de spécifier la manière dont les valeurs de deux champs en entrée ou plus sont combinées ou fusionnées en une seule valeur en sortie. Plusieurs règles de combinaison permettent de déterminer de quelle manière sont renseignées les valeurs du champ en sortie.

  • Premier : utilisez la première valeur des champs en entrée.
  • Dernier : utilisez la dernière valeur des champs en entrée.
  • Joindre : concaténez (joignez) les valeurs des champs en entrée.
  • Somme : calculez le total des valeurs des champs en entrée.
  • Moyenne : calculez la moyenne des valeurs des champs en entrée.
  • Médiane : calculez la valeur médiane (milieu) des valeurs des champs en entrée.
  • Mode – Utilisez la valeur avec la plus haute fréquence.
  • Min. : utilisez la valeur minimale de toutes les valeurs des champs en entrée.
  • Max. : utilisez la valeur maximale de toutes les valeurs des champs en entrée.
  • Écart type : utilisez la méthode de classification par écart type sur les valeurs de tous les champs en entrée.
  • Total – Recherchez le nombre d'enregistrements inclus dans le calcul.

Dans Python, vous pouvez utiliser la classe FieldMappings pour définir ce paramètre.

Field Mappings
time_format

Le format du champ en entrée contenant les valeurs temporelles. Le type peut être Court, Long, Réel simple, Réel double, Texte ou Date. Vous pouvez choisir un format temporel standard dans la liste déroulante ou entrer un format personnalisé.

Remarque :

Les chaînes de format respectent la casse.

  • Si le type de données du champ temporel est date, aucun format horaire n'est requis.
  • Si le type de données du champ temporel est numérique (Court, Long, Réel simple ou Réel double), une liste de formats temporels numériques standard est fournie dans la liste déroulante.
  • Si le type de données du champ temporel est une chaîne, une liste de formats temporels de type chaîne standard est fournie dans la liste déroulante. Pour les champs de type chaîne, vous pouvez également choisir de spécifier un format temporel personnalisé. Par exemple, les valeurs temporelles ont pu être stockées dans un champ de type chaîne dans l'un des formats standard tels que aaaa/MM/dd HH:mm:ss ou dans un format personnalisé tel que dd/MM/aaaa HH:mm:ss. Pour le format personnalisé, vous pouvez également spécifier l'indicateur a.m., p.m. Certains formats répandus sont répertoriés ci-dessous :
    • aaaa : année représentée par quatre chiffres.
    • MM : mois sous forme de chiffres avec zéro de début pour les mois à un seul chiffre.
    • MMM : mois sous forme d'abréviation en trois lettres.
    • jj : jour du mois sous forme de chiffres avec un zéro de début pour les jours à un seul chiffre.
    • jjj : jour de la semaine sous forme d'abréviation en trois lettres.
    • hh : heures avec zéro de début pour les heures à un seul chiffre ; horloge de 12 heures.
    • hh : heures avec zéro de début pour les heures à un seul chiffre ; horloge de 24 heures.
    • mm : minutes avec zéro de début pour les minutes à un seul chiffre.
    • ss : secondes avec zéro de début pour les secondes à un seul chiffre.
    • t : chaîne de repère horaire d'un caractère, telle que A ou P.
    • tt : chaîne de repère horaire de plusieurs caractères, telle que AM ou PM.
    • unix_us : temps Unix en microsecondes.
    • unix_ms : temps Unix en millisecondes.
    • unix_s : temps Unix en secondes.
    • unix_hex : temps Unix au format hexadécimal.

Pour en savoir plus sur les formats de date et d'heure personnalisés

Ce paramètre n’est actif que si la valeur du paramètre in_date_field est un champ de texte et que la valeur du paramètre target_date_field est un champ de date, ou si la valeur en entrée du paramètre field_mapping est un champ de texte et la valeur en sortie un champ de date

Ce paramètre n’est actif que si le paramètre update_target est défini sur UPDATE.

String

Sortie dérivée

NomExplicationType de données
updated_target_features

Entités cible mises à jour.

Couche d’entités

Exemple de code

Exemple 1 d’utilisation de l’outil UpdateFeaturesWithIncidentRecords (fenêtre Python)

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

import arcpy
arcpy.env.workspace = r"C:\data\city_pd.gdb"
arcpy.ca.UpdateFeaturesWithIncidentRecords("C:/data/calls_for_service_records.csv",
                                           "calls_for_service_features",
                                           "COORDINATES",
                                           "Longitude",
                                           "Latitude",
                                           4326)
Exemple 2 d’utilisation de l’outil UpdateFeaturesWithIncidentRecords (script autonome)

Le script autonome suivant est un exemple d’utilisation de la fonction UpdateFeaturesWithIncidentRecords dans un script :

# Name: UpdateFeaturesWithIncidentRecords.py
# Description: Update the calls for service feature class with new updates from the records management system (RMS).
# Import script modules 
import arcpy
# Set the workspace
arcpy.env.workspace = r"C:/data/city_pd.gdb"
# Address Field Pairs formatted as ["Locator Address Field Name", "Input Field Name"]
address_field_pairs = [
        ["Address", "locdesc"],
        ["Address2", ""],
        ["Address3", ""],
        ["Neighborhood", ""],
        ["City", "municipality"],
        ["Subregion", ""],
        ["Region", "state"],
        ["Postal", "zip5"],
        ["PostalExt", ""],
        ["CountryCode", ""]
    ]

arcpy.ca.UpdateFeaturesWithIncidentRecords("C:/data/calls_for_service_records.csv",
                                          "calls_for_service_features",
                                           location_type="ADDRESSES",
                                           address_locator="https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service",
                                           address_type="MULTI_FIELD_ADDRESS",
                                           address_fields=address_field_pairs,
                                           update_target="UPDATE",
                                           match_fields=[["callid", "callid"]],
                                           update_matching="UPSERT",
                                           update_geometry="UPDATE_GEOMETRY",
                                           field_matching_type="AUTOMATIC")

Informations de licence

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

Rubriques connexes