[GIS] Interpolate grib2 data from GFS

gribgrib-2noaaweather

I downloaded a grib2 file containing GFS data.
I need to get wind and temperature from altitudes ranging from 1000 ft to 42000 ft

I know the grib2 (GFS) only have data for specific "isobaricInhPa" pressure, that does not correspond exactly to the altitude I want.

Is there any way to interpolate the data?

(any solution based on a .net library would be a plus)

Best Answer

The GFS and other forecast models (such as the RAP, HRRR, etc) all "measure" altitude in millibars, and there is no direct correlation between pressure and altitude in feet. Moreover, the forecast is intended to be accurate at that pressure; not at any specific altitude. One reason for this is because atmospheric conditions are dependent upon pressure, but not at all on altitude directly (eg changing the altitude doesn't have much effect on the conditions, but changing the pressure can have a dramatic effect).

The devices that measure upper air conditions operate in this way as well; weather balloons and *sondes (drop/radio/rocket/etc) don't actually know what altitude they are at (they haven't advanced to the GPS age :), but they can measure the pressure around them.

That all being said, a particular pressure in millibars generally correlates to a range of altitudes: 300mb is around 30,000 feet (http://www.srh.noaa.gov/jetstream/constant/300mb.html).

Long story short, upper air obs and forecasts will never correlate to a specific altitude. METARs are taken at 2 and 10m AGL and some models have bands for surface (SFC), 2, 10, and/or 30m AGL, and some have other things :) See bands 594+ for the HRRR 3D pressure GRIB for an example: http://www.nco.ncep.noaa.gov/pmb/products/hrrr/hrrr.t00z.wrfprsf00.grib2.shtml.

But, going back to the OP use case, planes tend to fly at a specific pressure as opposed to a specific altitude in many cases (he wanted up to 42,000 feet, that sounds like planes to me). So for instance, the pilot might say you've reached your cruising altitude of 30,000 feet, but he's really just flying at 300mb. The plane is moving up and down with respect to altitude, but maintaining a constant speed, fuel consumption, etc (ignoring wind/etc) because the atmospheric pressure is not changing.