FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

GitHub Viewer

#!/usr/bin/env python # # This is a minimal sample script showing how the individual data # are accessed from the decoded report. To produce the standard text # summary of a report, use the string() method of the Metar object. # # The parsed data are stored as attributes of a Metar object. # Individual attributes are either strings. instances of one of the # metar.Datatypes classes, or lists of tuples of these scalars. # Here's a summary, adapted from the comments in the Metar.Metar.__init__() # method: # # Attribute Comments [data type] # ---------------- ------------------------------------------ # code original METAR code [string] # type METAR (routine) or SPECI (special) [string] # mod AUTO (automatic) or COR (corrected) [string] # station_id 4-character ICAO station code [string] # time observation time [datetime] # cycle observation cycle (0-23) [int] # wind_dir wind direction [direction] # wind_speed wind speed [speed] # wind_gust wind gust speed [speed] # wind_dir_from beginning of range for win dir [direction] # wind_dir_to end of range for wind dir [direction] # vis visibility [distance] # vis_dir visibility direction [direction] # max_vis visibility [distance] # max_vis_dir visibility direction [direction] # temp temperature (C) [temperature] # dewpt dew point (C) [temperature] # press barometric pressure [pressure] # runway runway visibility [list of tuples...] # name [string] # low [distance] # high [distance] # weather present weather [list of tuples...] # intensity [string] # description [string] # precipitation [string] # obscuration [string] # other [string] # recent recent weather [list of tuples...] # sky sky conditions [list of tuples...] # cover [string] # height [distance] # cloud [string] # windshear runways w/ wind shear [list of strings] # # press_sea_level sea-level pressure [pressure] # wind_speed_peak peak wind speed in last hour [speed] # wind_dir_peak direction of peak wind speed in last hour [direction] # max_temp_6hr max temp in last 6 hours [temperature] # min_temp_6hr min temp in last 6 hours [temperature] # max_temp_24hr max temp in last 24 hours [temperature] # min_temp_24hr min temp in last 24 hours [temperature] # precip_1hr precipitation over the last hour [precipitation] # precip_3hr precipitation over the last 3 hours [precipitation] # precip_6hr precipitation over the last 6 hours [precipitation] # precip_24hr precipitation over the last 24 hours [precipitation] # # _remarks remarks [list of strings] # _unparsed_groups unparsed groups [list of strings] # _unparsed_remarks unparsed remarks [list of strings] # # The metar.Datatypes classes (temperature, pressure, precipitation, # speed, direction) describe an observation and its units. They provide # value() and string() methods to that return numerical and string # representations of the data in any of a number of supported units. # # (You're going to have to study the source code for more details, # like the available methods and supported unit conversions for the # metar.Datatypes objects, etc..) # In particular, look at the Metar.string() # method, and the functions it calls. # # Feb 4, 2005 # Tom Pollard # from __future__ import print_function from metar import Metar # A sample METAR report code = ( "METAR KEWR 111851Z VRB03G19KT 2SM R04R/3000VP6000FT TSRA BR FEW015 " "BKN040CB BKN065 OVC200 22/22 A2987 RMK AO2 PK WND 29028/1817 WSHFT " "1812 TSB05RAB22 SLP114 FRQ LTGICCCCG TS OHD AND NW-N-E MOV NE P0013 " "T02270215" ) print("-----------------------------------------------------------------------") print("METAR: ", code) print("-----------------------------------------------------------------------") # Initialize a Metar object with the coded report obs = Metar.Metar(code) # Print the individual data # The 'station_id' attribute is a string. print("station: %s" % obs.station_id) if obs.type: print("type: %s" % obs.report_type()) # The 'time' attribute is a datetime object if obs.time: print("time: %s" % obs.time.ctime()) # The 'temp' and 'dewpt' attributes are temperature objects if obs.temp: print("temperature: %s" % obs.temp.string("C")) if obs.dewpt: print("dew point: %s" % obs.dewpt.string("C")) # The wind() method returns a string describing wind observations # which may include speed, direction, variability and gusts. if obs.wind_speed: print("wind: %s" % obs.wind()) # The peak_wind() method returns a string describing the peak wind # speed and direction. if obs.wind_speed_peak: print("wind: %s" % obs.peak_wind()) # The visibility() method summarizes the visibility observation. if obs.vis: print("visibility: %s" % obs.visibility()) # The runway_visual_range() method summarizes the runway visibility # observations. if obs.runway: print("visual range: %s" % obs.runway_visual_range()) # The 'press' attribute is a pressure object. if obs.press: print("pressure: %s" % obs.press.string("mb")) # The 'precip_1hr' attribute is a precipitation object. if obs.precip_1hr: print("precipitation: %s" % obs.precip_1hr.string("in")) # The present_weather() method summarizes the weather description (rain, etc.) print("weather: %s" % obs.present_weather()) # The sky_conditions() method summarizes the cloud-cover observations. print("sky: %s" % obs.sky_conditions("\n ")) # The remarks() method describes the remark groups that were parsed, but # are not available directly as Metar attributes. The precipitation, # min/max temperature and peak wind remarks, for instance, are stored as # attributes and won't be listed here. if obs._remarks: print("remarks:") print("- " + obs.remarks("\n- ")) print("-----------------------------------------------------------------------\n")

Back | FazBrowse Home | New Git URL