HI,
We have at hand an XML of the Superelevation Standards for Singapore, I am wondering if anyone can help to convert it to SEP/SRL format to be used in either SS2 or SS4 versions of InRoads.
Thanks!
<?xml version="1.0" encoding="utf-8"?> <OpenRoadsSuperelevation logFile="" xmlns="OpenRoads"> <Units length="meter" /> <CreationByCorridorSettings eSelection="Singapore LTA Superlevation EMax 6%" lSelection="Singapore LTA Transition Length" designSpeed="80" pivotMethod="Crown" /> <UserVariables /> <MaximumERateCalculations> <RateEquation name="Singapore LTA Superlevation EMax 6%" equation="eRate"> <Variable name="Friction" description="f value for cars at different speeds"> <Table inputVariableName="Speed" interpolationType="linearInterpolation" description="Table 10.14"> <TableEntry inputValue="40" outputValue="0.16" /> <TableEntry inputValue="50" outputValue="0.16" /> <TableEntry inputValue="60" outputValue="0.15" /> <TableEntry inputValue="70" outputValue="0.15" /> <TableEntry inputValue="80" outputValue="0.14" /> <TableEntry inputValue="90" outputValue="0.13" /> </Table> </Variable> <Variable name="superCalc" equation="(Speed*Speed*MaxERate/((127*Rad)*(MaxERate+Friction)))" /> <Variable name="PreciseERate" equation="if Rad < minRadius ? maxERate : if superCalc < InitialCrossSlope ? InitialCrossSlope : if superCalc > 0.03 ? superCalc : 0.03" /> <Variable name="RoundedeRate" equation="((floor(PreciseERate/0.005))*0.005)+0.005" description="Apply 0.5% rounding up to PreciseERate" /> <Variable name="eRate" equation="if ABS(PreciseERate/0.005 - floor(PreciseERate/0.005)) > 0.0001 ? RoundedeRate : PreciseERate" description="Check Precise eRate was not an exact multiple of 0.5% not requiring to be rounded up" /> <Variable name="minRadius" description="Table 10.2"> <Table inputVariableName="Speed" interpolationType="userLowerBound"> <TableEntry inputValue="40" outputValue="60" /> <TableEntry inputValue="50" outputValue="90" /> <TableEntry inputValue="60" outputValue="135" /> <TableEntry inputValue="70" outputValue="185" /> <TableEntry inputValue="80" outputValue="255" /> <TableEntry inputValue="90" outputValue="340" /> </Table> </Variable> <Variable name="maxERate" equation="0.06" description="Table 10.8" /> <Variable name="Rad" equation="ABS(Radius)" /> <Speeds> <Speed speed="40" /> <Speed speed="50" /> <Speed speed="60" /> <Speed speed="70" /> <Speed speed="80" /> <Speed speed="90" /> </Speeds> </RateEquation> </MaximumERateCalculations> <TransitionCalculations> <TransitionEquation name="Singapore LTA Transition Length" equation="Length"> <Variable name="PreciseLe" equation="If TransitionRotationRate > TransitionRelativeGrade ? TransitionRotationRate : TransitionRelativeGrade" /> <Variable name="Length" equation=" Le -(Le *ABS(InitialCrossSlope)/ABS(MaxE-InitialCrossSlope))" description="Super runoff - length from spiral to curve point to zero cross slope / tangent to spiral point" /> <Variable name="Le" equation="((floor(PreciseLe/5))*5)+5" description="Apply 5m rounding up to PreciseLe" /> <Variable name="RotationRate" equation="if Speed < 80 ? 0.126 : 0.09" /> <Variable name="TransitionRotationRate" equation="ABS((InitialCrossSlope - MaxE)*Speed)/ RotationRate" /> <Variable name="TransitionRelativeGrade" equation="ABS((InitialCrossSlope - MaxE)* 100 * NRotatedLanes * WidthLane )" /> <Variable name="DesSpeed" equation="80" /> </TransitionEquation> </TransitionCalculations> <TransitionOptions interpolateTables="false" percentTransitionOnTangent="1" useSpiralLength="false" lengthsAreTotalTransition="false" transitionType="Parabolic" nonLinearCurveLength="0" startInsideLaneRotationWithOutside="false" /> <RunoutOptions isFixedLength="false" length="" /> <CustomKeyStations description="Full Super inside Curve when there is no transition" criteria="abs( StartOfArc - StartOfSpiral ) < 0.001"> <Variable name="FullSuper1" equation="If TransitionLength > 0 ? StartOfArc + LengthOnCurve : StartOfArc - LengthOnCurve " /> <Variable name="Reverse1" equation="If TransitionLength > 0 ? ReverseCrownStation + LengthOnCurve : ReverseCrownStation - LengthOnCurve " /> <Variable name="Zero1" equation="If TransitionLength > 0 ? RunoffStation + LengthOnCurve : RunoffStation - LengthOnCurve " /> <Variable name="Normal1" equation="If TransitionLength > 0 ? RunoutStation + LengthOnCurve : RunoutStation - LengthOnCurve " /> <Variable name="LengthOnCurve" equation="abs(0.33*TransitionLength)" /> <CustomKeyStation type="FullSuper" equation="FullSuper1" /> <CustomKeyStation type="ReverseCrown" equation="Reverse1" /> <CustomKeyStation type="ZeroCrossSlope" equation="Zero1" /> <CustomKeyStation type="NormalCrown" equation="Normal1" /> </CustomKeyStations> <TransitionOverlapOptions> <ReverseCurveAdjustmentOption adjustmentType="PlanarTransition" minimumTransitionGap="54" /> </TransitionOverlapOptions> </OpenRoadsSuperelevation>