Connecter des sources de transport de jeux de données réseau aux rues (Conversion)

Synthèse

Connecte les arrêts de transport aux entités de rue pour une utilisation dans un jeu de données réseau de transport. Cet outil crée les classes d’entités StopsOnStreets et StopConnectors définies par le modèle de données de transport en commun Network Analyst et doit s’exécuter dans le cadre d’un processus de plus grande ampleur pour créer un jeu de données réseau de transport décrit dans Créer et utiliser un jeu de données réseau avec des données de transport en commun.

Pour modéliser de manière réaliste les transports en commun dans un jeu de données réseau, le réseau doit permettre aux piétons de marcher vers les arrêts de transport, de voyager, puis de marcher jusqu’à leur destination. Le réseau doit inclure les données de transport en commun et les données de rues, tandis que les arrêts et les lignes de transport doivent être connectés aux rues de manière contrôlée. Les piétons doivent uniquement être autorisés à accéder aux lignes de transport ou à en sortir aux arrêts et les arrêts doivent être connectés aux rues. Cet outil assure une telle connexion.

L’outil crée une copie de la classe d’entités Stops, qui doit être présente dans le jeu de classes d’entités cible, et capture les entités Stops copiées sur les entités de rue en entrée, en fonction de la distance et de l’expression de recherche spécifiées. Il crée ensuite des entités StopConnectors en générant une ligne droite entre chaque arrêt et sa copie capturée, créant une connexion entre l’emplacement de l’arrêt et l’emplacement où il est ancré à une entité de rue. Des sommets sont ajoutés aux entités de rue en entrée aux emplacements des arrêts capturés pour assurer une bonne connectivité de jeu de données réseau.

Les arrêts de transport peuvent être connectés aux rues à l’aide d’une version capturée des arrêts, d’une ligne de connecteur et d’un sommet sur l’entité de rue.
Cette illustration montre comment les arrêts de transport peuvent être connectés aux entités de rue dans le jeu de données réseau. La partie 1 montre un arrêt de transport (cercle orange) le long d’une ligne de transport (ligne bleue). La partie 2 montre un sommet (triangle vert) ajouté au point le plus proche de l’entité de rue la plus proche (ligne noire). La partie 3 montre une copie de l’arrêt capturé sur l’entité de rue (cercle violet). La partie 4 montre une ligne de connecteur générée pour connecter l’arrêt à la rue. Les piétons voyagent entre les rues et la ligne de transport est modélisée à l’aide de ces connexions et de la règle de connectivité du jeu de données réseau.

Utilisation

  • Le jeu de classes d’entités utilisé dans cet outil doit déjà exister et contenir une classe d’entités ponctuelles appelée Stops avec la structure décrite par le modèle de données de transport en commun Network Analyst. Une classe d’entités Stops valide peut être créée à l’aide de l’outil GTFS vers Sources de transport de jeux de données réseau.

  • L’outil capture les arrêts de transport en commun du jeu de classes d’entités cible sur les entités de rue. Comme pour n’importe quelle opération de mise à jour, il est préférable que toutes les entités figurent dans la même référence spatiale pour éviter les erreurs potentielles. Il est recommandé de vous assurer que le jeu de classes d’entités cible et les entités de rue en entrée ont la même référence spatiale.

  • Les entités de rue en entrée sont modifiées après l’exécution de l’outil. Des sommets sont ajoutés aux emplacements où les entités StopsOnStreets croisent les rues. Si vous ne souhaitez pas modifier les données de rue, effectuez-en une copie avant d’exécuter cet outil.

  • Si la classe d’entités Stops en entrée contient des stations parentes (entités présentant une valeur GStopType de 1), ces dernières sont connectées aux rues et les arrêts enfants sont connectés à la station parente. Les arrêts ayant des stations parentes ne sont pas directement connectés aux rues.

    Un arrêt avec une station parente
    Voici un arrêt avec une station parente. L’arrêt (cercle orange) se connecte à la station parente (carré bleu) à l’aide d’une ligne de connecteur (ligne grise) avec ConnectorType 1. La station parente se connecte à la rue à l’aide d’une ligne de connecteur avec ConnectorType 0.

  • Si la classe d’entités Stops en entrée contient des entrées de stations (entités présentant une valeur GStopType de 2), ces dernières sont capturées sur les rues et les stations parentes sont connectées aux entrées de stations. Dans cette situation, les entrées de stations coïncident avec les rues, les lignes StopConnectors présentant une valeur ConnectorType de 2 connectent la station parente à ses entrées, et les lignes StopConnectors présentant une valeur ConnectorType de 1 connectent les arrêts à la station parente.

    Une station parente avec des entrées de stations explicitement définies
    Une station parent avec des entrées de station définies explicitement. Les arrêts (cercles oranges) se connectent à la station parente (carré bleu) à l’aide de lignes de connecteur (lignes grises) avec ConnectorType 1. La station parente se connecte aux rues aux emplacements d’entrées de stations (carrés verts) à l’aide de lignes de connecteur avec ConnectorType 2.

  • La classe d’entités Stops peut être modifiée après l’exécution de l’outil. Les entités d’arrêt présentant une valeur GStopType de 2, représentant les entrées de stations, peuvent être supprimées. Ces entités d’arrêt sont à la place incluses dans la classe d’entités StopsOnStreets en sortie pour modéliser les connexions correctes des rues aux arrêts via les entrées de stations. Les stations parentes coïncidant spatialement avec des arrêts peuvent également être supprimées.

  • Lors de l’exécution de cet outil dans Python autonome, si la classe d’entités Stops en entrée contient des stations parentes ou des entrées de stations, un message d’avertissement 001059 peut s’afficher sur la console. Ce message d’avertissement est prévu et ne signifie pas qu’il y a un problème.

Paramètres

ÉtiquetteExplicationType de données
Jeu de classes d’entités cible

Jeu de classes d’entités dans lequel le jeu de données réseau de transport sera créé. Ce jeu de classes d’entités doit déjà exister et contenir une classe d’entités ponctuelles appelée Stops avec la structure décrite par le modèle de données de transport en commun Network Analyst. Une classe d’entités Stops valide peut être créée avec l’outil GTFS vers Sources de transport de jeux de données réseau.

Remarque :

La classe d’entités Stops peut être modifiée après l’exécution de l’outil. Les entités d’arrêt présentant une valeur GStopType de 2, représentant les entrées de stations, peuvent être supprimées. Ces entités d’arrêt sont à la place incluses dans la classe d’entités StopsOnStreets en sortie pour modéliser les connexions correctes des rues aux arrêts via les entrées de stations. Les stations parentes coïncidant spatialement avec des arrêts peuvent également être supprimées.

Feature Dataset
Entités rues en entrée

Une classe d’entités polylignes de rues auxquelles les arrêts et les lignes de transport se connectent. Cette classe d’entités de rue doit être la classe d’entités que vous prévoyez d’utiliser dans votre jeu de données réseau de transport pour modéliser les piétons marchant le long des rues. La classe d’entités n’a pas besoin de se trouver dans le jeu de classes d’entités cible pour que cet outil s’exécute. Toutefois, elle doit se trouver dans le jeu de classes d’entités cible au moment où vous créez le jeu de données réseau.

Remarque :

Les entités de rue en entrée sont modifiées après l’exécution de l’outil. Des sommets sont ajoutés aux emplacements où les entités StopsOnStreets croisent les rues. Si vous ne souhaitez pas que vos données de rue soient altérées, effectuez-en une copie avant d’exécuter cet outil.

Feature Layer
Distance de recherche

La distance de recherche pour capturer les arrêts de transport sur les entités rues en entrée. Les arrêts situés en dehors de la distance de recherche ne sont pas capturés et ne sont pas connectés aux rues. Avec une petite distance de recherche, les arrêts ne sont pas capturés sur les rues éloignées, mais la probabilité d’arrêts n’étant pas capturés alors qu’ils doivent l’être s’en trouve accrue. Une grande distance de recherche augmente le nombre d’arrêts allant probablement être capturés mais peut entraîner des erreurs qui doivent à la place être corrigées par la mise à jour des données de rues. Si aucune entité de rue n’est trouvée dans la distance de recherche d’un arrêt spécifique, l’entité StopsOnStreets en sortie n’est pas capturée sur une rue et coïncide avec son entité correspondante dans Stops, ce qui peut entraîner une connectivité médiocre dans le jeu de données réseau à cet emplacement.

La valeur par défaut est 100 mètres.

Linear Unit
Expression

Expression SQL permettant de sélectionner un sous-ensemble d’enregistrements d’entités de rue en entrée. Les arrêts de transport sont capturés uniquement sur les entités de rue correspondant à cette expression. Par exemple, l’expression peut être utilisée pour empêcher les arrêts d’être capturés sur les rues où les piétons sont interdits.

SQL Expression

Sortie obtenue

ÉtiquetteExplicationType de données
Jeu de classes d’entités cible mis à jour

Le jeu de classes d’entités auquel les nouvelles classes d’entités ont été ajoutées et où les classes existantes ont pu être mises à jour.

Feature Dataset
Entités rues en entrée mises à jour

La classe d’entités rues, qui peut avoir été modifiée par l’outil.

Feature Class
Arrêts en entrée mis à jour

La classe d’entités Stops située dans le jeu de classes d’entités cible, qui peut avoir été modifiée par l’outil.

Feature Class
Arrêts en sortie sur les rues

La classe d’entités StopsOnStreets du modèle de données de transport en commun Network Analyst, créée en capturant une copie des entités Stops sur les entités rues en entrée.

Feature Class
Connecteurs d’arrêts en sortie

La classe d’entités StopConnectors du modèle de données de transport en commun Network Analyst, créée en traçant une ligne droite entre l’emplacement de l’arrêt initial et l’emplacement où cet arrêt a été capturé sur une entité rue.

Feature Class

arcpy.conversion.ConnectNetworkDatasetTransitSourcesToStreets(target_feature_dataset, in_streets_features, search_distance, expression)
NomExplicationType de données
target_feature_dataset

Jeu de classes d’entités dans lequel le jeu de données réseau de transport sera créé. Ce jeu de classes d’entités doit déjà exister et contenir une classe d’entités ponctuelles appelée Stops avec la structure décrite par le modèle de données de transport en commun Network Analyst. Une classe d’entités Stops valide peut être créée avec l’outil GTFS vers Sources de transport de jeux de données réseau.

Remarque :

La classe d’entités Stops peut être modifiée après l’exécution de l’outil. Les entités d’arrêt présentant une valeur GStopType de 2, représentant les entrées de stations, peuvent être supprimées. Ces entités d’arrêt sont à la place incluses dans la classe d’entités StopsOnStreets en sortie pour modéliser les connexions correctes des rues aux arrêts via les entrées de stations. Les stations parentes coïncidant spatialement avec des arrêts peuvent également être supprimées.

Feature Dataset
in_streets_features

Une classe d’entités polylignes de rues auxquelles les arrêts et les lignes de transport se connectent. Cette classe d’entités de rue doit être la classe d’entités que vous prévoyez d’utiliser dans votre jeu de données réseau de transport pour modéliser les piétons marchant le long des rues. La classe d’entités n’a pas besoin de se trouver dans le jeu de classes d’entités cible pour que cet outil s’exécute. Toutefois, elle doit se trouver dans le jeu de classes d’entités cible au moment où vous créez le jeu de données réseau.

Remarque :

Les entités de rue en entrée sont modifiées après l’exécution de l’outil. Des sommets sont ajoutés aux emplacements où les entités StopsOnStreets croisent les rues. Si vous ne souhaitez pas que vos données de rue soient altérées, effectuez-en une copie avant d’exécuter cet outil.

Feature Layer
search_distance

La distance de recherche pour capturer les arrêts de transport sur les entités rues en entrée. Les arrêts situés en dehors de la distance de recherche ne sont pas capturés et ne sont pas connectés aux rues. Avec une petite distance de recherche, les arrêts ne sont pas capturés sur les rues éloignées, mais la probabilité d’arrêts n’étant pas capturés alors qu’ils doivent l’être s’en trouve accrue. Une grande distance de recherche augmente le nombre d’arrêts allant probablement être capturés mais peut entraîner des erreurs qui doivent à la place être corrigées par la mise à jour des données de rues. Si aucune entité de rue n’est trouvée dans la distance de recherche d’un arrêt spécifique, l’entité StopsOnStreets en sortie n’est pas capturée sur une rue et coïncide avec son entité correspondante dans Stops, ce qui peut entraîner une connectivité médiocre dans le jeu de données réseau à cet emplacement.

La valeur par défaut est 100 mètres.

Linear Unit
expression

Expression SQL permettant de sélectionner un sous-ensemble d’enregistrements d’entités de rue en entrée. Les arrêts de transport sont capturés uniquement sur les entités de rue correspondant à cette expression. Par exemple, l’expression peut être utilisée pour empêcher les arrêts d’être capturés sur les rues où les piétons sont interdits.

SQL Expression

Sortie obtenue

NomExplicationType de données
updated_target_feature_dataset

Le jeu de classes d’entités auquel les nouvelles classes d’entités ont été ajoutées et où les classes existantes ont pu être mises à jour.

Feature Dataset
updated_in_streets_features

La classe d’entités rues, qui peut avoir été modifiée par l’outil.

Feature Class
updated_in_stops

La classe d’entités Stops située dans le jeu de classes d’entités cible, qui peut avoir été modifiée par l’outil.

Feature Class
output_stops_on_streets

La classe d’entités StopsOnStreets du modèle de données de transport en commun Network Analyst, créée en capturant une copie des entités Stops sur les entités rues en entrée.

Feature Class
output_stop_connectors

La classe d’entités StopConnectors du modèle de données de transport en commun Network Analyst, créée en traçant une ligne droite entre l’emplacement de l’arrêt initial et l’emplacement où cet arrêt a été capturé sur une entité rue.

Feature Class

Exemple de code

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

Le script suivant explique comment utiliser la fonction ConnectNetworkDatasetTransitSourcesToStreets dans la fenêtre Python.

fd_path = r"E:\TransitAnalysis\TransitNetwork.gdb\TransitNetwork"
streets = os.path.join(fd_path, "Streets")
where = "PedestriansAllowed = 1"
arcpy.transit.ConnectPublicTransitDataModelToStreets(fd_path, streets, "100 meters", where)
Exemple 2 d’utilisation de l’outil ConnectNetworkDatasetTransitSourcesToStreets (script autonome)

Le script autonome Python suivant montre comment les fonctions GTFSToNetworkDatasetTransitSources et ConnectNetworkDatasetTransitSourcesToStreets peuvent être utilisées ensemble pour créer un jeu de données de réseau de transport.

import os
import arcpy
arcpy.CheckOutExtension("network")

gtfs_folders = [
    r"E:\GTFS\Agency1",
    r"E:\GTFS\Agency2"
]
streets_orig = r"E:\Data\StreetData.gdb\Streets"

working_folder = r"E:\TransitAnalysis"
nd_template = os.path.join(working_folder, "TransitNetworkTemplate.xml")
gdb_name = "TransitNetwork.gdb"
out_gdb = os.path.join(working_folder, gdb_name)
fd_name = "TransitNetwork"
fd_path = os.path.join(out_gdb, fd_name)
streets = os.path.join(fd_path, "Streets")
nd_name = "TransitNetwork_ND"
nd_path = os.path.join(fd_path, nd_name)

# Create a file geodatabase and feature dataset to store the network dataset
arcpy.management.CreateFileGDB(working_folder, gdb_name)
arcpy.management.CreateFeatureDataset(out_gdb, fd_name, arcpy.SpatialReference(4326))

# Copy the streets data into the feature dataset so it can be used by the network dataset
# If the original streets are not in the same spatial reference as the feature dataset, you might
# need to use the Project tool instead of Copy.
arcpy.management.Copy(streets_orig, streets)

# Convert the GTFS dataset into public transit data model tables and feature classes
arcpy.conversion.GTFSToNetworkDatasetTransitSources(gtfs_folders, fd_path)

# Connect the transit stops to the streets and create the rest of the data model feature classes
# Use an expression to connect transit stops only to streets where pedestrians are allowed.
where = "PedestriansAllowed = 1"
arcpy.conversion.ConnectNetworkDatasetTransitSourcesToStreets(fd_path, streets, "100 meters", where)

# Create the network dataset from a template
arcpy.na.CreateNetworkDatasetFromTemplate(nd_template, fd_path)

# Build the network dataset
arcpy.na.BuildNetwork(nd_path)

Environnements

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