Skip to content

Commit

Permalink
Merge pull request #1567 from jvgeiger/feature/smopsv4_testcase
Browse files Browse the repository at this point in the history
Add SMOPSv4 testcase
  • Loading branch information
jvgeiger committed Jun 28, 2024
2 parents 0be682f + 2db9949 commit dbdb283
Show file tree
Hide file tree
Showing 5 changed files with 381 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lis/testcases/dataassim/SMOPSv4/MODEL_OUTPUT_LIST.TBL
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#Subsurface state variables
SoilMoist: 1 m3/m3 - 2 0 0 4 201 1000 # Average layer soil moisture (kg/m2)
RelSMC: 0 m3/m3 - 0 0 0 4 141 1000 # Relative soil moisture

30 changes: 30 additions & 0 deletions lis/testcases/dataassim/SMOPSv4/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Noah-MP.4.0.1 SMOPS-ASCAT v4 soil moisture EnKF Assimilation Testcase

This case demonstrates the EnKF-based assimilation of SMOPS-ASCAT v4 data into the NoahMP 4.0.1 LSM.

It uses:
(a) The AGRMET foring
(b) retrospective running mode
(c) The NoahMP version 4.0.1 land surface model
(d) Global domain at 0.09 degree spatial resolution
(e) A time period from 23:45Z 30 Apr 2024 to 00Z 2 May 2024

This directory contains:
(a) This README file
(b) The "lis.config" file used for this testcase
(c) The "MODEL_OUTPUT_LIST.TBL" file used by the lis.config file
to select the output variables
(d) An "output.ctl" file used to display the output in GrADS from
the LIS run

Note that the "lis.config" file should be edited
to make sure that the locations of the parameter and forcing files
are specified correctly.

To run this testcase:
(a) Run the LIS executable using the "lis.config" file with the
testcase input data
(b) View the binary output using the testcase GrADS files



305 changes: 305 additions & 0 deletions lis/testcases/dataassim/SMOPSv4/lis.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,305 @@
#Overall driver options
Running mode: "retrospective"
Map projection of the LIS domain: latlon
Number of nests: 1
Number of surface model types: 2
Surface model types: "LSM" "Openwater"
Surface model output interval: 12hr #6hr #1da #1mo
Land surface model: "Noah-MP.4.0.1"
Open water model: "template open water"
Number of met forcing sources: 1
Blending method for forcings: overlay
Met forcing sources: "AGRMET"
Met forcing chosen ensemble member: 1
Topographic correction method (met forcing): "none"
Enable spatial downscaling of precipitation: 0
Spatial upscaling method (met forcing): average
Spatial interpolation method (met forcing): bilinear
Temporal interpolation method (met forcing): linear

#Runtime options
Forcing variables list file: ./input/forcing_variables.txt
Output methodology: "2d gridspace" #"2d ensemble gridspace"
Output model restart files: 1
Output data format: netcdf #binary
Output naming style: "3 level hierarchy"
Start mode: restart #coldstart Starting year: 2021 #2008
Starting year: 2024 #2008
Starting month: 04 #31
Starting day: 30 #31
Starting hour: 23 #23
Starting minute: 45 #45
Starting second: 0
Ending year: 2024
Ending month: 05
Ending day: 02
Ending hour: 00
Ending minute: 0
Ending second: 0
Undefined value: -9999
Output directory: OUTPUT #"output/EXP200/NOAHMP401/Run-A"
Diagnostic output file: OUTPUT/log/lislog #"output/EXP200/NOAHMP401/Run-A/logs/lislog"
Number of ensembles per tile: 12

#The following options are used for subgrid tiling based on vegetation
Maximum number of surface type tiles per grid: 1
Minimum cutoff percentage (surface type tiles): 0.05
Maximum number of soil texture tiles per grid: 1
Minimum cutoff percentage (soil texture tiles): 0.05
Maximum number of soil fraction tiles per grid: 1
Minimum cutoff percentage (soil fraction tiles): 0.05
Maximum number of elevation bands per grid: 1
Minimum cutoff percentage (elevation bands): 0.05
Maximum number of slope bands per grid: 1
Minimum cutoff percentage (slope bands): 0.05
Maximum number of aspect bands per grid: 1
Minimum cutoff percentage (aspect bands): 0.05

#Processor layout
#Should match the total number of processors used
Number of processors along x: 12
Number of processors along y: 10
Halo size along x: 0
Halo size along y: 0

#Sub-models
Routing model: none
Radiative transfer model: none
Number of application models: 0

#---------------------DATA ASSIMILATION ----------------------------------
#Data assimilation options
Number of data assimilation instances: 1
Data assimilation algorithm: "EnKF"
Data assimilation set: "SMOPS-ASCAT soil moisture"
Number of state variables: 4 # added by Shugong
Data assimilation exclude analysis increments: 0
Data assimilation output interval for diagnostics: "1da"
Data assimilation number of observation types: 1
Data assimilation output ensemble spread: 0
Data assimilation output ensemble members: 1
Data assimilation output processed observations: 1
Data assimilation output innovations: 0
Data assimilation use a trained forward model: 0
Data assimilation trained forward model output file: none

Data assimilation scaling strategy: "CDF matching"
Data assimilation observation domain file: ./lis_input.global.noahmp401.nc

#Bias estimation option../proc_LSM/lis_input.noahmp401.nc s
Bias estimation algorithm: none none
Bias estimation attributes file: none none
Bias estimation restart output frequency: 1da 1da
Bias estimation start mode: none none
Bias estimation restart file: none none

#Perturbation options
Perturbations start mode: "coldstart"
Perturbations restart output interval: "1mo"
Perturbations restart filename: "none"
Apply perturbation bias correction: 1

Forcing perturbation algorithm: "GMAO scheme" #none
Forcing perturbation frequency: "1hr"
Forcing attributes file: ./input/attribs/forcing_attribs.txt
Forcing perturbation attributes file: ./input/attribs/forcing_pertattribs.txt

State perturbation algorithm: "GMAO scheme" #none
State perturbation frequency: "6hr"
State attributes file: ./input/attribs/noahmp_sm_attribs.txt
State perturbation attributes file: ./input/attribs/noahmp_sm_pertattribs.txt

Observation perturbation algorithm: "GMAO scheme" #none
Observation perturbation frequency: "6hr"
Observation attributes file: ./input/attribs/smops_attribs.txt
Observation perturbation attributes file: ./input/attribs/smops_pertattribs.txt

SMOPS ASCAT soil moisture data directory: ./input/RS_DATA/smops_data
SMOPS ASCAT soil moisture use scaled standard deviation model: 0
SMOPS ASCAT use realtime data: 1

SMOPS ASCAT model CDF file: ./input/cdf/noahmp401_cdf_200obs.nc
SMOPS ASCAT observation CDF file: ./input/cdf/ASCAT_cdf_10km_100obs.nc

SMOPS ASCAT soil moisture number of bins in the CDF: 100
SMOPS ASCAT CDF read option: 1

SMOPS ASCAT naming convention: "AGRMET ops"
SMOPS ASCAT version: 'date-based'

#------------------------DOMAIN SPECIFICATION--------------------------
#The following options list the choice of parameter maps to be used
LIS domain and parameter data file: ./lis_input.global.noahmp401.nc
Landmask data source: LDT
Landcover data source: LDT
Soil texture data source: LDT
Soil fraction data source: none
Soil color data source: none
Elevation data source: LDT
Slope data source: LDT
Aspect data source: LDT
Curvature data source: none
LAI data source: none
SAI data source: none
Albedo data source: LDT
Max snow albedo data source: LDT
Greenness data source: LDT
Roughness data source: none
Porosity data source: none
Ksat data source: none
B parameter data source: none
Quartz data source: none
Emissivity data source: none

TBOT lag skin temperature update option: 0
TBOT skin temperature lag days: 0

#--------------------------------FORCINGS----------------------------------
AGRMET forcing map projection: latlon
AGRMET forcing domain lower left lat: -89.9531250
AGRMET forcing domain lower left lon: -179.9296875
AGRMET forcing domain upper right lat: 89.9531250
AGRMET forcing domain upper right lon: 179.9296875
AGRMET forcing domain resolution (dx): 0.1406250
AGRMET forcing domain resolution (dy): 0.0937500

AGRMET forcing directory: ./input/MET_FORCING/usaf_lis75s2s_gfs2galwem
AGRMET precip obs file format: 1
AGRMET sfc obs file format: 1

AGRMET first guess source: GALWEM
AGRMET retrospective root filename: "/PS.AFWA_SC.U_DI.C_DC.ANLYS_GP.LIS_GR.C0P09DEG_AR.GLOBAL_PA.03-HR-SUM_DD."

AGRMET analysis directory: Analysis_UMFG_1
AGRMET use timestamp on directories: 1
AGRMET use timestamp on gfs: 1

AGRMET security classification: U
AGRMET distribution classification: C
AGRMET data category: ANLYS
AGRMET area of data: GLOBAL

# For 10-km domain
AGRMET GALWEM Precip background error scale length (m): 85000.
AGRMET GALWEM Precip background error variance: 0.43
AGRMET GALWEM Precip Gauge observation error variance: 0.64
AGRMET GALWEM Precip GEOPRECIP observation error scale length (m): 78000.
AGRMET GALWEM Precip GEOPRECIP observation error variance: 2.68
AGRMET GALWEM Precip SSMI observation error scale length (m): 30000.
AGRMET GALWEM Precip SSMI observation error variance: 7.40
AGRMET GALWEM Precip CMORPH observation error scale length (m): 62000.
AGRMET GALWEM Precip CMORPH observation error variance: 1.53
AGRMET GALWEM T2M background error scale length (m): 30000.
AGRMET GALWEM T2M background error variance: 1.15
AGRMET GALWEM T2M station observation error variance: 2.75
AGRMET GALWEM RH2M background error scale length (m): 55000.
AGRMET GALWEM RH2M background error variance: 32.5
AGRMET GALWEM RH2M station observation error variance: 48.0
AGRMET GALWEM SPD10M background error scale length (m): 100000.
AGRMET GALWEM SPD10M background error variance: 0.35
AGRMET GALWEM SPD10M station observation error variance: 2.52

AGRMET GALWEM nominal resolution (km): 17 # 17 or 10; for now, just use 17

# 10-km
AGRMET GFS Precip background error scale length (m): 75000.
AGRMET GFS Precip background error variance: 0.58
AGRMET GFS Precip Gauge observation error variance: 0.6
AGRMET GFS Precip GEOPRECIP observation error scale length (m): 90000.
AGRMET GFS Precip GEOPRECIP observation error variance: 2.22
AGRMET GFS Precip SSMI observation error scale length (m): 30000.
AGRMET GFS Precip SSMI observation error variance: 7.4
AGRMET GFS Precip CMORPH observation error scale length (m): 65000.
AGRMET GFS Precip CMORPH observation error variance: 1.43
AGRMET GFS T2M background error scale length (m): 60000.
AGRMET GFS T2M background error variance: 0.78
AGRMET GFS T2M station observation error variance: 3.48
AGRMET GFS RH2M background error scale length (m): 95000.
AGRMET GFS RH2M background error variance: 34.6
AGRMET GFS RH2M station observation error variance: 62.1
AGRMET GFS SPD10M background error scale length (m): 76000.
AGRMET GFS SPD10M background error variance: 0.86
AGRMET GFS SPD10M station observation error variance: 2.44
AGRMET GFS filename version: 1 #recently added

AGRMET maximum precip obs: 2000000

#IMERG settings
AGRMET use IMERG data: 0
AGRMET IMERG temperature threshold: 278
AGRMET IMERG data directory: ../IMERG
AGRMET IMERG product: 3B-HHR-E
AGRMET IMERG version: V05B
AGRMET IMERG Probability Liquid Precip Threshold: 100
AGRMET GALWEM Precip IMERG observation error scale length (m): 62000.
AGRMET GALWEM Precip IMERG observation error variance: 1.53
AGRMET GFS Precip IMERG observation error scale length (m): 65000.
AGRMET GFS Precip IMERG observation error variance: 1.43

#Only use for Bratseth tuning
AGRMET output OBA data: 0
AGRMET skip backQC: 0
AGRMET skip superstatQC : 0

AGRMET WWMCA GRIB1 read option: 1
AGRMET snow distribution shape parameter: 2.6

AGRMET PPT Background bias correction option: 0 # 0 = turn off (not ready yet)

#-----------------------LAND SURFACE MODELS--------------------------
Noah-MP.4.0.1 model timestep: 15mn
Noah-MP.4.0.1 restart output interval: 1mo
#Noah-MP.4.0.1 restart file: ../DA_ensrst/LIS_EnRST_NOAHMP401_201503312345.d01.ens12.nc
#Noah-MP.4.0.1 restart file: ../output_David/SURFACEMODEL/200801/LIS_RST_NOAHMP401_200801312345.d01.nc
#Noah-MP.4.0.1 restart file: ./OUTPUT/SURFACEMODEL/201811/LIS_RST_NOAHMP401_201811302345.d01.nc
#Noah-MP.4.0.1 restart file: ./data/LIS_EnRST_NOAHMP401_202404302345.d01.ens12.nc
Noah-MP.4.0.1 restart file: ./LIS_RST_NOAHMP401_202404302345.d01.nc
Noah-MP.4.0.1 restart file format: netcdf
Noah-MP.4.0.1 soil parameter table: ./input/LS_PARAMETERS/noahmp401_parms/SOILPARM.TBL
Noah-MP.4.0.1 general parameter table: ./input/LS_PARAMETERS/noahmp401_parms/GENPARM.TBL
Noah-MP.4.0.1 MP parameter table: ./input/LS_PARAMETERS/noahmp401_parms/MPTABLE.TBL
Noah-MP.4.0.1 number of soil layers: 4
Noah-MP.4.0.1 thickness of soil layers: 0.1 0.3 0.6 1.0
Noah-MP.4.0.1 dynamic vegetation option: 4 # 9 options available
Noah-MP.4.0.1 canopy stomatal resistance option: 1 # 1=Ball-Berry; 2=Jarvis
Noah-MP.4.0.1 soil moisture factor for stomatal resistance: 1 # 1=Noah; 2=CLM; 3=SSiB
Noah-MP.4.0.1 runoff and groundwater option: 1 # 1=SIMGM; 2=SIMTOP; 3=Schaake96; 4=BATS
Noah-MP.4.0.1 surface layer drag coefficient option: 1 # 1=M-O; 2=Chen97
Noah-MP.4.0.1 supercooled liquid water option: 1 # 1=NY06; 2=Koren99
Noah-MP.4.0.1 frozen soil permeability option: 1 # 1=NY06; 2=Koren99
Noah-MP.4.0.1 radiation transfer option: 3 # 1=gap=F(3D;cosz); 2=gap=0; 3=gap=1-Fveg
Noah-MP.4.0.1 snow surface albedo option: 2 # 1=BATS; 2=CLASS
Noah-MP.4.0.1 rainfall & snowfall option: 1 # 1=Jordan91; 2=BATS; 3=Noah
Noah-MP.4.0.1 lower boundary of soil temperature option: 2 # 1=zero-flux; 2=Noah
Noah-MP.4.0.1 snow&soil temperature time scheme option: 1 # 1=semi-implicit; 2=fully implicit
Noah-MP.4.0.1 glacier option: 1 # 1=include phase change; 2=slab ice (Noah)
Noah-MP.4.0.1 surface resistance option: 1 # 1=Sakaguchi and Zeng 2009; 2=Sellers (1992); 3=adjusted Sellers; 4=option1 for non-snow and rsurf_snow for snow
Noah-MP.4.0.1 soil configuration option: 1 # 1=input dominant soil texture; 2=input soil texture varies that varies with depth; 3=soil composition and pedotransfer functions
Noah-MP.4.0.1 soil pedotransfer function option: 1 # 1=Saxton and Rawls (2006) (used when soil_opt=3)
Noah-MP.4.0.1 crop model option: 0 # 0=No crop model; 1=Liu et al. 2016; 2=Gecros
Noah-MP.4.0.1 urban physics option: 0 # 0=No; 1=Single-layer; 2=Multi-layer BEP scheme; 3=Multi-layer BEM scheme
Noah-MP.4.0.1 initial surface skin temperature: 288.0
Noah-MP.4.0.1 initial soil temperatures: 288.0 288.0 288.0 288.0
Noah-MP.4.0.1 initial total soil moistures: 0.20 0.20 0.20 0.20
Noah-MP.4.0.1 initial snow water equivalent: 0.0
Noah-MP.4.0.1 initial snow depth: 0.0
Noah-MP.4.0.1 initial total canopy surface water: 0.0
Noah-MP.4.0.1 initial leaf area index: 0.5
Noah-MP.4.0.1 initial water table depth: 2.5
Noah-MP.4.0.1 initial water in the aquifer: 4900.0
Noah-MP.4.0.1 initial water in aquifer and saturated soil: 4900.0
Noah-MP.4.0.1 reference height of temperature and humidity: 10.0

Template open water timestep: 15mn

#---------------------------MODEL OUTPUT CONFIGURATION-----------------------
#Specify the list of ALMA variables that need to be featured in the
#LSM model output
Output start year:
Output start month:
Output start day:
Output start hour:
Output start minutes:
Output start seconds:

Model output attributes file: './MODEL_OUTPUT_LIST.TBL'
21 changes: 21 additions & 0 deletions lis/testcases/dataassim/SMOPSv4/output.ctl
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
dset ^OUTPUT/SURFACEMODEL/%y4%m2/LIS_HIST_%y4%m2%d2%h200.d01.nc
dtype netcdf
options template
undef -9999
xdef 2560 linear -179.9297 0.140625
ydef 1920 linear -89.95312 0.09375
zdef 1 linear 1 1
* dummy tdef
tdef 3 linear 00z01may2024 12hr
vars 10
lat=>lat 1 y,x description
lon=>lon 1 y,x description
SoilMoist_tavg=>SoilMoist_tavg1 0 0,y,x description
SoilMoist_tavg=>SoilMoist_tavg2 0 1,y,x description
SoilMoist_tavg=>SoilMoist_tavg3 0 2,y,x description
SoilMoist_tavg=>SoilMoist_tavg4 0 3,y,x description
SoilMoist_inst=>SoilMoist_inst1 0 0,y,x description
SoilMoist_inst=>SoilMoist_inst2 0 1,y,x description
SoilMoist_inst=>SoilMoist_inst3 0 2,y,x description
SoilMoist_inst=>SoilMoist_inst4 0 3,y,x description
endvars
21 changes: 21 additions & 0 deletions lis/testcases/dataassim/SMOPSv4/testcase.ctl
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
dset ^TARGET_OUTPUT/SURFACEMODEL/%y4%m2/LIS_HIST_%y4%m2%d2%h200.d01.nc
dtype netcdf
options template
undef -9999
xdef 2560 linear -179.9297 0.140625
ydef 1920 linear -89.95312 0.09375
zdef 1 linear 1 1
* dummy tdef
tdef 3 linear 00z01may2024 12hr
vars 10
lat=>lat 1 y,x description
lon=>lon 1 y,x description
SoilMoist_tavg=>SoilMoist_tavg1 0 0,y,x description
SoilMoist_tavg=>SoilMoist_tavg2 0 1,y,x description
SoilMoist_tavg=>SoilMoist_tavg3 0 2,y,x description
SoilMoist_tavg=>SoilMoist_tavg4 0 3,y,x description
SoilMoist_inst=>SoilMoist_inst1 0 0,y,x description
SoilMoist_inst=>SoilMoist_inst2 0 1,y,x description
SoilMoist_inst=>SoilMoist_inst3 0 2,y,x description
SoilMoist_inst=>SoilMoist_inst4 0 3,y,x description
endvars

0 comments on commit dbdb283

Please sign in to comment.