Le degré auquel la voie ferrée courbe le long de sa longueur est l'un des facteurs les plus importants qui limitent la vitesse maximale autorisée pour les trains sur le réseau ferroviaire. Il y a plusieurs moments où il est important de mesurer cette courbure :
1. Lors de la conception initiale de la construction de la voie.
2. Après la construction de la voie. (c'est-à-dire, la mesure de la courbure "telle que construite")
3. Périodiquement pendant que la voie est en service, selon les politiques ou réglementations en vigueur.
LE VÉHICULE DE GÉOMÉTRIE
Concernant le point #3 ci-dessus, cette mesure périodique est effectuée par un "véhicule de géométrie", programmé pour circuler le long de la voie. Chaque partie du réseau ferroviaire reçoit cette mesure sur site au moins deux fois par an, voire plus souvent si nécessaire. Le véhicule de géométrie est équipé de nombreux capteurs qui mesurent la courbure réelle de la voie, mais aussi son "dévers" (c'est-à-dire, la façon dont la voie est conçue pour aider les trains à "pencher dans" un virage). Le véhicule de géométrie contient également d'autres capteurs tels que des images, lidar, ultrasons, etc., afin de capturer à haute résolution l'état actuel de la voie, des rails, des traverses, du ballast, des poteaux, des lignes aériennes et plus encore.
RETOUR À LA COURBURE
ArcGIS peut être utilisé pour comparer les mesures actuelles provenant du véhicule de géométrie avec celles des inspections précédentes, des plans "tels que construits" originaux et des plans de construction initiaux eux-mêmes. Ce type de détection de changement peut être utilisé pour aider à créer des listes d'entretien prioritaires ou être intégré dans le système Positive Train Control (PTC) afin de réduire la vitesse maximale autorisée sur cette section de voie.
Il n'existe pas d'outil intégré dans ArcGIS Pro pour cela, mais il est assez simple d'écrire un script qui peut effectuer ces mesures pour vous. Voici un exemple.
visualiser la courbure de la voie
LE SCRIPT
Voici un lien vers le script sur Github qui a créé cette classe d'entités de courbure.
COMMENT ÇA FONCTIONNE
Conceptuellement, ce que fait le script est que pour chaque section de voie, par exemple une polyligne d'itinéraire, il "parcourt" la polyligne en plaçant un point tous les 50 pieds, écrivant ce point dans une nouvelle classe d'entités ponctuelles en sortie. Ensuite, pour chaque groupe de 3 points, un angle est mesuré puis inscrit dans l'enregistrement attributaire du point central. Il ne parcourt pas sommet par sommet, il crée en fait de nouveaux points le long de la ligne afin que chacun soit à 50 pieds du point précédent.
mesurer les angles de courbe
Chaque point "sait" maintenant l'angle de courbure sur cette section de 100 pieds (50 pieds avant lui et 50 pieds après lui). Cette valeur d'attribut de courbure peut ensuite être comparée aux couches d'itinéraires précédentes ou simplement visualisée comme nous le faisons ci-dessus, où les zones à faible courbure sont dessinées en jaune, les courbes plus prononcées en orange et les plus fortes en rouge. C'est juste une façon de procéder.
CHOSSES À GARDER À L'ESPRIT
1. La classe d'entités polylignes sur laquelle vous exécutez ce script doit supporter les mesures. En d'autres termes, les entités polylignes doivent être des entités PolylineM ou PolylineZM, déjà calibrées pour que chaque sommet connaisse sa valeur M. Habituellement cette valeur M correspond au jalon kilométrique ou milepost le long du réseau ferroviaire, mais cela dépend de vous.
2. Vous n'avez pas besoin de construire un LRS (système de référencement linéaire) pour que ce script fonctionne. Les valeurs measure le long des entités polylignes sont suffisantes pour cet usage.
3. La définition de ce qui constitue une "courbe", je l'ai prise du US DOT FRA, qui est le changement angulaire de direction d'une voie sur chaque longueur de 100 pieds. Certaines compagnies ferroviaires mesurent la courbure différemment, donc le script est flexible. Dans la première cellule se trouve une variable globale appelée CURVE_LENGTH_INTERVAL_FEET, où vous pouvez définir cette valeur à 100 pieds, 200 pieds ou convertir en métrique selon vos besoins.
4. Il y a aussi une variable globale appelée CURVE_TOLERANCE_PERCENT, qui sert essentiellement à dire que si une longueur de 100 pieds mesure une courbure inférieure à 0,5 %, alors considérez cette section comme "DROITE". Vous pouvez ajuster cette tolérance comme bon vous semble.
EN CONCLUSION
J'ai essayé d'ajouter autant que possible des commentaires dans le code du script, mais il se peut que j'aie laissé quelques lacunes. Donc si vous avez des questions ou commentaires, n'hésitez pas à me le faire savoir ci-dessous ou à ouvrir un nouveau ticket sur mon dépôt Github "arcpy-samples".