3.1. localization¶
The localization class determines how spatial and temporal localization is performed, a crucial aspect of how an LETKF operates. This include localization for horizontal, vertical, temporal, and state variable components.
Warning
The localization configuration is perhaps the least finished part of UMD-LETKF. Things here will likely change quite a bit as localization methods are added for other domains, and/or a way to generically and flexibly specify localization is added.
Parameters
The following parameters are available regardless of which localization class is selected. Additional parameters, described in subsequent sections here, will be required depending on which localization class is selected.
class: | type: string, The name of the localization class to use. Currently, UMD-LETKF has two built-in classes that can be used, additional localization classes can be implemented by the user. The following options are available: |
---|
Note
All localization radii defined below are given as a standard deviation of a Gaussian. (Even though they are implemented as a compact Gaspari-Cohn function)
3.1.1. loc_novrt¶
The loc_novrt
localization class implements a basic horizontal-only localization.
The bare minimum needed to have a working LETKF. No vertical localization is performed.
Parameters
hzloc: | type: hzloc, Horizontal localization specification used for all observation types. |
---|
Example
localization:
class: loc_novrt
hzloc:
type: linearinterp_lat
value:
- {lat: 0.0, radius: 500.0e3}
- {lat: 90.0, radius: 50.0e3}
3.1.2. loc_ocean¶
The loc_ocean
localization class implements a localization strategy specific to
the ocean. Namely, satellite and insitu observations can be given a different
horizontal localization radius (given the abundance of satellite observations
compared to insitu, satellite observations should be given a smaller horizontal
localization radius). Also, vertical localization of the satellite observations to
just the ocean mixed layer, can be enabled
Parameters
save_diag: | type: logical, default: true If true, diagnostic information specific to the ocean localization will be saved. See loc_ocean Diagnostics for more information on the fields that are saved. |
---|---|
diag_file: | type: string, default: diag.loc_ocean.nc The file to which ocean localization diagnostics are saved, if |
hzloc_prof: | type: hzloc, The horizontal localization specification for insitu profiles. Insitu profiles are determined to be the observations and platform types
that are NOT included in the following |
hzloc_sat: | type: hzloc, The horizontal localization specification for satellite observations. Satellite observations are determined to be the observations and platform
types that are included in the following |
tloc_prof: | type: float, default: -1.0 Temporal localization for insitu profiles (in hours). If < 0, temporal localization is disabled. |
tloc_sat: | type: float, default: -1.0 Temporal localization for satellite observations (in hours). If < 0, temporal localization is disabled. |
vtloc_surf: | type: vtloc, default: type=none The vertical localization specification for satellite observations. Insitu profiles do not have any vertical localization. |
sat_obs: | type: array of strings, optional An array of observation names that are to be treated as satellite observation for localization purposes. See Observation and Platform Names. |
sat_plats: | type: array of strings, optional An array of platform names that are to be treated as satellite observations for localization purposed. See Observation and Platform Names |
vtloc
Parameters
Specification of the vertical localization.
type: | type: string, default: none The type of vertical localization to use for the ocean. Currently two options are available:
|
---|---|
bkg_t_delta: | type: float, The change in background temperature (Celsius) from the surface to some depth, used for calculating the depth of the ocean mixed layer. |
bkg_t_var: | type: string The name of the background temperature variable used for calculating the mixed layer depth. This state variable name must be one of those given in state.statedef. |
Example
localization:
class: loc_ocean
save_diag: true
hzloc_prof:
type: linearinterp_lat
value:
- {lat: 0.0, radius: 720.0e3}
- {lat: 90.0, radius: 200.0e3}
hzloc_sat:
type: linearinterp_lat
value:
- {lat: 0.0, radius: 500.0e3}
- {lat: 90.0, radius: 50.0e3}
sat_plats:
- ocn_sat
vtloc_surf:
type: bkg_t
bkg_t_delta: 0.2
bkg_t_var: ocn_t
3.1.3. Common Types¶
hzloc
Parameters
This parameter type is used to specify the characteristics of the horizontal localization.
type: | type: string, The type of horizontal localization to use. Currently, the only valid option
is |
---|---|
value: | type: array of lat/radius values An array of
|
Note that all latitude values are positive. Currently, different values cannot be given for southern/northern hemisphere. If 0.0 and 90.0 are not included in the list of latitudes, they are implicitly added using the radius of the nearest given latitude.
Example
Note that in this example a latitudes between 0.0 degrees and 5.0 degrees have a localization radius of 500 km, all latitudes above 50.0 degrees have a radius of 100 km. In between they are appropriately linearly interpolated.
hzloc:
type: linearinterp_lat
value:
- {lat: 5.0, radius: 500.0e3}
- {lat: 10.0, radius: 300.0e3}
- {lat: 50.0, radius: 100.0e3}