Skip to content
Engin1980 edited this page Jun 13, 2017 · 7 revisions

What is MetarJ

MetarJ is a Java project used to decode/encode meteorological reports.

What is METAR

METAR (and SPECI/... other) reports are reports in encoded text format containing weather information. These reports are mostly used over the airfields, but generally, can be used for any meteorological station.

What does MetarJ do?

MetarJ contains a set of classes representing weather information, like "wind", "visibility", "temperature", "air pressure" etc. Moreover, MetarJ contains "decoders" and "encoders", which is able to decode report from its text representation into aforementioned classes and back.

Example

Metar of text... METAR LKPR 122130Z 32008KT CAVOK 15/09 Q1016 NOSIG

... will be decoded into...

root :  [eng.metarJava.Report]
  Type : METAR [eng.metarJava.enums.ReportType]
  Correction : false [java.lang.Boolean]
  Icao : LKPR [java.lang.String]
  DayTime :  [eng.metarJava.support.DayHourMinute]
    Day : 12 [java.lang.Integer]
    Hour : 21 [java.lang.Integer]
    Minute : 30 [java.lang.Integer]
  Nil : false [java.lang.Boolean]
  Auto : false [java.lang.Boolean]
  Wind :  [eng.metarJava.WindInfo]
    Direction : 320° [eng.metarJava.support.Heading]
    Gusting : false [java.lang.Boolean]
    GustingSpeed : null [? eng.metarJava.support.Speed]
    Speed : 8 KT [eng.metarJava.support.Speed]
    Variable : false [java.lang.Boolean]
    Variating : false [java.lang.Boolean]
    Variation : null [? eng.metarJava.support.Variation]
  Visibility :  [eng.metarJava.VisibilityInfo]
    CAVOK : true [java.lang.Boolean]
    NoDirectionalVisibility : false [java.lang.Boolean]
    Variability : null [? eng.metarJava.VisibilityVariability]
    Variating : false [java.lang.Boolean]
    VisibilityInMeters : Error! [[InvocationTargetException]:null -> [NonsenseRequestException]:Unable to get visibility distance for CAVOK visibility. -> ]
  RunwayVisualRanges :  [eng.metarJava.support.ReadOnlyList]
  Phenomenas :  [eng.metarJava.support.ReadOnlyList]
  Clouds :  [eng.metarJava.CloudInfo]
    Empty : true [java.lang.Boolean]
    Masses :  [eng.metarJava.support.ReadOnlyList]
    NCD : false [java.lang.Boolean]
    NSC : false [java.lang.Boolean]
    SpecialState : false [java.lang.Boolean]
    SpecialState : none [eng.metarJava.enums.CloudInfoSpecialStates]
    VerticalVisibility : false [java.lang.Boolean]
    VerticalVisibilityInFeet : Error! [[InvocationTargetException]:null -> [NonsenseRequestException]:Unable to use this method if no vertical visibility is specified. -> ]
    VerticalVisibilityInHundredFeet : Error! [[InvocationTargetException]:null -> [NonsenseRequestException]:Unable to use this method if no vertical visibility is specified. -> ]
    WithMasses : true [java.lang.Boolean]
  Temperature : 15 [java.lang.Integer]
  DewPoint : 9 [java.lang.Integer]
  PressureInHpa : 1016 [java.lang.Integer]
  RecentPhenomenas :  [eng.metarJava.support.ReadOnlyList]
  RunwayWindshears :  [eng.metarJava.RunwayWindshearInfo]
    AllRunways : false [java.lang.Boolean]
    Empty : true [java.lang.Boolean]
    RunwayDesignators :  [eng.metarJava.support.ReadOnlyList]
  RunwayStatesInfo :  [eng.metarJava.RunwayStatesInfo]
    Empty : true [java.lang.Boolean]
    RunwayStates :  [eng.metarJava.support.ReadOnlyList]
    SnowClosed : false [java.lang.Boolean]
  TrendInfo :  [eng.metarJava.TrendInfo]
    IsNoSignificantChange : true [java.lang.Boolean]
    Trends : null [? eng.metarJava.support.ReadOnlyList]
  Remark : null [? java.lang.String]