METAR(3pm) User Contributed Perl Documentation METAR(3pm)
NAME
Geo::METAR - Process aviation weather reports in the METAR format.
SYNOPSIS
use Geo::METAR;
use strict;
my $m = new Geo::METAR;
$m->metar("KFDY 251450Z 21012G21KT 8SM OVC065 04/M01 A3010 RMK 57014");
print $m->dump;
exit;
DESCRIPTION
METAR reports are available on-line, thanks to the National Weather Service. Since
reading the METAR format isn't easy for non-pilots, these reports are relatively useles to
the common man who just wants a quick glace at the weather. This module tries to parse the
METAR reports so the data can be used to create readable weather reports and/or process
the data in applications.
USAGE
How you might use this
Here is how you might use the Geo::METAR module.
One use that I have had for this module is to query the NWS METAR page (using the LWP
modules) at:
http://weather.noaa.gov/cgi-bin/mgetmetar.pl?cccc=EHSB
to get an up-to-date METAR. Then, I scan thru the output, looking for what looks like a
METAR string (that's not hard in Perl). Oh, EHSB can be any site location code where there
is a reporting station.
I then pass the METAR into this module and get the info I want. I can then update my
webcam page with the current temperature, sky conditions, or whatnot. See for yourself at
http://webcam.idefix.net/
See the BUGS section for a remark about multiple passes with the same Geo::METAR object.
Functions
The following functions are defined in the METAR module. Most of them are public, meaning
that you're supposed to use them. Some are private, meaning that you're not supposed to
use them -- but I won't stop you. Assume that functions are public unless otherwise
documented.
metar()
metar() is the function to whwich you should pass a METAR string. It will take care
of decomposing it into its component parts converting the units and so on.
Example: "$m->metar("KFDY 251450Z 21012G21KT 8SM OVC065 04/M01 A3010 RMK 57014");"
debug()
debug() toggles debugging messages. By default, debugging is turned off. Turn it on if
you are developing METAR or having trouble with it.
debug() understands all of the following:
Enable Disable
------ -------
1 0
'yes' 'no'
'on' 'off'
If you contact me for help, I'll likely ask you for some debugging output.
Example: "$m->debug(1);"
dump()
dump() will dump the internal data structure for the METAR in a semi-human readable
format.
Example: "$m->dump;"
version()
version() will print out the current version.
Example: "print $m->version;"
_tokenize()
PRIVATE
Called internally to break the METAR into its component tokens.
_process()
PRIVATE
Used to make sense of the tokens found in _tokenize().
Variables
After you've called metar(), you'd probably like to get at the individual values for
things like temperature, dew point, and so on. You do that by accessing individual
variables via the METAR object.
This section lists those variables and what they represent.
If you call dump(), you'll find that it spits all of these out.
VERSION
The version of METAR.pm that you're using.
METAR
The actual, raw METAR.
TYPE
Report type in English ("Routine Weather Report" or "Special Weather Report")
SITE
4-letter site code.
DATE
The date (just the day of the month) on which the report was issued.
TIME
The time at which the report was issued.
MOD Modifier (AUTO/COR) if any.
WIND_DIR_ENG
The current wind direction in English (Southwest, East, North, etc.)
WIND_DIR_ABB
The current wind direction in abbreviated English (S, E, N, etc.)
WIND_DIR_DEG
The current wind direction in degrees.
WIND_KTS
The current wind speed in Knots.
WIND_MPH
The current wind speed in Miles Per Hour.
WIND_MS
The current wind speed in Metres Per Second.
WIND_GUST_KTS
The current wind gusting speed in Knots.
WIND_GUST_MPH
The current wind gusting speed in Miles Per Hour.
WIND_GUST_MS
The current wind gusting speed in Metres Per Second.
WIND_VAR
The wind variation in English
WIND_VAR_1
The first wind variation direction
WIND_VAR_ENG_1
The first wind variation direction in English
WIND_VAR_2
The second wind variation direction
WIND_VAR_ENG_2
The second wind variation direction in English
VISIBILITY
Visibility information.
WIND
Wind information.
RUNWAY
Runway information.
WEATHER
Current weather (array)
WEATHER_LOG
Current weather log (array)
SKY Current cloud cover (array)
TEMP_C
Temperature in Celsius.
TEMP_F
Temperature in Fahrenheit.
DEW_C
Dew point in Celsius.
DEW_F
Dew point in Fahrenheit.
HOURLY_TEMP_F
Hourly current temperature, fahrenheit
HOURLY_TEMP_C
Hourly current temperature, celcius
HOURLY_DEW_F
Hourly dewpoint, fahrenheit
HOURLY_DEW_C
Hourly dewpoint, celcius
ALT Altimeter setting (barometric pressure).
ALT_HP
Altimeter setting in hectopascals.
REMARKS
Any remarks in the report.
NOTES
Test suite is small and incomplete. Needs work yet.
Older versions of this module were installed as "METAR" instaed of "Geo::METAR"
BUGS
The Geo::METAR is only initialized once, which means you'll get left-over crud in
variables when you call the metar() function twice.
What is an invalid METAR in one country is a standard one in the next. The standard is
interpreted and used by meteorologists all over the world, with local variations. This
means there will always be METARs that will trip the parser.
TODO
There is a TODO file included in the Geo::METAR distribution listing the outstanding tasks
that I or others have devised. Please check that list before you submit a bug report or
request a new feture. It might already be on the TODO list.
AUTHORS AND COPYRIGHT
Copyright 1997-2000, Jeremy D. Zawodny <Jeremy [at] Zawodny.com>
Copyright 2007, Koos van den Hout <koos AT kzdoos.nl>
Geo::METAR is covered under the GNU Public License (GPL) version 2 or later.
The Geo::METAR Web site is located at:
http://idefix.net/~koos/perl/Geo-METAR/
CREDITS
In addition to our work on Geo::METAR, We've received ideas, help, and patches from the
following folks:
* Ethan Dicks <ethan.dicks [at] gmail.com>
Testing of Geo::METAR at the South Pole. Corrections and pointers
to interesting cases to test.
* Otterboy <jong [at] watchguard.com>
Random script fixes and initial debugging help
* Remi Lefebvre <remi [at] solaria.dhis.org>
Debian packaging as libgeo-metar-perl.deb.
* Mike Engelhart <mengelhart [at] earthtrip.com>
Wind direction naming corrections.
* Michael Starling <mstarling [at] logic.bm>
Wind direction naming corrections.
* Hans Einar Nielssen <hans.einar [at] nielssen.com>
Wind direction naming corrections.
* Nathan Neulinger <nneul [at] umr.edu>
Lots of enhancements and corrections. Too many to list here.
RELATED PROJECTS
lcdproc at http://www.lcdproc.org/ uses Geo::METAR in lcdmetar.pl to display weather data
on an lcd.
perl v5.32.0 2021-01-05 METAR(3pm)
Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2026-02-25 09:41 @216.73.216.172 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)