Send Environmental Data To the ORPG Design Review Wednesday, Nov. 16, 2005 Joanne Edwards Tom Kent
Background Purpose: To send environmental grids from the highest resolution forecast model to the ORPG. Requirements Review held on Oct. 7, Requirements document located at: Environmental_Data/3277_Requirements.txt Related DCS number 3277.
Summary of Requirements AWIPS will provide 3D grids of Temperature, Pressure, Relative Humidity, Height, U and V wind components to the ORPG. One-hour forecast grids will be sent at the top of the hour. If grids not available, the most recent forecast grids will be sent. Grids will be within approx. 200 nm. of the radar. Information provided with the grids will be model name, horizontal/vertical resolution, model run date/time, valid date/time, forecast period and projection Data will be in the generic radar format.
Functional Flow Get Dedicated Radars Read and Process Model Grids Package Env. Data and Deliver Radar Sites table Netcdf Grids Radar ID, lat/lon, pointer to RPGP_ext_data_t structure Compressed, serialized environmental data Grids in RPGP_ext_data_t format Env. Data notification
Get Dedicated Radars Read list of dedicated radars Table Exists? Generate table from radarInfoMaster.txt Get next radar from list Radar connected? Get latitude/longitude, pointer to RPGP_ext_data_t structure Send radar ID, lat/lon, pointer to Netcdf Reader Yes Any more radars? Yes No Done No
EnvironGrids2 Radar Header Info –Time match the forecast data with the hourly run of the Grid2Radar process. (e.g. use 12Z 1 hour forecast data for the 13Z top of the hour run. If the 1 hr data doesn't exist then use the 2 hr forecast data from the 11Z run. )–Time match the forecast data with the hourly run of the Grid2Radar process. (e.g. use 12Z 1 hour forecast data for the 13Z top of the hour run. If the 1 hr data doesn't exist then use the 2 hr forecast data from the 11Z run. ) *RPGP_ext_data_t Grid Component Inputs: Radar ID, Lat, Lon, *RPGP_ext_data_t Netcdf File Model Config Table Model + Directory Parameters Levels Output EnvironGrids2 Radar Header Info *RPGP_ext_data_t Grid Component Inputs: Radar ID, Lat, Lon, *RPGP_ext_data_t Netcdf File Model ConfigTable Model + Directory Parameters Levels Output
EnvironGrids2Radar ● Inputs: – radar ID – latitude – longitude – a pointer to a RPGP_ext_data_t structure ● Read the model config table: – model to use and where it's netcdf directory is located (CONUS to use hourly RUC13km, OCONUS use either 6 hourly ETA12km or GFS40km) – parameters and levels to grab ● Determine the most recent model run that's been stored in the netcdf directory for the model requested.
EnvironGrids2Radar – Time match the forecast data with the hourly run of the Grid2Radar process (e.g. use 12Z 1 hour forecast data for the 13Z top of the hour run. If the 1 hr data doesn't exist, then use the 2 hr forecast data from the 11Z run. ) – Process each time matched parameter at a specific level: ● Use the geographic information from the netcdf file and the radar latitude and longitude to clip the data to a box at least 400 nm by 400 nm centered on the radar. ● Fill in the grid component section of the generic product format and append it to the RPGP_ext_data_t structure. One grid component for each parameter at one level contains: – Metadata describing the parameter, level type and value, units, data type, etc... – Pointer to a 1-dimensional array of the data pts
EnvironGrids2Radar ● Assumptions: – All data sent to radar will come from same netcdf file. (e.g. We won't send Temp at 500mb for the 1 hr forecast and Temp at 400mb for the 2 hr forecast from previous model run.) – No data unit conversions will take place. The data in the netcdf files is stored exactly how it was received so the same convention will be used when sending data to the radar. – The default set of parameters and levels is: Temp, Height, U + V wind components, and RH at both the surface and all mb levels. The pressure parameter at the surface will also be sent. – If no data exists for a particular level, no grid component will be sent for that level.
EnvironGrids2Radar ● Concerns – If for any reason all the levels don't exist in the netcdf file, how many are considered necessary before going to the previous run? In other words, what is the threshold to be considered a good data set..100%? 90%? – Will the 1 hour grids be sent over the SBN and stored in a timely manner? – It may be necessary to run the cronjob again at 15 minutes after the top of the hour if the data is consistently late in getting stored. We won't know the answer to this until the data is actually on the SBN.
Package Enviro Data and Deliver Input: Data in the RPGP_ext_data_t format Output: Compressed, serialized data in the external data message format Serialize the data in the RPGP_ext_data_t format. Add packet header. Compress the data packet. Add external data message header which includes the Nexrad message header. Write serialized and compressed data to the file. Send notification for delivery to the ORPG.
Context Diagram SendEnvironmenta l Data RadarServer ORPGCommsM gr List of dedicated radars Netcdf Grids Compressed, serialised env data in the external data message format Radar Id, File name Env Data Msg To ORPG
System Impact New process, called sendEnvironmentalData will run as a cron job. Process will use configuration files to determine which model to use. Possible new interprocess communications message type (will try to use existing environmental data message type).