Data Preparation Kit

Data Preparation Kit.

Overview

For proper use, vatSys requires a profile dataset be created and distributed to it’s users.

Each profile dataset should contain the data needed for one or more FIR’s or Air Traffic Systems.

The default vatSys profile (Eurocat Australia), may be viewed here.

Data Definition Hierarchy

The definition of all WAYPOINT, NAVAID, AIRPORT, SID & STAR names referenced by vatSys XML files are searched for in the following order:

  1. Airspace.xml
  2. Navigraph Data

Lat Long Format

vatSys accepts coordinates in any valid ISO 6709 format.

Latitude and Longitude in Degrees:
    ±DD.DDDD±DDD.DDDD         (eg +12.345-098.765)
Latitude and Longitude in Degrees and Minutes:
    ±DDMM.MMMM±DDDMM.MMMM     (eg +1234.56-09854.321)
Latitude and Longitude in Degrees, Minutes and Seconds:
    ±DDMMSS.SSSS±DDDMMSS.SSSS (eg +123456.7-0985432.1)
Latitude, Longitude (in Degrees) and Altitude:
    ±DD.DDDD±DDD.DDDD±AAA.AAA         (eg +12.345-098.765+15.9)
Latitude, Longitude (in Degrees and Minutes) and Altitude:
    ±DDMM.MMMM±DDDMM.MMMM±AAA.AAA     (eg +1234.56-09854.321+15.9)
Latitude, Longitude (in Degrees, Minutes and Seconds) and Altitude:
    ±DDMMSS.SSSS±DDDMMSS.SSSS±AAA.AAA (eg +123456.7-0985432.1+15.9)

Chaining Points Together

Multiple points may be chained by adding each point on a new line followed by the / character.

ELBIS/
IKUMA/
IDOTO/
GUNAM/
NIKOM/
CIN/
POKOS/
VALRA/
+12.345-098.765/
+15.345-123.765

Colours.XML

Colours.xml defines the colours used throughout the entire application. The default IDs are listed below. Additional Custom Colours may be defined for reference by individual maps.

Colour IDs

Colour ID Use
Default Special use by plugins only
State Special use by plugins only
Custom May be defined multiple times to allow custom coloured maps
Window and Control backgrounds
ASDBackground Air Situation Display background
GroundBackground Ground Situation Display background
HighlightedText Selected text
WindowBackground Generic Window background
WindowWarning Warning colour used in menu, button and window backgrounds
WindowEmergency Emergency colour used in menu, button and window backgrounds
WindowButtonSelected Selected (Toggled) menu, button and scrollbar backgrounds
WindowButtonDepressed Depressed (button) or hover (menu item) backgrounds
InteractiveText Font of interactive items
NonInteractiveText Font of non-interactive items
GenericText Generic font
StripBackground Background of strips
StripText Strip Font
ListSeparator List Separator Bars
ListSeparatorSelected List Separator Bars when Selected
CPDLCMessageBackground Generic CPDLC message background
CPDLCDownlink Downlink Messages and label item
CPDLCUplink Uplink Messages and label item
CPDLCFreetext Freetext Messages
CPDLCSendButton CPDLC Editor Window send button
PopupASDWindowBorderFocused Border colour of focused popup Air/Ground Windows
Maps
PrimaryMap System maps and default
SecondaryMap System2 maps
PRDArea REST_NTZ_DAIW, TDA and Supervisor maps
UserMap Local_Private and Global_Private maps (not currently used)
Infill Filled maps
GroundRunway Ground Situation Displays only
GroundTaxiway Ground Situation Displays only
GroundApron Ground Situation Displays only
GroundBuilding Ground Situation Displays only
GroundOther Ground Situation Displays only
Tracks, labels, strips
Preactive
Jurisdiction
GhostJurisdiction
PostJurisdiction
JurisdictionIQL Quick-looked state
Handover
Announced
NonJurisdictionIQL Quick-looked state
NonJurisdiction
NonJurisdictionLabel
CFLHighlight
IdentFlash SPI
Route
PostJurisdictionFlash
GroundUnknown
GroundArrival
GroundDeparture
GroundLocal
Warning
Emergency
Tools
StaticTools
DynamicTools
Arrival Manager
Frozen reserved for future use
SuperStable reserved for future use
Stable reserved for future use
Unstable reserved for future use
DelayMinor reserved for future use
DelayMajor reserved for future use
VSCS
VSCSHotline
VSCSOpenHotline
VSCSColdline
VSCSOpenColdline
VSCSActiveFrequency
VSCSReceivingFrequency
VSCSButtonSelected
VSCSButtonDepressed
VSCSBackground VSCS Window background
VSCSFrequencyWarning Frequency in error state

Colour Defintion

<Colour id="DynamicTools">
	<Use>Dynamic Tool In Use</Use>
	<Name>OffWhite</Name>
	<R>255</R>
	<G>230</G>
	<B>230</B>
</Colour>

Define the RGB value for a defined colour. Use element is optional and for reference only.

Custom Colours

Custom colours may be defined by using the id="Custom" and ensuring a unique <Name> is assigned.

<Colour id="Custom">
	<Use>Special colour for my very special map</Use>
	<Name>SpecialPlum</Name>
	<R>194</R>
	<G>147</G>
	<B>141</B>
</Colour>

Custom colours may then be referenced by Maps to affect their displayed colour.

Airspace.XML

SystemRunways

This section ‘maps’ the runway selectable by the controller in the strip or label of an aircraft to a SID or STAR defined in data for a particular runway (the DataRunway).

For every controlled airport in australia… we need to add the airport->runways->sidstars

<SystemRunways>
	<Airport Name="YBCG">
		<Runway Name="14" DataRunway="14">
			<SID Name="APAGI\d" Type="Jet"/>
			<SID Name="CUDGN\d" />
			<SID Name="CG\d" Default="True" />
			<STAR Name="[A-Z]{4}\dA" ApproachName="ILSZ"/>
			<STAR Name="[A-Z]{4}\dY" ApproachName="RNVY"/>
		</Runway>
		<Runway Name="32" DataRunway="32">
			<SID Name="APAGI\d" Type="Jet"/>
			<SID Name="BURLI\d" />
			<SID Name="CG\d" Default="True" />
			<STAR Name="[A-Z]{4}\dA" ApproachName="RNVZ"/>
			<STAR Name="[A-Z]{4}\dY" ApproachName="RNVY"/>
		</Runway>
		<Runway Name="14V" DataRunway="14">
			<STAR Name="[A-Z]{4}\dV" />
		</Runway>
		<Runway Name="32V" DataRunway="32">
			<STAR Name="[A-Z]{4}\dV" />
		</Runway>
	</Airport>
</SystemRunways>

What does this all mean?

  • The Name attribute of SID and STAR elements accepts Regex search patterns;
  • eg. If you see the code \d it means any number, so if the APAGI4 becomes APAGI5 the code doesn’t need to change.
  • eg. [A-Z]{4}\dA means the first 4 characters are anything between A-Z, then look for any number then (in this case) Alpha charts. This means the BLAK3A arrival can change to BLAK4A arrival and the code doesn’t need to change.
  • By doing this [A-Z]{4}\dA and ApproachName="ILSZ" we have assigned all Alpha STARs the ILSZ approach and [A-Z]{4}\dY all Yankee STARs to the ApproachName="RNVY" RNAV Yankee approach.
  • We set the default SID to the airport’s radar departure and we set any visual STAR’s under a separate runway called [runwayid]V like 14V. We do this by calling all STARs that end in any number and V for Victor/visual using [A-Z]{4}\dV.
  • The SIDs are written out individually since some are jet and some are non jet.
  • Runway ID cannot be more than 3 characters, so this means for any parallel runways the visual approach is not a seperate runway entry. Applicable to Sydney and Brisbane (#soon).

SIDSTARs

This section defines the routes of SIDs, STARs, Approaches and their Transitions.

SIDs and STARs should be defined for controlled airports whenever you wish to remove reliance on Navigraph defined data.

<SIDSTARs>
	<SID Name="TESTA1" Airport="AAAA" Runways="18,36">
        <Route Runway="36">ROUTE POINT</Route>
        <Route Runway="18">ANTHR RALTO</Route>
        <Route>TESTA</Route>
        <Transition Name="ABCDE">FINSH ABCDE</Transition>
    </SID>
	<STAR Name="TESTA1" Airport="AAAA" Runways="18,36">
		<Transition Name="ABCDE">ABCDE FINSH</Transition>
		<Route>TESTA</Route>
		<Route Runway="36">POINT ROUTE</Route>
		<Route Runway="18">RALTO ANTHR</Route>
	</STAR>
	<Approach Name="RNVZ" Airport="AAAA" Runway="18">
		<Transition Name="ABCDE">ANTHR</Transition>
		<Route>FAFFF AA18T</Route>
	</Approach>
</SIDSTARs>

What does this all mean? SIDs and STARs consist of Route elements that are runway or non runway specific. For a SID, the non-runway specific route will always follow the runway specific route. For a STAR, the reverse is true. Transitions will be applied whenever the transition end point coincides with a point on the flight planned route.

Approaches link a STAR to a runway. Transitions will be applied if they conincide with the STAR end point. Approaches are used only if defined in SystemRunways and are not manually selectable.

Airways

Airways may be defined whenever you wish to remove reliance on Navigraph defined data. Airways are always treated as valid in both directions.

<Airways>
    <Airway Name="A216">
        APUKA/
        MEMIG/
        LOCKA/
        CS
    </Airway>
</Airways>

Intersections

Intersections (Fixes & Navaids) may be defined whenever you wish to remove reliance on Navigraph defined data.

<Intersections>
    <Point Name="ABARB" Type="Fix">-325106.400+1545604.900</Point>
	<Point Name="WP" Type="Navaid" NavaidType="VOR" Frequency="112.800">-124024.800+1415520.900</Point>
</Intersections>	

Duplicates are generally accepted. vatSys will attempt to choose the nearest relevant intersection when parsing to resolve.

Intersection Types

Types
{
	Fix,
	Navaid,
	Airport,
	Unknown
}

Navaid Intersection Types

NavaidTypes
{
	None,
	VOR,
	NDB,
	TAC
}
Airports

Airports may be defined whenever you wish to remove reliance on Navigraph defined data.

<Airport ICAO="YABA" Position="-345636.000+1174832.000" Elevation="233">
		<Runway Name="14" Position="-345639.000+1174835.000">
		<Runway Name="32" Position="-345642.000+1174838.000">
</Airport>

Maps

Maps are what the Air Situation Display uses to display background information to the user of the client.

Each XML file must contain one <Maps> element, which may define multiple <Map> elements. Each <Map> are individually selectable within vatSys.

Folder structure within the vatSys Files\Maps\ directory is preserved by the Maps menu within vatSys.

Map Element

The Map element has the following attributes and children elements.

Type

Each Map element may have one Type attribute from the following:

        {
            System,
            System2,
            Flex,
            Filled, 
            Local_Private,
            Global_Private,
            Supervisor,
            TDA,
            REST_NTZ_DAIW,
            Ground_RWY,
            Ground_TWY,
            Ground_APR,
            Ground_BLD,
            Ground_BAK
        }

The type primarily will affect the colour vatSys uses to paint the map. Colours are defined in Colours.xml.

Name

The title of the Map (as displayed to the user).

Priority

An integer specifying the z-axis layering of the map, 0 being drawn on top of everything else.

PRIORITY_HIGHEST = 0

Center

An approximate center point of the map, used to deconflict in the event of multiple Waypoints with the same name.

Custom Colour Name

The optional attribute CustomColourName="SpecialPlum" will allow display in a colour defined in Colours.xml.

Line Element

Each <Line> element draws a line between all children <Point>'s. Lines may set attribute Pattern to one of the following:

{
    Solid,
    Broken,
    Hash,
    Dashed,
    Dotted,
    None
}

Lines may set attribute Width to any floating value to change the stroke width (in pixels) of the rendered line:

<Line .. Width="1.67">
	...
</Line>

Default stroke width is 1.0.

Airway lines may be coded using a special syntax within <Point>

<Point>STARTFIX.AIRWAYNAME.ENDFIX</Point>

eg. <Point>VALRA.A339.ELBIS</Point>

Infill Element

Each <Infill> element fills a polygon bound by the children <Point>'s.

Infills may specify a Type attribute (default Normal):

{
    Normal,
    Background,
}

Background Infill Type is filled in the ASD background colour (useful for simplifying polygon definitions).

Infills may specify a Pattern attribute (default Solid):

{
	Solid,
	Broken,
	Hash,
	Dashed,
	Dotted
}

Symbol Element

Each <Symbol> element must have attribute Type to select one of the following types:

{
	SolidTriangle,
	HollowTriangle,
	HollowTriangleWithBorder,
	SolidTriangleWithBorder,                    
	SolidSquare,
	SolidStar,
	HollowStar,
	MalteseCross,
	HollowSquare,
	Circle,
	DashedCircle,
	DotFillCircle,
	Hexagon,
	Reticle
}

Each <Symbol> can have multiple <Point> children. Each Point InnerText is either an otherwise defined waypoint/navaid/airport or latlong in standard format of where to place the Symbol.

Label Element

Each <Label> element of a map can have attributes HasLeader="bool", LabelOrientation="enum", Alignment="enum" and VerticalAlignment="enum" - these attributes specify if there is a line drawn from the point location to the text label and which compass direction or not, and the alignment of the text.

LabelOrientation
{
	N,
	NE,
	E,
	SE,
	S,
	SW,
	W,
	NW
}

Westerly LabelOrientation directions are Right aligned by default, otherwise default text alignment is Left.

Alignment
{
	Left,
	Center,
	Right
}

Southerly LabelOrientation directions are Top aligned by default, otherwise default text vertical alignment is Bottom.

VerticalAlignment
{
	Top,
	Middle,
	Bottom
}

Each <Label> can have multiple <Point> children. Each Point can have the attribute Name="string" (which is displayed as the label text) and the InnerText is either an otherwise defined waypoint/navaid/airport or latlong in standard format of where to place the label. If you omit Name the name is generated from the InnerText.

Misc.XML

Contains miscellaneous Flight Data Processor and HMI settings.

RVSMBand

<RVSMBand Lower="28000" Upper="41000" />

-Lower is lower flight level of RVSM airspace in feet -Upper is upper flight level of RVSM airspace in feet

Used for triggering display of LABEL_ITEM_FRULES track label item.

Transition

<Transition Altitude="10000" />

Altitude is level below which pressure corrected level is displayed instead of flight level

RVSMStatus

<RVSMStatus FAAEquipment="L, W, Z" ICAOEquipment="W" />

FAAEquipment comma separated equipment codes that indicate RVSM approval when flight plan is of VATSIM-FAA type ICAOEquipment comma separated equipment codes that indicate RVSM approval when flight plan is of VATSIM-ICAO type

When any of the above are met, RVSM status flag is set to true.

ADSBStatus

<ADSBStatus FAAEquipment="I, L, G, Z" ICAOEquipment="L, E, B1, B2" Remark="ADSB" />

FAAEquipment comma separated equipment codes that indicate ADSB equipage when flight plan is of VATSIM-FAA type ICAOEquipmentcomma separated equipment codes that indicate ADSB equipage when flight plan is of VATSIM-ICAO type Remark string present in flight plan remarks formatted as RMK/string

When any of the above are met, ADSB status flag is set to true.

LATCValues

<LATCValues>15, 22, 29, 38, 45, 61, 72, 89, 115, 165</LATCValues>

Distance values (NM) selectable when using the Conflict Area tool. These should represent meaningful separation values for procedural airspace eg. 7NM CEP + 14NM CEP + 1NM for Separation = 22NM

FilterGroundTracks

<FilterGroundTracks>YMML,YSSY,YPAD,YPPH,YBBN,YSCB,YPDN,YBCG,YBCS</FilterGroundTracks>

Comma separated airport ICAO designators. ASD radar track labels are filtered in proximity when on the ground.

PDCAirports

<PDCAirports>YMML,YSSY,YPAD,YPPH,YBBN,YSCB,YPDN,YBCG,YBCS</PDCAirports>

Comma separated airport ICAO designators. PDC strip options are available when the departure point is one of these airports.

BRL

<BRL LabelType="Extended" />

LabelType -Normal (default) or
-Extended (Shows reciprocal bearing and distance units)

Sets the bearing and range line tool label type.

ASSR

<ASSR AutoAssign="False" ShowNonDiscreteErrors="False" />

AutoAssign boolean defaulting to True. When False, SSR Codes are not assigned automatically. ShowNonDiscreteErrors boolean defaulting to True. When False, SSR Code mismatch and invalid assignment Error messages are suppressed. ShowMismatchErrors boolean defaulting to True. When False, all SSR Code mismatch errors are suppressed.

Strips.XML

This file contains strip layout definitions for the rendering of flight progress strips. Each Position may be assigned a specific strip layout that is defined in this file, otherwise the default layout will be assigned.

This file is optional - default layouts are loaded if this file is missing. See example file.

StripLayouts

Contains StripLayout definitions, each a specific layout of strip items that vatSys will render.

StripLayout

StripLayout contains layout sections, which contain layout lines, which contain strip items. Sections ‘flow’ horizontally or vertically. Widths of each section is calculated by the character width of the vatSys monospaced font and the minimum length of a line of strip items.

StripLayout has the attributes Name="string" and ArrowType="enum".

  • Name is the name of the layout for referencing in Position definitions, or the special name "Default". A single default layout should always be defined for general use when no specific layout is applicable.
  • ArrowType is the direction of the designator area item (if present). None will render a diamond shape. Direction will automatically choose arrow based on FDR direction of flight.
ArrowType
{
	None,
	Up,
	Down,
	Left,
	Right,
	Direction
}
StripLayoutSection

StripLayoutSection defines a portion of the strip. It may contain children StripLayoutSection's in the child element StripLayoutSubsections. It may contain lines of actual strip items in the child element StripLayoutLines. The nesting of multiple child StripLayoutSections allows the creation of complex strip layouts.

StripLayoutSection has the following attributes, FlowDirection="enum", Border="flags" and DisplayState="enum".

  • FlowDirection is the direction in which child sub sections will be laid out and may be one of the following
FlowDirection
{
	Horizontal,
	Vertical
}
Horizontal Flow

Vertical Flow

  • Border is the desired border to be rendered around this section. One or more flags may be combined with the | character eg. Border="Left | Bottom"
Border
{
    None = 0,
    Left = 1,
    Right = 2,
    Top = 4,
    Bottom = 8,
    Vertical = Left | Right,
    Horizontal = Top | Bottom,
    All = Vertical | Horizontal
}
  • DisplayState (optional) is whether this section should be rendered only when the strip is extended or not. Normal sections are always rendered.
DisplayState
{
	Normal,
	Extended
}
StripLayoutLine

StripLayoutLine contains the StripItems composing a line of a strip. It has one attribute, LineSpan="int", which is an optional attribute to specify the number of lines of text that these items will span. For example, the designation arrow in the default strip spans two lines of the strip.

StripLayoutLine has the child element StripItems, which may contain one or more StripItem elements.

StripItem

StripItems are the actual text item that the user sees and interacts with. It contains the following attributes:

  • Type="enum/string". Either a default item type from the StripItemType enum, or a unique string name for use in CustomStripItem plugins. DesignationArea is the strip direction arrow and must span two lines. The rest are single lines of text.
  • PointIndex="int". When the Type is one of Point, ETOP, PCL, this specifies the route segment index. 0 is the last overflown route point.
  • MinLength="int". The minimum length of the item. Set this to ensure layout of sections is calculated correctly.
  • MaxLength="int". The maximum length of the item text. If the text exceeds this length, the text is truncated and the last character is replaced by *.
  • LeftClick="enum". The ClickspotTypes action to occur on left click.
  • MiddleClick="enum". The ClickspotTypes action to occur on middle click.
  • RightClick="enum". The ClickspotTypes action to occur on right click.
  • FontSize="enum". The ASDFontSize size of the text. Default is Small.
  • Border="flags". The desired border to be rendered around this item. One or more flags may be combined with the | character eg. Border="Left | Bottom"
StripItemType
{
	DesignationArea,
	Callsign,
	CPDLCStatus,
	FlightRules,
	TAS,
	RFL,
	Point,
	AssignedSSR,
	AircraftType,
	PRL,
	CFL,
	ETOP,
	ControllingSector,
	ATD,
	Destination,
	Runway,
	CoordinationStatus,
	XFL,
	PCL,
	FDRState,
	OtherInfo,
	GlobalOpsInfo,
	LocalOpsInfo,
	Gate,
	SIDSTAR,
	WakeTurbCategory,
	Departure,
	ETD,
	ExitBeacon,
	ExitETO,
	EntryBeacon,
	EntryETO,
	HoldPoint,
	PDCStatus,
	LabelData,
	ETA,
	FlightType,
	PerformanceCategory
}
ClickspotTypes
{
	Label_Field18_Popup,
	Label_SAR_Popup,
	Label_PRL_Popup,
	Label_CFL_Popup,
	Strip_CFL_Expand,
	Strip_Select,
	Strip_Cock,
	Strip_State,
	Strip_Controller,
	Strip_Extend,
	Strip_ATD,
	Strip_SIDSTAR,
	Strip_SIDSTAR_Expand,
	Strip_Point,
	Strip_Point_Expand,
	Strip_Point_DCT,
	Strip_MPR_Arm,
	Strip_PCL,
	Strip_ETO,
	Strip_GlobalOps,
	Strip_LocalOps,
	Strip_Delete,
	Strip_ASSR,
	Strip_PDC_Editor,
	Strip_PDC_Acknowledge,
}
ASDFontSize
{
	XtraSmall,
    Small,
    Large,
    XtraLarge
}
Colours

A Colours element may be added to a StripItem to override the default colours of items. It has the following attributes, each are a colour identity as defined in Colours.XML:

  • Colour="enum". Item text colour
  • BackColour="enum". Item background colour
  • BorderColour="enum". Item border colour
  • P1Colour="enum". Item background colour when P1 alert is valid
  • P2Colour="enum". Item text colour when P2 alert is valid
  • P3Colour="enum". Item text colour when P3 alert is valid
  • P4Colour="enum". Item text colour when P4 alert is valid
  • P1BackColour="enum". Item background colour when P1 alert is valid
  • P2BackColour="enum". Item background colour when P2 alert is valid
  • P3BackColour="enum". Item background colour when P3 alert is valid
  • P4BackColour="enum". Item background colour when P4 alert is valid
  • P1BorderColour="enum". Item border colour when P1 alert is valid
  • P2BorderColour="enum". Item border colour when P2 alert is valid
  • P3BorderColour="enum". Item border colour when P3 alert is valid
  • P4BorderColour="enum". Item border colour when P4 alert is valid
StripItemSeparator

StripItemSeparator is a special blank StripItem for inserting empty space within a line. It’s only valid attribute is MinLength="int".