70 lines
3.6 KiB
Plaintext
70 lines
3.6 KiB
Plaintext
There are 2 classes: CMetarStation (MetarStation.h) and CMetarReport
|
|
(MetarReport.h). These classes provide mechanisms to get information
|
|
about meteorological data reporting stations and about the reports
|
|
themselves. These stations and reports are known as METAR. See
|
|
http://tgsv5.nws.noaa.gov/oso/oso1/oso12/metar.htm for information
|
|
from the USA perspective. Quoting from that site:
|
|
|
|
On 1 July 1996, the international standard code for hourly and special
|
|
surface weather observations, METAR/SPECI, took effect.
|
|
The METAR acronym roughly translates from the French as Aviation
|
|
Routine Weather Report . A special report, SPECI, is merely a METAR
|
|
formatted report which is issued on a non-routine basis as dictated by
|
|
changing meteorological conditions. The SPECI acronym roughly translates as
|
|
|
|
Aviation Selected Special Weather Report . Meanwhile, the international
|
|
standard code format for terminal forecasts issued for airports, TAF,
|
|
also took effect. The acronym translates to Aerodrome Forecast.
|
|
|
|
This implementation ignores the SPECI and TAF acronyms, calling the
|
|
entire system METAR.
|
|
|
|
The class CMetarStation is implemented by MetarStation.h and
|
|
MetarStation.cpp. It decodes a text file containing information about
|
|
individual METAR reporting stations and builds a static database of that
|
|
information during static construction of the class. There are static
|
|
member methods to find individual stations, and member functions to
|
|
extract individual station attributes. The information about METAR
|
|
stations probably has some overlap with FGFS airport information. That
|
|
needs to be investigated. The METAR station information is kept in this
|
|
file:
|
|
http://www.nws.noaa.gov/pub/stninfo/nsd_cccc.gz
|
|
http://www.nws.noaa.gov/pub/stninfo/nsd_cccc.txt
|
|
This class looks for the file FG_ROOT/Weather/MetarStations instead of
|
|
nsd_cccc.
|
|
The current implementation does not look for updates to this file on the
|
|
internet.
|
|
|
|
The class CMetarReport is implemented by MetarReport.h and MetarReport.cpp.
|
|
It encapsulates the decoding software written by Carl McCalla at -
|
|
NOAA/National Weather Service
|
|
1325 East-West Highway
|
|
SSMC2, W/OSO242, Station 5114
|
|
Silver Spring, Maryland 20910
|
|
Work: (301) 713-0882, Ext 115
|
|
FAX: (301) 608-0911
|
|
E-Mail Address: cmccalla@smtpgate.ssmc.noaa.gov
|
|
http://www.nws.noaa.gov/software/
|
|
This software generally sucks and the CMetarReport class attempts to clean
|
|
up some of that suckiness. A CMetarReport object is created with an ASCII
|
|
string as a construction parameter. The string contains a METAR report.
|
|
There
|
|
are member methods to extract selected information from a report by calling
|
|
the McCalla software. Additional information can be selected by adding new
|
|
member methods as needed. Certainly the methods currently implemented are
|
|
not sufficient. METAR reports are available via the internet. In the USA,
|
|
NOAA provides individual METAR reports in this directory:
|
|
ftp://weather.noaa.gov/data/observations/metar/stations
|
|
Other sources are available as well. The current implementation does not
|
|
look for reports on the internet.
|
|
|
|
There is a test program in the MetarTest subdirectory. It requires that a
|
|
#define be changed in the MetarStation.cpp file. Add #define TESTPROG to
|
|
the code or -D TESTPROG to the compilation. This is necessary because the
|
|
FGFS options class is coupled tightly to code that shouldn't be pulled into
|
|
the test program. The test program will decode many METAR reports and
|
|
display
|
|
them to the screen, then it will plot all the METAR reporting stations on a
|
|
tumbling globe.
|
|
|