|Jump to DART Documentation Main Index|
Translating NCEP BUFR files into DART obs_seq.out files (input file to filter) is a 2 stage process. The first stage uses NCEP software to translate the BUFR file into an "intermediate" text file. This is described in prep_bufr. The second step is to translate the intermediate files into an obs_seq.out files, which is done by create_real_obs, as described in this document.
This program provides a number of options to select several observation types (radiosonde, aircraft, and satellite data, etc.) and the DART observation variables (U, V, T, Q, Ps) which are specified in its optional namelist interface &ncepobs_nml which may be read from file input.nml.
The selection of any combinations of the specific observation fields (T, Q, U/V, and surface pressure) and types (radiosonde, aircraft reports, or satellite wind, etc.) is made in the namelist &ncepobs_nml. All the available combinations of fields X types (i.e. ADPUPA and obs_U) will be written to the obs_seq file. (You will be able to select which of those to use during an assimilation in another namelist (assimilate_these_obs, in &obs_kind_nml), so be sure to include all the fields and types you might want.) You should change Obsbase to the pathname of the decoded PREPBUFR text data files. Be sure that daily_file is set to .TRUE. to create a single 24 hour file; .FALSE. converts input files one-for-one with output files. The default action is to tag each observation with the exact time it was taken and is the recommended setting. However, if you want to bin the observations in time, for example to do additional post-processing, the time on all observations in the window can be overwritten and set to the nearest synoptic time (e.g. 0Z, 6Z, 12Z, or 18Z), by setting obs_time to false.
Generally you will want to customize the namelist for your own use. For example, here is a sample namelist:
&ncepobs_nml year = 2007, month = 3, day = 1, tot_days = 31, max_num = 700000, ObsBase = '../prep_bufr/work/temp_obs.' select_obs = 1, ADPUPA = .true., AIRCAR = .false., AIRCFT = .true., SATEMP = .false., SFCSHP = .false., ADPSFC = .false., SATWND = .true., obs_U = .true., obs_V = .true., obs_T = .true., obs_PS = .false., obs_QV = .false., daily_file = .true. obs_time = .true., / &obs_sequence_nml write_binary_obs_sequence = .false. /
This will produce daily observation sequence files for the period of March 2007, which have the selected observation types and fields; T, U, and V from radiosondes (ADPUPA) and aircraft (AIRCFT). No surface pressure or specific humidity would appear in the obs_seq files, nor observations from ACARS, satellites, and surface stations. The output files look like "obs_seq200703dd", with dd = 1,...,31.
This namelist is read from the file input.nml. Namelists start with an ampersand '&' and terminate with a slash '/'. Character strings that contain a '/' must be enclosed in quotes to prevent them from prematurely terminating the namelist.
&ncepobs_nml year = 2003, month = 1, day = 1, tot_days = 31, max_num = 800000, select_obs = 0, ObsBase = 'temp_obs.', ADPUPA = .false., AIRCAR = .false., AIRCFT = .false., SATEMP = .false., SFCSHP = .false., ADPSFC = .false., SATWND = .false., obs_U = .false., obs_V = .false., obs_T = .false., obs_PS = .false., obs_QV = .false., daily_file = .true., obs_time = .true., lon1 = 0.0, lon2 = 360.0, lat1 = -90.0, lat2 = 90.0 /
|year, month, day||integer||Beginning year, month, day of the observation period.|
|tot_days||integer||Total days in the observation period. The converter cannot cross month boundaries.|
|max_num||integer||Maximum observation number for the current one day files.|
|select_obs||integer||Controls whether to select a subset of observations from the NCEP BUFR
decoded daily ascii files.
|daily_file||logical||Controls timespan of observations in each obs_seq file:
|ObsBase||character(len=129)||Path that contains the decoded NCEP BUFR daily observation files. To work with the example scripts this should be 'temp_obs.', or if it includes a pathname then it should end with a '/temp_obs.'|
|include_specific_humidity, include_relative_humidity, include_dewpoint||logical||Controls which moisture observations are created. The default is to create only specific humidity obs, but any, all, or none can be requested. Set to .TRUE. to output that obs type, .FALSE. skips it.|
|ADPUPA||logical||Select the NCEP type ADPUPA observations which includes land and ship launched radiosondes and pibals as well as a few profile dropsonde. This involves, at 00Z and 12Z, about 650 - 1000 stations, and at 06Z and 18Z (which are mostly pibals), about 150 - 400 stations.|
|AIRCFT||logical||Select the NCEP type AIRCFT observations, which includes commercial, some military and reconnaissance reports. They are flight level reports.|
|AIRCAR||logical||Select the NCEP type AIRCAR observations, which includes data from aircraft takeoff and landings. Sometimes referred to as ACARS obs.|
|SATEMP||logical||Select the NCEP type SATEMP observations, which includes NESDIS ATOVS virtual temperature soundings.|
|SFCSHP||logical||Select the NCEP type SFCSHP observations, which includes surface marine (ship, buoy, c-man) reports.|
|ADPSFC||logical||Select the NCEP type ADPSFC observations, which includes surface land synoptic station reports.|
|SATWND||logical||Select the NCEP type SATWND observations, which includes winds derived from satellite cloud drift analysis.|
|obs_U||logical||Select u-component of wind observations.|
|obs_V||logical||Select v-component of wind observations.|
|obs_T||logical||Select temperature observations.|
|obs_PS||logical||Select surface pressure observations.|
|obs_QV||logical||Select specific humidity observations.|
|lon1||real||Western longitude bound of observations to keep.|
|lon2||real||Eastern longitude bound of observations to keep. Can be less than lon1 if region crosses prime meridian.|
|lat1||real||Lower latitude bound of observations to keep.|
|lat2||real||upper latitude bound of observations to keep.|
|obs_time||logical||If .true. use the full time in the input data. To force all observation times in the output to the synoptic time (e.g. 0Z, 6Z, 12Z, or 18Z) set this to .false. (not recommended).|
types_mod utilities_mod obs_utilities_mod obs_sequence_mod obs_kind_mod obs_def_mod assim_model_mod model_mod cov_cutoff_mod location_mod random_seq_mod time_manager_mod null_mpi_utilities_mod real_obs_mod
Further development to get observations directly from original
(undecoded) NCEP BUFR files.