PROGRAM mpas_dart_obs_preprocess

Overview

Program to preprocess observations, with specific knowledge of the MPAS grid.

This program can superob (average) aircraft and satellite wind obs if they are too dense, based on the given MPAS ATM grid. It will average all observations of the same type in each grid cell. The averaging grid can be different than the grid used for the assimilation run.

This program can read up to 10 additional obs_seq files and merge their data in with the basic obs_sequence file which is the main input.

This program can reject surface observations if the elevation encoded in the observation is too different from the mpas surface elevation.

This program can exclude observations above a specified height or pressure.

This program can exclude observations outside a given time window defined by the specified analysis time and a window width in hours.

This program can overwrite the incoming Data QC value with another.

Namelist

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.

&mpas_obs_preproc_nml

  file_name_input          = 'obs_seq.old'
  file_name_output         = 'obs_seq.new'

  sonde_extra              = 'obs_seq.rawin'
  land_sfc_extra           = 'obs_seq.land_sfc'
  metar_extra              = 'obs_seq.metar'
  marine_sfc_extra         = 'obs_seq.marine'
  sat_wind_extra           = 'obs_seq.satwnd'
  profiler_extra           = 'obs_seq.profiler'
  gpsro_extra              = 'obs_seq.gpsro'
  acars_extra              = 'obs_seq.acars'
  gpspw_extra              = 'obs_seq.gpspw'
  trop_cyclone_extra       = 'obs_seq.tc'

  overwrite_obs_time       = .false.
  windowing_obs_time       = .false.
  windowing_int_hour       = 1.5

  obs_boundary             = 0.0
  increase_bdy_error       = .false.
  maxobsfac                = 2.5
  obsdistbdy               = 15.0

  sfc_elevation_check      = .false.
  sfc_elevation_tol        = 300.0
  obs_pressure_top         = 0.0
  obs_height_top           = 2.0e10

  include_sig_data         = .true.
  tc_sonde_radii           = -1.0
  superob_qc_threshold     = 4

  superob_aircraft         = .false.
  aircraft_horiz_int       = 36.0
  aircraft_pres_int        = 2500.0

  superob_sat_winds        = .false.
  sat_wind_horiz_int       = 100.0
  sat_wind_pres_int        = 2500.0

  overwrite_ncep_satwnd_qc = .false.
  overwrite_ncep_sfc_qc    = .false.

  max_num_obs              = 1000000
/

Item

Type

Description

Generic parameters:

file_name_input

character(len=129)

The input obs_seq file.

file_name_output

character(len=129)

The output obs_seq file.

sonde_extra, land_sfc_extra,
metar_extra, marine_sfc_extra,
sat_wind_extra, profiler_extra,
gpsro_extra, acars_extra,
gpspw_extra, trop_cyclone_extra

character(len=129)

The names of additional input obs_seq files, which if they exist, will be merged in with the obs from the file_name_input obs_seq file. If the files do not exist, they are silently ignored without error.

max_num_obs

integer

Must be larger than the total number of observations to be processed.

Parameters to reduce observation count:

sfc_elevation_check

logical

If true, check the height of surface observations against the surface height in the model. Observations further away than the specified tolerance will be excluded.

sfc_elevation_tol

real(r8)

If sfc_elevation_check is true, the maximum difference between the elevation of a surface observation and the model surface height, in meters. If the difference is larger than this value, the observation is excluded.

obs_pressure_top

real(r8)

Observations with a vertical coordinate in pressure which are located above this pressure level (i.e. the obs vertical value is smaller than the given pressure) will be excluded.

obs_height_top

real(r8)

Observations with a vertical coordinate in height which are located above this height value (i.e. the obs vertical value is larger than the given height) will be excluded.

Radio/Rawinsonde-specific parameters:

include_sig_data

logical

If true, include significant level data from radiosondes.

tc_sonde_radii

real(r8)

If greater than 0.0 remove any sonde observations closer than this distance in Kilometers to the center of a Tropical Cyclone.

Aircraft-specific parameters:

superob_aircraft

logical

If true, average all aircraft observations within the same MPAS grid cell, at the given vertical levels. The output obs will be only a single observation per cell, per vertical level.

aircraft_pres_int

real(r8)

If superob_aircraft is true, the vertical distance in pressure which defines a series of superob vertical bins.

superob_qc_threshold

integer

If superob_aircraft is true, the Quality Control threshold at which observations are ignored when doing superob averaging. The value specified here is the largest acceptable QC; values equal to or lower are kept, and values larger than this are rejected.

Satellite Wind-specific parameters:

superob_sat_winds

logical

If true, average all satellite wind observations within the same MPAS grid cell, at the given vertical levels. The output obs will be only a single observation per cell, per vertical level.

sat_wind_pres_int

real(r8)

If superob_sat_winds is true, the vertical distance in pressure which defines a series of superob vertical bins.

overwrite_ncep_satwnd_qc

logical

If true, replace the incoming Data QC value in satellite wind observations with 2.0.

Surface Observation-specific parameters:

overwrite_ncep_sfc_qc

logical

If true, replace the incoming Data QC value in surface observations with 2.0.

Parameters to select by time or alter observation time:

windowing_obs_time

logical

If true, exclude observations with a time outside the given window. The window is specified as a number of hours before and after the current analysis time.

windowing_int_hour

real(r8)

The window half-width, in hours. If ‘windowing_obs_time’ is .false. this value is ignored. If ‘windowing_obs_time’ is true, observations with a time further than this number of hours away from the analysis time will be excluded. To ensure disjoint subsets from a continueous sequence of observations, time values equal to the earliest time boundaries are discarded while time values equal to the latest time boundary are retained.

overwrite_obs_time

logical

If true, replace the incoming observation time with the analysis time. Not recommended.


Modules used

types_mod
obs_sequence_mod
utilities_mod
obs_kind_mod
time_manager_mod
model_mod
netcdf

Files

  • Input namelist ; input.nml

  • Input MPAS state netCDF file: mpas_init.nc

  • Input obs_seq files (as specified in namelist)

  • Output obs_seq file (as specified in namelist)

File formats

This utility can read one or more obs_seq files and combine them while doing the rest of the processing. It uses the standard DART observation sequence file format. It uses the grid information from an MPAS file to define the bins for combining nearby aircraft and satellite wind observations.

References

  • Developed by Soyoung Ha, based on the WRF observation preprocessor contributed by Ryan Torn.