Sky Simulator User Manual

Sky Simulator User Manual1. Introduction1.1 Overview1.2 Features2. Concepts2.1 Space2.2 Flight2.2.1 Random Flight2.2.1.1 How Does It Work?2.2.1.2 Where to Use?2.2.2 Orbit Flight2.2.2.1 How Does It Work?2.2.2.2 Where to Use?2.2.3 Free Flight2.2.3.1 How Does It Work ?2.2.3.2 Where to Use?2.3 Sensor2.3.1 Radar Sensor2.3.1.1 What is This?2.3.1.2 How Does It Work?2.3.2 ADS-B Sensor2.3.2.1 What Is This?2.3.2.2 How Does It Work?2.4 Time2.4.1 Simulation Clock2.4.2 Running Clock2.4.3 Real Clock3. Functions3.1 Overview 3.1.1 Main Window3.1.1.1 Main Toolbar3.1.1.2 Status Bar3.1.2 Views3.1.2.1 Flight List View3.1.2.2 Sensor List View3.1.2.3 Sensor Output View3.2 Project Management3.3 Simulation Control3.4 Flight Management3.4.1 Flight Creation3.4.1.1 Random Flight3.4.1.2 Orbit Flight3.4.1.3 Free Flight3.4.2 Flight Termination3.5 Flight Control3.5.1 Transponder Operations3.5.2 Transponder Fault Simulation3.5.3 Flight Tactical Control3.6 Sensor Management3.6.1 Sensor Creation3.6.1.1 Radar Sensor3.6.1.2 ADS-B Sensor3.6.2 Sensor Removal3.6.3 Sensor Modification3.7 Settings3.7.1 Output4. File Structure and Format4.1 File Structure4.2 Project File Format4.3 Flight Database4.4 Sensor Database4.5 Environment Database5. AnnexAnnex 1. Hot-Key Combination

1. Introduction

1.1 Overview

Sky Simulator is a surveillance sensor simulation tool.

Sky Simulator

It allows you to create a simulation scenario, add different types of flights and surveillance sensors into the scenario.

When the simulation starts to run, it will simulate the flying of flights, and generate sensor output according to sensor characteristics.

The sensor output is in Eurocontrol ASTERIX format, which is industry de facto standard, and can be used by external tools and systems.

Sky Simulator was originally designed and developed to be an useful tool to test air traffic control automation system or other similar system.

1.2 Features

Sky Simulator supports the following types of flights:

And supports the following types of sensors:

During the simulation, it's possible to change the simulation speed, or pause it.

It's possible to check the output of selected sensor, in both raw format and decoded format.

2. Concepts

Sky Simulator tries to simulate flights and sensors the same way they behave in real world. In one simulation scenario, there are some objects and they will interact with each other.

2.1 Space

Space is a three-dimensional area where flights and sensors work in.

It is equivalent to the earth surface and the space above it. All points used in simulation must be in this space, one point can be referred as a WGS-84 coordinate (aka. longitude and latitude) plus a level.

NOTE: It is not necessary to explicitly specify something like a working area, as the whole earth surface is implied in every simulation scenario.

2.2 Flight

Flights are aircrafts fly in space.

Each flight has an internal fly model, which will control how the aircraft fly, including heading, speed, level, route, etc. Each flight will fly by its own, and can go to any point in space, it doesn't care if any sensor is "observing" it.

Currently, there are three types of fly model:

2.2.1 Random Flight

2.2.1.1 How Does It Work?

A random flight, as saying in its name, will fly randomly in space.

Considering the huge size of the space (whole earth surface), in reality, it's needed to set a working area and make aircraft flying only in its working area.

Once a random flight starts to run, it will randomly select two points in its working area, and fly from the start point to the end point.

When flight reach the end point, it will randomly select another point in its working area, and fly to this point.

So the route of a random flight will look like:

And when it reaches the point 185835N0810057E, the route will automatically be extended to:

On creation of random flight, it will create initial route for at least 1 hour flying.

2.2.1.2 Where to Use?

Random flight can be used when you need to send a number of flights to external system, but don't need to seriously control the route of each flight.

This is useful when you are making generic operation/test in external system.

Another typical case is performance test and capacity test, it's easy to create 1000 flights and 32 sensors, and send all those targets to external system, to reach its capacity and check its performance in this situation.

2.2.2 Orbit Flight

2.2.2.1 How Does It Work?

An orbit flight will fly circles around a point in space.

Once an orbit flight starts to run, it will first fly from its start point to the orbit entrance point, then enter the circle orbit, after flying predefined circles, it will exit from orbit and fly to end point.

The route of an orbit flight will look like:

The syntax is:

After reaching end point, the orbit flight will become inactive.

2.2.2.2 Where to Use?

Circle orbit is commonly used by flight test to check surveillance equipment (e.g. radar) or navid equipment (e.g. DVOR/DME).

It is used to simulate the flight and make sure all support system works well before a real test flight departure.

2.2.3 Free Flight

2.2.3.1 How Does It Work ?

A free flight, as saying in its name, will fly freely in space.

when a free flight starts to run, it will fly with initial start_fix/level/speed/heading until someone manually changed its level/speed/heading.

Free flight will fly with its last updated level/speed/heading all the time until someone manually cancel (del) it.

The route of a free flight will look like:

The syntax is:

A free flight will never be ended until some manually cancel (del) it.

2.2.3.2 Where to Use?

As it is very flexible, free fights are quite useful when testing some particular functions of external system. It is possible to instruct free flights to some special zones or to have a special scenario between flights to simulate those situations which are not possible to be done by real flights.

2.3 Sensor

A sensor locates in space, and observes flights flying in its view.

There are different types of sensor, such as primary radar (PSR), conventional secondary radar (SSR), Mode-S secondary radar (Mode-S), automatic dependent surveillance - broadcast (ADS-B), multilateration (MLAT), each type has its very own characteristics. Sky Simulator tries to simulate the behavior of each type of sensor as in the real world.

Each sensor has a set of properties, such as location, SAC/SIC, coverage, silent cone, detection probability, so that two sensors of the same type can have a very different view of space and observes different flights.

Currently, there are two types of sensor:

Each sensor will generate standard ASTERIX output according to its observation of flights in its view, the category of ASTERIX depends on the sensor's type.

Some sensor like ADS-B includes a property to choose which version of ASTERIX standard will be used.

2.3.1 Radar Sensor

2.3.1.1 What is This?

Radar is a detection system that uses radio waves to determine the range, angle, or velocity of objects. It can be used to detect aircraft, ships, spacecraft, guided missiles, motor vehicles, weather formations, and terrain. A radar system consists of a transmitter producing electromagnetic waves in the radio or microwaves domain, a transmitting antenna, a receiving antenna (often the same antenna is used for transmitting and receiving) and a receiver and processor to determine properties of the object(s). Radio waves (pulsed or continuous) from the transmitter reflect off the object and return to the receiver, giving information about the object's location and speed.

Secondary surveillance radar (SSR) is a radar system used in air traffic control (ATC), that not only detects and measures the position of aircraft, i.e. bearing and distance, but also requests additional information from the aircraft itself such as its identity and altitude. Unlike primary radar systems that measure the bearing and distance of targets using the detected reflections of radio signals, SSR relies on targets equipped with a radar transponder, that replies to each interrogation signal by transmitting a response containing encoded data.

2.3.1.2 How Does It Work?

The RADAR in Sky Simulator is an emulator of real world Radar.

It is installed in a location in the surface of simulation space, and receives data feeds from flights in its coverage view. Then it will assemble received information and send it out in standard ASTERIX category 001/002 or 034/048 messages.

External system could treat it as an ordinary Radar, and receive its data of simulated flights.

In real world, there are conventional radar and Mode-S radar and output of different radar types are different, which are:

Once a radar is created in simulation scenario, it is "installed" in the location specified in its parameter. the radar can be "installed" in anywhere in the space, it doesn't have to be close to the flights.

And of course, just like in real world, an radar can only observe flights in its coverage, so you cannot assume all simulated flights can be included in one radar sensor's output.

2.3.2 ADS-B Sensor

2.3.2.1 What Is This?

Automatic dependent surveillance – broadcast (ADS–B) is a surveillance technology in which an aircraft determines its position via satellite navigation and periodically broadcasts it, enabling it to be tracked. The information can be received by air traffic control ground stations as a replacement for secondary radar. It can also be received by other aircraft to provide situational awareness and allow self separation.

ADS–B is "automatic" in that it requires no pilot or external input. It is "dependent" in that it depends on data from the aircraft's navigation system.

ADS-B periodically broadcasts information about each aircraft, such as identification, current position, altitude, and velocity, through an onboard transmitter. ADS-B provides air traffic controllers with real-time position information that is, in most cases, more accurate than the information available with current radar-based systems. With more accurate information, ATC will be able to position and separate aircraft with improved precision and timing.

More information about ADS-B could be accessed from Wikipedia.

2.3.2.2 How Does It Work?

The ADS-B in Sky Simulator is an emulator of real world 1090ES ADS-B receiver.

It is installed in a location in the surface of simulation space, and receives broadcasts from flights in its coverage view. Then it will assemble received information and send it out in standard ASTERIX category 21 messages.

External system could treat it as an ordinary ADS-B station, and receive its data of simulated flights.

In real world, different ADS-B station vendors use different versions of ASTERIX category 21 formats, the simulated ADS-B supports three most commonly used ones, which are:

Once an ADS-B is created in simulation scenario, it is "installed" in the location specified in its parameter. An ADS-B can be "installed" in anywhere in the space, it doesn't have to be close to the flights.

And of course, just like in real world, an ADS-B can only "see" flights in its coverage, so you cannot assume all simulated flights can be included in one ADS-B sensor's output.

2.4 Time

Time makes flights and sensors move.

There are three different clocks in the simulator:

2.4.1 Simulation Clock

Simulation clock is used by flights in simulation scenario.

When a simulation starts to run, the simulation clock will start to run the same speed as the clock in real world. All flights in simulation scenario will calculate its "current" position and other fly vectors (heading, speed, level, ...) according to the "current" time in simulation clock.

User can change the speed of simulation clock to for example 5 times of real world clock. In this case, the flights in simulated world will still fly as their original speed, but from the real world observer's point of view, the flight is flying 5 times faster.

Similarly, if you change the speed of simulation clock to 1/2 of real world clock, the flights will look like moving slower.

User can pause the running of simulation clock, in this case all flights will look like frozen in its position, until the simulation clock resumes.

User can even change the simulation clock moving backwards, in this case all flights will also look like moving backwards.

2.4.2 Running Clock

Running clock is used by sensors in simulation scenario.

Once a simulation starts to run, the running clock will start to run the same sapped as the clock in real world.

User cannot change the speed or pause/resume a running clock. The running clock will stop only when the whole simulation scenario is stopped.

Sensor will run in running clock, so that no matter how you change the simulation clock, the sensor will not be affected and keep on reporting flights with the same time period as in real world.

2.4.3 Real Clock

Real clock is UTC time in our real world.

When sensor generates an ASTERIX message, it will fill timestamp with current UTC time in real world.

So that no matter when you start a simulation scenario, and no matter how the simulation clock is modified, the timestamp in transmitted ASTERIX message is always the current UTC time.

This could help external system correctly handing the messages generated by Sky Simulator. External system doesn't need to know anything of Sky Simulator and can treat it as an ordinary surveillance data source.

That's why you can use Sky Simulator to test a real ATC system by mixing simulated flights with real flights.

WARNING: Sky Simulator tries to calculate correct UTC time from OS clock and OS time zone, if OS is not properly configured, the timestamp in generated ASTERIX messages could be wrong.

3. Functions

3.1 Overview

3.1.1 Main Window

The main window of Sky Simulator is shown as below.

Main Window

As a GUI application, it composes of a main menu on top, a tool bar with different buttons below the main menu, a status bar on bottom, and a switchable list view in the center.

3.1.1.1 Main Toolbar

The main toolbar functions can be put into several groups.

Main Toolbar

Tool ButtonFunction GroupDescription
RandomFlight ControlCreate a random flight in simulation.
OrbitFlight ControlCreate an orbit flight in simulation.
FreeFlight ControlCreate a free flight in simulation
RadarSensor ControlCreate a radar in simulation
ADS-BSensor ControlCreate an ADS-B ground station in simulation.
StartSimulation ControlStart a simulation scenario. Both simulation clock and running clock will start when this button is clicked.
PauseSimulation ControlPause or resume a simulation scenario. Only simulation clock will be paused when this button is clicked.
StopSimulation ControlStop a simulation scenario. Both simulation clock and running clock will stop when this button is clicked.
SpeedSimulation ControlChange the speed of simulation clock.
FlightView SwitchSwitch to flight list view, all flights in simulation scenario will be shown in this view.
SensorView SwitchSwitch to sensor list view, all sensors in simulation scenario will be shown in this view.
OutputView SwitchSwitch to sensor output view, the sensor output will be displayed in this view.
3.1.1.2 Status Bar

The status bar shows status information of the simulation.

Status Bar

ItemDescriptionExample
General MessageDisplay general message of the application or simulation scenario“Simulation started.”
Simulation ClockDisplay current time of simulation clock“SIM 05:57:45”
Running ClockDisplay current time of running clock“RUN 12:45:07”
Real ClockDisplay UTC time of OS clock“UTC 23:01:57”

3.1.2 Views

In the center of main window, it displays switchable view. There are three views.

The detail of each view will be described in corresponding sections.

3.1.2.1 Flight List View

All flights created in simulation scenario are listed in this view. The information will update during the simulation.

Flight List View

3.1.2.2 Sensor List View

All sensors defined in simulation scenario are listed in this view.

Sensor List View

3.1.2.3 Sensor Output View

The output of selected sensor is shown in this view, both as raw format and decoded format.

Sensor Output View

3.2 Project Management

Project is like a pool contains flights, sensors and environment data defined for a particular simulated testing case.

Different projects could have different properties but share with the same flight database, sensor database and environment data.

Sky Simulator supports to create different projects, load existed projects and edit project property.

Here is a sample of options in project window .

Project Window

Following are the steps to create a project.

Here is an example of project window:

Project Example

ParameterDescription
NameName of project
AuthorAuthor of project
VersionVersion of project
DescriptionA short description for project
Project FileProject file, starts with project name, for load project
Environment DatabaseEnvironment data for project
Flight Databaseflights created for project
Sensor DatabaseSensor created for project

3.3 Simulation Control

Simulation control can be accessed by button [Simulation] with the following three options:

3.4 Flight Management

3.4.1 Flight Creation

3.4.1.1 Random Flight

Following are the steps to create random flight.

Here is a sample of Random Flight Window.

Random Flight Window

And the meaning of each parameter is listed below.

ParameterDescriptionFormatExampleNote
AirlineThe airline ICAO code[A-Z]{3}DLHThis parameter will be used as the first three letters of callsign, a 4-digit number will be automatically attached to form the callsign of each flight
SSR CodeThe SSR code range of flights[0-7]{4}1277System will try to find and assign a non-duplicated code in this range, but if not possible, any code in this range could be assigned
AltitudeFlight level range, unit is flight level, or 100 feet[0-9]{3}320System will assign a random level in this range
SpeedGround speed range[0-9]{3}400System will assign a random ground speed in this range
Fly RangeWorking area of flightsDDMMSS[N/S] DDDMMSS[E/W]0455933EThe route of flight will be limited in this range
NumberNumber of flights will be created[0-9]+15Range 1-1000. Each flight will randomly select its own SSR, level, speed, Mode-S address, ...
3.4.1.2 Orbit Flight

Following are the steps to create orbit flight.

Here is a sample of Orbit Flight Window.

Orbit Flight Window

And the meaning of each parameter is listed below.

ParameterDescriptionFormatExampleNote
CallsignThe callsign of flight[A-Z]{3}[0-9]{1,4}DLH1923 
ICAO AddressThe Mode-S address[0-9|A-F]{6}6830C9System will assign a random Mode-S address which is not used by any other flight
SSR CodeThe SSR code of flight[0-7]{4}1277System will not check if code is duplicated or not
AltitudeFlight level, unit is flight level, or 100 feet[0-9]{3}320 
SpeedGround speed[0-9]{3}400 
Start FixThe start point where flight will first appearDDMMSS[N/S]DDDMMSS[E/W]200000N0800000E 
Stop FixThe stop point where flight will finishDDMMSS[N/S]DDDMMSS[E/W]100000N0900000E 
Orbit CenterThe center of circle orbitDDMMSS[N/S]DDDMMSS[E/W]150000N0850000E 
RadiusThe radius of circle orbit[0-9]{3}100 
Enter AzimuthThe azimuth in degree where flight will enter circle orbit[0-9]+(\.[0-9]{1,2})?5.00Range 0.00 - 359.99
Orbit AzimuthThe azimuth in degree the flight will fly in circle orbit[0-9]+(\.[0-9]{1,2})?540.34 
Exit AzimuthThe azimuth in degree where flight will exit circle orbit[0-9]+(\.[0-9]{1,2})?184.34This filed is not mandatory, it will be calculated when clicking Check button
RouteThe route of orbit flight  This filed is not mandatory, it will be calculated when clicking Check button

After clicking the Check button, system will check all parameters and field with error will be marked with red color.

Field with Error

3.4.1.3 Free Flight

Following are the steps to create free flight.

Here is a sample of Free Flight Window.

Free Flight Window

ParameterDescriptionFormatExampleNote
CallsignThe callsign of flight[A-Z]{3}[0-9]{1,4}DLH1923 
ICAO AddressThe Mode-S address[0-9|A-F]{6}6830C9System will assign a random Mode-S address which is not used by any other flight
SSR CodeThe SSR code of flight[0-7]{4}1277System will not check if code is duplicated or not
Start FixThe start point where flight will first appearDDMMSS[N/S]DDDMMSS[E/W]200000N0800000E 
LevelFlight level, unit is flight level, or 100 feet[0-9]{3}320 
SpeedGround speed[0-9]{3}400 
HeadingFlight heading[0-9]{3}90Range 0 - 360
RouteThe route of orbit flight  This filed is not mandatory, it will be calculated when clicking Check button

3.4.2 Flight Termination

In "Flight List View" window, a selected flight can be terminated at any time of simulation process by:

  1. Click on "Flight"->"Terminate Flight" button;
  2. or press hotkey "Del".

Once a flight is terminated, it will be removed from "Flight List Window" and Sky Simulator will also remove it from output data block.

3.5 Flight Control

In the flight view, there is an additional sub-toolbar to provide an access to give the instructions/commands for different type of flights.

Flight Control

With these functions, variable of scenarios could be simulated to meet the testing requirements that are needed for testing different functions of external system.

Note: To give the instruction/command for a certain flight, this flight must be selected in flight view.

3.5.1 Transponder Operations

Here below list options included in "Transponder Operations":

3.5.2 Transponder Fault Simulation

Here below list the options include in "Transponder Fault":

3.5.3 Flight Tactical Control

"Flight Control" only works on "Free Flight", if other flights with fly model orbit or random are selected, when operate on flight control, Sky Simulator will give a warning like the window below.

Warning

Here below list the options include in "Flight Control":

3.6 Sensor Management

3.6.1 Sensor Creation

3.6.1.1 Radar Sensor

Following are the steps to create RADAR.

Here is a sample of Radar Window.

Radar Window

ParameterDescriptionFormatExampleNote
NameName of RadarFree textMode-S Radar 
ModelModel of Radar SinoATC Mode-S RadarModel is used to emulate product characteristic from different vendors.
SAC/SICSAC and SIC code[0-9]{1,3}197Range 0 - 255. Each sensor must have a unique SAC/SIC in one simulation scenario
TypeType of Radar  Check different options to output different types of data
LocationLocation of RadarDDMMSS[N/S]DDDMMSS[E/W]150000N1030000E 
CoverageMinimum and maximum coverage[0-9]{1,3}250 
Refresh PeriodPeriod to update all flights in its view[0-9]{1,2}4Range 1 - 10
Output FormatThe format that will be used to encode ASTERIX message CAT0001/002
CAT034/048
 
ChannelIf output channel is activated  If both channels are deactivated, no message will be transmitted even there are flights in ADS-B’s view
Destination AddressIP address 230.230.230.1Must be a valid multicast, broadcast or unicast address
PortPort number 52001Range 1 - 65535
3.6.1.2 ADS-B Sensor

Following are the steps to create ADS-B station.

Here is a sample of ADS-B Window.

ADS-B Ground Station Window

And the meaning of each parameter is listed below.

ParameterDescriptionFormatExampleNote
NameName of ADS-B ground stationFree textMy ADS-B 
ModelModel of ADS-B SinoATC 1090ES ADS-B ReceiverModel is used to emulate product characteristic from different vendors.
SAC/SICSAC and SIC code[0-9]{1,3}197Range 0 - 255. Each sensor must have a unique SAC/SIC in one simulation scenario
CoverageMinimum and maximum coverage[0-9]{1,3}250 
Refresh PeriodPeriod to update all flights in its view[0-9]{1,2}2Range 1 - 10
Output FormatThe format that will be used to encode ASTERIX message CAT021 v0.26 
ChannelIf output channel is activated  If both channels are deactivated, no message will be transmitted even there are flights in ADS-B’s view
Destination AddressIP address 230.230.230.1Must be a valid multicast, broadcast or unicast address
PortPort number 52001Range 1 - 65535

After clicking the Create button, system will check all parameters, if any error is detected, an error message will be shown.

Error Message

3.6.2 Sensor Removal

In "Sensor List View" window, a selected sensor can be removed when the simulation is stopped by:

  1. Click on "Sensor"->"Remove Sensor" button;
  2. Or press hotkey "Shift + Del".

Remove Sensor

3.6.3 Sensor Modification

In "Sensor List View" window, a selected sensor can be edited when the simulation is stopped by:

Edit Sensor

3.7 Settings

3.7.1 Output

Settings - Output

SettingDescription
UDP Multicast LAN InterfaceUDP multicast packets will be sent through interface specified here; UDP unicast and broadcast packets will be sent through interface selected by operation system according to their destination address.

 

4. File Structure and Format

4.1 File Structure

When saving a project into hard drive, different information in a simulation session will be saved into different files.

Files in a typical project looks like:

project_files

Project file (*.sim)contains project information and references to other files used in this project. The name of this file is the one you entered when saving a new project for the first time.

Flight database (flights.json) contains all flights created in simulation session.

Sensor database (sensors.json) contains all sensors created in simulation session.

Environment database (environment.db) contains airspace environment data used by flights in simulation session.

4.2 Project File Format

Project file is an INI format plain text file. You can open it with any text editor such as vi or notepad.exe.

The content of a project file looks like:

4.3 Flight Database

Flight database is a JSON format plain text file. You can open it with any text editor such as vi or notepad.exe.

The content of a flight database file looks like:

WARNING: Please do NOT modify this file unless you are sure what are you doing. A corrupted flight file will not be loaded by Sky Simulator, and you may lost all flights created before.

4.4 Sensor Database

Sensor database is a JSON format plain text file. You can open it with any text editor such as vi or notepad.exe.

The content of a sensor database file looks like:

WARNING: Please do NOT modify this file unless you are sure what are you doing. A corrupted sensor file will not be loaded by Sky Simulator, and you may lost all sensors created before.

4.5 Environment Database

Environment database is a SQLite 3 database file, you can use any SQLite compatible database management tool to open it.

It contains essential airspace data used by flights using ICAO IFR fly model in simulation session.

NOTE: Environment database is not included in current version of Sky Simulator.

5. Annex

Annex 1. Hot-Key Combination

Project Management Hotkeys

Here below describes those hotkeys for project management.

Key CombinationFunction
Ctrl + NCreate new project
Ctrl + OOpen a project
Ctrl + SSave current project
Ctrl + Shift + SSave current project as
Ctrl + DOpen project property

Simulation Management Hotkeys

Here below describes those hotkeys for simulation management.

Key CombinationFunction
F5Start simulation
Shift + F5Stop simulation

Flight Management Hotkeys

Here below describes those hotkeys for flight management.

Key CombinationFunction
Shift + RCreate random flights
Shift + OCreate orbit flights
Shift + FCreate free flights
DelDelete selected flight (In flight view)

Sensor Management Hotkeys

Here below describes the hotkey for sensor management.

Key CombinationFunction
Shift + DelDelete selected sensor (In sensor view)