forked from NOAA-EMC/RDASApp
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add ctests for running GETKF in split mode and move reference files i…
…nto repo (NOAA-EMC#175) This PR adds ctests and yaml files for running GETKF in split observer and solver mode. Running GETKF in this form is currently the most efficient option since the observer can be run using the RoundRobin distribution (see NOAA-EMC#122). Reference files are also added for these two new ctests and are added into the repo (see below).
- Loading branch information
1 parent
0c635a1
commit 4bcc3cc
Showing
20 changed files
with
5,773 additions
and
17 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
81 changes: 81 additions & 0 deletions
81
rrfs-test/testinput/rrfs_mpasjedi_2024052700_getkf_observer.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
_member: &memberConfig | ||
date: &analysisDate '2024-05-27T00:00:00Z' | ||
state variables: [spechum,surface_pressure,temperature,uReconstructMeridional,uReconstructZonal,theta,rho,u,qv,pressure,landmask,xice,snowc,skintemp,ivgtyp,isltyp,snowh,vegfra,u10,v10,lai,smois,tslb,pressure_p,qc,qi,qg,qr,qs,cldfrac] | ||
stream name: ensemble | ||
|
||
geometry: | ||
nml_file: ./namelist.atmosphere | ||
streams_file: ./streams.atmosphere | ||
deallocate non-da fields: true | ||
interpolation type: unstructured | ||
iterator dimension: 2 | ||
|
||
increment variables: [temperature, spechum, uReconstructZonal, uReconstructMeridional, surface_pressure] | ||
|
||
background: | ||
members from template: | ||
template: | ||
<<: *memberConfig | ||
filename: ./data/ens/mem%iMember%/restart.2024-05-27_00.00.00.nc | ||
pattern: %iMember% | ||
start: 1 | ||
zero padding: 2 | ||
nmembers: 30 | ||
|
||
observations: | ||
observers: | ||
- obs space: | ||
name: sonde | ||
distribution: | ||
name: RoundRobin | ||
obsdatain: | ||
engine: | ||
type: H5File | ||
obsfile: data/obs/rap.t00z.singleobs.ADPUPA.tm00.nc4 | ||
obsdataout: | ||
engine: | ||
type: H5File | ||
obsfile: ./adpupa_hofx.nc4 | ||
simulated variables: [airTemperature] | ||
observed variables: [airTemperature] | ||
obs operator: | ||
name: VertInterp | ||
obs error: | ||
covariance model: diagonal | ||
obs localizations: | ||
- localization method: Horizontal Gaspari-Cohn | ||
lengthscale: 300e3 # orig | ||
obs filters: | ||
- filter: Perform Action | ||
filter variables: | ||
- name: airTemperature | ||
action: | ||
name: assign error | ||
error parameter: 1.2 # K | ||
defer to post: true | ||
|
||
driver: | ||
run as observer only: true | ||
update obs config with geometry info: false | ||
|
||
time window: | ||
begin: 2024-05-26T23:00:00Z | ||
length: PT2H | ||
|
||
local ensemble DA: | ||
solver: GETKF | ||
use linear observer: true | ||
vertical localization: # current settings use 12 modulated members | ||
fraction of retained variance: 0.850 | ||
lengthscale: 0.55 | ||
lengthscale units: logp | ||
inflation: | ||
rtps: 0.95 | ||
rtpp: 0.6 | ||
mult: 1.1 | ||
|
||
test: | ||
reference filename: testoutput/rrfs-mpasjedi-getkf-observer.ref | ||
test output filename: ./rrfs-mpasjedi-getkf-observer.out | ||
float relative tolerance: 1.0e-3 | ||
float absolute tolerance: 1.0e-6 |
93 changes: 93 additions & 0 deletions
93
rrfs-test/testinput/rrfs_mpasjedi_2024052700_getkf_solver.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
_member: &memberConfig | ||
date: &analysisDate '2024-05-27T00:00:00Z' | ||
state variables: [spechum,surface_pressure,temperature,uReconstructMeridional,uReconstructZonal,theta,rho,u,qv,pressure,landmask,xice,snowc,skintemp,ivgtyp,isltyp,snowh,vegfra,u10,v10,lai,smois,tslb,pressure_p,qc,qi,qg,qr,qs,cldfrac] | ||
stream name: ensemble | ||
|
||
geometry: | ||
nml_file: ./namelist.atmosphere | ||
streams_file: ./streams.atmosphere | ||
deallocate non-da fields: true | ||
interpolation type: unstructured | ||
iterator dimension: 2 | ||
|
||
increment variables: [temperature, spechum, uReconstructZonal, uReconstructMeridional, surface_pressure] | ||
|
||
background: | ||
members from template: | ||
template: | ||
<<: *memberConfig | ||
filename: ./data/ens/mem%iMember%/restart.2024-05-27_00.00.00.nc | ||
pattern: %iMember% | ||
start: 1 | ||
zero padding: 2 | ||
nmembers: 30 | ||
|
||
observations: | ||
observers: | ||
- obs space: | ||
name: sonde | ||
distribution: | ||
name: Halo | ||
halo size: 1000e3 | ||
obsdatain: | ||
engine: | ||
type: H5File | ||
obsfile: ../rundir-rrfs_mpasjedi_2024052700_getkf_observer/adpupa_hofx.nc4 | ||
obsdataout: | ||
engine: | ||
type: H5File | ||
obsfile: ./adpupa_hofx_solver.nc4 | ||
simulated variables: [airTemperature] | ||
observed variables: [airTemperature] | ||
obs operator: | ||
name: VertInterp | ||
obs error: | ||
covariance model: diagonal | ||
obs localizations: | ||
- localization method: Horizontal Gaspari-Cohn | ||
lengthscale: 300e3 # orig | ||
obs filters: | ||
- filter: Perform Action | ||
filter variables: | ||
- name: airTemperature | ||
action: | ||
name: assign error | ||
error parameter: 1.2 # K | ||
defer to post: true | ||
|
||
driver: | ||
read HX from disk: true | ||
save posterior ensemble: false | ||
save prior mean: true | ||
save posterior mean: true | ||
do posterior observer: true | ||
|
||
time window: | ||
begin: 2024-05-26T23:00:00Z | ||
length: PT2H | ||
|
||
local ensemble DA: | ||
solver: GETKF | ||
use linear observer: true | ||
vertical localization: # current settings use 12 modulated members | ||
fraction of retained variance: 0.850 | ||
lengthscale: 0.55 | ||
lengthscale units: logp | ||
inflation: | ||
rtps: 0.95 | ||
rtpp: 0.6 | ||
mult: 1.1 | ||
|
||
output mean prior: | ||
filename: ./bkg.$Y-$M-$D_$h.$m.$s.nc | ||
stream name: background | ||
|
||
output: # for outputting mean posterior | ||
filename: ./ana.$Y-$M-$D_$h.$m.$s.nc | ||
stream name: analysis | ||
|
||
test: | ||
reference filename: testoutput/rrfs-mpasjedi-getkf-solver.ref | ||
test output filename: ./rrfs-mpasjedi-getkf-solver.out | ||
float relative tolerance: 1.0e-3 | ||
float absolute tolerance: 1.0e-6 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
Norm of input parameter StdDev: 9.4986412011183896e-01 | ||
CostJb : Nonlinear Jb = 0.0000000000000000e+00 | ||
CostJo : Nonlinear Jo(Aircraft) = 1.6277063866803385e+02, nobs = 197, Jo/n = 8.2624689679204999e-01, err = 2.2878461627138713e+00 | ||
CostJo : Nonlinear Jo(sonde) = 4.6083942594316369e+01, nobs = 96, Jo/n = 4.8004106869079549e-01, err = 1.2699158479229833e+00 | ||
CostJo : Nonlinear Jo(sonde) = 3.5136386636656073e+02, nobs = 492, Jo/n = 7.1415419993203400e-01, err = 2.6485332421855685e+00 (Monitoring only) | ||
CostFunction: Nonlinear J = 2.0885458126235022e+02 | ||
DRPCGMinimizer: reduction in residual norm = 2.7824421531180651e-03 | ||
CostFunction::addIncrement: Analysis: | ||
---------------------------------------------------------------------------------------------------- | ||
State print | number of fields = 10 | cube sphere face size: C396 | ||
eastward_wind | Min:-2.4172478440722166e+01 Max:+5.8744213104248047e+01 RMS:+1.1074254228003721e+01 | ||
northward_wind | Min:-4.6842254638671875e+01 Max:+6.7075992762060139e+01 RMS:+9.1575337935866052e+00 | ||
u_component_of_native_D_grid_wind | Min:-5.8205993652343750e+01 Max:+2.7109228988747304e+01 RMS:+1.1163967556309810e+01 | ||
v_component_of_native_D_grid_wind | Min:-6.8115785512445697e+01 Max:+4.6548946380615234e+01 RMS:+9.0728668941041590e+00 | ||
air_temperature | Min:+1.9858006286621094e+02 Max:+3.1420623779296875e+02 RMS:+2.6052094626363748e+02 | ||
air_pressure_thickness | Min:+2.0438423156738281e+02 Max:+3.3835468750000000e+03 RMS:+1.8520940188066577e+03 | ||
specific_humidity | Min:+9.9999997171806854e-10 Max:+1.9826183095574379e-02 RMS:+5.6389210501995727e-03 | ||
cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+1.1363915032580437e+38 RMS:+1.8745365416579955e+36 | ||
cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.1363915032580437e+38 RMS:+2.0899721915550581e+36 | ||
ozone_mass_mixing_ratio | Min:+4.0375940812964473e-08 Max:+1.6066782336565666e-05 RMS:+2.8037513171416430e-06 | ||
---------------------------------------------------------------------------------------------------- | ||
|
||
|
||
|
||
|
||
|
||
Norm of input parameter StdDev: 0.949864120111839 | ||
CostJb : Nonlinear Jb = 0.9028632742725768 | ||
CostJo : Nonlinear Jo(Aircraft) = 46.00808938648616, nobs = 197, Jo/n = 0.2335436009466303, err = 2.287846162713871 | ||
CostJo : Nonlinear Jo(sonde) = 31.20243554366136, nobs = 96, Jo/n = 0.3250253702464725, err = 1.269915847922983 | ||
CostJo : Nonlinear Jo(sonde) = 346.8911603390688, nobs = 492, Jo/n = 0.7050633340224977, err = 2.648533242185569 (Monitoring only) | ||
CostFunction: Nonlinear J = 78.1133882044201 | ||
DRPCGMinimizer: reduction in residual norm = 0.005966881060084853 | ||
CostFunction::addIncrement: Analysis: | ||
---------------------------------------------------------------------------------------------------- | ||
State print | number of fields = 10 | cube sphere face size: C396 | ||
eastward_wind | Min:-2.4171419042986830e+01 Max:+5.8744213104248047e+01 RMS:+1.1074256913053947e+01 | ||
northward_wind | Min:-4.6842254638671875e+01 Max:+6.7075992766887268e+01 RMS:+9.1575456881565902e+00 | ||
u_component_of_native_D_grid_wind | Min:-5.8205993652343750e+01 Max:+2.7108462492609508e+01 RMS:+1.1163970275632899e+01 | ||
v_component_of_native_D_grid_wind | Min:-6.8115785523746766e+01 Max:+4.6548946380615234e+01 RMS:+9.0728787561097732e+00 | ||
air_temperature | Min:+1.9858006286621094e+02 Max:+3.1420623779296875e+02 RMS:+2.6052095318275576e+02 | ||
air_pressure_thickness | Min:+2.0438423156738281e+02 Max:+3.3835468750000000e+03 RMS:+1.8520940211705904e+03 | ||
specific_humidity | Min:+9.9999997171806854e-10 Max:+1.9826183095574379e-02 RMS:+5.6389233413203753e-03 | ||
cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+1.1376105630346728e+38 RMS:+1.8745015174562462e+36 | ||
cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.1376105630346728e+38 RMS:+2.0875908498287738e+36 | ||
ozone_mass_mixing_ratio | Min:+4.0375940812964473e-08 Max:+1.6066782336565666e-05 RMS:+2.8037513646290239e-06 | ||
---------------------------------------------------------------------------------------------------- | ||
|
||
|
||
|
||
|
||
|
||
CostJb : Nonlinear Jb = 0.9033093522182356 | ||
CostJo : Nonlinear Jo(Aircraft) = 45.9756432627705, nobs = 197, Jo/n = 0.2333788998110178, err = 2.287846162713871 | ||
CostJo : Nonlinear Jo(sonde) = 31.21293388165803, nobs = 96, Jo/n = 0.3251347279339378, err = 1.269915847922983 | ||
CostJo : Nonlinear Jo(sonde) = 346.9156273098469, nobs = 492, Jo/n = 0.7051130636379003, err = 2.648533242185569 (Monitoring only) | ||
CostFunction: Nonlinear J = 78.09188649664675 |
Oops, something went wrong.