avwx-0.1.0.0: Parse METAR weather reports

Copyright(C) 2014-2016, Hans-Christian Esperer
LicenseMIT
MaintainerHans-Christian Esperer <hc@hcesperer.org>
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Data.Aviation.WX

Description

Parse aviation weather reports. A qualified import is recommended.

Synopsis

Documentation

parseWeather :: Text -> Either String Weather Source #

Parse the given METAR text.

weatherParser :: Parser Weather Source #

An attoparsec parser that can parse METAR messages.

data Weather Source #

Aviation weather, currently only METARs are supported.

Constructors

METAR

A METeorological Aerodrome Report

Fields

ATIS

An automatic terminal information service report

SPECI

A non-scheduled METAR

TAF

A terminal aerodrome forecast

AIRMET

An aviation wx hazard message of moderate severity

SIGMET

A significant meteorological information message

GAMET

A general aviation forecase message

data Date Source #

An obersvation date.

Constructors

Date Int Int Int 

Instances

Eq Date Source # 

Methods

(==) :: Date -> Date -> Bool #

(/=) :: Date -> Date -> Bool #

Show Date Source # 

Methods

showsPrec :: Int -> Date -> ShowS #

show :: Date -> String #

showList :: [Date] -> ShowS #

data Station Source #

An aeronautical weather station designator.

Constructors

ICAO Text

The station as identified by its aerodrome's ICAO code.

data Flag Source #

A flag describing an aviation meteorological report

Constructors

COR

A message has been corrected after the beginning of its original validity period

AMD

A message has been corrected prior to its original validity period

AUTO

A message has been generated fully automatic without a plausibility check by a human

Instances

Eq Flag Source # 

Methods

(==) :: Flag -> Flag -> Bool #

(/=) :: Flag -> Flag -> Bool #

Show Flag Source # 

Methods

showsPrec :: Int -> Flag -> ShowS #

show :: Flag -> String #

showList :: [Flag] -> ShowS #

data Wind Source #

Wind information.

Constructors

Wind 

Fields

Instances

Eq Wind Source # 

Methods

(==) :: Wind -> Wind -> Bool #

(/=) :: Wind -> Wind -> Bool #

Show Wind Source # 

Methods

showsPrec :: Int -> Wind -> ShowS #

show :: Wind -> String #

showList :: [Wind] -> ShowS #

data Visibility Source #

Vertical visibility.

Constructors

TenOrMore

Ten kilometres or more.

FiftyMetresOrLess

Fifty metres or less.

TwoOrMore

Two kilometres or more.

Visibility Distance (Maybe Direction)

A specific visibility.

data Runway Source #

Runway specification.

Constructors

AllRunways

All runways.

Runway

A specific runway.

Fields

Instances

data VisTrend Source #

A visibility trend specifically for runway conditions

Constructors

VisTrendUpward

Visibility will improve (maybe do wait a bit)

VisTrendDownward

Visibility will deteriorate (still, don't rush the take off and use proper phraseology at all times)

VisTrendNoDistinctTendency

No expected change in runway visibility conditions

data RunwayCondition Source #

Runway conditions.

Constructors

RunwayCondition

Specific runway conditions exist.

Fields

RwyClosed

The runway is closed.

Fields

ADClosed

The whole aerodrome is closed.

data WeatherPhenomenon Source #

A weather phenomenon. This can be an observed phenomenon in the case of METARs or an expected phenomenon in the case of TAFs.

Constructors

Phenomenon 

Fields

data Cloud Source #

A cloud specification.

Constructors

VVis (Maybe Int)

No specific clouds could be observed, because the (given) ground visibility was too low or because the ground is covered in clouds.

Cloud Cover Vertical CloudType

Clouds were observed.

Instances

Eq Cloud Source # 

Methods

(==) :: Cloud -> Cloud -> Bool #

(/=) :: Cloud -> Cloud -> Bool #

Show Cloud Source # 

Methods

showsPrec :: Int -> Cloud -> ShowS #

show :: Cloud -> String #

showList :: [Cloud] -> ShowS #

data Pressure Source #

A pressure value. This is intentionally coded individually and not converted to a specific reference.

Constructors

QNH Int

The QNH value in hectopascals. QNH is the current pressure at sea level, corrected for pressure and temperature changes at the station level.

Altimeter Int

The same as QNH, only in inches (Do you know the old joke?: * ATC: Liner 1723 descend to 3,000ft, the QNH is 1013mb. * Liner 1723: Uh, approach, can we have that in inches please? * ATC: Liner 1723 descend to 36,000 inches, the QNH is 1013mb.

QFE Int

The current pressure at station level in hectopascals.

QFF Int

The current pressure at sea level in hectopascals.

data Trend Source #

The trend part of a METAR message specifies expected changes in weather conditions within the next two hours. A Trend/Transition part of a TAF message specified expected changes in weather conditions within the specified range.

Constructors

BECMG [Transition]

A transition that will start within the defined time frame and be completed at the end of the defined time frame

TEMPO [Transition]

A transition that will start within the defined time frame and be finished at the end of the defined time frame

PROB Int Trend

A probability specification. As one of my FIs (ex-atc at EDDF) used to put it: 30% means "I'm quite sure it won't happen but will still put it in here, in case it does after all." 40% means "I'm certain it will happen but will still put it with 40%, in case it does not happen after all."

NOSIG

NOSIG is only applicable to METARs. It means that no significant changes are expected within the next two hours.

NOTAVAIL

NOTAVAIL is only applicable to METARs. It means that the METAR message in question does not contain a TREND section.

Instances

Eq Trend Source # 

Methods

(==) :: Trend -> Trend -> Bool #

(/=) :: Trend -> Trend -> Bool #

Show Trend Source # 

Methods

showsPrec :: Int -> Trend -> ShowS #

show :: Trend -> String #

showList :: [Trend] -> ShowS #

data WPDesc Source #

The description of a weather phenomenon.

Constructors

Shallow

Shallow.

Patches

Patches.

WXPartial

Partial.

LowDrifting

Low, drifting.

Blowing

Blowing.

Shower

Shower.

Thunderstorm

Thunderstorm.

Freezing

Freezing.

data WPOther Source #

Other important information about a weather phenomenon.

Constructors

DustOrSandwhirls

Dust or sand whirls.

Squalls

Squalls.

Tornado

Tornado.

Sandstorm

Sand storm.

Duststorm

Dust storm.

data Distance Source #

The Distance.

Constructors

Metres Int

The distance in metres.

KM Int

The distance in km.

SM Int

The distance in statute miles.

NM Int

The distance in nautical miles.

data Direction Source #

Directions.

Constructors

North

North.

South

South.

East

East.

West

West.

NorthWest

Northwest.

NorthEast

Northeast.

SouthWest

Southwest.

SouthEast

Southeast.

RWYLeft

Left runway for runways of the same QFU (part of the runway designator)

RWYRight

Right runway for runways of the same QFU (part of the runway designator)

RWYCenter

Centre runway for runways of the same QFU (part of the runway designator)

data RwyCoverType Source #

The runway contamination type.

Constructors

RCTDry

The runway is not contaminated.

RCTMoist

The runway is moist.

RCTWet

The runway is wet.

RCTRime

The runway is convered with rime.

RCTDrySnow

The runway is covered with dry snow.

RCTWetSnow

The runway is covered with wet snow.

RCTSlush

The runway is covered with slush.

RCTIce

The runway is covered with ice.

RCTFZRut

The runway is covered with frozen ruts or ridges.

RCTUnknown

The runway contamination type is unknown.

data RunwayBraking Source #

The measured brake efficiency of a specific runway.

Constructors

BrakingFriction Int

The friction coefficient.

BrakingEffect Int

The braking coefficient.

data Vertical Source #

A vertical position specification.

Constructors

Height Int

A vertical position with reference to the ground in feet.

Altitude Int

A vertical position with reference to the mean sea level/QNH in feet.

FlightLevel Int

A pressure altitude with reference to the standard QNH of 1013 hectopascals in hundrets of feet.

VertNotSpec

Vertical position is not specified.

data WindDirection Source #

The direction the wind is blowing from.

Constructors

Variable

The wind is blowing in equal or almost equal strength from a wide variety of directions.

Degrees Int

The wind is blowing from the specified direction. Directions can be given with reference to true or magnetic north, depending on the type of weather observation/forecast message.

Varying

The wind is blowing from a specific direction range.

Fields

  • mean :: Int

    The mean direction the wind is blowing from.

  • from :: Int

    The minimum direction the wind is blowing from.

  • to :: Int

    The maximum direction the wind is blowing from.

data Cover Source #

The area that is covered.

Constructors

FEW

1-2 eights are covered.

SCT

3-4 eights are covered.

BKN

5-7 eights are covered.

OVC

More than 7 eights are covered.

CoverNotSpecified

Cover not specified

data CloudType Source #

The type of cloud.

Constructors

Cumulonimbus

A cumulonimbus cloud.

ToweringCumulus

A developing cb cloud.

Stratus

A stratus cloud.

Cumulus

A cumulus cloud.

Stratocumulus

A stratocumulus cloud.

Altostratus

An altostratus cloud.

Altocumulus

An altocumulus cloud.

Cirrostratus

A cirrostratus cloud.

Cirrus

A cirrus cloud.

Unclassified

An unclassified cloud.

data WPIntensity Source #

The intensity of an observed or expected weather phenomenon.

Constructors

Light

Light

Moderate

Moderate

Heavy

Heavy

Vicinity

Only applicable to METARs. The weather phenomenon was observed in the vicinity of the observed area, not within the observed area itself.

Recent

Only applicable to METARs. The weather phenomenon was recently observed in the past, but was not observed at the time the report was issued.

data Transition Source #

A transition in weather conditions. A transition can either be temporary or permanent; this will be encoded in the container structure.

Constructors

TransWind Wind

A change of wind strength or direction

TransVis [Visibility]

A change of visibility

TransRunwayVis [(Runway, [Visibility], Maybe VisTrend)]

A change of visibility for a specific runway

TransWX [WeatherPhenomenon]

A change of weather phenomenon

TransClouds [Cloud]

A change of ceiling or cloud layers

data Unit Source #

A speed unit.

Constructors

Knots Int

Nautical miles per hour

Miles Int

Statute miles per hour

KMH Int

Kilometres per hour

Instances

Eq Unit Source # 

Methods

(==) :: Unit -> Unit -> Bool #

(/=) :: Unit -> Unit -> Bool #

Show Unit Source # 

Methods

showsPrec :: Int -> Unit -> ShowS #

show :: Unit -> String #

showList :: [Unit] -> ShowS #