46
- i - Decoding and graphical display of aviation weather maps Tom English BSc Computing Session 2006/2007 The candidate confirms that the work submitted is their own and the appropriate credit has been given where reference has been made to the work of others. I understand that failure to attribute material which is obtained from another source may be considered as plagiarism. (Signature of student) _________________________

Decoding and graphical display of aviation weather maps ...€¢ Download/decode METAR weather data from the server. • Convert the data to a visual representation. • Overlay the

  • Upload
    lamngoc

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

- i -

Decoding and graphical

display of aviation weather maps

Tom English

BSc Computing

Session 2006/2007

The candidate confirms that the work submitted is their own and the appropriate

credit has been given where reference has been made to the work of others.

I understand that failure to attribute material which is obtained from another source

may be considered as plagiarism.

(Signature of student) _________________________

- ii -

Summary

METARs are weather reports accurate for use with aviation. Pilots notoriously find

these coded reports difficult to handle and visualise.

This project looks at different ways of displaying and understanding this information

and then suggests a solution that can help pilots to visualise the weather information in a

given geographical context.

- iii -

Contents

1 Project Background …………………………………………………….. 1

1.1 What is the problem ………………………………………………. 1

1.2 What is a METAR ………………………………………………... 2

1.3 Proposed solution ………………………………………………… 2

1.4 Current solutions …………………………………………………. 3

1.5 Objectives, minimum requirements and extensions ……………… 5

1.5.1 Objectives …………………………………………………... 5

1.5.2 Minimum requirements …………………………………….. 5

1.5.3 Deliverables ..……………………………………………….. 5

1.5.4 Enhancements ………………………………………………. 6

2 Background reading ……………………………………………………. 7

2.1 How pilots use the METAR ……………………………………… 7

2.2 Methodologies ……………………………………………………. 8

2.2.1 METAR decoding ………………………………………….. 8

2.2.2 Gathering of station information …………………………… 10

2.2.3 Design Methodology ……………………………………….. 11

2.2.3.1 Waterfall method …………………………………. 11

2.2.3.2 Agile methodology ……………………………….. 12

2.2.3.3 Chosen methodology ……………………………… 12

2.3 Graphical representations …………………………………………. 13

2.3.1 Depth of representation ……………………………………… 13

2.3.2 Choice of appropriate symbols ……………………………… 14

2.4 Appropriate technologies …………………………………………. 14

2.4.1 Visualisation choice ………………………………………… 15

2.4.2 Coding language choice ……………………………………. 16

3 Design and Implementation …………………………………………… 17

3.1 Schedule for design and implementation ………………………… 17

3.2 Java class design …………………………………………………. 17

3.3 METAR decoding algorithm …………………………………….. 19

3.4 KML generation algorithm ………………………………………. 21

- iv -

3.5 Symbol design …………………………………………………… 24

3.6 Interface design ………………………………………………….. 26

3.6.1 Command line interface …………………………………… 26

3.6.2 Graphical based interface …………………………………. 27

3.7 Changes to the design …………………………………………… 30

4 Evaluation ………………………………………………………………. 32

4.1 Code testing ……………………………………………………… 32

4.2 User evaluation ………………………………………………….. 33

4.2.1 Interface testing …………………………………………… 34

4.2.2 Representation testing ……………………………………… 35

4.2.3 Observations ……………………………………………….. 36

4.3 Development methodology ………………………………………. 37

4.3.1 Effectiveness ……………………………………………….. 37

4.3.2 Schedule ……………………………………………………. 38

4.4 Minimum requirements and extensions ……………….................. 38

4.5 Further extensions ……………………………………………….. 39

References ……………………………………………………………………….. 40

A Project reflection ………………………………………………………… 42

- 1 -

Chapter 1.

Project Background

1.1 What is the problem?

The way in which pilots receive weather information is a coded text string called

METAR. A METAR is an hourly updated observation of the weather at a reporting

station at or near an airport. Decoding of this information is challenging for new student

pilots, and even some experienced ones find it difficult. What is even more of a problem

is that it is very hard to visualise the textual METAR geographically. This can lead to

problems with operating an aircraft in difficult weather and so it would be better if there

was a way to display this information graphically. By graphically displaying the

weather information the pilot will be able to easily see where the wind is blowing from

and how strong, how high and how thick the cloud coverage is. The pilot can also get

information about the temperature and the visibility available. All of this information

placed over geographical information will increase the pilots situation awareness so that

they will be better prepared for the flight and in case of emergencies they will be aware

of which airport runways are suitable for use.

A greater understanding of the weather is extremely valuable as many accidents and

damage to aircraft happens when pilots are not fully briefed about the weather in which

they are operating their flights.

- 2 -

1.2 What is METAR?

METAR stands for Meteorological Aviation Report. It is a world wide standard code

that is also called FM 15-IX. The METAR code is a precise, formatted code which

provides a great deal of information. The code format is also used by most of the world

to provide pilots with trend forecast weather at air terminals to which they are flying.

This code has been adopted as the international code for reporting weather conditions

by all nations. This ensures that it is universally understandable for all languages

although all pilots use English while communicating to air traffic control.

A METAR is a coded representation of the current weather that is manually or

automatically generated by the reporting station. Reporting stations are generally

situated at airports but are also found at areas where there would be little coverage due

to the lack of an airport or areas where the weather fluctuations warrant a constant

observation.

Here is a sample of METAR code.

EGLL 261950Z 17011KT 9999 SCT017 BKN021 12/10 Q1013

The first 4 letters of METAR are always the station identifier. In this case the station is

EGLL which is London Heathrow.

Some METAR representations can be shorter and others can be much longer. Obviously

the length depends on the amount of weather information that the station needs to

report, so where the weather conditions are complex the code can become very long.

1.3 Proposed solution.

The solution that I propose to this problem is that a program should be used to decode

the METAR information for a reporting station. This decoded information should then

be used to select symbols for the representation of the weather. It will also be useful to

keep the decoded weather in plain English so that the pilots can simply read the

- 3 -

information if the representation isn’t able to display all of the weather systems. The

plain English can also be used to help the pilot understand the symbols used if their

meaning isn’t immediately obvious. All of this information needs to be overlaid on a

map of the area in question so that the weather situation can be better understood. A

greater understanding of the weather will be gained by the pilot if they are able to see

the lay of the land and so visualise the directions of weather systems and the hazards

that they represent.

1.4 Current solutions.

As far as I am aware there are no solutions for the graphical representation of METAR

reports. There are a few systems that can take a METAR and decode it into plain

English but these do not give geographical context and so are not any easier for the pilot

to picture the weather situation in which they will be flying.

One such textual solution is found online [11] and is by Manuel Heras. On his website

there is a simple applet that can take a METAR and decode it. This solution only

decodes the international standard of METAR codes and will not work with U.S. codes.

This solution only gives a textual description of the weather and after some

experimentation I have also discovered that it doesn’t decode all of the weather

conditions supplied to it. This solution is helpful to pilots flying outside of the U.S. only

and doesn’t give all of the detail required to make the tool good enough for a pilot’s

general use.

- 4 -

Another example is a MetarWeather v1.50 - METAR decoder software by Nir Sofer

[12]. This is a much more elegant solution than the example by Manual Heras [11] and

decodes all of the weather information within the system. It again only provides an

output in a textual form. It does however provide one symbol to show the prevailing

weather an example of which is in figure 1.1 below.

Figure 1.1. MetarWeather v1.50 by Nir Sofer [12]

Both of these solutions provide only a textual representation which in itself is useful to

an inexperienced pilot who cannot decode all of the METAR codes yet but it does

however not show any information that gives the weather context. By this I mean that if

the wind is blowing at 10 knots at 110 degrees does this mean that it is blowing across

the runway or down it? If the pilot cannot remember the direction and position of the

airport then this weather information has very little context.

This is a demonstration of the problem which the pilot will face in decoding and

visualising the weather within the context of the surrounding terrain and facilities in

which they will be flying.

- 5 -

1.5 Objectives, minimum requirements and extensions.

1.5.1 Objectives.

• To represent graphically the METAR weather information provided for pilots so

that they can better understand the weather for aerodromes that they will be

using.

• The representation must also include the METAR information as is supplied so

that pilots can compare the results and the code and therefore learn the METAR.

• The representation must be able to represent more than one aerodrome at a time.

Specifically the departure, destination and alternate aerodromes.

• The graphical representation must be as self explanatory as possible so that the

learning time required to use the system is minimised. This may be achieved by

using standard symbols found using other weather representation systems.

1.5.2 Minimum Requirements.

• Download/decode METAR weather data from the server.

• Convert the data to a visual representation.

• Overlay the data on a geographical chart.

1.5.3 Deliverables.

• Software to download the METAR weather data, decode it and arrange it for use

in with geographical data. The Software must also overlay aerodrome charts

with geographical data.

• The end of project report.

- 6 -

1.5.4 Enhancements.

• The ability for the program to show aeronautical facility charts with the weather

information.

• The ability for the program to print out graphical weather information.

• A graphical front end for the program.

- 7 -

Chapter 2.

Background Reading

First this section shows how the pilot would use a METAR currently and demonstrates

how this can be difficult for a student pilot. The section then looks at the methods for

decoding a METAR. The section then evaluates different design methodologies that can

be used for the design of the solution. After this the section evaluates different options

for the representation of the decoded METAR and evaluates them. Finally appropriate

technologies are contemplated together with the coding language that will be used.

2.1 How pilots use the METAR.

Before a pilot embarks on a flight they have to do lots of planning. One such part of this

planning process is taking a detailed look at the weather which the aircraft will

encounter to make sure that it is within the operational restrictions for safe flight and

that if it isn’t then it can be avoided. The pilot considers the weather at the departure and

destination airports along with any airport near the planned route so that in the event of

an emergency the pilot knows which airports are available for them to use.

METAR report information is useful in so many ways. It can tell a pilot if the runway

they intend to use is pointing into the wind or not. It also gives visibility information so

the pilot can plan to miss any traffic by making sure they know how far their vision is

limited. The METAR also gives the temperature of the air which is very important to jet

aircraft as the temperature can dramatically change the effectiveness of their engines.

Obviously if the temperature is low then the pilot also has to consider the danger of ice

building up on the engines and wings. If there is rain at an airport the pilot will need to

- 8 -

know how heavy it is as if the runway is very wet then there is a danger that the aircraft

can skid on landing. A wet runway will also reduce the effectiveness of brakes due to

reduced grip. This is especially important when landing with a heavy aircraft as there

may be little runway to stop the aircraft. There are also limits on the amount of water an

engine can ingest without stopping. If there is mist how badly does it prevent visibility

and if it is cold is there a chance of freezing mist building up on the aircraft.

2.2 Methodologies

The choice of methodologies is very important for the design of the solution.

Appropriate methodologies need to be sought as they can ease or hinder the

development of the solution.

2.2.1 METAR decoding

To decode a METAR it is first downloaded. The source for METAR weather

information is the NOAA [1] (National Oceanic and Atmospheric Administration) in

the U.S. The METAR information is freely available and can be downloaded within a

text file through HTTP. This information comes in the following form and is available

from there website [4] of which below is an example.

2006/11/26 19:50

EGLL 261950Z 17011KT 9999 SCT017 BKN021 12/10 Q1013

The first line is simply the date and time at which the NOAA received the METAR

from the reporting station. The second line is the METAR itself.

As the METAR line contains the time and date in a coded form there is no need for the

first line to be stored.

The METAR codes and there meaning were found at the Texas A&M University

department for atmospheric sciences website [2]. It contains all of the codes and also

lists the differences between the code used worldwide and the code used in the U.S.

- 9 -

This is important as the U.S. METAR reporting stations use a slightly different format

and code set that needs to be catered for in the solution.

To decode a METAR the line is broken up into smaller parts. The first two parts show

the stations identifier which in turn can be used to show where it is and the second part

shows the time and day of the month in which the report was made.

The next part of the METAR contains the weather information from the reporting

station. This is always shown with the wind first and then visibility. Following that the

present weather group is coded such as “RA” rain or “SN” snow. There are also

quantifiers such as “+RA” for heavy rain and “-RA” for light rain. The absence of a

quantifier shows moderate conditions.

The next part of the METAR shows the sky condition group. This is what the cloud

cover is. It is used to show the different cloud cover layers and their heights. If there is

no cloud then there will only be one code which is “CLR” meaning clear.

After the sky condition group is the temperature group. This is the air temperature and

dew point. The dew point is the temperature that the air needs to be to produce dew or

water. If the dew point is close to or lower than the temperature then there is a high risk

of ice build up on the aircraft. “10/08” is the way in which this information is displayed.

To demonstrate a negative number a M is placed before the number to show minus. A

minus sign – cannot be used as this is a quantifier for light which is not applicable for

temperature.

The final part of the METAR report is the pressure group. This is simply the barometric

pressure so that the pilots can set there altimeters to the local setting ensuring that all

aircraft keep separated by the correct height. “29.24” is an example of a barometric

pressure.

- 10 -

2.2.2 Gathering of station information

For the representation of the weather to be shown on a geographical map the location of

the reporting station is required. The NOAA national weather service lists the location

of every reporting station around the world on there website [3]. Here is an example

showing some of the stations.

ALASKA 06-NOV-06

CD STATION ICAO IATA SYNOP LAT LONG ELEV M N V U A C

AK ADAK NAS PADK ADK 70454 51 53N 176 39W 4 X T 7

US

AK AMBLER PAFM AFM 67 06N 157 51W 88 X 7

US

AK ANAKTUVUK PASS PAKP AKP 68 08N 151 44W 642 X 7

US

AK ANCHORAGE INTL PANC ANC 70273 61 10N 150 01W 38 X T X A 5

US

AK ANCHORAGE/WFO PAFC AFC 61 10N 150 02W 48 F 8

US

At the top of the text file there are instructions for the meanings of all of the codes used

to describe the nature of the METAR stations. This can be used to remove unwanted

types of stations such as those that are not for aviation use. Each station has its full

name and co-ordinates shown so that it can be placed on a map. Each station also has its

ICAO code displayed which will match the ICAO code shown in the METAR for that

station. This will allow the downloading and display of METAR information upon a

geographical map. The file also contains IATA codes that can be used to identify some

stations. An example of this is Leeds Bradford international airport that has an ICAO

code of EGNM and an IATA code of LBA. The shorter IATA codes do not appear at all

airports and so pilots will use the ICAO code which uniquely identifies every registered

airport around the world.

The undesired stations are those such as when an airport has more than one reporting

station and so both are not required. Others that are not required include wind profilers,

ARTCCs (Air Route Traffic Control Centres - FAA), AIRMET/SIGMET station list

(VOR standing for VHF Omni-directional Radio Range stations) and NEXRADs

(Doppler radar ranges). These reporting stations do not all report METAR information.

- 11 -

Some stations do but not all of the METAR codes and so the weather picture will be

incomplete.

2.2.3 Design methodologies

Before the design process it is necessary to choose a design methodology that is suitable

for use. Two main design methodologies were seriously considered as appropriate for

the design process. These were the Waterfall methodology and Agile software

development.

2.2.3.1 Waterfall method.

The waterfall model [13] contains seven steps. Each step influences the next step in the

design process. It isn’t very flexible for change as once a step has been left it isn’t easy

to make a change in it without compromising the steps that follow it. This however is

not a problem if the design is well thought out at the beginning and as such is quite

useful for smaller projects that do not require a lot of change.

The seven steps of the waterfall model are listed here:

1 Requirement specification.

Here all of the projects requirements are specified so that the designer can

clearly picture what the solution must be able to accomplish.

2 Design.

Here the designing of the solution takes place.

3 Construction.

The solution is made.

4 Integration.

Here the solution is put together from its components

5 Testing and debugging.

Here the solution is tested to make sure that it is working and doing everything it

is supposed to.

6 Installation.

The solution is presented to the end user as a completed solution.

- 12 -

7 Maintenance.

Here the solution is maintained, repairing any problems that arise within the

system.

Overall the waterfall model is not very flexible for changing requirements but due to the

relative small size of this project it is quite suitable. As long as each stage is planned

well enough the solution should be produced without too many problems.

2.2.3.2 Agile methodology

Agile methodologies [13] aren’t as rigid in there conception as the Waterfall method

and so are perhaps more suitable for the designing of the projects solution. They have

an iterative nature where a stage is re-worked until it matches the requirements that can

change throughout the projects designing.

The way that Agile designing will create a small subset of working parts or a less

capable complete solution every few weeks is not of any use for the purposes of this

project as the only deliverable is the software at the end and as the requirements are

unlikely to change this is not required. This is not too different to prototyping which is

useful where deliverables or demonstrations are required on a regular basis. This project

only has one deliverable point and so this is not a useful feature to the project.

Agile designing will also work well with a group of contributors as it easily

compartmentalises the different aspects of the work but as I am the only designer this is

also a benefit of Agile designing that is not needed.

2.2.3.3 Chosen methodology

Taking into consideration that the requirements are unlikely to change and that many

prototypes are not required for demonstrations the Agile approach is not warranted.

For the size of this project and its scope I believe that the Waterfall method of design

will be more suitable. The Waterfall method allows a clear path from start to end and is

- 13 -

better suited to work with one person whereas the Agile model obviously tends towards

collaborative designing.

2.3 Graphical representations

The decoded METAR weather data will be given a graphical representation over a

geographical map so that the pilot using the solution can clearly picture the weather in

the area they will be flying. The representations of the weather will need to be as self

evident as possible so that a new pilot will be able to intuitively know what each symbol

is depicting. Some of the symbols may not be as intuitive as they might have to depict

complicated weather information such as freezing rain or sandstorms.

2.3.1 Depth of representation

The amount of information that can be contained within a METAR is potentially very

detailed. The amount of information mustn’t overload the graphical representation

making it difficult for the pilot to understand. In some cases it might be better to only

display the most prevalent weather for a station. Some of the more complex weather

information may be best only displayed in a textual decoded form so that the symbols

used don’t need to be complicated or difficult to remember. Keeping the amount of

symbols used to a minimum is a must as this will help to keep the time a new pilot takes

to learn how to use the system lower.

A visualisation in 3D may be more of a hindrance than an advantage for this project.

Keeping the symbols on a 2D representation will reduce the workload that the pilot

needs to undertake when understanding the weather situation. A 3D representation may

be useful for the different cloud layers which are in 3D space in the real world but this

would compromise the visibility of symbols that fall underneath the higher cloud

symbols. This means that some of the important weather information might not get seen

by the pilot.

- 14 -

2.3.2 Choice of appropriate symbols

The most appropriate symbols are those that are easily recognised and remembered by

the greatest amount of people. This is why the choice of symbols is very important to

the success of this solution as a tool that pilots can use. Obviously the use of

complicated or difficult to read symbols must be avoided for this to happen. There are

already weather symbol systems in use that may be more popular for use as many

people might already know how to use them.

The BBC weather symbols [5] shown below in fig 2.1 are common in the UK and are of

most use to UK pilots. Alternatively the CNN weather symbols [6] shown below in fig

2.2 are common in the US and are more appropriate for US pilots.

Fig 2.1

Fig 2.2

Instead of trying to recreate a similar style to the BBC and CNN style symbols it is best

to use these as most pilots will be familiar with them and those that aren’t should find

understanding their meaning quite easy. As the BBC and CNN symbols are useful for

different pilots it will be useful to combine them. This will be done quite easily as they

are quite similar to each other.

2.4 Appropriate technologies

The solution needs to be built using an appropriate solution for the visualisation. The

language in which the solution is built must also be considered.

- 15 -

2.4.1 Visualisation choice

The weather symbols need to be depicted on geographical information so that the

increased context can help pilots plan their flight. The geographical information is best

obtained from a free source and must be easily manipulated by the solution program to

add the symbols to it. The geographical information must be detailed enough to enable

the pilots to gather useful information such as directions and heights.

One considered source for geographical information was the Ordnance Survey maps [7].

They provide a good level of detail and are available online. The method for retrieving

the maps online is not very easy for manipulating by a computer program and thus the

collection of map data would be difficult. This source for geographical information also

means that the maps would require downloading for the adding of the weather symbols

which is a breach of the copyright terms on the site. After they had been downloaded

and manipulated the maps would need displaying and this would require a capable map

displaying part to the solution which is unnecessarily complicated.

The second considered source for geographical information was Google Maps [8].

Google Maps is an online based source for mapping information that also allows subtle

manipulation of its map information through KML [9] which is Google Maps’ language

for describing these alterations. This is more ideal for adding the mapping information.

The online aspect would make it very useful for use by pilots across the world.

The final considered source for geographical information was Google Earth [10].

Google Earth is an application based tool for gathering and displaying mapping

information. This mapping information, like Google Maps, can be manipulated using

KML. The difference between Google Maps and Google Earth is that the later can be

manipulated a lot more. Google Earth can also hold a lot more manipulation than

Google Maps and so is more suited to displaying more complicated weather systems

and larger areas.

- 16 -

Overall the choice to use Google Earth has been made as it is the easier to manipulate

than Google Maps and contains its own mapping display which the Ordnance Survey

couldn’t. Google Earth is much better than the other two in that it can also have its

mapping information changed by the user while it is in use so that cluttered information

can be filtered out allowing the user to read and understand things in smaller pieces.

2.4.2 Coding language choice

Two coding languages were considered for the design of this system.

The first was C++ which is a powerful language and has many libraries for adding quick

and easy functionality to a program. C++ is a good language that can easily handle the

requirement of this project. It can use its libraries functions to download and manipulate

the weather information and also has library functions to manipulate XML style code

which is the syntax that the KML uses. C++ can be very complicated and I am not sure

that I have enough knowledge of it to use it for this project’s solution.

The second consideration was Java. Java is an equally powerful language to C++. Java

also contains large libraries that can easily add extra functionality to a program. I am

more familiar with Java than I am with C++ and don’t find Java as complicated.

The solution will be programmed in Java. This is mainly because I am most comfortable

programming in Java but also because Java has advantages over C++ and others when it

comes to graphical interfaces and the ease of using web sources.

The biggest advantage of Java is its widespread adoption and platform independence.

This will allow pilots to use it across the world and on virtually any machine.

- 17 -

Chapter 3

Design and implementation

3.1 Schedule for design and implementation

Task Deadline

Research of METAR server data formats and METAR data

formats.

5/11/06.

Research of Station server data formats and Station data formats 15/11/06

Research for weather symbols 25/11/06

Decision of weather symbols 07/12/06

Research for graphical representations 15/12/06

Decision for graphical representations 27/12/06

Research of KML coding. 13/01/07

Coding of KML generation algorithm. 30/01/07

Coding of METAR report decoding algorithm. 25/02/07

Coding of graphical front end. 15/03/07

Testing and evaluation of the solution 24/04/07

Final report write up 25/04/07

The above table is a reasonable schedule for the project. This has been adhered to as

much as possible. Alterations and changes to deadlines are discussed in the evaluation

section.

3.2 Java class design.

The program will best be distributed over 3 classes. A class to host the main program

and GUI elements called Metar. A second class to host the METAR report decoding

which will then pass back to the main class for the KML generation called Decode.

Finally the third class is simply a small class that contains methods for converting

between heights, latitudes and longitudes, temperatures and pressures called Convert.

- 18 -

This is so that all of the units displayed are the same and also the correct kind that

Google Earth [10] requires.

The main program will download and store to disc the 2 most recent METAR cycles

from the NOAA [1] so that there is a greater coverage of weather information and fewer

stations are left blank. The newer information overwrites the older weather information

so that it is always mostly up to date. Next the class downloads the METAR reporting

station information and stores that to disc. After the downloading is completed the class

will read in all of the station information into a large array. After the station information

is loaded the METAR information is read in from the disc and placed in the appropriate

location in the array. This allows all of the station information to be stored with the

METAR report information. This array is now queried so all of the information that the

algorithms require.

The class then starts to generate the KML file that is written to disc. This is done by

iterating through the array and decoding the METAR report information in the second

class called Decode. Decode will be described in detail later. Decode will pass back an

array containing all of the decoded METAR information. The main Metar class then

takes this array and iterates through it placing all of the appropriate symbols in the

correct places within the KML as described in 3.4.

After this is completed the next iteration begins. If the program comes across a

reporting station for which there isn’t any METAR information reported then it will

only add the stations marker within the KML [9] for Google Earth [10].

Once all stations have been iterated through the class saves the KML script and then

launches Google Earth [10] with the KML script which Google Earth will load

displaying a world wide view of all METAR reporting stations. The graphical interface

for this will be discussed later in 3.6.2.

The decode class is passed the METAR report from the Metar class. It will then return

all of the decoded information in the form of an array. The METAR decoding process is

shown in the section 3.3 METAR decoding algorithm.

- 19 -

The convert class is passed information for conversion from both the Metar class and

the Decode class. It contains methods for converting between feet and metres,

latitude/longitude values and degrees. There is also a method for converting between

wind speeds in metres per second and knots so that all wind speeds can be presented in

knots. This is most useful to pilots who would have to convert between these units

anyway.

This distribution of code is beneficial as it separates out all of the methods that will be

called many times in iterative algorithms such as the METAR decoding algorithm and

the conversion methods. As the KML is only generated once it can be kept in the main

class. This is the same as the GUI which is also kept in the main class.

3.3 METAR decoding algorithm

The solution for the METAR decoding algorithm is quite simple. It tokenizes the

METAR string as each token will be a different weather condition. Some of the more

difficult information such as wind strength and direction are trickier to decode than the

weather tokens and require more work. The decoding process is overviewed in figure

3.1.

The first part of a METAR is a four character ICAO designation code for that station.

This is easily spotted by the program.

The next part is the date and time signature for the METAR. This is also of a fixed

length and so easily spotted.

Once these first two pieces of METAR information have been dealt with they are

removed from the string. The remaining information will be the weather conditions. The

program then looks at each part of the METAR one at a time and decodes the

information. Some special codes appear that are significant such as the code “AUTO”

that allows the pilot to understand that the weather information has been automatically

- 20 -

generated and isn’t as accurate as a manual report. “CORR” is another code that shows

an automatically generated METAR has been corrected by human intervention.

Wind information such as “12040KT” is trickier as it can have many different lengths

and designators such as different speed units and extra codes for displaying gusting

winds such as “12020G30KT”. The algorithm looks for the unit codes to determine the

end of the wind section and then looks for the “G” symbol so that it knows whether to

look for a gusting wind speed or not.

The temperature codes are easily found as “12/10” or “02/M01”. The M is used to

designate minus. Here “12/10” depicts that the temperature is 12 degrees centigrade and

that the dew point is 10 degrees.

One of the hardest pieces of weather information is the visibility group. This is because

it can have variable lengths and use different units. It can also have different visibilities

for certain runways but by having the program look for the units used and

understanding the different runway codes it is possible to decode the visibility from the

METAR.

The different cloud groups such as “020OVR” and “040BKN” depict the cloud

coverage at the observation station. These two above show overcast clouds at 2000ft

and broken clouds at 4000ft. These are always in the same place within the METAR

and as there are only a few combinations of the same length they are easily decoded.

Finally the prevalent weather codes are decoded such as “+RN” and “-SHSN”. These

two depict heavy rain and light snow showers. Again as there are only a certain amount

of combinations and lengths they are easily spotted and decoded.

The further codes for weather phenomena are not of interest as they depicted by the

symbols and so the decoding of these is not required.

- 21 -

Figure 3.1. Flowchart demonstrating METAR decoding.

3.4 KML generation algorithm

The KML language is used to give Google Earth instructions for displaying the weather

symbols. KML is XML based and has only a handful of operators that are useful for this

project.

As each METAR station is decoded its relevant KML is added to the script as it isn’t

important in which order they are added. The process is overviewed in figure 3.2.

The program takes the decoded weather and chooses and appropriate symbol to

represent it. It then takes the METAR stations location and decides upon the place for

the symbol so that it can be seen at the correct place in Google Earth. The symbol

- 22 -

placing is decided by a common placing throughout the visualisation. From left to right

are the wind, temperature, visibility, barometric pressure, prevailing weather condition

and finally the cloud layers. This means that by using a particular offset from the

location of the METAR reporting station the symbols will always appear in the same

places relative to the METAR stations location.

Once this is done the process is iterated for all symbols at that station and the KML

script is generated. This whole process is repeated for all of the METAR stations as they

are decoded. The station information such as co-ordinates and names are taken from the

station information which is discussed in 2.2.2. The station information co-ordinates are

in latitude and longitude format which is not the format that Google Earth [10] requires

them in. For Google Earth to understand them they need to be in degrees. This is done

by passing a latitude and longitude value to the convert class of the program that returns

the degree values back.

Here is an example of KML for London Heathrow showing the wind direction.

<Folder>

<name>EGLL London Heathrow</name>

<open>0</open>

<GroundOverlay>

<name>Wind</name>

<description>Wind Direction And Force: 21007KT

190V250</description>

<color>9effffff</color>

<drawOrder>1</drawOrder>

<Icon>

<href>arrow.jpg</href>

<viewBoundScale>1</viewBoundScale>

</Icon>

<LatLonBox id="latlongbox1">

<north>51.49386111111111</north>

<south>51.488366666666664</south>

<east>-0.47763055555555556</east>

<west>-0.4817388888888889</west>

<rotation>150</rotation>

</LatLonBox>

</GroundOverlay>

</Folder>

- 23 -

This code is typical for all symbols and descriptions. The only thing that will change is

the name of the airport or stations and the picture used for the symbol.

Figure 3.2. KML generation flowchart.

- 24 -

3.5 Symbol design

Using the BBC [5] and CNN [6] weather symbols shown in 2.3.2 as a starting point I

first designed the following symbols.

Fig 3.1 Rain Fig 3.1 Thunderstorm.

These first style of symbols reflect the traditional style of the BBC[5] more than the

CNN[6] weather symbols. They do no seem very bold and the rain is not as self evident

as it could be.

The following symbols follow the CNN[6] style much closer and are more bold and self

evident. The contain the shapes used by the BBC[5] and so are recognisable to the U.K.

pilots but have the styling of the CNN[6] weather symbols. Having considered these to

be a more appropriate style the following complete set has been designed.

Fig 3.3 Heavy rain. Fig 3.4 Light to moderate

rain.

Fig 3.5 Heavy snow. Fig 3.6 Light to moderate

snow.

- 25 -

Fig 3.7 Thunderstorm. Fig 3.8 Ice, hail or sleet.

These symbols take the combination of solid symbols from CNN [6] and adding the

shapes used by the BBC [5]. Together they should be recognisable to both US and UK

pilots. For the benefit of a black and white printer the rain drops are blue, snowflakes

are black so that they show up on the white background and the lightning bolts are

yellow.

The wind will be depicted by using a coloured arrow which is green for winds lower

than 10 knots, Orange for wind lower than 20 knots and red for winds greater than 30

knots. The arrow will show the direction of the wind.

For the different cloud layers they will be show with these symbols shown in figure 3.7.

Fig 3.9. From the top, Few, Scattered, Broken and overcast.

Each cloud layer will be show next to its height in feet in the order of height. This is so

that the pilots can easily picture the layers that they will be flying through.

The temperature will simply be show as its value in degrees centigrade. The dew point

is not usually used and so it is not necessary to display it. The dew point is only used

when a pilot is using an aircraft that doesn’t have anti-ice capability. Such pilots will

have to make allowances for this in there planning when operating in colder

temperatures anyway and so it is not needed here.

Barometric pressure is also shown in text as a symbol for this would be difficult to

design and hard for the pilots to understand.

- 26 -

3.6 Interface design

The software is a professional solution and as such requires both a command line

interface for the user who is more experienced and graphical interface for those who are

not as experienced

3.6.1 Command line interface

The command line interface simply runs the program. There are two operators that tell

the program what to do. Using the /g operator starts the program without the graphical

interface and makes the program start the downloading process and the decoding

process immediately. Once this is done it will generate the KML and launch Google

Earth. Using the /k operator will start the program and allow it to start the downloading

and decoding process. It will also allow the KML generation to begin but it prevents the

program from launching Google Earth.

These two operators can be used on there own or together. If they are used together then

the order must be /g /k. They are added to the end of the program call such as this,

metarmap.exe /g /k.

The graphical interface inhibitor allows the program to run in a non intrusive way. This

means that the program can be used by an external program if necessary.

The KML generation inhibitor allows the program to do all of the processes up to

generate the KML and launch Google Earth. This is useful for testing and for external

programs to use the solution to download weather information.

If the solution is to be run without the graphical interface then it isn’t possible to set

some of the user options such as default viewing height and angles. In this case the

solution will revert to a default setting.

- 27 -

3.6.2 Graphical based interface

The graphical interface is quite simple as there are only a few options that are open to

change by the user.

One is the default viewing height. This sets the height at which the view point is set

when the user selects one of the METAR reporting stations within Google Earth. The

default is set to a reasonable height by the software depending on the height of the

METAR reporting station itself.

The second value is the viewing angles. The default is due north but this allows the user

to set a compass bearing in degrees to change the orientation of the default viewing

position.

Finally the interface has a button to start the downloading and decoding process. Once

this has happened the program will produce the KML script and launch it within Google

Earth [10].

The interface design is basic but meets all of the requirements. It is demonstrated below

in figure 3.10.

Figure 3.10. METAR map graphical interface.

After the program has downloaded, decoded and put the METAR information into the

KML it will launch Google Earth [10]. The information is shown in Google Earth [10]

is demonstrated in figure 3.11. It shows clearly the direction of the wind and the

prevailing weather condition which is light to moderate rain. It also shows the decoded

- 28 -

visibility, barometric pressure, and temperature. There is also a symbol indicating few

clouds with a caption showing them to be at 350 ft. It was captured on the 12th

of

February 2007 at 18:30 although the METAR report was for 18:20. The encoded

Figure 3.12 shows how extra cloud layers are shown. It also demonstrates different

values for the weather. Note that although the wind hasn’t changed direction the arrow

is now orange showing stronger winds and that the rain has increased in its intensity.

The pressure has dropped and as a result of the heavy rain the visibility has dropped to

1500 ft. The drop in pressure and drop in temperature are also indicated. This second

example was captured 6 hours later that night after the first example.

Fig 3.11 Google Earth showing weather symbols.

- 29 -

Fig 3.12 Google Earth showing further weather symbols.

The designed placement of symbols has been changed so that the textual information is

kept together. This was changed as some of the symbols cannot be placed in the same

positions every time as the METAR might not contain all of the information or even

have that kind of weather. An example of this would be if there were clear skies, thus

eliminating the layered cloud system and also the prevalent weather system group.

To find a particular airport in Google Earth [10] it is simpler to use its own search

system. It can search for ICAO codes or the airport name and so all airports that are

covered by a METAR reporting station can be reached. This is shown in figure 3.13

where Leeds Bradford international airport has been searched for using its ICAO code

of EGNM. To view its weather report the pilot can either click on the yellow pin

representing the weather report or can find the airport in the alphabetical list down the

left hand side and select its entry there.

Figure 3.13 also shows the decoded METAR information in plain English for Leeds

Bradford.

- 30 -

Figure 3.13 Google Earth’s search capabilities.

3.7 Changes to the design.

The original plan of the project was to include in the final solution aviation charts that

could be shown with the weather symbols to provide a greater amount of data that is

particularly useful for pilots. These aviation charts were going to be added on top of the

geographical information. However, when the implementation of this was started it

appeared quite quickly that this task would have had many problems that would first

need addressing. It would have taken a disproportionate amount of time to implement

this into the final solution, especially considering that the geographical information and

tools provided by Google Earth [10] would have compensated to some extent for this

shortfall.

Some of the problems with implementing this into the solution are as follows. Firstly

the acquiring of these charts is notoriously hard for private parties such as myself

without out laying substantial amounts of money. Secondly, while adding the charts to

Google Earth [10] is easy, the process of lining them up is very time consuming. In

some cases it can take up to 30 minutes to line up a chart over the geographic map

successfully. Thirdly the rate at which these charts change can be monthly which would

- 31 -

quickly leave quite a lot of the data contained in the charts obsolete. Finally the charts

are carried by a pilot for all of the airports in which they intend to fly and so repeating

them within the solution would be wasteful.

In designing the solution of the symbols it was decided that providing a choice of two

kinds of symbols, which was the original intension, was also not necessary as the

symbol sets would be similar to each other anyway. That is why the combination of

BBC [5] and CNN [6] symbols was used.

Both of these changes to the design were not ones that compromised the design or

objectives of the solution and the Waterfall model that was used to throughout the

solutions design coped with them well.

- 32 -

Chapter 4

Evaluation

The solution will be evaluated to see if it meets the minimum requirements and

objectives defined in 1.5.

The solution will also be considered whether it could be used for flight planning by

pilots in real situations to determine if the solution is a useable tool.

The solution will be deemed a success if it is found to be good enough to meet these

evaluation criteria.

4.1 Code testing

The code for the solution was tested as it was written to make sure that its development

was working towards a complete solution. This was done whenever a change to the

code was made that warranted a test. Such points for testing were whenever a new

weather group was added to the METAR report decoding algorithm.

The code was also tested once it was completed to make sure that the finished solution

work well. It was tested to make sure that it could cope with problems in the internet

connection such as if the web site containing the METAR weather reports was down.

The code was overall tested to make sure that it was of good quality, secure and correct

for its intended use.

Through testing the completed software there were numerous bugs uncovered in the

decoding of the METAR reports. Some of these errors were only slight such as “1 ½

- 33 -

SM” being understood by the program as ½ statute miles. These types of errors were

usually the result of miscounting string indexes and were easily fixed.

Some of the more serious bugs required a complete re-working of the METAR

decoding algorithm. This resulted in a delay in the completion of the METAR decoding

algorithm completion and is discussed later in 4.3.2. In one case it was discovered that

if the METAR line contained “-SHSN” meaning literally light shower snow (light snow

shower in plain English) was being understood as light shower rain (light rain shower in

plain English) because the algorithm hadn’t been written to expect the inclusion of the

shower descriptor in the case of snow but only in the case of rain.

This resulted in a re-design of the algorithm which moved away from comparing

completed METAR reports in larger chunks to an algorithm that compared only the

smallest weather groups that could be processed at one time and still retain meaning.

This led to “-SHSN” being perceived one part at a time such as the quantifier first

(light) then “SH” meaning shower and finally “SN” meaning snow. This was easier for

the program to recognise and once it had it was able to rearrange it into plain English of

light snow showers.

4.2 User evaluation

The finished solution was tested by myself and two of my friends who are pilots. These

are Daryl Shuttleworth [14] who resides in Canada and is a student pilot like myself and

Nigel Riven [15] who lives in the UK and was once employed by British Airways. Both

of these men have more experience flying than me especially Nigel who was a

commercial pilot for over 15 years. I am in contact with both of these men through

email and telephone. The software was sent to them through email with minimal

instructions for use. After a week I contacted them both by telephone to receive

informal feedback about the solution that I had produced.

- 34 -

4.2.1 Interface testing

The interface for the solution program itself is very simple. There are only two

changeable parameters and one button. Both Daryl and Nigel commented to some

degree that this really couldn’t be difficult for anyone to understand or miss use.

Daryl [14] mentioned in particular that “It would be impossible to get this wrong”.

The interface for Google Earth [10] is a little more complex and as it is used by my

solution I also asked Daryl and Nigel to comment on how easy they found it to navigate

around the environment and how easy it was to get to the information they were looking

for.

Nigel [15] said that even though he had never “used Google Earth for this kind of use

before” it was “quite simple and quick to pick up”. This is a good success as one of the

key objectives was that the system be as intuitive as possible so that new pilots wouldn’t

need to spend too much time trying to understand it. He did mention that “sometimes

the search wouldn’t find exactly the right place for the airports information” [15]. This

is a bit of a problem as the main way to find information in the interface is to use

Google Earths [10] in built search functions. Here the interface does fail slightly but it is

always quite close to the point of the information and so this is only a minor problem.

Daryl [14] gave similar comments to those of Nigel’s [15] and added that he found the

interface “very easy to changing the amount of detail he needed” in certain situations.

I would like to add that the interface within Google Earth [10] changed from version 3

to version 4 and that the position of the movement controls changed along with their

appearance. This did mean that the positioning of the solutions weather data symbols

might be jeopardised if this was to change to a position on the map where they would

overlap. I find the rest of the interface very easy to work with, however, it is worth

noting that I have been using Google Earth [10] extensively throughout this project and

so wouldn’t expect to find any problems with it.

- 35 -

4.2.2 Representation testing

Here the solution was tested by Daryl [14] and Nigel [15] to determine whether the

amount of weather detail was adequate for aviation use and also whether the symbols

were easy to understand and appropriate enough for pilots use.

It is also worth mentioning that I checked if Daryl had ever seen the BBC [5] weather

symbols before to which he said that he had not. This gave me a chance to see if the

combination of styles chosen for the weather symbols had been successful for those

people who had not seen both. Nigel [6] said that he had seen both types of weather

symbols before and so he couldn’t be used for this process as well as Daryl [14].

I started by asking Daryl [14] if he found the amount of detail contained within the

solution detailed enough for use with flight planning. Daryl [14] found “the level of

detail adequate for his type of flying” which is general aviation or light aircraft. The

detail of the information even “exceeded what he expected to find” [14] but he did not

say this as a negative point as he understood that the tool is for use with more

demanding pilots as well.

I then asked Nigel [15] the same questions about the amount of detail that is contained

in the solution and whether it was enough to allow flight planning. Nigel [15]

commented that the “amount of information is correct for an overview of weather at an

airport”. This shows that there was not too much information to overload the user.

Daryl [14] was asked about the choice and design of the symbols. As previously

mentioned Daryl lives in Canada and is familiar with the CNN[6] style weather symbols

but has never encountered the BBC[5] style weather symbols. When asked about the

meaning of the symbols Daryl [14] said “They are easy to read, especially on the white

background and are easily distinguished”. This shows that Daryl [14] found the symbols

to be adequate for the purpose of displaying the weather information.

- 36 -

Nigel [15] was also asked about the choice and design of the weather symbols. Nigel

[15] said that he could “see where the BBC and CNN symbols were used” and that

“they convey the weather information well but there aren’t enough different

precipitation symbols”. The fact that he was able to see and understand the meaning of

the weather symbols well was a good point but the problem with the number of

precipitation symbols confused me. I asked him if he could clarify this point and he

replied that “there are only ones for light and moderate or heavy but real pilots need

three separate ones” [15]. This shows that the choice of symbols was flawed as pilots

will need to determine between grades of light, moderate and heavy rain or snow. I had

considered grouping light and moderate as this made the design of the symbols easier

but it is now clear that this takes away the accuracy of the original METAR weather

report and so pilots would need to check this more carefully. Nigel finished this point

by saying that “the rest of the symbols are easy to get to grips with and contain enough

information” [15].

This means that overall the choice for detail was appropriate and detailed enough for

describing the weather information for all of the different types of weather except for

the precipitation weather which contained less detail than is required due to two

different intensities sharing one symbol. This is easily fixed and can be considered as an

extension.

The symbols where clear and easy to understand for new pilots and so fulfil the

requirements of this solution.

4.2.3 Observations

The solution to the project has met all of the minimum requirements successfully. The

solution has also fulfilled all of the objectives. One objective has been partially met

though as Nigel [15] pointed out that the depth of detail for the precipitation quantities

is lacking in scope. This would easily be fixed if extra symbols were created and added

to the solution.

- 37 -

The problem of the search facility within Google Earth [10] not always positioning the

viewpoint over the weather symbol information is a problem. To fix this the positioning

of every METAR station would need to be individually evaluated to make sure that this

is not repeated. Due to the large amount of METAR stations (over 27000) this would be

a very time intensive task and so the automated retrieval of the station information

should be used, but changes made where it is found to be inappropriate.

4.3 Development methodology

The development methodology that was chosen will be evaluated here to determine its

suitability for producing the solution. This section also looks at the schedule with

comments and explanations for changes to deadlines.

4.3.1 Effectiveness

The Waterfall [13] discussed in section 2.2.3.1 was chosen as a methodology to

complete the solution from inception to completion. This was followed closely through

all of the 7 waterfall steps that are required to be followed in order. As each step is

dependant on the input from the previous step any changes to the project are very

difficult to undertake.

One such change was the decision to remove the aeronautical chart information from

the solutions representation. As this was simply removing something rather than adding

something it wasn’t as damaging as adding something might have been.

The Waterfall model helped to structure the work into the 7 steps and tasks were

completed in that order. This helped me to keep an idea of where the deadlines were and

how close I was to meeting them. When changing elements I did have to go back to the

step where the change was needed (usually the first step) and work through the

following steps slowly and carefully to make sure that the change was made throughout

the project. This was time consuming but overall wasn’t too difficult.

- 38 -

If an Agile [13] style of methodology had been used instead the tasks would have been

treated separately. This would have meant that the removal of a system part would not

have affected the rest of the project to the same extent as with the Waterfall [13] model.

In this case an Agile [13] approach may have been helpful.

The Waterfall [13] model was suitable for the completion of the task. This is because I

found that for the relative low complexity of this project fitted well with the waterfall

model. The use of an Agile [13] model for development would have been overly

complex and unnecessary.

4.3.2 Schedule

The schedule that is discussed in 3.1 was thought out carefully to allocate each task

enough time to complete it with enough detail that is required. The scheduled tasks were

to be carefully complete by the scheduled deadlines. Some of the tasks for various

reasons were not completed by the deadline.

The first of these was the coding for decoding the METAR reports. This was done 5

days later than the deadline on the 02/03/07. This was due to problems when testing the

decoding of weather data that included information about snow showers. This meant

that there was less time for the next task which was the coding for the graphical front

end and all of its interfacing with the program.

4.4 Minimum requirements and extensions

All of the minimum requirements were met well. This is as the solution downloads,

decodes and overlays the weather information over the geographical information. As

evaluated in 4.2 the solution performs these requirements well enough to be considered

a successful approach to solving the initial problem.

As an extension to the requirements a graphical front end to the program was added to

aid the user interaction with the program. As there is not much user interaction required

- 39 -

for the program this was done quite easily. The graphical front end provides an

alternative for non expert users to run the program which was initially only considered

to be a professional solution that was adequately used from the command line.

4.5 Further extensions

This project can be extended for use in further final year projects. One of these projects

might be to take this as a starting point and add functionality for predicting the weather

between in areas where there are no reporting stations. This was one of the extensions

that I did not have time to implement on my own but would be a reasonable amount of

work for a final year project. Such a project would have foundations in CS modules for

the algorithm design that would be needed and also further involvement in GI modules

for the representation.

- 40 -

References

[1] NOAA National Oceanic and Atmospheric Administration US. (2006)

NOAA national weather service.

http://www.nws.noaa.gov/ [20th April 2007]

[2] Department of Atmospheric Sciences, Texas A&M University (2005)

METAR observation code.

http://www.met.tamu.edu/class/METAR/metar.html [20th April 2007]

[3] NOAA Aviation Digital Data Service & Thompson, Greg (2006)

METAR reporting stations.

http://adds.aviationweather.gov/metars/stations.txt [20th April 2007]

[4] NOAA Internet Weather Source (2007)

METAR report cycles.

http://weather.noaa.gov/pub/data/observations/metar/cycles/ [20th April 2007]

[5] BBC (2006)

Understanding the symbols.

http://www.bbc.co.uk/weather/bbcweather/features/symbols.shtml

[20th April 2007]

[6] CNN (2005)

CNN weather

http://www.cnn.com/weather/ [20th April 2007]

[7] Ordnance Survey (2007)

Get-a-map

http://www.ordnancesurvey.co.uk/oswebsite/getamap [20th April 2007]

- 41 -

[8] Google (2007)

Google Maps.

http://maps.google.co.uk/ [20th April 2007]

[9] Google (2007)

KML v2.1

http://earth.google.com/kml/ [20th April 2007]

[10] Google (2007)

Google Earth v4

http://earth.google.com/ [20th April 2007]

[11] Heras, Manuel et al (2002-2007)

METAR-Decoder

http://heras-gilsanz.com/manuel/METAR-Decoder.html [20th April 2007]

[12] Sofer, Nir (2003-2006)

MetarWeather v1.50 - METAR decoder

http://www.nirsoft.net/utils/mweather.html [20th April 2007]

[13] Tsui, Frank F & Karam, Orlando, (2006),

Essentials of Software Engineering,

Jones and Bartlett Publishers

ISBN 076373537X

[14] Shuttleworth, Daryl (2007)

[15] Riven, Nigel (2007)

- 42 -

Appendix A

Project reflection.

I feel that overall the project was a success even though there are areas that could have

turned out better. These include the research for the inclusion of aviation charts which if

it had been done sooner may have lead to more realistic minimum requirements from

the beginning.

The lack of inclusion of the aviation charts is a disappointment to me as this would have

been very useful for giving the pilots the entire context that they need to plan a flight

well.

The workload was accomplished mainly before the Christmas break and halfway

through semester 2. Most of the project was done on time to the schedule but if work

had continued well through the Christmas period the deadlines may have been met

better. This is partly as the thought of “there is plenty of time left” is quite strong in

your mind when working on a project for over 6 months. If doing this again I would

have no hesitation in working harder at the beginning to make sure that the deadlines

were met.

I do regret not being able to do many of the enhancements which I feel has cost me

marks for this project. Given my time again I would have started more of these earlier

on in the implementation to at least attempt them properly.

When evaluating the solution I would much rather have had interaction with my two

friends who tested the program on a one to one basis rather than having to use the

telephone. I feel that I could have gauged there reactions better if it had been done on a

personal meeting basis.