Résumé
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 s’exécute dans le cadre d’un workflow plus grand 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.
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 le schéma décrit 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 capturera les arrêts de transport en commun de votre jeu de classes d’entités cible dans les entités Streets. 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 sectionnent 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.
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.
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.
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.
Syntaxe
arcpy.conversion.ConnectNetworkDatasetTransitSourcesToStreets(target_feature_dataset, in_streets_features, search_distance, expression)
Paramètre | Explication | Type de données |
target_feature_dataset | Le jeu de classes d’entités où 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 le schéma décrit 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 sectionnent 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 sur 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 dérivée
Nom | Explication | Type 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. | Jeu de classes d’entités |
updated_in_streets_features | La classe d’entités rues, qui peut avoir été modifiée par l’outil. | Classe d’entités |
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. | Classe d’entités |
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. | Classe d’entités |
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. | Classe d’entités |
Exemple de code
Le script suivant explique comment utiliser l'outil 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.conversion.ConnectNetworkDatasetTransitSourcesToStreets(fd_path, streets, "100 meters", where)
Le script Python autonome suivant montre comment les outils GTFSToNetworkDatasetTransitSources et ConnectNetworkDatasetTransitSourcesToStreets peuvent être utilisés ensemble pour créer un jeu de données 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
Informations de licence
- Basic: Non
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?