Giter VIP home page Giter VIP logo

metarparsercore's Introduction

MetarParserCore

A .NET 6.0 library intended for parsing raw METAR data. Current version can parse METAR and TREND reports. Nuget package: https://www.nuget.org/packages/MetarParserCore/

Getting started

This library is easy to use. Just follow exanple below:

// Input raw METAR string
var raw = "UWKD 291500Z 32003MPS CAVOK 18/02 Q1019 R29/CLRD70 NOSIG RMK QFE753/1004=";
// Initialize METAR parser
var metarParser = new MetarParser();
// Parse raw METAR
var airportMetar = metarParser.Parse(raw);
// Serialization using Newtonsoft.Json
var serializedResult = JsonConvert.SerializeObject(airportMetar);

Types overview

Base types

Classes Description
ReportBase Base abstract class for all meteorological reports.
Metar General METAR data class. Any property of this class could be null. Inhereted from ReportBase.
Property name Type Description
ReportType enum ReportType METAR report type
IsNil bool Report is empty
Month enum Month Current month
Modifier enum MetarModifier METAR modifier
SurfaceWind SurfaceWind Info about surface wind
PrevailingVisibility PrevailingVisibility Info about visibility
PresentWeather WeatherPhenomena[] Special weather conditions
CloudLayers CloudLayer[] Info about clouds (Cloud layers)
ParseErrors string[] Array of parse errors
Unrecognized string[] Unrecognized tokens by METAR TokenRecognizer
Property name Type Description
Airport string Airport ICAO code
ObservationDayTime ObservationDayTime Date and time by Zulu of the observation
RunwayVisualRanges RunwayVisualRange[] Info about visibility on runways (RVR)
Temperature TemperatureInfo Information about temperature
AltimeterSetting AltimeterSetting Information about air pressure
RecentWeather WeatherPhenomena Recent weather info
WindShear WindShear Wind shear info
Motne Motne[] Info about runway conditions
SeaCondition SeaCondition Info about sea-surface temperature and state
Trends Trend[] Information about changes of weather forecast
IsDeneb bool Fog dispersal operations are in progress
MilitaryWeather MilitaryWeather Military airfield weather (represents in color codes)
Remarks string Additional remarks (RMK)
Property name Type Description
Direction int Current wind direction (heading)
IsVariable bool Sign if wind has variable direction (VRB)
Speed int Speed of the wind
GustSpeed int Max wind speed or gust speed
WindUnit enum WindUnit Type of wind unit
ExtremeWindDirections ExtremeWindDirections Info about extreme wind directions
Property name Type Description
IsCavok bool Sign if visibility marked as CAVOK. Means Ceiling and Visibility OK
VisibilityInMeters VisibilityInMeters Prevailing visibility in meters
VisibilityInStatuteMiles VisibilityInStatuteMiles Prevailing visibility in statute miles
Property name Type Description
WeatherCondition enum WeatherCondition Ordered array of weather conditions
Property name Type Description
CloudType enum CloudType Cloud type
CloudAltitude int Cloud altitude
ConvectiveCloudType enum ConvectiveCloudType Convective cloud type
IsCloudBelow bool Cloud below airport (in mountain airports)
Property name Type Description
Day int Day of the current month
Time Time Time of the observation
Property name Type Description
RunwayNumber string Number of the current runway
VisibilityValue int RVR value in meters/feets (min)
UnitType enum RvrUnitType Unit type of the current RVR
MeasurableBound enum MeasurableBound Mark of the measurement area
RvrTrend enum RvrTrend Rvr trend
Property name Type Description
Value int Temperature value in Celsius
DewPoint int Temperature dew point in Celsius
Property name Type Description
UnitType enum AltimeterUnitType Altimeter unit type
Value int Altimeter value
Property name Type Description
IsAll bool Wind shear on all runways
Type enum WindShearType Wind shear type
RunwayNumber string Runway number
Property name Type Description
RunwayNumber string Runway number
Specials enum MotneSpecials MOTNE special sign
TypeOfDeposit enum MotneTypeOfDeposit Type of deposit
ExtentOfContamination enum MotneExtentOfContamination Extent of contamination of the current runway
DepthOfDeposit int Depth of deposit (2 digits) -1 - depth not significant (has value "//")
FrictionCoefficient int Braking conditions -1 - not measured (has value "//")
Property name Type Description
SeaTemperature int Temperature in Celsius
WaveHeight int Average height of the waves in decimeters
SeaState enum SeaState Sea state
Property name Type Description
TrendType enum TrendType TREND report type
TrendTime TrendTime TREND time
MilitaryWeather MilitaryWeather Military airfield weather (represents in color codes)
Property name Type Description
MilitaryColorCode enum MilitaryColorCode[] Array of color codes
IsClosed bool Sign if airfield is closed. BLACK color is defined
Property name Type Description
FirstExtremeDirection int First value of the extreme wind direction interval
LastExtremeWindDirection int Last value of the extreme wind direction interval
Property name Type Description
VisibilityValue int Visibility value in meters
VisibilityDirection enum VisibilityDirection Direction of the represented visibility
MaxVisibilityValue int Max visibility value
MaxVisibilityDirection enum VisibilityDirection Max visibility direction
Property name Type Description
LessThanSign bool (M sign) - denotes less than represented value
WholeNumber int Whole number miles of visibility/whole number of mixed fraction
Numerator int Numerator of the fraction
Denominator int Denominator of the fraction
Property name Type Description
Hours int Hours
Minutes int Minutes
Property name Type Description
AtTime Time Attribute "AT"
FromTime Time Attribute "FM"
TillTime Time Attribute "TL"

Base enums

ValueName ID Description
NotSpecified 0
Metar 1 METAR report
Trend 2 TREND Report
ValueName ID
None 0
January 1
February 2
March 3
April 4
May 5
June 6
July 7
August 8
September 9
October 10
November 11
December 12
ValueName ID
None 0
Auto 1
Cor 2
ValueName ID
None 0
MetersPerSecond 1
KilometersPerHour 2
Knots 3
ValueName ID Description
None 0
Light 1
Heavy 2
Vicinity 3
Shallow 4
Patches 5
Partial 6
Drifting 7
Blowing 8
Shower 9
Thunderstorm 10
Freezing 11
Drizzle 12
Rain 13
Snow 14
SnowGrains 15
IceCrystals 16
IcePellets 17
Hail 18
SnowPellets 19
UnknownPrecipitation 20
Mist 21 Mist - visibility is 1000 meters or more
Fog 22 Fog - visibility is less than 1000 meters
Smoke 23
VolcanicAsh 24
Dust 25
Sand 26
Haze 27
Spray 28
DustWhirls 29
Squalls 30
FunnelCloud 31
SandStorm 32
DustStorm 33
NoSignificantWeather 34 NSW
ValueName ID Description
None 0 Not specified
SkyClear 1 Sky clear - No cloud present
Few 2 Few - 1-2 oktas
Scattered 3 Scattered - 3-4 oktas
Broken 4 Broken - 5-7 oktas
Overcast 5 Overcast - 8 oktas
VerticalVisibility 6 Vertical visibility - indefinite ceiling
Clear 7 Clear below 10,000 ft as interpreted by an autostation
NoSignificantClouds 8 No significant clouds - clouds present at and above 5,000 ft
NoCloudDetected 9 No cloud detected
ValueName ID
None 0
Cumulonimbus 1
ToweringCumulus 2
ValueName ID
None 0
Meters 1
Feets 2
ValueName ID Description
None 0
Lower 1 Preceding the lowest measurable value
Higher 2 Preceding the highest measurable value
ValueName ID Description
None 0 Not represented
Upward 1 Visibility became better
Downward 2 Visibility became worse
NoChange 3 Without changes
ValueName ID
None 0
Hectopascal 1
InchesOfMercury 2
ValueName ID Description
Both 0 Wind shear during landing or take off
TakeOff 1 Wind shear during take off
Landing 2 Wind shear during landing
ValueName ID Description
Default 0 Special sign not specified
Cleared 1 Contamination has disappeared or runway has been cleared
Closed 2 Runway closed
ClosedToSnow 3 Closed due to snow
ValueName ID
ClearAndDry 0
Damp 1
Wet 2
Rime 3
DrySnow 4
WetSnow 5
Slush 6
Ice 7
RolledSnow 8
FrozenRuts 9
NotReported 10
ValueName ID Description
NotReported 0 Not reported, marked as "/"
Less10 1 10% or less of runway covered
From11To25 2 11% to 25% of runway covered
From26To50 3 26% to 50% of runway covered
From51To100 4 51% to 100% of runway covered
ValueName ID Description
Glassy 0 Waves height = 0 meters
Rippled 1 Waves height from 0 to 0.1 meters
Wavelets 2 Waves height from 0.1 to 0.5 meters
Slight 3 Waves height from 0.5 to 1.25 meters
Moderate 4 Waves height from 1.25 to 2.5 meters
Rough 5 Waves height from 2.5 to 4 meters
VeryRough 6 Waves height from 4 to 6 meters
High 7 Wave height from 6 to 9 meters
VeryHigh 8 Wave height from 9 to 14 meters
Phenomenal 9 Wave height over 14 meters
None 10 Not reported
ValueName ID Description
None 0 Not specified
Becoming 1 A changes may happen or not
Tempo 2 Changes is definitely happen
NoSignificantChanges 3
ValueName ID Description
Unknown 0 Unknown code
Blue 1 Visibility is greater 5 mi, ceiling is greater 2500 ft
White 2 Visibility 3 3/8 - 5 mi, ceiling 1500 - 2500 ft
Green 3 Visibility 2 1/4 - 3 - 1/8, ceiling > 700 - 1500 ft
Yellow 4 Visibility 1 1/8 - 2 - 1/4, ceiling > 300 - 700 ft
Amber 5 Visibility 1/2 - 1 1/8 mi, ceiling 200 - 300 ft
Red 6 Visibility less 1/2 mi, ceiling less 200 ft
ValueName ID
NotSet 0
North 1
NorthEast 2
East 3
SouthEast 4
South 5
SouthWest 6
West 7
NorthWest 8

Feedback

If you have any feedback, contact me [email protected]

metarparsercore's People

Contributors

valerxenus avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

macsux jaoord

metarparsercore's Issues

VCTS is not recognized

Hi,

Given the following METAR

RCNN 031120Z 02024G38KT 5000 VCTS BR SCT006 FEW010CB BKN016 OVC030 26/24 Q0984 RERA RMK A2908 TS NW STNRY

I get the following result from the decoder

image

I would expect weather conditions to contain vicinity, thunderstorm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.