IS:geoCoord signal: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
(template:external)
(Redirecting to common geoCoord page)
Tag: New redirect
 
Line 1: Line 1:
{{ElementDocu|
#REDIRECT [[IS:geoCoord]]
elementName = geoCoord
 
|parent = {{IS:Tag|signal}}
|childs=''None''
|inheritedAttributes=''None''
|semantics =
{{IS:Tag|geoCoord|signal}} provides the definition of a geographical position (e. g. longitude, latitude, altitude). It can be used in case that element positions should not only be specified by relative or absolute mileage along the track but via geographical reference as well. Thus, {{IS:Tag|geoCoord|signal}} defines exactly one point on earth given by either two or three dimensional coordinates.
 
The coordinate system is specified by its {{external|http://en.wikipedia.org/wiki/EPSG|EPSG-Code}}. It can either be provided as optional value for each coordinate element or as a default value assigned in {{IS:Tag|infraAttributes}}. By default, the coordinates shall be given in the reference system WGS84, because it is valid worldwide — see {{external|http://spatialreference.org/ref/epsg/wgs-84}}.
 
The semantics for the list contents of the {{Attr|coord}} attribute are implicitly defined by their bounded {{external|http://en.wikipedia.org/wiki/EPSG|EPSG-Code}}. {{AddAnn|| }}
 
|ownAttributes =
* {{Attr|coord}}: This is a list of values representing the coordinates. {{AddAnn|| }}
 
* {{Attr|extraHeight}}: This is a separate value for the altitude/height. It is used<br>
** if altitudes are stored in an own reference system (i. e. {{Attr|epsgCode}} refers to a GeodeticCRS rather than a CompoundCRS),<br>
** if there are no long/lat coords given or known but a height (see notes below).<br>{{AddAnn|| }}
 
{{InheritEpsg
|codeAttribute = epsgCode
|heightCodeAttribute = heightEpsgCode
|epsgCode =
|epsgCode_de =
|heightEpsgCode =
|heightEpsgCode_de =
}}
 
|constraints =
* {{Attr|coord}} "whitespace" separated list of {{XsdType|double}} values, at minimum two values, at maximum three values, mandatory ''(for arrangement see below)''
 
* {{Attr|extraHeight}} {{XsdType|double}}, optional
 
{{InheritEpsgConstraints
|codeAttribute = epsgCode
|heightCodeAttribute = heightEpsgCode
}}
 
For 2-dimensional reference, there are two values in the {{Attr|coord}} attribute, {{Attr|extraHeight}} attribute is absent.
 
For 3-dimensional references, there are ''either'' three values in the {{Attr|coord}} attribute and {{Attr|extraHeight}} is absent ''or'' two values in the {{Attr|coord}} list together with the {{Attr|extraHeight}} attribute. The third value in {{Attr|coord}} and the attribute {{Attr|extraHeight}} shall not be used in conjunction (the third value may be set to zero if there is an attribute {{Attr|extraHeight}}).
 
The usage of geographical coordinates in {{IS:Tag|geoCoord|signal}} is optional. Regarding the positioning of elements, the relative position along the track (see {{Attr|pos}} attribute in {{IS:Tag|signal}}) is mandatory. {{AddAnn|| }}
 
{{Attr|epsgCode}} is highly recommended (mandatory for a future release) if there are coordinates given in the attribute {{Attr|coord}} (i. e. if both long and lat coords are not zero).<br>
{{Attr|epsgCode}} has to refer to a GeodeticCRS (incl. projected geodetic CRS) or CompoundCRS (such as 4258, 4326, 4314).
 
{{Attr|heightEpsgCode}} is highly recommended (mandatory for a future release)<br>
- if there is a height given in the attribute {{Attr|coord}} and {{Attr|epsgCode}} does not refer to a CompoundCRS,<br>
or<br>
- if the attribute {{Attr|extraHeight}} is used.<br>
{{Attr|heightEpsgCode}} has to refer to a VerticalCRS (such as 5621, 5730, 5783, 5785) but not to a VerticalDatum (such as 6258, 5183, 5181).
 
|notes =
A database of {{external|http://en.wikipedia.org/wiki/EPSG EPSG-Codes}} is available from the {{external|http://www.epsg-registry.org|EPSG-Registry}}. {{AddAnn|| }}
 
The full urn reference part of the attributes {{Attr|epsgCode}} and {{Attr|heightEpsgCode}} - that is "urn:ogc:def:crs:EPSG::" - is treated to be constant. (Between the last two colons :: is the place for a version number of the EPSG code if there would be any.) Since it is clear that the attributes are only allowed to contain EPSG numbers, and if there would be no version number, you can omit the constant part, just reducing the value to the actual EPSG code number: <code>epsgCode="urn:ogc:def:crs:EPSG::4326"</code> is the same as <code>epsgCode="4326"</code>.
=== Unit for height coordinates ===
The unit for the height coordinate is given by the used EPSG code. For
example, the "Deutsches Haupthoehennetz 1992" with EPSG code 5783
defines the height in meters — see {{external|http://www.spatialreference.org/ref/epsg/5783/prettywkt}}.
=== Sequence of coordinates / {{Deu|Reihenfolge der Koordinaten}} ===
 
The order of the coordinates is specified by the spatial reference system (SRS), which has to be given, e.g. in form of the EPSG code. The EPSG code is a standard for identifying all the different coordinate reference systems that exist and the {{external|http://www.epsg-registry.org|EPSG register}} contains them all. The most common basis is the World Geodetic System 84 (WGS 84) with the EPSG code 4326. WGS 84 is a geodetic coordinate reference system, which includes an ellipsoidal coordinate system (EPSG::6422) defining the axes geodetic latitude (1, north) and geodetic longitude (2, east). Therefore, the correct order of coordinates is: latitude, longitude. The complete schema definition can be found in the {{external|http://opengis.net/def/crs/EPSG/0/4326|OpenGIS register}}.
 
{{Deu|Prinzipiell richtet sich die Reihenfolge der Koordinaten nach der Definition im zugehörigen SRS (Spatial Reference System), welches in Form des EPSG-Codes angegeben ist. Mit Hilfe des EPSG-Codes lassen sich alle verschiedenen Koordinatensysteme angeben. Einen Überblick über diese Koordinatensysteme liefert das {{external|http://schemas.opengis.net/gml/3.2.1/geometryBasic0d1d.xsd|OpenGIS schema|inlang=de}}. Das meistgenutzte System ist das "World Geodetic System 84 (WGS 84)" mit dem {{external|http://www.epsg-registry.org|EPSG-Code|inlang=de}} 4326. WGS 84 ist ein geodätisches Koordinaten-Referenzsystem, welches einen Referenzellipsoiden (EPSG::6422) besitzt, dessen Koordinatenachsen "Geodetic Latitude" (1, Nord) und "Geodetic Longitude" (2, Ost) aufspannen. Daher ist die korrekte Reihenfolge der Koordinaten: Latitude, Longitude.}}
 
|example =
<syntaxhighlight lang="xml">
  <geoCoord coord="52.2449 10.5466" epsgCode="urn:ogc:def:crs:EPSG::4326"/>
</syntaxhighlight>
 
 
This code example defines the position of ''Oslo Sentralstasjon'' in WGS84 coordinates:
<syntaxhighlight lang="xml">
  <geoCoord coord="59.911 10.754" epsgCode="urn:ogc:def:crs:EPSG::4326" />
</syntaxhighlight>
 
 
This code example defines the position of ''Oslo Sentralstasjon'' in ETRS89 / ETRS-TM32:
<syntaxhighlight lang="xml">
  <geoCoord coord="598059.6081 6642972.5966" epsgCode="urn:ogc:def:crs:EPSG::3044" />
</syntaxhighlight>
 
 
The following code example defines a height without long/lat coordinates:
<syntaxhighlight lang="xml">
  <geoCoord coord='0 0' extraHeight='250.03' heightEpsgCode='5783'/>
</syntaxhighlight>
(In railML 2.0 and 2.1, for syntactical reasons, there has to be a third 0 in {{Attr|coord}}:)
<syntaxhighlight lang="xml">
  <geoCoord coord='0 0 0' extraHeight='250.03' heightEpsgCode='5783'/>
</syntaxhighlight>
 
 
The following code example of ''Görlitz'' defines a height in a different reference system than the long/lat coordinates:
<syntaxhighlight lang="xml">
  <geoCoord coord='51.1473 14.9783' epsgCode='4326' extraHeight='209.42' heightEpsgCode='5783'/>
</syntaxhighlight>
which is equivalent to
<syntaxhighlight lang="xml">
  <geoCoord coord='51.1473 14.9783 209.42' epsgCode='4326' heightEpsgCode='5783'/>
</syntaxhighlight>
 
 
The following code example of ''Görlitz'' defines a height in the same compound reference system as the long/lat coordinates:
<syntaxhighlight lang="xml">
  <geoCoord coord='51.1473 14.9783 209.38' epsgCode='6893' />
</syntaxhighlight>
 
 
 
|openissues =
There are some aspects about geographical coordinates and the current implementation in railML, which are not yet solved and require further discussion. These aspects are listed below:
 
* At the moment, only ''one {{IS:Tag|geoCoord|signal}} per element'' can be defined. It is not possible, to give one point multiple geographical coordinates, e.g. for locating a point in different reference systems.
 
* At the moment, height coordinates cannot exist without horizontal coordinates. From the timetable's perspective this is difficult since often coordinates are not know and only the vertical height/gradient profile could be modeled. Therefore, the height coordinates should be defined independently from the horizontal coordinates. Until then, please use the parameter '''extraHeight''' in combination with zero horizontal coordinates (example for German DHHN92):
 
<syntaxhighlight lang="xml">
  <geoCoord coord="0 0 0" extraHeight="123.4" heightEpsgCode="urn:ogc:def:crs:EPSG::5783" />
</syntaxhighlight>
 
* The height coordinates may differ in various countries referencing different national peils (Amsterdam's Peil, Kronstadt Peil, ...). The peil systems are categorized in the EPSG code too. You may find the EPSG codes at the {{external|http://www.epsg-registry.org|website of EPSG Geodetic Parameter Dataset}}.
 
* The definition of EPSG codes for every geoCoord element provides redundancy and enlarges the railML files. Therefore, it is suggested to define an attribute for a global EPSG code being valid for all coordinates of the railML file. See {{site|http://trac.railml.org/ticket/265}} for more details and follow up.
 
}}

Latest revision as of 23:42, 14 September 2020

Redirect to: