-
Notifications
You must be signed in to change notification settings - Fork 32
Data Format
Data is stored in a JSON file. Generally, you should aim for one vACC per file. In some cases (e.g. vACCs with multiple, unconnected FIRs), it may be more appropriate to split data across multiple files.
Files should be formatted in accordance with the following schema:
Deprecated.
List of all possible ATC sectors. Sectors will always be visible unless deactivated by a time or runway restriction. It is possible to make a sector invisible without removing it by assigning it to a non-existent runway, but this is not recommended except for testing purposes. Each ATC sector is formed of sub-sectors; these must be uniform blocks with consistent lateral boundaries at all levels. Sub-sectors can then be combined to create more complex shapes.
airspace
- Array of Objects
-
id
- String - Name of ATC Sector -
group
- String - ID of sector's group in top-levelgroups
array. -
docs
- Optional Array of Strings - Part of an ongoing project, not to be used outside of the UK. -
fua
- Optional Array of Objects - Date/Time restrictions on sector's availability. Not shown on the map outside of designated times. -
owner
- Array of Strings - ID of owning positions (in descending order of priority) in top-levelpositions
array.- Positions from other data files can be referenced in the format
country/position
, whereposition
is defined incountry.json
.
- Positions from other data files can be referenced in the format
-
sectors
- Array of Objects - Uniform blocks of airspace making up this ATC sector. Each element must have the same lateral boundaries at all altitudes.-
min
- Optional Integer - Minimum altitude (inclusive) for this sector. -
max
- Optional Integer - Maximum altitude (inclusive) for this sector. -
runways
Optional Array of Objects - Required active runways for this sector (all must be true to display).-
icao
- String - ICAO code of airport. -
runway
- String or Array of Strings - Valid runway configurations.
-
-
points
- Array of Arrays- Arrays of coordinate pairs (
["-ddmmss", "-dddmmss"]
)
- Arrays of coordinate pairs (
-
Sectors must be assigned to exactly one group. Groups are used for the first line of the sector's information popup, and define colours for use in offline display.
groups
- Object of Objects (Key - String - used to reference group in group
element of airspace
entries.)
-
name
- String - Display name of group. -
colour
- String - Colour of group in offline sector displays, must be a hex value in the format"#rrggbb"
.
List of all assignable ATC positions. A position must be defined here before it can own any airspace or have top-down control over an airport. Airport positions (DEL, GND, TWR, APP, and DEP) do not need to be defined unless they own airspace - they automatically have top-down control over their own airport. If an airport position owns airspace or is included in the top-down control list for other airports, it must be defined here.
positions
- Object of Objects (Key - String - used to reference position in owner
element of airspace
entries and topdown
element of airport
entries.)
-
colours
- Optional Array of Objects - Colour of position's owned sectors in online sector displays. First valid element (starting at index 0) is used as display colour.-
online
- Optional - Array of Strings - IDs of positions which must be online to use this colour configuration. -
hex
- String - Colour, must be a hex value in the format"#rrggbb"
.
-
-
pre
- Array of Strings - Valid prefixes in logon callsign (text before the first_
). -
type
- String - Suffix of logon callsign (text after the final_
). -
frequency
- Optional - String - Exact frequency of position. If omitted, all positions of the correct type with a valid prefix will match and be displayed together. e.g. If you want to create a catch-allATL_CTR
and display all onlineATL_CTR
s for every sector, to account for dynamic sectorisation. -
callsign
- String - Voice callsign of position.
Parameters to be used when auto-creating callsigns for undefined airport positions. This section allows freedom to differentiate between e.g. AFIS and ATC towers or Apron and Ground controllers, without defining them explicitly.
callsigns
- Object of Objects (Key - String - Equivalent to type
in position
entries) - Used to generate generic callsigns for undefined aerodrome positions.
- Each object may contain any number of key-value pairs, with the format:
- Key - String - Middle section of logon callsign (empty string matches logon callsigns without a middle section).
- Value - String - Position voice callsign (paired with airport voice callsign).
List of all possible airports. An airport must be defined here before it can be displayed, control runway-dependent airspace, or auto-create ADC positions.
airports
- Object of Objects (Key - String - ICAO code of airport and/or equivalent to prefix
in position
entries, as desired)
-
pre
- Optional Array of Strings - Valid logon callsign prefixes, if different from the airport's ICAO code. Generally not required outside of the USA and Australia. -
callsign
- String - Airport voice callsign (paired with position voice callsigns incallsigns
entries to generate generic callsigns wherepositions
does not contain a valid entry.) -
coord
- Optional Array of Decimals - Coordinate pairs (signed decimal degrees). -
runways
- Optional Array of Strings - Possible runway configurations. Only define runways if this airport's runway configuration affects airspace structure. -
default
- Optional Boolean (assumedtrue
if omitted) - Use the default ownership structure (above TWR) for this airport (F_APP > APP >topdown
). -
topdown
- Optional Array of Strings - ID of owning positions (Above TWR, in descending order of priority) in top-levelpositions
array.- Positions from other data files can be referenced in the format
country/position
, whereposition
is defined incountry.json
.
- Positions from other data files can be referenced in the format
-
major
- Optional String - ID of anotherairports
entry in this file, whose ownership order (above TWR) should be followed if this airport's ownership order is exhausted. Several airports can be chained into a hierarchy in this fashion. -
end
- Optional Object of Objects (Key - String - Equivalent totype
inposition
entries)- Each object may contain any number of key-value pairs, in the same format as
callsigns
entries. This allows the genericcallsigns
entries to be overriden for this airport without explicitly definingpositions
entries.
- Each object may contain any number of key-value pairs, in the same format as
Airport coordinates should be the same format as in the VATSpy files (https://github.com/vatsimnetwork/vatspy-data-project). Please be aware that copying coordinates directly from this repository will require you to add an attribution to each airport in your data file.