SkyDemon Custom Data Information
If there is poor support for your country in SkyDemon and you have a head for data, you'll be pleased to discover that you can create all the necessary
data yourself. This feature is intended for advanced users.
Enabling Custom Data
First, create a folder somewhere that will hold all your custom SkyDemon data. You now need to create a new shortcut to, or modify the existing
shortcut to, SkyAngel.exe, specifying the /data parameter followed by the full path of your data folder, in quotes. For example, if you wanted to modify
the default start menu shortcut you would right-click it, select Properties and change the Target by adding the following, after a space:
/data "c:\users\myname\desktop\SkyDemonData"
The next time SkyDemon is started, it will load any data files it finds in that folder after it's done loading the standard data.
Alternatively, you can import user data by going to Tools -> Import User Data. This is a one-off, and the data will not re-appear next time you start
SkyDemon.
Data Formats
With the exception of land masses and airspace, all SkyDemon data is in CSV (comma-separated value) format. There must be no header in the file,
only data. Software like Excel can export in this format. Where a field is not required, it can be left empty, but all fields must exist. Lat/Lon fields are in
the format Nddmmss.dd Wdddmmss.dd. The decimal part is optional.
When it comes to naming each file, the extension will be dictated by the type of data contained within. For example, any file containing airfield data
ends with .airfields.csv. We recommend starting the filename with the name of the country. Anything in between is entirely up to you, but
we suggest being descriptive about the kind of entity contained within the file, for example uk.licensed.airfields.csv.
Airfields, Runways and Frequencies
Assembling airfield data requires creation of three separate files; one for airfields, one for runways and one for communications frequencies. An airfield
datafile must have the extension .airfields.csv.
Airfield Field Reference
| Field Index | Field Name | Field Type | Required | Notes |
| 0 | Unique Identifier | Text | Y | A unique identifier for the airfield used to match it with the data in the accompanying files. This value is never displayed to the user. If there is an ICAO code, you can use that. |
| 1 | Local Identifier | Text | N | An identifier for the airfield, for example LAX |
| 2 | ICAO Identifier | Text | N | EGHA, EGHS |
| 3 | Name | Text | Y | |
| 4 | Traffic Type | Text | Y | A for airport, H for heliport, S for seaplane base, M for microlighting site |
| 5 | Usage Type | Text | Y | C for civilian, M for military or F for privately owned strips |
| 6 | Location | Lat/Lon | Y | |
| 7 | Elevation | Integer | Y | Feet AMSL |
| 8 | Manager Name | Text | N | Name of the managing entity responsible for the airfield |
| 9 | Manager Phone | Text | N | Phone number of the managing entity responsible for the airfield |
| 10 | Availability | Text | Y | PR for private or PU for public |
| 11 | Circuit Height | Integer | N | Feet AGL |
| 12 | URL | Text | N | An URL to a webpage containing further information about the airfield |
A runways datafile must have the extension .airfields.runways.csv. There should be at least one item in it corresponding to each airfield defined in
your airfields file.
Runway Field Reference
| Field Index | Field Name | Field Type | Required | Notes |
| 0 | Airfield Identifier | Text | Y | Must match up with the unique identifier for an airfield in your airfields file |
| 1 | Runway Identifier | Text | Y | The identifier for the runway as a whole, for example 26/08 |
| 2 | Length | Integer | Y | Metres |
| 3 | Width | Integer | Y | Metres |
| 4 | Surface | Text | Y | One of the following values: ASPHALT CONCRETE GRASS SAND WATER ICE GRAVEL METAL UNKNOWN |
| 5 | Base End Identifier | Text | Y | The identifier for the base end of the runway, for example 26 |
| 6 | Base End Alignment | Decimal | N | Degrees true |
| 7 | Base End Position | Lat/Lon | N | Threshold position |
| 8 | Base End Elevation | Decimal | Y | Feet AMSL |
| 9 | Far End Identifier | Text | N | The identifier for the far end of the runway, for example 26 |
| 10 | Far End Alignment | Decimal | N | Degrees true |
| 11 | Far End Position | Lat/Lon | N | Threshold position |
| 12 | Far End Elevation | Decimal | Y | Feet AMSL |
A frequencies datafile must have the extension .airfields.frequencies.csv.
Frequencies Field Reference
| Field Index | Field Name | Field Type | Required | Notes |
| 0 | Airfield Identifier | Text | Y | Must match up with the unique identifier for an airfield in your airfields file |
| 1 | Designation | Text | Y | APP, TWR, RAD, GND, ATIS, A/G |
| 2 | Callsign | Text | Y | |
| 3 | Frequency | Decimal | Y | |
| 4 | Coverage | Integer | Y | Coverage, in nautical miles, of the frequency. 0 if unknown. |
Fixed Obstructions
These are usually listed in the enroute section of the relevant AIP. An obstruction datafile must have the extension .obstructions.csv.
Obstruction Field Reference
| Field Index | Field Name | Field Type | Required | Notes |
| 0 | Name | Text | Y | |
| 1 | Reference | Text | N | Must be unique if specified |
| 2 | Type | Integer | Y | See below |
| 3 | Number | Integer | Y | Number of obstructions in group; usually 1 |
| 4 | Location | Lat/Lon | Y | |
| 5 | Altitude | Integer | Y | Altitude of the top in feet AMSL |
| 6 | Height | Integer | Y | Feet AGL |
| 7 | Lit | Text | Y | Y or N or ? depending on whether the obstruction is lit (or not known) |
| 8 | Twin Reference | Text | N | The reference of the obstruction with which this one is joined |
Obstruction Type Reference
| 0 | Building | 1 | Bridge | | | 3 | Chimney |
| 4 | Cooling Tower | 5 | Crane | 6 | Gas Flare | 7 | Mining |
| 8 | Refinery | 9 | Industrial | 10 | Pylon | 11 | Antenna |
| 12 | Wind Turbine | | | 14 | Place of Worship | 15 | Lighthouse |
Instrument Reporting Points
These are usually listed in the enroute section of the relevant AIP. An instrument reporting point datafile must have the extension
.irps.csv. It is not actually parsed as CSV, though: because instrument reporting points all have exactly five letters
this is replied upon when parsing, for speed.
Instrument Reporting Point Field Reference
| Field Index | Field Name | Field Type | Required | Notes |
| 0 | Name | Text | Y | The 5-letter instrument point name |
| 1 | Location | Lat/Lon | Y | |
Visual Reporting Points
These are often listed for each airfield in the airfield (specific) part of the relevant AIP. A visual reporting point datafile must have the extension
.vrps.csv.
Visual Reporting Point Field Reference
| Field Index | Field Name | Field Type | Required | Notes |
| 0 | Name | Text | Y | The textual name of the reporting point |
| 1 | Location | Lat/Lon | Y | |
| 2 | Airfield Identifier | Text | N | The identifier of the airfield with which the reporting point is associated |
| 3 | Type | Text | Y | S for standard or DA for disused aerodrome |
Radio Aids
These are usually listed in the enroute section of the relevant AIP. A radio aid datafile must have the extension .radioaids.csv.
Radio Aid Field Reference
| Field Index | Field Name | Field Type | Required | Notes |
| 0 | Name | Text | Y | Usually the location |
| 1 | Identifier | Text | Y | |
| 2 | Frequency | Decimal | Y | |
| 3 | Elevation | Integer | N | Feet AMSL |
| 4 | Location | Lat/Lon | Y | |
| 5 | Type | Text | Y | One of the following: VOR DME VOR/DME NDB TACAN VOR/TAC LOC |
| 6 | Magnetic Declination | Text | N | 6W, 7E, 1.4W |
Airspace
SkyDemon can import airspace data in an enhanced Tim Newport-Peace format. Numerous examples of this format and its documentation can be
found online but no data you find is likely to import "as-is" because of the advanced nature of SkyDemon compared to the products the existing data
is built for.
An airspace file should have the extension .airspace. It is a text file with each line containing a name, an equals sign and a value.
Comments are supported by starting a line with a hash sign (#). A piece of airspace has, as a minimum, a TYPE, a TITLE and its geometry which
includes BASE, TOPS and boundary points.
Specifying Airspace Parameters
A piece of airspace starts with a TYPE directive stating which type it is. This is followed by several optional directives depending upon the type
of airspace concerned. Then follows a TITLE directive with the name of the airspace.
| Directive | Value | Comments |
| TYPE |
FIR DANGER RESTRICTED PROHIBITED CONTROLLED SPORTING AIRWAY ATZ MATZ OTHER |
Every piece of airspace should start with a TYPE directive. If the type is FIR or CONTROLLED, there should also be a CLASS directive
associated with the airspace. If the type is FIR, there should also be a REF directive specifying the ICAO identifer of the FIR. |
| SUBTYPE |
Free Text |
Use this to set the displayed type of the airspace. For example in the UK controlled airspace is not simply referred to as
controlled airspace; it is divided into CTRs, CTAs, TMAs etc. Use SUBTYPE to specify this local naming of airspace. |
| CLASS |
A B C D E F G |
Specify the airspace class only for pieces of airspace that actually have a classification. This is usually for CONTROLLED and FIR airspace. |
| REF |
Free Text |
DANGER and AIRWAY airspace usually have a reference number associated with them. Specify it with the REF directive. |
| RADIO |
Free Text |
Many types of airspace have an associated radio frequency that can be used to get clearance or transit through the airspace. Specify it
here by listing the callsign followed by a space followed by the frequency. Optionally add the type of service at the beginning followed by a
colon and a space, followed by the rest. |
| PHONE |
Free Text |
If the airspace has a phone number you can call to get information about it (this is sometimes the case with DANGER or SPORTING sites)
specify it using this directive. Try and format it with the person or entity's name first followed by a space followed by the phone number. |
| ACTIVE |
EVERYDAY WEEKDAY NOTAM UNKNOWN |
Usually used just for DANGER airspace. Use to specify when and how the area becomes active. If unsure, go for the safe option. |
| TITLE |
Free Text |
A simple name for the airspace. If there is an associated reference, do not include it here, instead use the REF directive to specify it
separately. |
The TYPE, SUBTYPE, CLASS and ACTIVE directives are persistent. When specifying many pieces of airspace you do not need to include these
directives for each piece if you have already specified them above.
TYPE=CONTROLLED
CLASS=D
RADIO=Example Radar 123.45
TITLE=Fictionville
Specifying Airspace Geometry
After specifying all the data describing the airspace administratively, you are ready to describe it geometrically. To specify its lower and upper
level use the BASE and TOPS directives respectively. Their values should be either a number in feet, or a flight level (written FLxx). SFC can be
used when the airspace starts at the surface, and UNL can be used when the upper value is unknown or unlimited. Lastly comes the boundary
description for the airspace. This can either be a circle or a list of connected points and arcs.
Circular Geometries
If your airspace is simply a circle you specify it using the format below, obviously substituting your own values where necessary.
CIRCLE RADIUS=6.00 CENTRE=N513027.00 W0015946.00
Complex Geometries
Each step in a complex geometry is either a point or an arc. Many airspace geometries are simply points, which you specify as below. Obviously,
if using only points, there must be at least three to form a polygon.
POINT=N513551.00 W0014809.00
POINT=N513011.00 W0014258.00
POINT=N512909.00 W0014402.00
POINT=N512224.00 W0020257.00
To specify an arc, you need a direction (clockwise or anticlockwise), a centre point, a radius and a finish point. The arc starts at the point
previously specified using the POINT directive. Here's an example of an arc:
CLOCKWISE RADIUS=5.50 CENTRE=N514443.00 W0013631.00 TO=N514218.00 W0014427.00
Example Airspace Data which when imported will show an imaginary FIR containing some imaginary pieces
of airspace in the North Sea off the East coast of the UK.