Skip to content

Commit

Permalink
Introducing GMAO ODAS obs sources (#444)
Browse files Browse the repository at this point in the history
* initial changes

* fix calc_scales and vertical corr. length configuration

* add first set of ODAS obs

* more obs

* fix get_obs for multiple providers, missing obs, and add marine yamls

* add cryosat and sentinel3b

* add MERRA2 SST

* fix blacklist, simplify generate B task

* fix for using obs_providers as a list

* fix code issues

* take two
  • Loading branch information
Dooruk authored Dec 12, 2024
1 parent 7eacb97 commit 0607990
Show file tree
Hide file tree
Showing 41 changed files with 1,698 additions and 61 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,8 @@ obs_experiment:

obs_provider:
default_value: ncdiag
options:
- ncdiag

observations:
default_value:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
obs space:
name: adt_cryosat2n
obsdatain:
engine:
type: H5File
obsfile: '{{cycle_dir}}/adt_cryosat2n.{{window_begin}}.nc4'
obsdataout:
engine:
type: H5File
obsfile: '{{cycle_dir}}/{{experiment_id}}.adt_cryosat2n.{{window_begin}}.nc4'
simulated variables: [absoluteDynamicTopography]
obs operator:
name: ADT
obs error:
covariance model: diagonal
obs filters:
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_area_fraction}
minvalue: 0.9
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_surface_temperature}
minvalue: 15.0
- filter: Background Check
absolute threshold: 0.2
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_floor_depth_below_sea_surface}
minvalue: 500
# - filter: Perform Action
# action:
# name: assign error
# error function:
# name: ObsFunction/LinearCombination
# options:
# variables: [mesoscale_representation_error@GeoVaLs,
# absolute_dynamic_topography@ObsError]
# coefs: [0.1,
# 0.5]
# - filter: BlackList
# where:
# - variable:
# name: MetaData/latitude
# minvalue: -65
# maxvalue: -30
# - variable:
# name: MetaData/longitude
# minvalue: -125
# maxvalue: -90
# - filter: BlackList
# where:
# - variable:
# name: MetaData/latitude
# minvalue: -65
# maxvalue: -30
# - variable:
# name: MetaData/longitude
# minvalue: 60
# maxvalue: 110
# - filter: Domain Check
# where:
# - variable: { name: GeoVaLs/sea_ice_area_fraction}
# maxvalue: 0.00001
- filter: Domain Check
where:
- variable: { name: GeoVaLs/distance_from_coast}
minvalue: 100e3
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
obs space:
name: adt_jason3
obsdatain:
engine:
type: H5File
obsfile: '{{cycle_dir}}/adt_jason3.{{window_begin}}.nc4'
obsdataout:
engine:
type: H5File
obsfile: '{{cycle_dir}}/{{experiment_id}}.adt_jason3.{{window_begin}}.nc4'
simulated variables: [absoluteDynamicTopography]
obs operator:
name: ADT
obs error:
covariance model: diagonal
obs filters:
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_area_fraction}
minvalue: 0.9
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_surface_temperature}
minvalue: 15.0
- filter: Background Check
absolute threshold: 0.2
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_floor_depth_below_sea_surface}
minvalue: 500
# - filter: Perform Action
# action:
# name: assign error
# error function:
# name: ObsFunction/LinearCombination
# options:
# variables: [mesoscale_representation_error@GeoVaLs,
# absolute_dynamic_topography@ObsError]
# coefs: [0.1,
# 0.5]
# - filter: BlackList
# where:
# - variable:
# name: MetaData/latitude
# minvalue: -65
# maxvalue: -30
# - variable:
# name: MetaData/longitude
# minvalue: -125
# maxvalue: -90
# - filter: BlackList
# where:
# - variable:
# name: MetaData/latitude
# minvalue: -65
# maxvalue: -30
# - variable:
# name: MetaData/longitude
# minvalue: 60
# maxvalue: 110
# - filter: Domain Check
# where:
# - variable: { name: GeoVaLs/sea_ice_area_fraction}
# maxvalue: 0.00001
- filter: Domain Check
where:
- variable: {name: GeoVaLs/distance_from_coast}
minvalue: 100e3
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
obs space:
name: adt_saral
obsdatain:
engine:
type: H5File
obsfile: '{{cycle_dir}}/adt_saral.{{window_begin}}.nc4'
obsdataout:
engine:
type: H5File
obsfile: '{{cycle_dir}}/{{experiment_id}}.adt_saral.{{window_begin}}.nc4'
simulated variables: [absoluteDynamicTopography]
obs operator:
name: ADT
obs error:
covariance model: diagonal
obs filters:
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_area_fraction}
minvalue: 0.9
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_surface_temperature}
minvalue: 15.0
- filter: Background Check
absolute threshold: 0.2
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_floor_depth_below_sea_surface}
minvalue: 500
# - filter: Perform Action
# action:
# name: assign error
# error function:
# name: ObsFunction/LinearCombination
# options:
# variables: [mesoscale_representation_error@GeoVaLs,
# absolute_dynamic_topography@ObsError]
# coefs: [0.1,
# 0.5]
# - filter: BlackList
# where:
# - variable:
# name: MetaData/latitude
# minvalue: -65
# maxvalue: -30
# - variable:
# name: MetaData/longitude
# minvalue: -125
# maxvalue: -90
# - filter: BlackList
# where:
# - variable:
# name: MetaData/latitude
# minvalue: -65
# maxvalue: -30
# - variable:
# name: MetaData/longitude
# minvalue: 60
# maxvalue: 110
# - filter: Domain Check
# where:
# - variable: { name: GeoVaLs/sea_ice_area_fraction}
# maxvalue: 0.00001
- filter: Domain Check
where:
- variable: {name: GeoVaLs/distance_from_coast}
minvalue: 100e3
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
obs space:
name: adt_sentinel3a
obsdatain:
engine:
type: H5File
obsfile: '{{cycle_dir}}/adt_sentinel3a.{{window_begin}}.nc4'
obsdataout:
engine:
type: H5File
obsfile: '{{cycle_dir}}/{{experiment_id}}.adt_sentinel3a.{{window_begin}}.nc4'
simulated variables: [absoluteDynamicTopography]
obs operator:
name: ADT
obs error:
covariance model: diagonal
obs filters:
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_area_fraction}
minvalue: 0.9
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_surface_temperature}
minvalue: 15.0
- filter: Background Check
absolute threshold: 0.2
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_floor_depth_below_sea_surface}
minvalue: 500
# - filter: Perform Action
# action:
# name: assign error
# error function:
# name: ObsFunction/LinearCombination
# options:
# variables: [{name: GeoVaLs/mesoscale_representation_error},
# {name: ObsError/absolute_dynamic_topography}]
# # variables: [mesoscale_representation_error@GeoVaLs,
# # absolute_dynamic_topography@ObsError]
# coefs: [0.1,
# 0.5]
# - filter: BlackList
# where:
# - variable:
# name: MetaData/latitude
# minvalue: -65
# maxvalue: -30
# - variable:
# name: MetaData/longitude
# minvalue: -125
# maxvalue: -90
# - filter: BlackList
# where:
# - variable:
# name: MetaData/latitude
# minvalue: -65
# maxvalue: -30
# - variable:
# name: MetaData/longitude
# minvalue: 60
# maxvalue: 110
# - filter: Domain Check
# where:
# - variable: { name: GeoVaLs/sea_ice_area_fraction}
# maxvalue: 0.00001
- filter: Domain Check
where:
- variable: { name: GeoVaLs/distance_from_coast}
minvalue: 100e3
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
obs space:
name: adt_sentinel3b
obsdatain:
engine:
type: H5File
obsfile: '{{cycle_dir}}/adt_sentinel3b.{{window_begin}}.nc4'
obsdataout:
engine:
type: H5File
obsfile: '{{cycle_dir}}/{{experiment_id}}.adt_sentinel3b.{{window_begin}}.nc4'
simulated variables: [absoluteDynamicTopography]
obs operator:
name: ADT
obs error:
covariance model: diagonal
obs filters:
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_area_fraction}
minvalue: 0.9
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_surface_temperature}
minvalue: 15.0
- filter: Background Check
absolute threshold: 0.2
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_floor_depth_below_sea_surface}
minvalue: 500
# - filter: Perform Action
# action:
# name: assign error
# error function:
# name: ObsFunction/LinearCombination
# options:
# variables: [{name: GeoVaLs/mesoscale_representation_error},
# {name: ObsError/absolute_dynamic_topography}]
# # variables: [mesoscale_representation_error@GeoVaLs,
# # absolute_dynamic_topography@ObsError]
# coefs: [0.1,
# 0.5]
# - filter: BlackList
# where:
# - variable:
# name: MetaData/latitude
# minvalue: -65
# maxvalue: -30
# - variable:
# name: MetaData/longitude
# minvalue: -125
# maxvalue: -90
# - filter: BlackList
# where:
# - variable:
# name: MetaData/latitude
# minvalue: -65
# maxvalue: -30
# - variable:
# name: MetaData/longitude
# minvalue: 60
# maxvalue: 110
# - filter: Domain Check
# where:
# - variable: { name: GeoVaLs/sea_ice_area_fraction}
# maxvalue: 0.00001
- filter: Domain Check
where:
- variable: { name: GeoVaLs/distance_from_coast}
minvalue: 100e3
Loading

0 comments on commit 0607990

Please sign in to comment.