dtcenter / MET

Model Evaluation Tools
https://dtcenter.org/community-code/model-evaluation-tools-met
Apache License 2.0
78 stars 24 forks source link

Enhance logic to use topography when interpolating gridded forecasts to point observation locations. #527

Closed dwfncar closed 5 years ago

dwfncar commented 9 years ago

The MET Point-Stat and Ensemble-Stat tools are used to compute verification. There are many options for interpolating gridded forecast data to the point observation locations. However, they all ignore the underlying topography. This task includes the following...



This issue came up during the Saudi PME project and as a question during the MMET instructional session at the 2015 WRF User's Workshop. Perhaps its as simple as discarding any gridded forecast values whose elevations differ more than or specified (configurable) amount? Or perhaps there a more complex way of using the topography information in the interpolation? [MET-527] created by johnhg

dwfncar commented 6 years ago

Do this work for met-7.1 and paid for by Saudi Project.
Required for NGGPS:


Talk to Rong about the RTFDDA system's logic.
Talk to Perry Shafran about how topo is used at NCEP.


Consider adding a new config file entry to define where to get topography information and how to apply it.


geography = {
  file_name = ""; // If empty, read from forecast file?
  topography = { filename = ""; name="TOPO"; level="L0"; }
  land_sea_mask = { filename = ""; name="LAND"; level="L0"; }
  surface_pressure = { filename = ""; name="PRES"; level="L0"; }
  // Flags to control logic?
}


The question is how should we actually use this information?
(1) Skip observation points that fall below ground (i.e. skip if obs pressure > sfc pressure)
(2) For terrestrial observations (ADPSFC) only use LAND model grid points.
(3) For sea observations (SFCSHP) only use WATER model grid points.
(4) When interpolating to observation location, account for elevations differences... but exactly how?


by johnhg

dwfncar commented 6 years ago

Howard will talk to Rong to find out how the FDDA group is using this info.


Do they use topo differences to (1) throw out model grid points or (2) inform the interpolation logic? by johnhg

dwfncar commented 6 years ago

How the FDDA adjusts values with height difference (from Rong):


[temperature]


   t2stn_orig=t2stn
   t2stn=t2stn+0.0065*(terstn-h_obs)
      t2stn: temperature of the station (in Kelvin or Celsius)
      0.0065: standard dry lapse rate
      terstn: terrain height of the station from the model
      h_obs: observation height


Normal (or standard) dry lapse rate 3.5 degree F/1000 ft. 6.5 degree C/km


[ surface pressure]
   zdiff=terstn-h_obs // heighjt difference
   pmstn=pmstnexp(zdiffgrav/rgas/(0.5*(t2stn+t2stn_orig)))
      pmstn: surface pressure of the station
      grav=9.81
      rgas=287.04
      t2stn: interpolated temperature (in Kelvin) of the station
      t2stn_org: temperature (in Kelvin) of the station from the model by hsoh

dwfncar commented 5 years ago

This was discussed during the METplus telecon on 20190211. Dana Strom uses a modified nearest neighbor interpolation method where they search the 9 closest grid points for the closest one within 500 ft of elevation of the observation.


Suggest sharing a beta version of MET with him that includes this functionality for testing.


He was asking that Point-Stat be able to dump to the log file which model point was chosen as the nearest neighbor. by johnhg

dwfncar commented 5 years ago

This topic arose again during an AF telecon with Evan Kucera on 3/5/2019.
This introduced one more wrinkle. They're comparing results from 3 different models at 3 different resolutions: 17, 4, and 1.5 km. They are discarding point observations which differ in elevation with the model's topography by 100 meters or more. But in order to make an apples-to-apples comparison, they want to discard any observations which differ with ANY OF THE THREE model's topography.


How would we handle this in MET? by johnhg

dwfncar commented 5 years ago

Fixed in met-8.1 with the "topo_mask". by johnhg