IS:gradientCurve: Difference between revisions

From railML 3 Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
 
Line 20: Line 20:
{{note|This is a draft.}}
{{note|This is a draft.}}
{{importComment}}
{{importComment}}
<gallery widths=300px heights=300px caption="Different types of vertical alignment modelling. Provided by railML.org partner {{site|1=https://www.railml.org/en/partners/jernbanedirektoratet|2=Jernbanedirektoratet}}">
<gallery widths=300px heights=300px caption="Modelling vertical alignment without curves of type arc. Provided by railML.org partner {{site|1=https://www.railml.org/en/partners/jernbanedirektoratet|2=Jernbanedirektoratet}}">
File:2025-02-27 BaneNOR gradientCurve FullModellingFixed.svg|1a. Full modelling
File:2025-02-27 BaneNOR gradientCurve SimplifiedModellingFixed.svg|Simplified modelling no vertical curves; slopes = full modelling but extended to position of their theoretical points
File:2025-02-27 BaneNOR gradientCurve SimplifiedModellingFixed.svg|2a. Simplified modelling no vertical curves; slopes = full modelling but extended to position of their theoretical points
File:2025-02-27 BaneNOR gradientCurve ShortAverageGradientsFixed.svg|Short average gradients (discrete slopes) no vertical curves; slopes shorter than full modelling and does NOT follow full modelling theoretical points
File:2025-02-27 BaneNOR gradientCurve ShortAverageGradientsFixed.svg|2b. Short average gradients (discrete slopes) no vertical curves; slopes shorter than full modelling and does NOT follow full modelling theoretical points
File:2025-02-27 BaneNOR gradientCurve LongAverageGradientsFixed.svg|Long average gradients no vertical curves; slopes longer than full modelling and follows position of significant full modelling theoretical points
File:2025-02-27 BaneNOR gradientCurve LongAverageGradientsFixed.svg|2c. Long average gradients no vertical curves; slopes longer than full modelling and follows position of significant full modelling theoretical points
File:2025-02-27 BaneNOR gradientCurve deltaGradientsFixed.svg|Simplified modelling with delta gradient modelling no vertical curves; slopes=full modelling, NOT extended to position of their theoretical points, gaps filled with deltagradient
</gallery>
</gallery>
<gallery widths=300px heights=300px caption="Different types of vertical alignment modelling. Provided by railML.org partner {{site|1=https://www.railml.org/en/partners/jernbanedirektoratet|2=Jernbanedirektoratet}}">
<gallery widths=300px heights=300px caption="Modelling vertical alignment with curves of type arc. Provided by railML.org partner {{site|1=https://www.railml.org/en/partners/jernbanedirektoratet|2=Jernbanedirektoratet}}">
File:2025-02-27 BaneNOR gradientCurve CompositeCurvesFixed.svg|1b. Full modelling with composite curves
File:2025-02-27 BaneNOR gradientCurve FullModellingFixed.svg|Full modelling
File:2025-02-27 BaneNOR gradientCurve deltaGradientsFixed.svg|1b. Simplified modelling with delta gradient modelling no vertical curves; slopes=full modelling, NOT extended to position of their theoretical points, gaps filled with deltagradient
File:2025-02-27 BaneNOR gradientCurve CompositeCurvesFixed.svg|Full modelling with composite curves
File:2025-02-27 BaneNOR gradientCurve transitionCurvesFixed.svg|1c. Full modelling with  vertical transition curves
File:2025-02-27 BaneNOR gradientCurve transitionCurvesFixed.svg|Full modelling with  vertical transition curves
</gallery>
</gallery>


=== Case 3 valid file example ===
=== "Short average gradients" valid file example ===


<gallery widths=500px heights=500px >
<gallery widths=500px heights=500px >

Latest revision as of 09:24, 8 March 2025

Introduction

Documentation

Syntax

Autoexport from the XML-Schema for element IS:gradientCurve of railML® version 3.3
    
Documentation with a gradientCurve the ascent and descent of a track can be described.
Subschema infrastructure
Parents*

gradientCurves

Children

areaLocation (0..*), beginsInGeometryPoint (0..1), endsInGeometryPoint (0..1), gmlLocation (0..*), isValid (0..*), linearLocation (0..*), name (0..*), networkLocation (0..*), spotLocation (0..*)

Attributes:
  • curveType: type of vertical curve, e.g. arc or straight (obligatory; xs:string)
Possible values:
  • arc: curve, that link two (e.g. straight) elements of gradient profile of a railway track, with a constant radius that is not infinite
  • mixed: an aggregated curve with arcs and straight parts
  • straight: curve with constant infinite radius (zero curvature),

  • deltaGradient: change of gradient of the gradient curve in per mille;
    use this attribute if the gradient value of the gradient curve is not constant, but changing;
    the delta gradient shall be calculated as difference of gradient at the end and gradient at the beginning of the gradient curve (optional; xs:decimal),

  • gradient: constant gradient of the gradient curve in per mille;
    positive values indicate an upward slope (rise), negative values indicate a downward slope (fall) (optional; xs:decimal),

  • length: length of the gradient curve in metres;
    use this attribute in particular to define the arc length (optional; xs:decimal),

  • radius: radius of the gradient curve in metres;
    use negative values to describe the arc curve of a valley and use positive values to describe the arc curve of a hill (optional; xs:decimal),

  • id: the identifier of the object; this can be either of type xs:ID or UUID (obligatory; xs:ID); compare: Dev:Identities
*Notice:
Elements may have different parent elements. As a consequence they may be used in different contexts.
Please, consider this as well as a user of this wiki as when developing this documentation further.
Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.


 

Autoexport from the XML-Schema for element IS:gradientCurve of railML® version 3.2
    
Documentation vertical alignment of railway track
Subschema infrastructure
Parents*

gradientCurves

Children

areaLocation (0..*), beginsInGeometryPoint (0..1), endsInGeometryPoint (0..1), gmlLocations (0..*), isValid (0..*), linearLocation (0..*), name (0..*), networkLocation (0..*), spotLocation (0..*)

Attributes:
  • curveType: type of vertical curve, e.g. arc or straight (obligatory; xs:string)
Possible values:
  • arc: curve, that link two (e.g. straight) elements of gradient profile of a railway track, with a constant radius that is not infinite
  • mixed: an aggregated curve with arcs and straight parts
  • straight: curve with constant infinite radius (zero curvature),

  • deltaGradient: change of gradient of the gradient curve in per mille;
    use this attribute if the gradient value of the gradient curve is not constant, but changing;
    the delta gradient shall be calculated as difference of gradient at the end and gradient at the beginning of the gradient curve (optional; xs:decimal),

  • gradient: constant gradient of the gradient curve in per mille;
    positive values indicate an upward slope (rise), negative values indicate a downward slope (fall) (optional; xs:decimal),

  • length: length of the gradient curve in metres;
    use this attribute in particular to define the arc length (optional; xs:decimal),

  • radius: radius of the gradient curve in metres;
    use negative values to describe the arc curve of a valley and use positive values to describe the arc curve of a hill (optional; xs:decimal),

  • id: the identifier of the object; this can be either of type xs:ID or UUID (obligatory; xs:string; patterns: (urn:uuid:)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}}); compare: Dev:Identities
*Notice:
Elements may have different parent elements. As a consequence they may be used in different contexts.
Please, consider this as well as a user of this wiki as when developing this documentation further.
Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.


 

Autoexport from the XML-Schema for element IS:gradientCurve of railML® version 3.1
    
Documentation This element is not documented in the schema!
Subschema infrastructure
Parents*

gradientCurves

Children

any (0..*), areaLocation (0..*), beginsInGeometryPoint (0..1), endsInGeometryPoint (0..1), gmlLocations (0..*), isValid (0..*), linearLocation (0..*), name (0..*), networkLocation (0..*), spotLocation (0..*)

Attributes:
  • curveType: type of vertical curve, e.g. arc or straight (obligatory; xs:string)
Possible values:
  • mixed: an aggregated curve with arcs and straight parts
  • straight: curve with constant infinite radius (zero curvature)
  • arc: curve with a constant radius that is not infinite,

  • gradient: constant gradient of the gradient curve in per million;

positive values indicate an upward slope (rise), negative values indicate a downward slope (fall) (optional; xs:decimal),

  • deltaGradient: change of gradient of the gradient curve in per million;

use this attribute if the gradient value of the gradient curve is not constant, but changing; the delta gradient shall be calculated as difference of gradient at the end and gradient at the beginning of the gradient curve (optional; xs:decimal),

  • radius: radius of the gradient curve in metres;

use negative values to describe the arc curve of a valley and use positive values to describe the arc curve of a hill (optional; xs:decimal),

  • length: length of the gradient curve in metres;

use this attribute in particular to define the arc length (optional; xs:decimal),

  • id: the identifier of the object; this can be either of type xs:ID or UUID (obligatory; xs:ID; patterns: (urn:uuid:)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}}); compare: Dev:Identities
*Notice:
Elements may have different parent elements. As a consequence they may be used in different contexts.
Please, consider this as well as a user of this wiki as when developing this documentation further.
Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.


 


Changes 3.1→3.2

There exists an overview of all changes between railML® 3.1 and railML® 3.2 on page Dev:Changes/3.2.

The element documentation has been changed.

The parents have been changed.

The children have been changed.

The attributes have been changed.

Changes 3.2→3.3

There exists an overview of all changes between railML® 3.2 and railML® 3.3 on page Dev:Changes/3.3.

The element documentation has been changed.

The parents have been changed.

The children have been changed.

The attributes have been changed.

Semantics

Private-cloud-icon.png Deprecated Semantic Constraint "IS:016":
 
@gradient should not be used if @curveType "mixed". Instead of @gradient, @deltaGradient should be used.

Compare #xxx


 
Proposed on February 26th 2021
Approved on FIXME
Deprecated on December 06th 2024
Deprecated semantic constraints may still be valid for older railML® versions!
FIXME: add Link to discussion!
Please, recognize our guidelines on semantic constraints


Best Practice / Examples

🗒️ This is a draft.  


"Short average gradients" valid file example

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<railML xmlns="https://www.railml.org/schemas/3.2"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml4rail3="https://www.railml.org/schemas/3.2/gml"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        version="3.2"
        xsi:schemaLocation="https://www.railml.org/schemas/3.2 https://www.railml.org/schemas/3.2/railml3.xsd">
	<common id="co_01">
		<positioning>
			<linearPositioningSystems>
				<linearPositioningSystem id="lps01"
				                         linearReferencingMethod="absolute"
				                         startMeasure="950.0"
				                         endMeasure="3000.0"
				                         units="m">
					<isValid/>
				</linearPositioningSystem>
			</linearPositioningSystems>
		</positioning>
	</common>
	<infrastructure id="is_01">
		<topology>
			<netElements>
				<netElement id="ne_1">
					<associatedPositioningSystem id="ne_1_aps01">
						<intrinsicCoordinate id="ne_1_aps01_ic1"
						                     intrinsicCoord="0.0">
							<linearCoordinate measure="950.0"
							                  positioningSystemRef="lps01"/>
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne_1_aps01_ic2"
						                     intrinsicCoord="1.0">
							<linearCoordinate measure="1320.0"
							                  positioningSystemRef="lps01"/>
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<netElement id="ne_2">
					<associatedPositioningSystem id="ne_2_aps01">
						<intrinsicCoordinate id="ne_2_aps01_ic1"
						                     intrinsicCoord="0.0">
							<linearCoordinate measure="1320.0"
							                  positioningSystemRef="lps01"/>
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne_2_aps01_ic2"
						                     intrinsicCoord="1.0">
							<linearCoordinate measure="1800.0"
							                  positioningSystemRef="lps01"/>
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<netElement id="ne_3">
					<associatedPositioningSystem id="ne_3_aps01">
						<intrinsicCoordinate id="ne_3_aps01_ic1"
						                     intrinsicCoord="0.0">
							<linearCoordinate measure="1800.0"
							                  positioningSystemRef="lps01"/>
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne_3_aps01_ic2"
						                     intrinsicCoord="1.0">
							<linearCoordinate measure="3000.0"
							                  positioningSystemRef="lps01"/>
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
			</netElements>
			<netRelations>
				<netRelation id="nr_ne_1_ne_2"
				             navigability="Both"
				             positionOnA="1"
				             positionOnB="0">
					<elementA ref="ne_1"/>
					<elementB ref="ne_2"/>
				</netRelation>
				<netRelation id="nr_ne_2_ne_3"
				             navigability="Both"
				             positionOnA="1"
				             positionOnB="0">
					<elementA ref="ne_2"/>
					<elementB ref="ne_3"/>
				</netRelation>
			</netRelations>
			<networks>
				<network id="nw01">
					<level descriptionLevel="Micro"
					       id="lv0">
						<networkResource ref="ne_1"/>
						<networkResource ref="ne_2"/>
						<networkResource ref="ne_3"/>
						<networkResource ref="nr_ne_1_ne_2"/>
						<networkResource ref="nr_ne_2_ne_3"/>
					</level>
				</network>
			</networks>
		</topology>
		<geometry>
			<gradientCurves>
				<gradientCurve id="grc1"
				               curveType="straight"
				               gradient="-10.0"
				               length="100.0">
					<linearLocation applicationDirection="both"
					                id="grc1_lloc">
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_1">
							<linearCoordinateBegin measure="1000.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1100.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
					</linearLocation>
				</gradientCurve>
				<gradientCurve id="grc2"
				               curveType="straight"
				               gradient="-10.0"
				               length="100.0">
					<linearLocation applicationDirection="both"
					                id="grc2_lloc">
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_1">
							<linearCoordinateBegin measure="1100.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1200.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
					</linearLocation>
				</gradientCurve>
				<gradientCurve id="grc3"
				               curveType="straight"
				               gradient="-12.0"
				               length="90.0">
					<linearLocation applicationDirection="both"
					                id="grc3_lloc">
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_1">
							<linearCoordinateBegin measure="1200.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1290.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
					</linearLocation>
				</gradientCurve>
				<gradientCurve id="grc4"
				               curveType="straight"
				               gradient="-14.0"
				               length="80.0">
					<linearLocation applicationDirection="both"
					                id="grc4_lloc">
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_1">
							<linearCoordinateBegin measure="1290.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1320.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_2">
							<linearCoordinateBegin measure="1320.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1370.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
					</linearLocation>
				</gradientCurve>
				<gradientCurve id="grc5"
				               curveType="straight"
				               gradient="-15.0"
				               length="90.0">
					<linearLocation applicationDirection="both"
					                id="grc5_lloc">
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_2">
							<linearCoordinateBegin measure="1370.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1460.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
					</linearLocation>
				</gradientCurve>
				<gradientCurve id="grc6"
				               curveType="straight"
				               gradient="-13.0"
				               length="100.0">
					<linearLocation applicationDirection="both"
					                id="grc6_lloc">
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_2">
							<linearCoordinateBegin measure="1460.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1560.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
					</linearLocation>
				</gradientCurve>
				<gradientCurve id="grc7"
				               curveType="straight"
				               gradient="12.0"
				               length="100.0">
					<linearLocation applicationDirection="both"
					                id="grc7_lloc">
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_2">
							<linearCoordinateBegin measure="1560.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1660.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
					</linearLocation>
				</gradientCurve>
				<gradientCurve id="grc8"
				               curveType="straight"
				               gradient="11.0"
				               length="100.0">
					<linearLocation applicationDirection="both"
					                id="grc8_lloc">
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_2">
							<linearCoordinateBegin measure="1660.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1760.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
					</linearLocation>
				</gradientCurve>
				<gradientCurve id="grc9"
				               curveType="straight"
				               gradient="10.0"
				               length="100.0">
					<linearLocation applicationDirection="both"
					                id="grc9_lloc">
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_2">
							<linearCoordinateBegin measure="1760.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1800.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
						<associatedNetElement keepsOrientation="true"
						                      netElementRef="ne_3">
							<linearCoordinateBegin measure="1800.0"
							                       positioningSystemRef="lps01"/>
							<linearCoordinateEnd measure="1860.0"
							                     positioningSystemRef="lps01"/>
						</associatedNetElement>
					</linearLocation>
				</gradientCurve>
			</gradientCurves>
		</geometry>
	</infrastructure>
</railML>

Additional Information

Notes

Open Issues