-
Notifications
You must be signed in to change notification settings - Fork 179
WRF design notes, August 8, 2019
These are notes from the design meeting, along with new questions/issues:
WRF File Identifier | Coverage Object Data (see notes) |
---|---|
IFV | (1) |
FIELD | metgrid name (2) |
UNITS | metgrid units (2) |
DESC | metgrid desc (2) |
IS_WIND_EARTH_REL | (3) |
HDATE | (4) |
XFSCT | (4) |
XLVL | (5) |
NX | (6) |
NY | (6) |
IPROJ | (7) |
WRF RECORD 3 | ? |
SLAB | (8) |
MAP_SOURCE | (9) |
- The number 5.
- the metgrid name, units and desc will be populated as coverage attributes from vtable metgrid data.
The metgrid info can be pulled From a Coverage object via the attributes within the coverage:
String attName = "Metgrid_Name";
Attribute att = cov.findAttributeIgnoreCase(attName);
String nameValue = att.getStringValue();
- Perhaps a command line flag, or will be exposed as a global attribute. The only place we have this is at the iosp level in netcdf. The user will have to tell us if the u an v grids are relative, setting to false for the time being.
Coverage c = cv.findCoverage("Temperature_isobaric");
--or--
for (Coverage cov : cv.getCoverages()){
//get coverage items as well as the attributes
CoverageCoordSys ccs = c.getCoordSys();
CoverageCoordAxis theDate = ccs.getAxis(AxisType.RunTime);
String HDATE = theDate.getCalendarDateUnit().toString();
CoverageCoordAxis fcast = ccs.getAxis(AxisType.Time);
}
CoverageCoordAxis verticalLevel = ccs.getAxis(AxisType.Pressure)
Coverage c = cv.findCoverage("Temperature_isobaric");
c.getCoordSys().getHorizCoordSys().getXAxis();
c.getCoordSys().getHorizCoordSys().getYAxis();
c.getCoordSys().getProjection();
This depends of the forecast time and level time,coverage.readData is the method call, this is an example from a netcdf java test driver:
LatLonRect bbox = new LatLonRect(new LatLonPointImpl(90, -180), new LatLonPointImpl(-90, -90));
SubsetParams params = new SubsetParams().set(SubsetParams.timePresent, true).set(SubsetParams.latlonBB, bbox);
GeoReferencedArray geo = coverage.readData(params);
- This is coming from the coverage Collection, representing the whole:
CoverageCollection.findAttribute("Originating_or_generating_Center").getStringValue();
We are going to ensure that the "required fields" are present as coverage objects before we create the intermediate file. What are those fields?
This link provides the answer.
For a little more information: list.
What needs to be done is see how these match with the Coverage objects. For example, there are several fields with Temperature. In an example GRIB file, there are "Temperature_isobaric", "Temperature_sigma", "Temperature_tropopause", "Temperature_maximum_wind" among others.
- Is only one "Temperature" needed? If so which one?
- Is Temperature_isobaric only needed if "v-component_of_wind_isobaric" is also found in the dataset?
- It appears that Temperature, u and v components of wind, geopotential height and RH, are these to be grouped together by pressure values?
- The full set of 3d and 2d objects have to be included (i.e. the intermedate file must have both, or can it contain only 3d or 2d)?