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"