OpenRadar: Editing routes: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(Detailed the steps to use a LevelD xml file)
Line 22: Line 22:


== Generating the OpenRadar definitions from existing ProceduresDB file ==
== Generating the OpenRadar definitions from existing ProceduresDB file ==
WARNING: Known issues: There is an major issue when reading the procedure file, in the current version. I will fix it soon, but it requires to implement more functionality to define standard routes... I will need some time to do that.
WARNING: Known issues: There is an major issue when reading the procedure file, in the current version. I will fix it soon, but it requires to implement more functionality to define standard routes... I will need some time to do that.


There is already an XML format that contains the STARs and SIDs. Converting it can save you some work.
There is already an XML format that contains the STARs and SIDs. Converting it can save you some work.


We do not use it directly because:
We do not use it directly because:
* These data are not free
* It purpose it to provide input for the autopilot/flight manager, not for an ATC screen
* It purpose it to provide input for the autopilot/flight manager, not for an ATC screen
* Our format is made to display the important information which an ATC needs:
* Our format is made to display the important information which an ATC needs:
Line 36: Line 37:
:*NAVAID hightlighting
:*NAVAID hightlighting


Currently I do not know where this file is usually located. In my flightgear directory it is not existing. Maybe it is because my version (2.6) is too old.
The SID/STAR xml files can be bought and downloaded for a few bucks from [http://navigraph.com Navigraph]. Generally FlightGear looks for them in a Airports/I/C/A/ICAO.procedures.xml (where ICAO is an airport). For example, the procedures file for ELLX, if it exists, is under Airports/E/L/L/ELLX.procedures.xml.


The file is usually located in a directory structure like /E/L/L/ELLX.procedure.xml.  
OpenRadar can also read these XML files. For that:
* create the directory OpenRadar/data/routes/ICAO (where ICAO is the code of the airport you want to use)
* put your procedure XML (named ICAO.procedures.xml) into it
* start OpenRadar at your airport (ICAO), you now have a converted file ICAO.procedures.or.xml in the OpenRadar/data/routes/ICAO directory
* exit OpenRadar : the original file is not needed anymore after this step (move it somewhere else if you want)
* rename your ICAO.procedures.or.xml file to ICAO.procedures.xml


Create the directory OpenRadar/data/routes/ELLX and put your procedure XML into it. After you have started ELLX in Openradar, you have a converted file ELLX.procedure.or.xml. The orginal file is not needed anymore after this step. You can and should modify the new file following the explanations below.
Now when restarting OpenRadar, the converted routes are available. You can and should modify the new file following the explanations below.


== Manual creation / refinement ==
== Manual creation / refinement ==

Revision as of 15:21, 12 April 2013

EDDF with procedures, routes and additional information.

Back to mainpage

About

You can define standard routes to OpenRadar. This can be done by converting a NavaidDB file and improve the result or define it from scratch by adding lines, curves and bows to the radar screen. So you can define waiting loops, STARs and SIDs if you want to and if you need them.

Please send your finished work in to include it into the next OpenRadar update for everybody.

To have an example, check out airport LFSB. It is our showcase in this matter.

Please be warned: Defining all approaches and procedures for a more complex airport may produce too much details to work with. Concentrate on the important things, like additional vectors or waiting rooms.

A collection of possibilities:

  • Highlight only the navaids that you need to see
  • Create only the holding areas
  • Create the Approaches to appear on a higher viewpoint and the STAR/SID routes on lower viewpoints
  • Use texts to have the taxiways names in the map at the best spot (hide them on higher viewlevels)
  • Use texts to have the maximum speed in the map
  • Create only the most important routes, or
  • Create all standard STAR and SID routes

Generating the OpenRadar definitions from existing ProceduresDB file

WARNING: Known issues: There is an major issue when reading the procedure file, in the current version. I will fix it soon, but it requires to implement more functionality to define standard routes... I will need some time to do that.

There is already an XML format that contains the STARs and SIDs. Converting it can save you some work.

We do not use it directly because:

  • These data are not free
  • It purpose it to provide input for the autopilot/flight manager, not for an ATC screen
  • Our format is made to display the important information which an ATC needs:
  • adaptive detail (you can define the lower and upper zoom level values between the route is being displayed)
  • display of STARs and SIDs can depend on the runway usage mode
  • colors (each route, each element can have its own color), strokes and line width
  • more graphical elements curves, bows and text
  • NAVAID hightlighting

The SID/STAR xml files can be bought and downloaded for a few bucks from Navigraph. Generally FlightGear looks for them in a Airports/I/C/A/ICAO.procedures.xml (where ICAO is an airport). For example, the procedures file for ELLX, if it exists, is under Airports/E/L/L/ELLX.procedures.xml.

OpenRadar can also read these XML files. For that:

  • create the directory OpenRadar/data/routes/ICAO (where ICAO is the code of the airport you want to use)
  • put your procedure XML (named ICAO.procedures.xml) into it
  • start OpenRadar at your airport (ICAO), you now have a converted file ICAO.procedures.or.xml in the OpenRadar/data/routes/ICAO directory
  • exit OpenRadar : the original file is not needed anymore after this step (move it somewhere else if you want)
  • rename your ICAO.procedures.or.xml file to ICAO.procedures.xml

Now when restarting OpenRadar, the converted routes are available. You can and should modify the new file following the explanations below.

Manual creation / refinement

The most important first: SHIFT+F12 reloads the standard routes of your current airport. So you can see changes quickly...

The files must be located in directory data/routes/[airport name].

The files must end with ".xml", so they must be xml documents. Here is a simple example of everything around your route definitions:

<?xml version="1.0" encoding="UTF-8" ?>
<!-- This file contains the STAR and SID of RW 26 -->
<routes>
--- here are your definitions ---
</routes>

A Route

A route is a collection of definitions that belong together. The values zoomMin and zoomMax allow you to define adaptive details or layers of information that appear within those constraints. Omitting them means there is no constraint at this side...

A route can have the following attributes:

attribute opt. description
name no A meaningful name for this route
zoomMin yes The minimum zoom level at which this route is being displayed. If you zoom in more, it disappears. (default values: Ground: 14, Tower: 26, App: 100)
zoomMax yes The maximum zoom level at which this route is being displayed. If you zoom out more, it disappears. (default values: Ground: 14, Tower: 26, App: 100)
stroke yes can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space...
color yes Defines the color of the elements of this route. Use it carefully and rarely. You still want to be able to read the most important information on the radar: The contacs position info....

Supported are the following xml tags:

tag opt. description
activeStartRunways yes A comma separated list of runways. If one of them is active for starts the route will be displayed.
activeLandingRunways yes A comma separated list of runways. If one of them is active for landings the route will be displayed. If neither activeStartRunways nor activeLandingRunways is defined, the route will always be displayed. Use this for parking rooms...
navaids yes A comma separated list of navaid ids (FIX,NDB,VOR,Airportcodes) that will be highlighted if this route is being displayed, regardless if the main switches for FIX/NDB etc. are enabled or not.

This tag can have an attribute color that defines the color for the navaids in RGB values. Example: color="120,140,120"

(other elements) yes the graphical tags explained below

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<!-- This file contains the STAR and SID of RW 26 -->
<routes>
	<route name="RW 26 SID" zoomMin="10" zoomMax="100" color="120,140,120">
		<activeStartRunways>26</activeStartRunways>
		<navaids>BASUD,BLM,BS,ELBEG,HOC,HOMBO,LUMEL,WIL</navaids>
                --- more to be explained ---
        </route>
</routes>

Points and Angles

All elements of your route base on points and angles. Angles are magnetic and defined in degrees.

Points on your radar can be defined:

Navaid You can use the navaid ID, e.g begin="BLM"
Runway end You can use any runway end of the current airport. e.g. Runway 15 at Basel: begin="LFSB-RW15"
Geographic Location You can use the geographic location separated by a comma. e.g.
begin="47.599450,7.531936", begin="N47°57'51'',E7°54'58''" or begin="N47°57.2',E7°54.10'"
Relative Location You can define a point relative to a navaid in the format: dddNMaaa@iii (where ddd is the decimal distance in NM, aaa is the magnetic bearing from iii, which is a navaid id. Distance and heading have the decimal separator 'dot'.

e.g. "2.5NM165@BLM"

Length' are also given in decimal NM.

Missing Navaids:

If you notice that some navaids are not available in OpenRadar's data, you can use their geographic positions, or better define them in your route file. These additional definitions can be used like navaids defined in the AptNav files... Please remember, very likely your clients will not have them visible in their inflight map...

attribute opt. description
code yes The ID under that your want to find it. Try to use non existing to avoid conflicts
point yes The geographic coordinates of the point.

Examples:

<?xml version="1.0" encoding="UTF-8" ?>
<routes>
	<addPoint code="AGOLO" point="50.200000,9.676111"/>
 	<addPoint code="BIBTI" point="50.966667,7.108611"/>
 	<addPoint code="ESUPI" point="50.058333,8.121111"/>
 	<addPoint code="FRD"   point="50.030556,8.566944"/>
 	<addPoint code="IBVIL" point="50.434444,7.369167"/>
 	<addPoint code="KERAX" point="50.475000,9.581944"/>

	...
</routes>

Elements

A route can be constructed out of the following Elements:

line

A line is a line is a line. It can be defined (1) either via two points or (2) via one point, direction and length.

two point definition

attribute opt. description
start no The start point of the line
end no The end point of the line
startOffset yes The distance from start point in miles from which the painting should start
endOffset yes The distance from end point in miles from which the painting should start
stroke yes can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space...
lineWidth yes (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)...
arrows yes Paints arrows at the lines end, pointing in direction from start to end: Possible is "begin","end",both", Optionally you can define the arrow size by appending a comma and the size of the arrow. Default is 10, big would be 20. Example: "end,20"
color yes Defines the color of this line. Overwrites the definition in <route>. Define it there if possible.
text yes Whatever you define, will be displayed in the middle of the line. The line is broken at this spot.

via one point, direction and length

attribute opt. description
start no The start point of the line
angle no The magnetic angle of this line
length no The length of the line including the offsets
startOffset yes The distance from start point in miles from which the painting should start
endOffset yes The distance from end point in miles from which the painting should start
stroke yes can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space...
lineWidth yes (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)...
arrows yes Paints arrows at the lines end, pointing in direction from start to end: Possible is "begin","end",both", Optionally you can define the arrow size by appending a comma and the size of the arrow. Default is 10, big would be 20. Example: "end,20"
color yes Defines the color of this line. Overwrites the definition in <route>. Define it there if possible.
text yes Whatever you define, will be displayed at the middle of the line. The line is broken at this spot.

Examples:

<?xml version="1.0" encoding="UTF-8" ?>
<routes>
	<route name="RW 26 SID" zoomMin="10" zoomMax="100" color="120,140,120">
		<activeStartRunways>26</activeStartRunways>
		<navaids>BASUD,BLM,BS,ELBEG,HOC,HOMBO,LUMEL,WIL</navaids>

                <line start="BLM" end="ELBEG" text="069" />
		<line start="HOC" end="HOMBO" startOffset="3" text="341" />
		<line start="5.4NM226@BLM" end="LUMEL" text="226" />

		<line start="BLM" startOffset="1.2" angle="003" length="10" text="003" arrows="end"/>
                <!-- a vectoring line -->
		<line start="BLM" angle="202" length="4.5" stroke="dashed,1" text="202" />

        </route>
</routes>

multi-point-line / polygon

This element can be used to draw polygons, both open and closed.

attribute opt. description
close yes "true" is the default, "false" does not connect the last with the first point
stroke yes can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space...
lineWidth yes (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)...
color yes Defines the color of this line. Overwrites the definition in <route>. Define it there if possible.

In difference to the other XML elements, this element contains children named points. Their content is a normal point definition as explained above.

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<routes>
	<route name="Polygon example">
		...
		<multiPointLine close="false">
			<point>ALTIK</point>
			<point>6NM226@BLM</point>
		    	<point>50.454722,7.227222</point>
		</multiPointLine>
		...
	</route>
</routes>

curve

Curves are an easy and comfortable way to connect lines if there is not radius defined and if the angle is small. A curve is implemented as quad curve, so it has a startPoint, an endPoint and an controlPoint which controls the curving. A good start point for the control point is the interception between the lines that should be connected.

attribute opt. description
start no The start point of the curve
end no The end point of the curve
controlPoint no The location of the control point of this curve.
stroke yes can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space...
lineWidth yes (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)...
arrows yes Paints arrows at the lines end, pointing in direction from start to end: Possible is "begin","end",both", Optionally you can define the arrow size by appending a comma and the size of the arrow. Default is 10, big would be 20. Example: "end,20"
color yes Defines the color of this line. Overwrites the definition in <route>. Define it there if possible.

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<routes>
	<route name="RW 26 SID" zoomMin="10" zoomMax="100" color="120,140,120">
		<activeStartRunways>26</activeStartRunways>
		<navaids>BASUD,BLM,BS,ELBEG,HOC,HOMBO,LUMEL,WIL</navaids>

		<curve start="6NM226@BLM" end="13.5NM315@BASUD" controlPoint="7.5NM226@BLM"/>
        </route>
</routes>

bow

A bow is a part of a circle around a specified point. It can be used to define circling approaches or wider curves.

attribute opt. description
center no The center of the bow
radius no The radius of the bow
startAngle no The magnetic start angle of the bow
extentAngle no The extend of the bow in degress. Positive direction is the direction of the compass
stroke yes can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space...
lineWidth yes (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)...
arrows yes Paints arrows at the lines end, pointing in direction from start to end: Possible is "begin","end",both", Optionally you can define the arrow size by appending a comma and the size of the arrow. Default is 10, big would be 20. Example: "end,20"
color yes Defines the color of this line. Overwrites the definition in <route>. Define it there if possible.
text yes Whatever you define, will be displayed at the center angle of the bow. The line is broken at this spot.

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<routes>
	<route name="RW 26 SID" zoomMin="10" zoomMax="100" color="120,140,120">
		<activeStartRunways>26</activeStartRunways>
		<navaids>BASUD,BLM,BS,ELBEG,HOC,HOMBO,LUMEL,WIL</navaids>

		<bow center="BLM" radius="9" startAngle="277" extentAngle="50" text="D9"/>
		<!-- a misap -->
		<bow center="BLM" radius="15" startAngle="274" extentAngle="-36" stroke="dashed" arrows="start" text="D15"/>
        </route>
</routes>

loop

This element displays a parking area. It has predefined text locations for min, max and misap height...

attribute opt. description
navpoint no The hook of the parking. The target of the inbound direction, where the pilots turn into the loop.
inboundHeading no As magnetic direction.
length yes the length of a leg in NM (the straight part of the loop)
width yes the distance between the legs in NM
right yes "true" or "false", does the pilot turn to right or left at navpoint? Default: right
minHeight yes The minimum height for planes in this loop (painted bold)
maxHeight yes The maximum height for planes in this loop
misapHeight yes The default height for missed approaches.
stroke yes can be "line","dashed","dots" or a pattern definition followed optionally by a comma and the line width as decimal, if omitted it is a plain line, 2 dots in width. A pattern definition is a dash separated list of decimals defining the length of the visible and invisible sub-lines of the pattern. e.g. "1-1" (dots), "5-1" (dashes), "10-3-5-3" a long dash, 3 dots space a shorter dash, 3 dots space...
lineWidth yes (deprecated, define it in stroke!) The width of the lines to be painted. Default is 2px. Use 1px for vectoring helper lines (dashed/dotted)...
arrows yes Paints arrows at the lines end, pointing in direction from start to end: Possible is "begin","end",both", Optionally you can define the arrow size by appending a comma and the size of the arrow. Default is 10, big would be 20. Example: "end,20"
color yes Defines the color of this line. Overwrites the definition in <route>. Define it there if possible.

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<routes>
	<route name="LFSB Wait loops">
		<navaids>BLM,ALTIK,SEDOR</navaids>
		<loop navpoint="SEDOR" inboundHeading="192" width="5" arrows="both" minHeight="7000" maxHeight="MAX 12000"/>>
		<loop navpoint="ALTIK" inboundHeading="94" width="5" arrows="both" minHeight="5500" maxHeight="MAX 11000" misapHeight="MISAP4000"/>
		<loop navpoint="BALIR" inboundHeading="319" width="5" arrows="both" minHeight="7000" maxHeight="MAX 12000"/>
	</route>
</routes>

text

This element draws a text at the specified spot

attribute opt. description
position no The position of the text's center
angle yes The text can be rotated, if you need to. Default is horizontal, angle grows clockwise
font yes The font name, please consider using a font everybody has available, or leave it away to take the default
fontSize yes The font size in points. Default is 10pt
color yes Defines the color of this text. Overwrites the definition in <route>. Define it there if possible.
text yes This text will be displayed. Single line only!

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<routes>
	<route name="text example">
		<text position="5NM327@BLM" font="Arial" fontSize="22" angle="-90" text="Example text"/>
	</route>
</routes>

VFR minimum altitudes

This element draws the known minimum altitude symbol.

attribute opt. description
position no The position of the text's center
value no The altitude in thousands of feet ("3.4" means 3400 ft)
font yes The font name, please consider using a font everybody has available, or leave it away to take the default
fontSize yes The font size in points. Default is 10pt
color yes Defines the color of this text. Overwrites the definition in <route>. Define it there if possible.

Example:

<?xml version="1.0" encoding="UTF-8" ?>
<routes>
	<route name="LFSB minimum altitudes">
		<!-- black forest -->
		<minAlt position="47.705141,7.911530" value="5.7"/>
		<minAlt position="47.861,8.01315" value="5.9"/>
		<!-- jura -->
		<minAlt position="47.81546,6.847916" value="5.3"/>
		<minAlt position="48.084501,7.236557" value="5.4"/>
		<!-- alsace -->
		<minAlt position="47.406250,7.706909" value="5.7"/>
		<minAlt position="47.208841,7.245483" value="6.2"/>
	</route>
</routes>