Home » railML newsgroups » railML.infrastructure » How do I describe the geometry of curves in railML
How do I describe the geometry of curves in railML [message #219] Wed, 29 July 2009 14:03 Go to next message
Andreas Franz is currently offline  Andreas Franz
Messages: 2
Registered: July 2009
Junior Member
english version below
---------------------

Hallo,

ich bin Andreas Franz, ich studiere Informationstechnik an der Dualen
Hochschule Baden-Württemberg Mannheim und arbeite gerade an meiner
Bachelorarbeit. Ergebnis meiner Arbeit soll ein Programm sein, dass aus
GPS-Aufzeichnungen Infrastrukturdaten ermittelt und railML-Dokumente
erzeugt.

Neben der topologischen Beschreibung, möchte ich auch den geometrischen
Verlauf von Strecken möglichst genau darstellen.

Meine Frage ist deshalb, wie Kurven am besten in railML angelegt werden
sollten. Momentan nutze ich dafür das <radiusChange>-Element und gebe
zusätzlich die Koordinaten an:

Beispiel:
<radiusChange radius="1000.0" absPos="5500.00" pos="50.00"
name="radiusChange_1" id="1">
<geoCoord lat="47.0" long="11.0" />
</radiusChange>

Was soll die Geo-Koordinate genau beschreiben, die Mitte auf der
Kreisbogenlinie oder den Mittelpunkt des Kreises der die Kurve beschreibt
(ich verwende momentan die erste Variante)? Wie lässt sich der Anfangs- und
Endpunkt einer Kurve ablegen?

Oder gibt eine bessere Möglichkeit, Kurven zu beschreiben, die ich bislang
übersehen habe?


Für Vorschläge und Anregungen bin ich sehr dankbar.

Mit freundlichen Grüßen,

Andreas Franz


---------------------

Hello,

my name is Andreas Franz, student of Baden-Wuerttemberg Cooperative State
University Mannheim. I'm working on my bachelor thesis. My intention is to
develop a program that identifies infrastructure data from gps-recordings
and stores them in a railML document.

I want do describe the topology and the geometry of the track as acurately
as possible.

My question is, what's the best way to model curves in railML? I'm currently
using the <radiusChange> tag and an additional <geoCoord>.

Example:
<radiusChange radius="1000.0" absPos="5500.00" pos="50.00"
name="radiusChange_1" id="1">
<geoCoord lat="47.0" long="11.0" />
</radiusChange>

Should the geo-coordinate describe the center on the arc of the circle or
the center of the circle which characterises the curve (I use the first
variant)? And how schould I describe the beginning and end of a curve?

Is there another (better) possibility to store curves in railML?


Best regards,

Andreas Franz
Re: How do I describe the geometry of curves in railML [message #220 is a reply to message #219] Thu, 06 August 2009 00:23 Go to previous message
Susanne Wunsch railML is currently offline  Susanne Wunsch railML
Messages: 0
Registered: January 2020
Hi,

(English answer: see below)

> Neben der topologischen Beschreibung, möchte ich auch den geometrischen
> Verlauf von Strecken möglichst genau darstellen.

> Meine Frage ist deshalb, wie Kurven am besten in railML angelegt werden
> sollten. Momentan nutze ich dafür das <radiusChange>-Element und gebe
> zusätzlich die Koordinaten an:
>
> Beispiel:
> <radiusChange radius="1000.0" absPos="5500.00" pos="50.00"
> name="radiusChange_1" id="1">
> <geoCoord lat="47.0" long="11.0" />
> </radiusChange>

Das sieht gut aus.

Das "id"-Attribut ist für die Weiterverarbeitung gedacht und somit für
externe Referenzierungen wichtig. Es sollte dateiweit eindeutig sein.

Das "radius"-Attribut ist ein Längenwert in Metern (Typ "tRadiusM").
Positiver Radius heißt Linksbogen in Kilometrierungsrichtung,
negativer Radius heißt Rechtsbogen in Kilometrierungsrichtung.

!! Diese Aussage muss ich nochmals überprüfen. Sie basiert auf
Version 1.0 und wurde für 1.1 nicht dokumentiert (weder geändert
noch bestätigt).

> Was soll die Geo-Koordinate genau beschreiben, die Mitte auf der
> Kreisbogenlinie oder den Mittelpunkt des Kreises der die Kurve
> beschreibt (ich verwende momentan die erste Variante)? Wie lässt
> sich der Anfangs- und Endpunkt einer Kurve ablegen?

Bei railML definiert die Angabe <radiusChange> nur den Anfang des
Bogenwechsels in Kilometrierungsrichtung. Die Radius-Angabe gilt also
von diesem Punkt an bis zum nächsten <radiusChange> bzw. <bufferStop>.
Auf diese Weise legt der Anfang eines neuen Bogens gleichzeitig das
Ende des vorangegangenen Bogens fest.

Das trifft auch auf Geraden zu, die mathematisch als Bögen mit
unendlichem Radius aufgefasst werden können.

Da der Typ "tRadiusM" auf "xs:decimal" zurückgreift, ist der Wert
"INF" (unendlich, infinity) nicht zulässig. Deshalb wird für
Geraden radius="0" festgelegt.

Zusätzlich exisitiert ein Attribut "dir" für die Wirkungrichtung des
railML-Elements (none/up/down/both/unknown/). Dieses sollte *nicht*
verwendet werden, die Bogenwechsel sollten in Kilometrierungsrichtung
beschrieben werden.

Mit <geoCoord> wird der gleiche Punkt absolut beschrieben, wie bereits
relativ mittels "pos" bzw. "absPos" in <radiusChange>. Somit ist er
ebenfalls der Anfang eines Bogenwechsels. Strenggenommen sollte dieser
Punkt auf der Gleisachse (Gleismittellinie) liegen.

Ich hoffe, einiges damit zu erklären.

Ich schicke eine Kopie an den infrastructure-Coordinator (Volker
Knollmann). Möglicherweise kann er etwas dazu ergänzen.

Viel Erfolg mit der Arbeit...

Susanne

> ---------------------
>
> I want do describe the topology and the geometry of the track as acurately
> as possible.
>
> My question is, what's the best way to model curves in railML? I'm currently
> using the <radiusChange> tag and an additional <geoCoord>.
>
> Example:
> <radiusChange radius="1000.0" absPos="5500.00" pos="50.00"
> name="radiusChange_1" id="1">
> <geoCoord lat="47.0" long="11.0" />
> </radiusChange>
>

That looks already nice.

"id" attribute is important for external references and should be
file wide unique.

"radius" attribute is of type "tRadiusM" and describes the radius of
arc in direction of mileage in metres.
"+" = left, "-" = right

!! This fact I should research by asking other railML users. It's
quite undocumented in 1.1, but was defined in 1.0.

> Should the geo-coordinate describe the center on the arc of the circle or
> the center of the circle which characterises the curve (I use the first
> variant)? And how schould I describe the beginning and end of a curve?

In railML you only define the beginning of a curve (arc segment) in
direction of lineage. The mentioned radius applies up to the next
<radiusChange> or <bufferStop>. This way also straight lines are
described, they represent an arc segment with radius=infinity.

Type "tRadiusM" is inherited from "xs:decimal". This doesn't allow
"INF" values. So straight lines are defined by radius="0".

There is also an attribute "dir" (none/up/down/both/unknown/) for
showing the direction of validity für railML elements. This shouldn't
be used. <radiusChange>s are defined in direction of lineage!


Absolute coordinates in <geoCoord> represent the same point as the
relative position (pos/absPos) of the <radiusChange> element. More
precisely, they should reference to the point at the centerline of the
track.

I'll send a copy to infrastructure coordinator (Volker
Knollmann). Maybe he comments my statements.

I wish you good luck with your paper...

Susanne

--
Susanne Wunsch
Schema Coordinator: railML.common
Previous Topic: RailML as a base for a digital railwaymap
Next Topic: Unstimmigkeiten zwischen HTML-Dokumentation und Schema
Goto Forum:
  


Current Time: Fri Apr 19 10:44:26 CEST 2024