Der Grad, in dem sich die Eisenbahnschiene entlang ihrer Länge krümmt, ist einer der wichtigsten Faktoren, die die maximale Geschwindigkeit begrenzen, mit der Züge im Eisenbahnnetz fahren dürfen. Es gibt mehrere Gelegenheiten, bei denen es wichtig ist, diese Krümmung zu messen:<\/P>
1. Wenn der Gleisbau ursprünglich entworfen wird.
2. Nachdem der Gleisbau errichtet wurde. (d.h. die "as-built" Krümmungsmessung)<\/EM>
3. Periodisch während des Betriebs des Gleises, wie es durch Richtlinien oder Vorschriften erforderlich ist.<\/P>
DAS GEOMETRIEFAHRZEUG<\/STRONG><\/FONT><\/P>Wie unter Punkt 3 oben erwähnt, wird diese periodische Messung von einem "Geometry Car<\/EM><\/A>" durchgeführt, das geplant ist, entlang der Strecke zu fahren. Jeder Teil des Schienennetzes erhält diese Vor-Ort-Messung mindestens zweimal im Jahr oder öfter, wenn nötig. Das Geometry Car verfügt über viele Sensoren, die die tatsächliche Krümmung der Schiene messen, aber auch deren "cant" (d.h. die Art und Weise, wie das Gleis gestaltet ist, um Zügen zu helfen, sich in eine Kurve "hineinzulehnen"). <\/EM>Das Geometry Car enthält auch andere Sensoren wie Bildgebung, Lidar, Ultraschall und so weiter, um den aktuellen Zustand des Gleises, der Schienen, Schwellen, des Schotters, Masten, Oberleitungen und mehr hochauflösend zu erfassen.<\/P>
ZURÜCK ZUR KRÜMMUNG<\/STRONG><\/FONT><\/P>ArcGIS kann verwendet werden, um aktuelle Messungen vom Geometry Car mit Messungen früherer Inspektionen, den ursprünglichen as-built-Daten und den ursprünglichen Bauplänen selbst zu vergleichen. Diese Art der Veränderungserkennung kann dazu verwendet werden, priorisierte Wartungslisten zu erstellen oder in das Positive Train Control (PTC)<\/EM>-System zurückgespeist zu werden, um die maximal erlaubte Geschwindigkeit auf diesem Streckenabschnitt zu reduzieren.<\/P>Es gibt kein integriertes Werkzeug in ArcGIS Pro dafür, aber es ist ziemlich einfach, ein Skript zu schreiben, das diese Messungen für Sie durchführt. Hier ist ein Beispiel.<\/P> <\/P>
Gleisbiegung visualisieren<\/span><\/span><\/P>
DAS SKRIPT<\/STRONG><\/FONT><\/P>Hier ist ein Link zum Skript auf Github<\/A><\/EM>, das diese Krümmungs-Feature-Class erstellt hat.<\/P>
WIE ES FUNKTIONIERT<\/STRONG><\/FONT><\/P>Konzepthaft macht das Skript Folgendes: Für jeden Gleisabschnitt, z.B. eine Routen-Polyline, "läuft" es entlang der Polyline und setzt alle 50 Fuß einen Punkt und schreibt diesen Punkt in eine neue Ausgabepunkt-Feature-Class. Dann wird für jeweils 3 Punkte ein Winkel gemessen und in den Attributdatensatz des mittleren Punkts geschrieben. Es läuft nicht vertex für vertex entlang, sondern erzeugt tatsächlich neue Punkte entlang der Linie so, dass jeder 50 Fuß vom vorherigen Punkt entfernt ist.<\/P>
Kurvenwinkel messen<\/span><\/span><\/P>
Jeder Punkt "kennt<\/EM>" nun den Kurvenwinkel entlang dieses 100-Fuß-Abschnitts (50 Fuß davor und 50 Fuß danach)<\/EM>. Dieser Krümmungsattributwert kann dann mit früheren Routen-Layern verglichen oder einfach so visualisiert werden wie oben gezeigt: Bereiche mit geringer Krümmung werden gelb dargestellt, höhere Kurven orange und die höchsten Kurven rot. Dies ist nur eine Möglichkeit.<\/P>
DINGE ZUM BEACHTEN<\/STRONG><\/FONT><\/P>1. Die Polyline-Feature-Class, auf der Sie dieses Skript ausführen, muss Measures<\/STRONG> unterstützen. Mit anderen Worten: Die Polyline-Features müssen PolylineM<\/EM> oder PolylineZM<\/EM>-Routenfeatures sein, die bereits kalibriert sind, sodass jeder Scheitelpunkt seinen M<\/EM>-Wert kennt. Üblicherweise ist dieser M<\/EM>-Wert der Meilenstein- oder Kilometersteinwert entlang des Eisenbahnnetzes, aber das liegt bei Ihnen.<\/P>2. Sie müssen kein LRS<\/STRONG> (linear referencing system)<\/EM> erstellen, damit dieses Skript funktioniert. Die Maßwerte entlang der Polyline-Routenfeatures sind für diesen Zweck ausreichend.<\/P>3. Die Definition dessen, was eine "Kurve" ausmacht, habe ich vom
US DOT FRA, nämlich die Winkeländerung der Richtung einer Strecke über jeweils 100 Fuß Länge übernommen. Einige Eisenbahnen messen die Krümmung anders; daher ist das Skript flexibel. In der ersten Zelle gibt es eine globale Variable namens CURVE_LENGTH_INTERVAL_FEET<\/EM>, wo Sie diesen Wert auf 100 Fuß oder 200 Fuß setzen oder in metrische Einheiten umrechnen können – je nachdem was Sie brauchen.<\/P>4. Es gibt auch eine globale Variable namens CURVE_TOLERANCE_PERCENT<\/EM>, die im Grunde besagt: Wenn ein 100-Fuß-Streckenabschnitt eine Krümmung von weniger als 0,5 % misst, dann gilt dieser Abschnitt als "SCHNURGERADE<\/EM>". Sie können diese Toleranz nach Belieben anpassen.<\/P> <\/P>ZUSAMMENFASSEND<\/STRONG><\/FONT><\/P>Ich habe versucht, dem Skript so gut wie möglich Code-Kommentare hinzuzufügen, aber vielleicht habe ich einige Lücken gelassen. Wenn Sie Fragen oder Anmerkungen haben, lassen Sie es mich gerne unten wissen oder eröffnen Sie ein Neues Issue im Github-Repository "arcpy-samples".<\/P> <\/P>