Ajouter des itinéraires (Location Referencing)

Disponible avec la licence Location Referencing.

Synthèse

Ajoute des itinéraires à partir d’une polyligne en entrée à un réseau LRS.

Remarque :

Lorsque la couche cible est une couche de service d’entités, les résultats de validation pour cet outil sont écrits dans le répertoire ArcGIS Server. Ce fichier est automatiquement nettoyé par défaut en 10 minutes, ce qui risque de ne pas être suffisant pour traiter toutes les validations et les écrire sur le poste de travail exécutant ArcGIS Pro. Pour les charges de données plus volumineuses, il est recommandé de régler l’âge de fichier maximal sur une heure au moins.

En savoir plus sur le réglage de ce paramètre de répertoire de serveur dans le gestionnaire

Utilisation

  • Un jeu de données LRS est requis pour exécuter cet outil. Pour créer un jeu de données LRS, ajoutez les couches de point de calibrage, d’axe médian et Redline dans un jeu de classes d’entités, puis exécutez l’outil Modifier LRS avec la géodatabase en entrée.

  • Cet outil crée des axes médians dans le jeu de données LRS cible ainsi que des itinéraires dans le réseau LRS cible.

  • Les valeurs x, y et z des itinéraires en sortie proviennent des sommets polylignes en entrée, mais aucune valeur m ne sera ajoutée.

  • Créez des nouveaux champs qui seront utilisés pour l’appariement de champs dans la classe d’entités de réseau LRS sous-jacente avant l’ajout d’itinéraires.

  • La référence spatiale, la résolution x,y et la tolérance x,y de la classe d’entités polylignes en entrée doivent correspondre à celles du réseau LRS cible.

  • Un journal texte, qui indique que l’outil a été exécuté, est écrit en local. Il contient des informations sur les itinéraires dont la validation a échoué. Les messages de l’outil indiquent l’emplacement du journal texte, qui se trouve dans le répertoire temporaire.

  • La sortie de cet outil est un réseau LRS modifié auquel des itinéraires ont été ajoutés et pour lequel des entités d’axe médian ont été créées.

  • Cet outil prend en charge la prévention des conflits et tentera d’acquérir et de transférer des verrous.

  • Lorsque la prévention des conflits est activée, les paramètres suivants sont pris en charge :

    • Si les itinéraires à ajouter sont nouveaux, aucun verrou ne sera acquis pour ces itinéraires.
    • Pour les autres types de charge, tels que RETIRE_BY_ROUTE_ID et REPLACE_BY_ROUTE_ID, des verrous seront automatiquement acquis, le cas échéant.
    • Si les verrous ne peuvent pas être acquis, l’outil ne s’exécutera pas et fournira le fichier texte des verrous fautifs.
    • Si vous utilisez la version par défaut, les verrous acquis seront automatiquement libérés une fois l’exécution de l’outil terminée.
    • Si vous utilisez une version enfant, les verrous acquis resteront à l’état ON POST (SUR RÉINJECTION), une fois l’exécution de l’outil terminée. Réinjectez ou supprimez la version pour libérer les verrous.
    • Si vous utilisez une version enfant et que l’exécution de l’outil est annulée par une interruption, les verrous seront acquis et garderont le statut libérable Yes (Oui). Le propriétaire du verrou peut libérer le verrou.

      En savoir plus sur la libération des verrous dans ArcGIS Pipeline Referencing ou la libération des verrous dans ArcGIS Roads and Highways.

    En savoir plus sur la prévention des conflits dans Pipeline Referencing ou la prévention des conflits dans Roads and Highways.

  • Si le réseau LRS cible est configuré en tant que réseau linéaire avec prise en charge d’un ID d’itinéraire à champs multiples, les paramètres suivants ne sont pas requis pour l’ajout d’itinéraires :

    • Champ de nom d’itinéraire
    • Champ de nom de ligne

  • L’outil recherche un réseau de distribution configuré avec le réseau LRS dans lequel les itinéraires sont chargés. Si un réseau de distribution de ce type est détecté, l’outil tient compte des axes médians existants pour ajouter des itinéraires. Si l’axe médian que vous ajoutez à un itinéraire ne comporte pas de valeur CenterlineID, cette dernière sera créée et un enregistrement de séquence d’axe médian sera ajouté. Si une valeur CenterlineID existe lorsque vous ajoutez un itinéraire, l’enregistrement de la séquence d’axe médian existant sera mis à jour en fonction de la valeur RouteID de l’itinéraire ajouté.

    Les conditions de prétraitement suivantes consignent une erreur qui doit être résolue pour que l’outil puisse être exécuté jusqu’à la fin :

    • Le chargement de l’entité itinéraire requiert un fractionnement de l’axe médian.
    • Les géométries x, y et z des axes médians et des itinéraires ne correspondent pas.
    • Un axe médian est une correspondance partielle (par exemple, si une partie de l’axe médian se trouve en dehors de la tolérance x, y et z).
    • Un itinéraire ajouté a un ou plusieurs axes médians entiers correspondant à la géométrie, mais certaines localisations sont dépourvues d’axes médians.
    • Des axes médians superposés sont détectés (le réseau de distribution n’autorise pas la superposition des axes médians).
    • Aucun axe médian ne correspond à un itinéraire ajouté.

    En savoir plus sur la gestion conjointe de Pipeline Referencing et d’un réseau de distribution

  • L’exécution de cet outil échoue si le paramètre Load Type (Type de charge) est défini sur Replace by route ID (Remplacer par ID d’itinéraire) ou Retire by route ID (Retirer par ID d’itinéraire) et que l’itinéraire source ne comporte pas les mêmes valeursRouteName et RouteID comme itinéraire cible.

  • Si l’option Replace by route ID (Remplacer par ID d’itinéraire) est sélectionnée, les enregistrements de la séquence d’axe médian et de l’itinéraire seront remplacés dans les itinéraires remplacés. Les points de calibrage sur l’itinéraire seront supprimés et devront être recréés ou rechargés.

Paramètres

ÉtiquetteExplicationType de données
Itinéraires source

Entrée à partir de laquelle les itinéraires sont dérivés. L’entrée peut être une classe d’entités polylignes, un shapefile, un service d’entités ou une classe d’entités de réseau LRS.

Feature Layer
Réseau LRS

Réseau LRS cible dans lequel les itinéraires sont chargés.

Feature Layer
Champ d’ID d’itinéraire

Champ dans la classe d’entités polylignes en entrée, qui sera apparié à l’ID d’itinéraire de réseau LRS. Le type de champ doit correspondre au type de champ RouteID du réseau LRS cible et doit être de type chaîne ou GUID. Si le champ est de type texte, sa longueur doit être inférieure ou égale à celle du champ RouteID cible.

Field
Champ de nom d’itinéraire

Champ dans la classe d’entités polylignes en entrée, qui sera apparié au nom d’itinéraire de réseau LRS. Le champ doit être de type chaîne et sa longueur doit être inférieure ou égale à celle du champ de nom d’itinéraire cible.

Field
Champ de date de début
(Facultatif)

Champ de date dans la classe d’entités polylignes en entrée, qui sera apparié en tant que valeur From Date Field (Champ de date de début) dans le réseau LRS. Si le champ n’est pas apparié, une valeur nulle représentant le début de la période sera indiquée pour tous les itinéraires ajoutés.

Field
Champ de date de fin
(Facultatif)

Champ de date dans la classe d’entités polylignes en entrée, qui sera apparié en tant que valeur To Date Field (Champ de date de fin) dans le réseau LRS. Si le champ n’est pas apparié, une valeur nulle représentant la fin de la période sera indiquée pour tous les itinéraires ajoutés.

Field
Champ d’ID de ligne
(Facultatif)

Champ dans la classe d’entités polylignes en entrée, qui sera apparié en tant qu’ID de ligne de réseau LRS. Ce paramètre est uniquement utilisé si le réseau LRS cible est un réseau linéaire LRS. Le type et la longueur du champ doivent correspondre à ceux du champ RouteID de la table de séquences d’axe médian.

Field
Champ de nom de ligne
(Facultatif)

Champ de type chaîne dans la classe d’entités polylignes en entrée, qui sera apparié en tant que nom de ligne de réseau LRS. Ce paramètre est uniquement utilisé si le réseau LRS cible est un réseau linéaire LRS.

Field
Champ d’ordre de ligne
(Facultatif)

Champ de type entier long dans la classe d’entités polylignes en entrée, qui sera apparié en tant qu’ordre de ligne de réseau LRS. Ce paramètre est uniquement utilisé si le réseau LRS cible est un réseau linéaire LRS.

En savoir plus sur les réseaux linéaires et l’ordre de ligne dans Pipeline Referencing ou les réseaux linéaires et l’ordre de ligne dans Roads and Highways.

Field
Appariement des champs
(Facultatif)

Contrôle la manière dont les informations attributaires dans les champs d’itinéraire seront transférées vers le réseau LRS en entrée. Les champs ne peuvent pas être ajoutés ni supprimés dans le réseau LRS cible, car les données des itinéraires source sont ajoutées à un réseau LRS existant dont le schéma est prédéfini. Même si vous pouvez définir des règles de combinaison pour chaque champ en sortie, l’outil ignore ces règles.

Field Mappings
Type de charge
(Facultatif)

Indique la manière dont les itinéraires ajoutés avec des superpositions de mesure ou de temporalité et possédant des ID d’événement identiques en tant qu’enregistrements Target Network (Réseau cible) seront chargés dans la classe d’entités de réseau.

  • AdditionLes itinéraires ajoutés seront chargés dans le réseau LRS cible. Si un ID d’itinéraire dans les itinéraires source existe déjà dans le réseau LRS cible avec la même temporalité, il sera écrit dans le journal en sortie en tant qu’itinéraire en double et doit être corrigé ou filtré avant la fin du processus de chargement. Il s’agit de l’option par défaut.
  • Retirer par ID d’itinéraireLes itinéraires ajoutés seront chargés dans le réseau LRS cible et les itinéraires dans le réseau LRS cible qui possèdent les mêmes ID d’itinéraire et superposition de temporalité que les itinéraires ajoutés seront retirés. Si l’itinéraire ajouté éclipse un itinéraire cible avec le même ID d’itinéraire, l’itinéraire cible sera supprimé.
  • Remplacer par ID d’itinéraireLes itinéraires ajoutés seront chargés dans le réseau LRS cible et les itinéraires dans le réseau LRS cible qui possèdent le même ID d’itinéraire que les itinéraires ajoutés seront supprimés.
String

Sortie obtenue

ÉtiquetteExplicationType de données
Réseau LRS

Couche d’entités de réseau LRS mise à jour.

Feature Layer
Fichier de résultats en sortie

Fichier texte qui détaille les modifications apportées par l’outil.

Text File

arcpy.locref.AppendRoutes(source_routes, in_lrs_network, route_id_field, route_name_field, {from_date_field}, {to_date_field}, {line_id_field}, {line_name_field}, {line_order_field}, {field_map}, {load_type})
NomExplicationType de données
source_routes

Entrée à partir de laquelle les itinéraires sont dérivés. L’entrée peut être une classe d’entités polylignes, un shapefile, un service d’entités ou une classe d’entités de réseau LRS.

Feature Layer
in_lrs_network

Réseau LRS cible dans lequel les itinéraires sont chargés.

Feature Layer
route_id_field

Champ dans la classe d’entités polylignes en entrée, qui sera apparié à l’ID d’itinéraire de réseau LRS. Le type de champ doit correspondre au type de champ RouteID du réseau LRS cible et doit être de type chaîne ou GUID. Si le champ est de type texte, sa longueur doit être inférieure ou égale à celle du champ RouteID cible.

Field
route_name_field

Champ dans la classe d’entités polylignes en entrée, qui sera apparié au nom d’itinéraire de réseau LRS. Le champ doit être de type chaîne et sa longueur doit être inférieure ou égale à celle du champ de nom d’itinéraire cible.

Field
from_date_field
(Facultatif)

Champ de date dans la classe d’entités polylignes en entrée, qui sera apparié en tant que valeur From Date Field (Champ de date de début) dans le réseau LRS. Si le champ n’est pas apparié, une valeur nulle représentant le début de la période sera indiquée pour tous les itinéraires ajoutés.

Field
to_date_field
(Facultatif)

Champ de date dans la classe d’entités polylignes en entrée, qui sera apparié en tant que valeur To Date Field (Champ de date de fin) dans le réseau LRS. Si le champ n’est pas apparié, une valeur nulle représentant la fin de la période sera indiquée pour tous les itinéraires ajoutés.

Field
line_id_field
(Facultatif)

Champ dans la classe d’entités polylignes en entrée, qui sera apparié en tant qu’ID de ligne de réseau LRS. Ce paramètre est uniquement utilisé si le réseau LRS cible est un réseau linéaire LRS. Le type et la longueur du champ doivent correspondre à ceux du champ RouteID de la table de séquences d’axe médian.

Field
line_name_field
(Facultatif)

Champ de type chaîne dans la classe d’entités polylignes en entrée, qui sera apparié en tant que nom de ligne de réseau LRS. Ce paramètre est uniquement utilisé si le réseau LRS cible est un réseau linéaire LRS.

Field
line_order_field
(Facultatif)

Champ de type entier long dans la classe d’entités polylignes en entrée, qui sera apparié en tant qu’ordre de ligne de réseau LRS. Ce paramètre est uniquement utilisé si le réseau LRS cible est un réseau linéaire LRS.

En savoir plus sur les réseaux linéaires et l’ordre de ligne dans Pipeline Referencing ou les réseaux linéaires et l’ordre de ligne dans Roads and Highways.

Field
field_map
(Facultatif)

Contrôle la manière dont les informations attributaires dans les champs d’itinéraire seront transférées vers le réseau LRS en entrée. Les champs ne peuvent pas être ajoutés ni supprimés dans le réseau LRS cible, car les données des itinéraires source sont ajoutées à un réseau LRS existant dont le schéma est prédéfini (définitions de champs). Même si vous pouvez définir des règles de combinaison pour chaque champ en sortie, l’outil ignore ces règles. La classe ArcPy FieldMappings peut être utilisée pour définir ce paramètre.

Field Mappings
load_type
(Facultatif)

Indique la manière dont les itinéraires ajoutés avec des superpositions de mesure ou de temporalité et possédant des ID d’événement identiques en tant qu’enregistrements Target Network (Réseau cible) seront chargés dans la classe d’entités de réseau.

  • ADDLes itinéraires ajoutés seront chargés dans le réseau LRS cible. Si un ID d’itinéraire dans les itinéraires source existe déjà dans le réseau LRS cible avec la même temporalité, il sera écrit dans le journal en sortie en tant qu’itinéraire en double et doit être corrigé ou filtré avant la fin du processus de chargement. Il s’agit de l’option par défaut.
  • RETIRE_BY_ROUTE_IDLes itinéraires ajoutés seront chargés dans le réseau LRS cible et les itinéraires dans le réseau LRS cible qui possèdent les mêmes ID d’itinéraire et superposition de temporalité que les itinéraires ajoutés seront retirés. Si l’itinéraire ajouté éclipse un itinéraire cible avec le même ID d’itinéraire, l’itinéraire cible sera supprimé.
  • REPLACE_BY_ROUTE_IDLes itinéraires ajoutés seront chargés dans le réseau LRS cible et les itinéraires dans le réseau LRS cible qui possèdent le même ID d’itinéraire que les itinéraires ajoutés seront supprimés.
String

Sortie obtenue

NomExplicationType de données
out_lrs_network

Couche d’entités de réseau LRS mise à jour.

Feature Layer
out_details_file

Fichier texte qui détaille les modifications apportées par l’outil.

Text File

Exemple de code

Exemple 1 d’utilisation de la fonction AppendRoutes (fenêtre Python)

L’exemple ci-dessous illustre l’utilisation de la fonction AppendRoutes dans la fenêtre Python pour ajouter des itinéraires à un réseau LRS existant, en les remplaçant en cas de superposition.

# Name: AppendRoutes_ex1.py
# Description: Append routes into an existing LRS Network, replacing those routes where an overlap occurs.
# Requires: ArcGIS Location Referencing

# Set tool variables
source_routes = r"C:\Data\UPDM.gdb\LRS\EngineeringNetwork"
in_lrs_network = r"C:\Data\NY_Data.gdb\LRS\P_Integrity\P_EngineeringNetwork"
route_id_field = "RouteId"
route_name_field = "RouteName"
from_date_field = "FromDate"
to_date_field = "ToDate"
line_id_field = "LineId"
line_name_field = "LineName"
line_order_field = "LineOrder"
field_map = None
load_type = "REPLACE_BY_ROUTE_ID"

# Execute the tool
arcpy.locref.AppendRoutes(source_routes, in_lrs_network, route_id_field, route_name_field, from_date_field, to_date_field, line_id_field, line_name_field, line_order_field, field_map, load_type)
Exemple 2 d’utilisation de la fonction AppendRoutes (script autonome)

L’exemple ci-dessous illustre l’utilisation de la fonction AppendRoutes en tant que script Python autonome.

# Name: AppendRoutes_ex2.py
# Description: Append records into an existing network feature class without performing any attribute field mapping.
# Requires: ArcGIS Location Referencing

# Import arcpy module
import arcpy

# Check out license
arcpy.CheckOutExtension("LocationReferencing")

# Local variables:
SourceRoutes = r"C:\Data\UPDM.gdb\LRS\EngineeringNetwork"
TargetNetwork = r"C:\Data\NY_Data.gdb\LRS\P_Integrity\P_EngineeringNetwork"
Route_ID = "RouteId"
Route_Name = "RouteName"
From_Date = "FromDate"
To_Date = "ToDate"
Line_ID = "LineId"
Line_Name = "LineName"
Line_Order = "LineOrder"

# Process: Append Routes
arcpy.locref.AppendRoutes(SourceRoutes, TargetNetwork, Route_ID, Route_Name, From_Date, To_Date, Line_ID, Line_Name, Line_Order, None, "ADD")

# Check in license
arcpy.CheckInExtension('LocationReferencing')
Exemple 3 d’utilisation de la fonction AppendRoutes (script autonome)

L’exemple ci-dessous illustre l’utilisation de la fonction AppendRoutes en tant que script Python autonome pour un réseau d’ID d’itinéraire généré par l’utilisateur.

# Name: AppendRoutes_ex3.py
# Description: Append records into an existing usergenerated routeId network feature class in a stand-alone script.
# Source fields : RS and RN, Target fields : RouteSystem and RouteNumber
# Requires: ArcGIS Location Referencing 

# Import arcpy module
import arcpy

# Check out license
arcpy.CheckOutExtension("LocationReferencing")

# Local variables:
SourceRoutes = r"C:\Data\DOT.gdb\LRS\RoutestoAppend"
TargetNetwork = r"C:\Data\DOT.gdb\LRS\StateRoutes"
RouteId = "RouteId"
RouteName = ""
FromDate = "FromDate"
ToDate = "ToDate"
LineId = ""
LineName = ""
LineOrder = ""
loadtype = "ADD"

# Define field mappings object
fieldMappings = arcpy.FieldMappings()  

# Add input fields
fldmap1 = arcpy.FieldMap()
fldmap1.addInputField(SourceRoutes, "RS")

fldmap2 = arcpy.FieldMap()
fldmap2.addInputField(SourceRoutes, "RN")

# Set output fields
fld1 = fldmap1.outputField  
fld1.name = "RouteSystem"
fld1.aliasName = "RouteSystem"
fldmap1.outputField = fld1

fld2 = fldmap2.outputField  
fld2.name = "RouteNumber"
fld2.aliasName = "RouteNumber"
fldmap2.outputField = fld2

# Add output fields to field mappings object
fieldMappings.addFieldMap(fldmap1)
fieldMappings.addFieldMap(fldmap2)

# Execute: Append Routes
arcpy.locref.AppendRoutes(SourceRoutes, TargetNetwork, RouteId, RouteName, FromDate, ToDate, LineId, LineName, LineOrder, fieldMappings, loadtype)

# Check in license
arcpy.CheckInExtension('LocationReferencing')
Exemple 4 d’utilisation de la fonction AppendRoutes (script autonome)

L’exemple ci-dessous illustre l’utilisation de la fonction AppendRoutes en tant que script Python autonome dans un service d’entités.

# Name: AppendRoutes_Pro_Ex4.py
# Description: Append routes using a feature service in a standa-alone script. It is recommended to work in a version and post it into the default version.
# Requires: ArcGIS Location Referencing

# Import arcpy module.
import arcpy

# Check out any necessary licenses.
arcpy.CheckOutExtension("LocationReferencing")

# Set tool variables.
sourceroute = r"C:\LocationReferencing\LR.gdb\LRS\routes"
route_name_field = "ROUTENAME"
from_date_field = "FROMDATE"
to_date_field = "TODATE"
line_id_field = "LINEID"
line_name_field = "LINENAME"
line_order_field = "ORDERID"
field_mapping = r'CREATIONUSER "Creation User" true true false 50 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,CREATIONUSER,0,50;DATECREATED "Date Created" true true false 8 Date 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,DATECREATED,-1,-1;DATEMODIFIED "Date Modified" true true false 8 Date 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,DATEMODIFIED,-1,-1;LASTUSER "Last User" true true false 50 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,LASTUSER,0,50;EVENTSOURCE "Event Source" true true false 50 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,EVENTSOURCE,0,50;LEGACYID "Legacy ID" true true false 38 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,LEGACYID,0,38;ENGFROMM "ENGFROMM" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,ENGFROMM,-1,-1;ENGTOM "ENGTOM" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,ENGTOM,-1,-1;OBJECTSTATUS "Object Status" true true false 20 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,OBJECTSTATUS,0,20;CONTINFROMM "Continuous from Measure" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,CONTINFROMM,-1,-1;CONTINTOM "Continuous to Measure" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,CONTINTOM,-1,-1'
load_type = "REPLACE_BY_ROUTE_ID"

## Target Route  is in feature service. Signing in portal is required to access the feature service.
arcpy.SignInToPortal('https://yourdomain.com/portal', 'username', 'password')

## Map the target route network from the feature service.Here, 18 corresponds to the target route network.
targetroute_network = r"https://yourdomain.com/server/rest/services/FeatureServiceName/FeatureServer/18"

# Process: Append Routes.
arcpy.locref.AppendRoutes(sourceroute, targetroute_network, route_id_field, route_name_field, from_date_field, to_date_field, line_id_field, line_name_field, line_order_field, field_mapping, load_type)

# Check in licenses
arcpy.CheckInExtension('LocationReferencing')

Informations de licence

  • Basic: Nécessite ArcGIS Location Referencing
  • Standard: Nécessite ArcGIS Location Referencing
  • Advanced: Nécessite ArcGIS Location Referencing

Rubriques connexes