Skip to content

Commit

Permalink
Merged branch 'feature/gdas-validation' and fixed coding norm errors
Browse files Browse the repository at this point in the history
Merge branch 'feature/gdas-validation' of https://github.com/NOAA-EMC/GDASApp into feature/Azadeh_gdas-validation

Conflicts:
	parm/atm/obs/lists/gdas_prototype_3d.yaml
  • Loading branch information
Azadeh Gholoubi authored and Azadeh Gholoubi committed Jan 23, 2024
2 parents 10001f7 + 99c431a commit 210a9ce
Show file tree
Hide file tree
Showing 119 changed files with 5,140 additions and 1,026 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ if(BUILD_GDASBUNDLE)

ecbuild_bundle( PROJECT eckit GIT "https://github.com/ecmwf/eckit.git" TAG 1.16.0 )
ecbuild_bundle( PROJECT fckit GIT "https://github.com/ecmwf/fckit.git" TAG 0.9.2 )
ecbuild_bundle( PROJECT atlas GIT "https://github.com/ecmwf/atlas.git" TAG 0.29.0 )
ecbuild_bundle( PROJECT atlas GIT "https://github.com/ecmwf/atlas.git" TAG 0.35.0 )

# External (required) observation operators
option("BUNDLE_SKIP_CRTM" "Don't build CRTM" "OFF") # Don't build crtm unless user passes -DBUNDLE_SKIP_CRTM=OFF
Expand Down
5 changes: 3 additions & 2 deletions parm/aero/hofx/hofx_nomodel.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
window begin: '{{ AERO_WINDOW_BEGIN | to_isotime }}'
window length: $(AERO_WINDOW_LENGTH)
time window:
begin: '{{ AERO_WINDOW_BEGIN | to_isotime }}'
length: $(AERO_WINDOW_LENGTH)
geometry:
fms initialization:
namelist filename: $(DATA)/fv3jedi/fmsmpp.nml
Expand Down
5 changes: 3 additions & 2 deletions parm/aero/variational/3dvar_fgat_gfs_aero.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
cost function:
cost type: 3D-FGAT
window begin: '{{ AERO_WINDOW_BEGIN | to_isotime }}'
window length: $(AERO_WINDOW_LENGTH)
time window:
begin: '{{ AERO_WINDOW_BEGIN | to_isotime }}'
length: $(AERO_WINDOW_LENGTH)
analysis variables: &3dvars
[mass_fraction_of_sulfate_in_air,
mass_fraction_of_hydrophobic_black_carbon_in_air,
Expand Down
5 changes: 3 additions & 2 deletions parm/aero/variational/3dvar_gfs_aero.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
cost function:
cost type: 3D-Var
window begin: '{{ AERO_WINDOW_BEGIN | to_isotime }}'
window length: $(AERO_WINDOW_LENGTH)
time window:
begin: '{{ AERO_WINDOW_BEGIN | to_isotime }}'
length: $(AERO_WINDOW_LENGTH)
analysis variables: &3dvars
[mass_fraction_of_sulfate_in_air,
mass_fraction_of_hydrophobic_black_carbon_in_air,
Expand Down
5 changes: 3 additions & 2 deletions parm/atm/hofx/hofx4d.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
window begin: '{{ ATM_WINDOW_BEGIN | to_isotime }}'
window length: $(ATM_WINDOW_LENGTH)
time window:
begin: '{{ ATM_WINDOW_BEGIN | to_isotime }}'
length: $(ATM_WINDOW_LENGTH)
forecast length: $(ATM_WINDOW_LENGTH)
geometry:
fms initialization:
Expand Down
5 changes: 3 additions & 2 deletions parm/atm/hofx/hofx_nomodel.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
window begin: '{{ ATM_WINDOW_BEGIN | to_isotime }}'
window length: $(ATM_WINDOW_LENGTH)
time window:
begin: '{{ ATM_WINDOW_BEGIN | to_isotime }}'
length: $(ATM_WINDOW_LENGTH)
geometry:
fms initialization:
namelist filename: $(DATA)/fv3jedi/fmsmpp.nml
Expand Down
5 changes: 3 additions & 2 deletions parm/atm/hofx/hofx_ufotest.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
window begin: '{{ATM_WINDOW_BEGIN}}'
window end: '{{ATM_WINDOW_END}}'
time window:
begin: '{{ATM_WINDOW_BEGIN}}'
end: '{{ATM_WINDOW_END}}'
observations: !INC ${OBS_LIST}
5 changes: 3 additions & 2 deletions parm/atm/lgetkf/lgetkf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ geometry:
npy: $(npy_ges)
npz: $(npz_ges)
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml
window begin: '{{ ATM_WINDOW_BEGIN | to_isotime }}'
window length: $(ATM_WINDOW_LENGTH)
time window:
begin: '{{ ATM_WINDOW_BEGIN | to_isotime }}'
length: $(ATM_WINDOW_LENGTH)
increment variables: [ua,va,DZ,delp,t,ps,sphum,ice_wat,liq_wat,o3mr]

background:
Expand Down
2 changes: 1 addition & 1 deletion parm/atm/obs/config/amsua_n19.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,7 @@ obs filters:
- name: ObsFunction/ChannelUseflagCheckRad
channels: *amsua_n19_channels
options:
sensor: amaua_n19
sensor: amsua_n19
channels: *amsua_n19_channels
use_flag: [ 1, 1, 1, 1, 1,
1, -1, -1, 1, 1,
Expand Down
67 changes: 47 additions & 20 deletions parm/atm/obs/config/atms_n20.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@ obs space:

obs operator:
name: CRTM
Absorbers: [H2O,O3]
Absorbers: [H2O, O3, CO2]
Clouds: [Water, Ice]
Cloud_Fraction: 1.0
Cloud_Seeding: true
obs options:
Sensor_ID: &Sensor_ID atms_n20
EndianType: little_endian
CoefficientPath: $(DATA)/crtm/
linear obs operator:
Absorbers: [H2O, O3]

obs bias:
input file: $(DATA)/obs/$(GPREFIX)atms_n20.satbias.nc4
Expand Down Expand Up @@ -56,7 +59,6 @@ obs bias:

obs pre filters:
# Step 0-A: Create Diagnostic Flags
# Diagnostic flag for CLW retrieval
- filter: Create Diagnostic Flags
filter variables:
- name: brightnessTemperature
Expand All @@ -83,6 +85,9 @@ obs pre filters:
- name: InterChannelConsistency
initial value: false
force reinitialization: false
- name: UseflagCheck
initial value: false
force reinitialization: false

obs post filters:
# Step 0-B: Calculate derived variables
Expand Down Expand Up @@ -224,7 +229,7 @@ obs post filters:
channels: *atms_n20_channels
coefs: [1, -1]

# Step 0-C: Assign initial all-sky observation error
# Step 0-C: Assign Initial All-Sky Observation Error
- filter: Perform Action
filter variables:
- name: brightnessTemperature
Expand All @@ -235,7 +240,7 @@ obs post filters:
name: InitialObsError@DerivedMetaData
channels: *atms_n20_channels

# Step 1: Remove observations from the edge of the scan
# Step 1: Remove Observations from the Edge of the Scan
- filter: Domain Check
filter variables:
- name: brightnessTemperature
Expand All @@ -250,15 +255,16 @@ obs post filters:
- name: reject

# Step 2: Data Thinning
#- filter: Gaussian Thinning
# horizontal_mesh: 145
# use_reduced_horizontal_grid: true
## round_horizontal_bin_count_to_nearest: true
## partition_longitude_bins_using_mesh: true
# actions:
# - name: set
# flag: Thinning
# - name: reject
- filter: Gaussian Thinning
horizontal_mesh: 145
use_reduced_horizontal_grid: true
distance_norm: geodesic
# round_horizontal_bin_count_to_nearest: true
# partition_longitude_bins_using_mesh: true
actions:
- name: set
flag: Thinning
- name: reject

# Step 3A: CLW Retrieval Check (observation_based)
- filter: Bounds Check
Expand Down Expand Up @@ -286,7 +292,7 @@ obs post filters:
flag: CLWRetrievalCheck
- name: reject

# Step 4: Window channel sanity check
# Step 4: Window Channel Sanity Check
- filter: Bounds Check
filter variables:
- name: brightnessTemperature
Expand Down Expand Up @@ -338,7 +344,7 @@ obs post filters:
ignore: rejected observations
- name: reject

# Step 6: Observation error inflation based on topography check
# Step 6: Observation Error Inflation based on Topography Check
- filter: Variable Assignment
assignments:
- name: ObsErrorFactorTopo@DerivedMetaData
Expand All @@ -361,7 +367,7 @@ obs post filters:
name: ObsErrorFactorTopo@DerivedMetaData
channels: *atms_n20_channels

# Step 7: Obs error inflation based on TOA transmittancec check
# Step 7: Obs Error Inflation based on TOA Transmittancec Check
- filter: Variable Assignment
assignments:
- name: ObsErrorFactorTransmitTop@DerivedMetaData
Expand All @@ -383,7 +389,7 @@ obs post filters:
name: ObsErrorFactorTransmitTop@DerivedMetaData
channels: *atms_n20_channels

# Step 8: Observation error inflation based on surface jacobian check
# Step 8: Observation Error Inflation based on Surface Jacobian Check
- filter: Variable Assignment
assignments:
- name: ObsErrorFactorSurfJacobian@DerivedMetaData
Expand All @@ -409,7 +415,7 @@ obs post filters:
name: ObsErrorFactorSurfJacobian@DerivedMetaData
channels: *atms_n20_channels

# Step 9: Situation dependent check
# Step 9: Situation Dependent Check
- filter: Variable Assignment
assignments:
- name: ObsErrorFactorSituDepend@DerivedMetaData
Expand Down Expand Up @@ -504,7 +510,7 @@ obs post filters:
ignore: rejected observations
- name: reject

# Step 11: Inter-channel check
# Step 11: Inter-Channel Check
- filter: Bounds Check
filter variables:
- name: brightnessTemperature
Expand All @@ -518,7 +524,7 @@ obs post filters:
sensor: *Sensor_ID
use_flag: [ 1, 1, 1, 1, 1,
1, 1, 1, 1, 1,
1, 1, 1, 1, 1,
1, 1, 1, 1, 4,
1, 1, 1, 1, 1,
1, 1]
maxvalue: 1.0e-12
Expand All @@ -528,3 +534,24 @@ obs post filters:
ignore: rejected observations
- name: reject

# Step 12: Useflag Check
- filter: Bounds Check
filter variables:
- name: brightnessTemperature
channels: *atms_n20_channels
test variables:
- name: ObsFunction/ChannelUseflagCheckRad
channels: *atms_n20_channels
options:
channels: *atms_n20_channels
use_flag: [ 1, 1, 1, 1, 1,
1, 1, 1, 1, 1,
1, 1, 1, 1, 4,
1, 1, 1, 1, 1,
1, 1]
minvalue: 1.0e-12
actions:
- name: set
flag: UseflagCheck
ignore: rejected observations
- name: reject
Loading

0 comments on commit 210a9ce

Please sign in to comment.