diff --git a/bin/ExternalAnalysisToMPAS.csh b/bin/ExternalAnalysisToMPAS.csh index 89355899..7b8fccd5 100755 --- a/bin/ExternalAnalysisToMPAS.csh +++ b/bin/ExternalAnalysisToMPAS.csh @@ -98,6 +98,7 @@ ln -sfv ${ExternalAnalysesDir}/${externalanalyses__UngribPrefix}* ./ ## link MPAS mesh graph info rm ./x${ArgRatio}.${ArgNCells}.graph.info* ln -sfv $GraphInfoDir/x${ArgRatio}.${ArgNCells}.graph.info* . +echo $GraphInfoDir/x${ArgRatio}.${ArgNCells}.graph.info ## Link MPAS invariant field if ( $ArgType == "Outer" ) then diff --git a/bin/GetGDASAnalysisFromFTP.csh b/bin/GetGDASAnalysisFromFTP.csh index 5f9abe8f..5c89def1 100755 --- a/bin/GetGDASAnalysisFromFTP.csh +++ b/bin/GetGDASAnalysisFromFTP.csh @@ -45,7 +45,8 @@ set fhour = 000 echo "Getting GDAS atm and sfc analyses from the NCEP FTP" # url for GDAS data -set gdas_ftp = https://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gdas.${ccyymmdd}/${hh}/atmos +#set gdas_ftp = https://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gdas.${ccyymmdd}/${hh}/atmos +set gdas_ftp = https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gdas.${ccyymmdd}/${hh}/atmos set gdasAnaInfix = (atm sfc sfluxgrb) foreach anaInfix ($gdasAnaInfix) diff --git a/bin/GetGFSAnalysisFromFTP.csh b/bin/GetGFSAnalysisFromFTP.csh index fc3146d9..795d85a2 100755 --- a/bin/GetGFSAnalysisFromFTP.csh +++ b/bin/GetGFSAnalysisFromFTP.csh @@ -43,7 +43,8 @@ set hh = `echo ${thisValidDate} | cut -c 9-10` set res = 0p25 set fhour = 000 # url for GFS data -set gfs_ftp = https://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs.${ccyymmdd}/${hh}/atmos +#set gfs_ftp = https://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs.${ccyymmdd}/${hh}/atmos +set gfs_ftp = https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.${ccyymmdd}/${hh}/atmos set gribFile = gfs.t${hh}z.pgrb2.${res}.f${fhour} set WorkDir = ${ExperimentDirectory}/`echo "$ArgWorkDir" \ diff --git a/bin/GetGFSAnalysisFromRDA.csh b/bin/GetGFSAnalysisFromRDA.csh index 6a7b386d..9f541031 100755 --- a/bin/GetGFSAnalysisFromRDA.csh +++ b/bin/GetGFSAnalysisFromRDA.csh @@ -71,7 +71,7 @@ rm -rf GRIBFILE.* echo "Getting GFS analysis from RDA" # RDA GFS forecasts directory -set GFSgribdirRDA = /glade/campaign/collections/rda/data/ds084.1 +set GFSgribdirRDA = /glade/campaign/collections/rda/data/d084001 if ( ! -e ${GFSgribdirRDA}/${gribFile} ) then set preVyymmdd = `echo ${prevValidDate} | cut -c 1-8` diff --git a/bin/GetObs.csh b/bin/GetObs.csh index c2c19cf1..98c57b68 100755 --- a/bin/GetObs.csh +++ b/bin/GetObs.csh @@ -54,9 +54,9 @@ cd ${self_WorkDir} # ================================================================================================ set dataRoot = /glade/campaign/collections -set defaultBUFRDirectory = $dataRoot//rda/data/ds735.0 -set satwndBUFRDirectory = $dataRoot/rda/data/ds351.0 -set PrepBUFRDirectory = $dataRoot/rda/data/ds337.0 +set defaultBUFRDirectory = $dataRoot/rda/data/d735000 +set satwndBUFRDirectory = $dataRoot/rda/data/d351000 +set PrepBUFRDirectory = $dataRoot/rda/data/d337000 foreach inst ( ${convertToIODAObservations} ) if ( "${observations__resource}" == "GladeRDAOnline" ) then @@ -68,13 +68,6 @@ foreach inst ( ${convertToIODAObservations} ) echo "Source file: ${satwndBUFRDirectory}/bufr/${ccyy}/${THIS_FILE}" cp -p ${satwndBUFRDirectory}/bufr/${ccyy}/${THIS_FILE} . endif - # link the GDAS observation error table - if ( -e ${GDASObsErrtable} ) then - ln -sf ${GDASObsErrtable} obs_errtable - else - echo "ERROR: ${GDASObsErrtable} does NOT exist" > ./FAIL - exit 1 - endif # for prepbufr observations else if ( ${inst} == prepbufr ) then setenv THIS_FILE prepbufr.gdas.${ccyymmdd}.t${hh}z.nr.48h @@ -88,14 +81,6 @@ foreach inst ( ${convertToIODAObservations} ) cp -p ${PrepBUFRDirectory}/prepnr/${ccyy}/${THIS_FILE} . endif endif - # use obs errors embedded in prepbufr file - if ( -e obs_errtable ) then - rm -f obs_errtable - endif - # use external obs error table - #if ( -e ${GDASObsErrtable} ) then - # ln -sf ${GDASObsErrtable} obs_errtable - #endif # for all other observations else # set the specific file to be extracted from the tar file @@ -155,7 +140,8 @@ foreach inst ( ${convertToIODAObservations} ) else if ( "${observations__resource}" == "NCEPFTPOnline" ) then echo "Getting ${inst} from the NCEP FTP" # url for GDAS data - set gdas_ftp = https://ftpprd.ncep.noaa.gov/data/nccf/com/obsproc/prod/gdas.${ccyymmdd} + #set gdas_ftp = https://ftpprd.ncep.noaa.gov/data/nccf/com/obsproc/prod/gdas.${ccyymmdd} + set gdas_ftp = https://nomads.ncep.noaa.gov/pub/data/nccf/com/obsproc/prod/gdas.${ccyymmdd} # set name for the observation type if ( ${inst} == prepbufr ) then set THIS_FILE = gdas.t${hh}z.${inst}.nr diff --git a/bin/ObsToIODA.csh b/bin/ObsToIODA.csh index 11a13e59..92bf59be 100755 --- a/bin/ObsToIODA.csh +++ b/bin/ObsToIODA.csh @@ -5,7 +5,7 @@ # This software is licensed under the terms of the Apache Licence Version 2.0 # which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. -#Convert CISL RDA archived NCEP BUFR files to IODA-v2 format based on Jamie Bresch (NCAR/MMM) script rda_obs2ioda.csh +#Convert CISL RDA archived NCEP BUFR files to IODA-v3 format based on Jamie Bresch (NCAR/MMM) script rda_obs2ioda.csh # Process arguments # ================= @@ -79,7 +79,7 @@ foreach gdasfile ( *"gdas."* ) if ( ${gdasfile} =~ *"cris"* && ${ccyy} >= '2021' ) then ln -sf ${CRTMTABLES}/cris-fsr431_npp.SpcCoeff.bin ./cris_npp.SpcCoeff.bin ln -sf ${CRTMTABLES}/cris-fsr431_n20.SpcCoeff.bin ./cris_n20.SpcCoeff.bin - #ln -sf ${CRTMTABLES}/cris-fsr431_n21.SpcCoeff.bin ./cris_n21.SpcCoeff.bin + ln -sf ${CRTMTABLES}/cris-fsr431_n21.SpcCoeff.bin ./cris_n21.SpcCoeff.bin else if ( ${gdasfile} =~ *"cris"* && ${ccyy} < '2021' ) then ln -sf ${CRTMTABLES}/cris399_npp.SpcCoeff.bin ./cris_npp.SpcCoeff.bin ln -sf ${CRTMTABLES}/cris399_n20.SpcCoeff.bin ./cris_n20.SpcCoeff.bin @@ -89,7 +89,7 @@ foreach gdasfile ( *"gdas."* ) ln -sf ${CRTMTABLES}/iasi616_metop-c.SpcCoeff.bin ./iasi_metop-c.SpcCoeff.bin endif - # Run the obs2ioda executable to convert files from BUFR to IODA-v2 + # Run the obs2ioda executable to convert files from BUFR to IODA-v3 # ================== rm ./${obs2iodaEXE} ln -sfv ${obs2iodaBuildDir}/${obs2iodaEXE} ./ @@ -102,6 +102,10 @@ foreach gdasfile ( *"gdas."* ) #./${obs2iodaEXE} ${SPLIThourly} ${gdasfile} >&! $log ./${obs2iodaEXE} ${gdasfile} >&! $log else if ( ${gdasfile} =~ *"prepbufr"* ) then + # use obs errors embedded in prepbufr file + if ( -e obs_errtable ) then + rm -f obs_errtable + endif set inst = `echo "$gdasfile" | cut -d'.' -f1` # run obs2ioda for preburf with additional QC as in GSI ./${obs2iodaEXE} ${gdasfile} >&! $log @@ -114,6 +118,15 @@ foreach gdasfile ( *"gdas."* ) mv -f sfc_obs_${thisCycleDate}.h5 ../sfc_obs_${thisCycleDate}.h5 cd .. rm -rf sfc + else if ( ${gdasfile} =~ *"satwnd"* ) then + # link the GDAS observation error table + if ( -e ${GDASObsErrtable} ) then + ln -sf ${GDASObsErrtable} obs_errtable + else + echo "ERROR: ${GDASObsErrtable} does NOT exist" > ./FAIL + exit 1 + endif + ./${obs2iodaEXE} ${gdasfile} >&! $log else ./${obs2iodaEXE} ${gdasfile} >&! $log endif @@ -122,7 +135,7 @@ foreach gdasfile ( *"gdas."* ) # ============ grep "all done!" $log if ( $status != 0 ) then - echo "$0 (ERROR): Pre-processing observations to IODA-v2 failed" > ./FAIL-converter_${inst} + echo "$0 (ERROR): Pre-processing observations to IODA-v3 failed" > ./FAIL-converter_${inst} exit 1 endif @@ -132,163 +145,33 @@ foreach gdasfile ( *"gdas."* ) end # gdasfile loop # need to change to mainScriptDir in order for environmentJEDI.csh to be sourced -cd ${mainScriptDir} -source config/environmentJEDI.csh -cd - - -# upgrade from IODA v1 to v2 (convert char to string for /MetaData/stationIdentification & /MetaData/variable_names) - -set V1toV2 = ( \ - aircraft \ - satwind \ - satwnd \ - sfc \ - sondes \ - ascat \ - profiler \ -) - -if ( "${convertToIODAObservations}" =~ *"prepbufr"* || "${convertToIODAObservations}" =~ *"satwnd"* ) then - # Run the ioda-upgrade executable to upgrade to get string station_id and string variable_names - # ================== - - #foreach exec ($iodaUpgradeEXE1 $iodaUpgradeEXE2) - # rm ./${exec} - # ln -sfv ${iodaUpgradeBuildDir}/${exec} ./ - #end - rm -f $iodaUpgradeEXE1 - ln -sfv ${iodaUpgradeBuildDir}/${iodaUpgradeEXE1} ./ - - foreach ty ( ${V1toV2} ) - echo 'begin ioda-upgrade-v1-to-v2 ' $ty - if ( -f ${ty}_obs_${thisValidDate}.h5 ) then - set ty_obs = ${ty}_obs_${thisValidDate}.h5 - set ty_obs_base = `echo "$ty_obs" | cut -d'.' -f1` - - set log = logs/log-upgradeV1-to-V2_${ty} - rm $log - - ./${iodaUpgradeEXE1} ${ty_obs} ${ty_obs_base}_tmp.h5 >&! $log - rm -f ${ty_obs} - mv ${ty_obs_base}_tmp.h5 ${ty_obs} - - # Check status - # ============ - grep "Success!" $log - if ( $status != 0 ) then - echo "$0 (ERROR): ${exec} failed for $ty" > ./FAIL-upgradeV1-to-V2_${ty} - exit 1 - endif - endif - end +#cd ${mainScriptDir} +#source config/environmentJEDI.csh +#cd - -endif +if ( "${convertToIODAObservations}" =~ *"cris"* ) then -# upgrade for IODA v2 to v3 - -set V2toV3 = ( $V1toV2 \ - amsua_n15 \ - amsua_n18 \ - amsua_n19 \ - amsua_aqua \ - amsua_metop-a \ - amsua_metop-b \ - amsua_metop-c \ - gnssro \ - mhs_n18 \ - mhs_n19 \ - mhs_metop-a \ - mhs_metop-b \ - mhs_metop-c \ - iasi_metop-a \ - iasi_metop-b \ - iasi_metop-c \ +# Name update +set NameUpdate = ( \ cris_npp \ cris_n20 \ - #cris_n21 \ + cris_n21 \ ) -set iodaUpgradeV3Config = ${ConfigDir}/jedi/obsProc/ObsSpaceV2-to-V3.yaml -rm -f $iodaUpgradeEXE2 -ln -sfv ${iodaUpgradeBuildDir}/${iodaUpgradeEXE2} ./ - -foreach ty ( ${V2toV3} ) - echo 'begin ioda-upgrade-v2-to-v3 ' $ty +foreach ty ( ${NameUpdate} ) + echo 'begin NameUpdate' $ty if ( -f ${ty}_obs_${thisValidDate}.h5 ) then - - set ty_obs = ${ty}_obs_${thisValidDate}.h5 - set ty_obs_base = `echo "$ty_obs" | cut -d'.' -f1` - - set log = logs/log-upgradeV2-to-V3_${ty} - rm $log - - ./${iodaUpgradeEXE2} ${ty_obs} ${ty_obs_base}_tmp.h5 $iodaUpgradeV3Config >&! $log - rm -f ${ty_obs} - mv ${ty_obs_base}_tmp.h5 $ty_obs - - # Check status - # ============ - grep "Success!" $log - if ( $status != 0 ) then - echo "$0 (ERROR): ${exec} failed for $ty" > ./FAIL-upgradeV2-to-V3_${ty} - exit 1 - endif - - endif -end - -# upgrade for sensorScanPosition - -set ScanPositionUpdate = ( \ - amsua_n15 \ - amsua_n18 \ - amsua_n19 \ - amsua_aqua \ - amsua_metop-a \ - amsua_metop-b \ - amsua_metop-c \ - mhs_n18 \ - mhs_n19 \ - mhs_metop-a \ - mhs_metop-b \ - mhs_metop-c \ - iasi_metop-a \ - iasi_metop-b \ - iasi_metop-c \ - cris_npp \ - cris_n20 \ - #cris_n21 \ -) - -ln -fs ${pyDir}/update_sensorScanPosition.py . -ln -fs ${pyDir}/fix_float2int.py . - -foreach ty ( ${ScanPositionUpdate} ) - echo 'begin ScanPositionUpdate' $ty - - if ( -f ${ty}_obs_${thisValidDate}.h5 ) then - - set ty_obs = ${ty}_obs_${thisValidDate}.h5 - setenv fname ${ty_obs} - - set log = logs/log-update_sensorScanPosition_${ty} - rm $log - - python update_sensorScanPosition.py - - if ( ${ty} =~ *"cris"* && ${ccyy} >= 2021 ) then + #if ( ${ty} =~ *"cris"* && ${ccyy} >= 2021 ) then + if ( ${ccyy} >= 2021 ) then if ( ${ty} == "cris_npp" ) set tyy = "cris-fsr_npp" if ( ${ty} == "cris_n20" ) set tyy = "cris-fsr_n20" - #if ( ${ty} == "cris_n21" ) set tyy = "cris-fsr_n21" - mv -f ${ty_obs}.modified ${tyy}_obs_${thisValidDate}.h5 - else - mv -f ${ty_obs}.modified ${ty_obs} + if ( ${ty} == "cris_n21" ) set tyy = "cris-fsr_n21" + mv -f ${ty}_obs_${thisValidDate}.h5 ${tyy}_obs_${thisValidDate}.h5 endif - endif - - echo 'end of ScanPositionUpdate' $ty + echo 'end of NameUpdate' $ty end +endif date diff --git a/bin/PrepJEDI.csh b/bin/PrepJEDI.csh index c90914be..f5c0059d 100755 --- a/bin/PrepJEDI.csh +++ b/bin/PrepJEDI.csh @@ -536,6 +536,7 @@ if ( $status == 0 ) then end foreach hydro ($MPASHydroIncrementVariables) set AnalysisVariables = ($AnalysisVariables $hydro) + #set bumpCovControlVariables = ($bumpCovControlVariables $hydro) end endif @@ -659,22 +660,25 @@ EOF rm ${thisSEDF} set prevYAML = $thisYAML - # Analysis directory # ================== sed -i 's@{{anStatePrefix}}@'${ANFilePrefix}'@g' $prevYAML sed -i 's@{{anStateDir}}@'${WorkDir}'/'${analysisSubDir}'@g' $prevYAML - # Hybrid Jb weights # ================= - if ( "$DAType" == "3dhybrid" || "$DAType" == "4dhybrid" ) then + if ( "$DAType" =~ *"hybrid"* ) then sed -i 's@{{staticCovarianceWeight}}@'${staticCovarianceWeight}'@' $prevYAML sed -i 's@{{ensembleCovarianceWeight}}@'${ensembleCovarianceWeight}'@' $prevYAML - endif - - if ( "$DAType" == "3dhybrid-allsky" ) then - sed -i 's@{{hybridCoefficientsDir}}@'${hybridCoefficientsDir}'@' $prevYAML + sed -i 's@{{hybridEnsembleWeightFile}}@'${hybridEnsembleWeightFile}'@' $prevYAML + sed -i 's@{{hybridStaticWeightFile}}@'${hybridStaticWeightFile}'@' $prevYAML + if ( ${hybridBECWeightFromFile} == "True" ) then + sed -i 's@{{staticBECWeight}}@*staticWeightFromFile@' $prevYAML + sed -i 's@{{ensembleBECWeight}}@*ensembleWeightFromFile@' $prevYAML + else + sed -i 's@{{staticBECWeight}}@*staticWeightFromValue@' $prevYAML + sed -i 's@{{ensembleBECWeight}}@*ensembleWeightFromValue@' $prevYAML + endif endif # Static Jb term @@ -693,12 +697,23 @@ EOF # end # endif set VarSub = "" + set VarSub3D = "" + set VarSub2D = "" foreach var ($Variables) set VarSub = "$VarSub$var," + if ( $var == "surface_pressure" ) then + set VarSub2D = "$VarSub2D$var," + else + set VarSub3D = "$VarSub3D$var," + endif end # remove trailing comma set VarSub = `echo "$VarSub" | sed 's/.$//'` + set VarSub2D = `echo "$VarSub2D" | sed 's/.$//'` + set VarSub3D = `echo "$VarSub3D" | sed 's/.$//'` sed -i 's@{{bumpCovControlVariables}}@'$VarSub'@' $prevYAML + sed -i 's@{{bump3dControlVariables}}@'${VarSub3D}'@' $prevYAML + sed -i 's@{{bump2dControlVariables}}@'${VarSub2D}'@' $prevYAML # substitute bumpCov* file descriptors sed -i 's@{{bumpCovPrefix}}@'${bumpCovPrefix}'@' $prevYAML @@ -1095,6 +1110,7 @@ if ("$ArgAppType" == variational) then # use localInvariantFieldsFileInner as the TemplateFieldsFileInner # NOTE: not perfect for EDA if invariant fields differ between members, # but dual-res EDA not working yet anyway + #ln -sfv ${InitFieldsDirInner}/${InitFieldsFileInner} $tFile cp -v ${InitFieldsDirInner}/${InitFieldsFileInner} $tFile if ( "$DAType" == "4denvar" || "$DAType" == "4dhybrid" ) then @@ -1102,6 +1118,7 @@ if ("$ArgAppType" == variational) then foreach bgFile (`ls -d ${bg}/*.nc`) set temp_file = `echo $bgFile | sed 's:.*/::'` set bgFileDate = `echo ${temp_file} | cut -c 4-22` + #ln -sfv ${InitFieldsDirInner}/${InitFieldsFileInner} templateFields.${nCellsInner}.${bgFileDate}.nc${memSuffix} cp -v ${InitFieldsDirInner}/${InitFieldsFileInner} templateFields.${nCellsInner}.${bgFileDate}.nc${memSuffix} end set bgFile = ${bg}/${BGFilePrefix}.$thisMPASFileDate.nc @@ -1135,6 +1152,7 @@ if ("$ArgAppType" == variational) then rm $tFile # use localInvariantFieldsFileInner as the TemplateFieldsFileInner + #ln -sfv ${InitFieldsDirInner}/${InitFieldsFileInner} $tFile cp -v ${InitFieldsDirInner}/${InitFieldsFileInner} $tFile # modify xtime diff --git a/bin/Variational.csh b/bin/Variational.csh index dff8701e..ab889542 100755 --- a/bin/Variational.csh +++ b/bin/Variational.csh @@ -100,7 +100,11 @@ sed -i 's@{{ObsDataIn}}@ObsDataIn@' $myYAML sed -i 's@{{ObsDataOut}}@obsdataout: *ObsDataOut@' $myYAML sed -i 's@{{ObsOutSuffix}}@@' $myYAML -mpiexec ./${myEXE} $myYAML ./jedi.log >& jedi.log.all +if ( $?numProcessors && "$numProcessors" != "None" ) then + mpiexec -np ${numProcessors} ./${myEXE} $myYAML ./jedi.log >& jedi.log.all +else + mpiexec ./${myEXE} $myYAML ./jedi.log >& jedi.log.all +endif #WITH DEBUGGER #module load arm-forge/19.1 @@ -113,6 +117,8 @@ grep 'Run: Finishing oops.* with status = 0' jedi.log if ( $status != 0 ) then echo "ERROR in $0 : jedi application failed" > ./FAIL exit 1 +else: + rn jedi.log.0* endif # ================================================================================================ diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt index ef9dde04..e474353c 100644 --- a/build/CMakeLists.txt +++ b/build/CMakeLists.txt @@ -11,7 +11,7 @@ # Usage: cmake -DCMAKE_BUILD_TYPE=RelWithDebINfo -DCMAKE_VERBOSE_MAKEFILE=ON -DSNAPSHOT_DATE=2024-06-01 -DMPAS_DOUBLE_PRECISION=OFF cmake_minimum_required( VERSION 3.14 ) -project( mpas-bundle VERSION 3.0.0 LANGUAGES C CXX Fortran ) +project( mpas-bundle VERSION 3.0.2 LANGUAGES C CXX Fortran ) ## ECBuild integration include(GNUInstallDirs) @@ -67,10 +67,10 @@ find_package(ESMF 8.3.0 MODULE) set(MPAS_DOUBLE_PRECISION "ON" CACHE STRING "MPAS-Model: Use double precision 64-bit Floating point.") set(MPAS_CORES init_atmosphere atmosphere CACHE STRING "MPAS-Model: cores to build.") -ecbuild_bundle( PROJECT MPAS GIT "https://github.com/MPAS-Dev/MPAS-Model" TAG v8.2.1 ) +ecbuild_bundle( PROJECT MPAS GIT "https://github.com/MPAS-Dev/MPAS-Model" TAG v8.2.2 ) option(ENABLE_MPAS_JEDI_DATA "Obtain mpas-jedi test data from mpas-jedi-data repository (vs tarball)" ON) ecbuild_bundle( PROJECT mpas-jedi-data GIT "https://github.com/JCSDA-internal/mpas-jedi-data.git" TAG 12cdc56 ) -ecbuild_bundle( PROJECT mpas-jedi GIT "https://github.com/JCSDA-internal/mpas-jedi" TAG 3.0.0.mmm ) +ecbuild_bundle( PROJECT mpas-jedi GIT "https://github.com/JCSDA-internal/mpas-jedi" TAG 3.0.2.mmm ) # Set GIT_BRANCH_FUNC to MPAS-JEDI's current branch so that it can be used for mpas-jedi-data find_branch_name(REPO_DIR_NAME mpas-jedi) diff --git a/config/jedi/ObsPlugs/da/base/amsua-all_metop-a.yaml b/config/jedi/ObsPlugs/da/base/amsua-all_metop-a.yaml new file mode 100644 index 00000000..f63112cb --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua-all_metop-a.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: amsua-all_metop-a + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua-all_metop-a_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua-all_metop-a{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: amsua_metop-a + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua-all_metop-b.yaml b/config/jedi/ObsPlugs/da/base/amsua-all_metop-b.yaml new file mode 100644 index 00000000..8168ba30 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua-all_metop-b.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: amsua-all_metop-b + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua-all_metop-b_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua-all_metop-b{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: amsua_metop-b + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua-all_n15.yaml b/config/jedi/ObsPlugs/da/base/amsua-all_n15.yaml new file mode 100644 index 00000000..ac51dc81 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua-all_n15.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: amsua-all_n15 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua-all_n15_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua-all_n15{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: amsua_n15 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua-all_n18.yaml b/config/jedi/ObsPlugs/da/base/amsua-all_n18.yaml new file mode 100644 index 00000000..6e24a086 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua-all_n18.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: amsua-all_n18 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua-all_n18_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua-all_n18{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: amsua_n18 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua-all_n19.yaml b/config/jedi/ObsPlugs/da/base/amsua-all_n19.yaml new file mode 100644 index 00000000..f1c5199d --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua-all_n19.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: amsua-all_n19 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua-all_n19_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua-all_n19{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: amsua_n19 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua-cld_metop-c.yaml b/config/jedi/ObsPlugs/da/base/amsua-cld_metop-c.yaml new file mode 100644 index 00000000..c4b593df --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua-cld_metop-c.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: amsua-cld_metop-c + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua_metop-c_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua-cld_metop-c{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &amsua-cld_metop-c_channels 1-4,15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: amsua_metop-c + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua_aqua_rttov.yaml b/config/jedi/ObsPlugs/da/base/amsua_aqua_rttov.yaml new file mode 100644 index 00000000..2242d3dc --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua_aqua_rttov.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: amsua_aqua + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua_aqua_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua_aqua{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &amsua_aqua_channels 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred54L/ + SensorID: eos_2_amsua_o3 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua_metop-a_rttov.yaml b/config/jedi/ObsPlugs/da/base/amsua_metop-a_rttov.yaml new file mode 100644 index 00000000..1d052073 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua_metop-a_rttov.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: amsua_metop-a + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua_metop-a_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua_metop-a{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &amsua_metop-a_channels 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred54L/ + SensorID: metop_2_amsua_o3 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua_metop-b_rttov.yaml b/config/jedi/ObsPlugs/da/base/amsua_metop-b_rttov.yaml new file mode 100644 index 00000000..eb89de5d --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua_metop-b_rttov.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: amsua_metop-b + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua_metop-b_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua_metop-b{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &amsua_metop-b_channels 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred54L/ + SensorID: metop_1_amsua_o3 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua_n15_rttov.yaml b/config/jedi/ObsPlugs/da/base/amsua_n15_rttov.yaml new file mode 100644 index 00000000..571d072e --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua_n15_rttov.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: amsua_n15 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua_n15_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua_n15{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &amsua_n15_channels 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred54L/ + SensorID: noaa_15_amsua_o3 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua_n18_rttov.yaml b/config/jedi/ObsPlugs/da/base/amsua_n18_rttov.yaml new file mode 100644 index 00000000..7be109fa --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua_n18_rttov.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: amsua_n18 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua_n18_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua_n18{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &amsua_n18_channels 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred54L/ + SensorID: noaa_18_amsua_o3 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua_n18_rttov12.yaml b/config/jedi/ObsPlugs/da/base/amsua_n18_rttov12.yaml new file mode 100644 index 00000000..05de4b8a --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua_n18_rttov12.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: amsua_n18_rttov12 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua_n18_rttov12_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua_n18_rttov12{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &amsua_n18_channels 5-9 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/campaign/mmm/parc/liuz/rttov123/rtcoef_rttov12/rttov7pred54L/ + SensorID: noaa_18_amsua + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/amsua_n19_rttov.yaml b/config/jedi/ObsPlugs/da/base/amsua_n19_rttov.yaml new file mode 100644 index 00000000..dba62cfc --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/amsua_n19_rttov.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: amsua_n19 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/amsua_n19_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_amsua_n19{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &amsua_n19_channels 1-15 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred54L/ + SensorID: noaa_19_amsua_o3 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/atms_n20.yaml b/config/jedi/ObsPlugs/da/base/atms_n20.yaml new file mode 100644 index 00000000..01f8e198 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/atms_n20.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: atms_n20 + obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/atms_n20_obs_{{thisValidDate}}.h5 + obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_atms_n20.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &atms_n20_channels 1-22 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: atms_n20 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/atms_n21.yaml b/config/jedi/ObsPlugs/da/base/atms_n21.yaml new file mode 100644 index 00000000..355b16b0 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/atms_n21.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: atms_n21 + obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/atms_n21_obs_{{thisValidDate}}.h5 + obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_atms_n21.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &atms_n21_channels 1-22 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: atms_n21 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/atms_npp.yaml b/config/jedi/ObsPlugs/da/base/atms_npp.yaml new file mode 100644 index 00000000..1c110e96 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/atms_npp.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: atms_npp + obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/atms_npp_obs_{{thisValidDate}}.h5 + obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_atms_npp.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &atms_npp_channels 1-22 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: atms_npp + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/cris-fsr_n20.yaml b/config/jedi/ObsPlugs/da/base/cris-fsr_n20.yaml new file mode 100644 index 00000000..c769f045 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/cris-fsr_n20.yaml @@ -0,0 +1,39 @@ +- obs space: + <<: *ObsSpace + name: cris-fsr_n20 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/cris-fsr_n20_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_cris-fsr_n20{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &cris-fsr_n20_channels 83, 85, 87, 89, 111, 115, 117, 119, 121, 123, 125, 127, 129, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 63 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n20_channels 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 103, 105, 107, 109, 111, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 74 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n20_channels 24, 26, 28, 32, 37, 39, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 111, 113, 117, 119, 121, 123, 125, 127, 129, 131, 143, 145, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 84 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n20_channels 24, 26, 28, 32, 37, 39, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 100 channel from these 431 channels (where use_flag = 1) to reduce computational cost +# channels: &cris-fsr_n20_channels Channel = 19, 24, 26, 27, 28, 31, 32, 33, 37, 39, 42, 44, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 208, 211, 216, 224, 234, 236, 238, 239, 242, 246, 248, 255, 264, 266, 268, 275, 279, 283, 285, 291, 295, 301, 305, 311, 332, 342, 389, 400, 402, 404, 406, 410, 427, 439, 440, 441, 445, 449, 455, 458, 461, 464, 467, 470, 473, 475, 482, 486, 487, 490, 493, 496, 499, 501, 503, 505, 511, 513, 514, 518, 519, 520, 522, 529, 534, 563, 568, 575, 592, 594, 596, 598, 600, 602, 604, 611, 614, 616, 618, 620, 622, 626, 631, 638, 646, 648, 652, 659, 673, 675, 678, 684, 688, 694, 700, 707, 710, 713, 714, 718, 720, 722, 725, 728, 735, 742, 748, 753, 762, 780, 784, 798, 849, 860, 862, 866, 874, 882, 890, 898, 906, 907, 908, 914, 937, 972, 973, 978, 980, 981, 988, 995, 998, 1000, 1003, 1008, 1009, 1010, 1014, 1017, 1018, 1020, 1022, 1024, 1026, 1029, 1030, 1032, 1034, 1037, 1038, 1041, 1042, 1044, 1046, 1049, 1050, 1053, 1054, 1058, 1060, 1062, 1064, 1066, 1069, 1076, 1077, 1080, 1086, 1091, 1095, 1101, 1109, 1112, 1121, 1128, 1133, 1163, 1172, 1187, 1189, 1205, 1211, 1219, 1231, 1245, 1271, 1289, 1300, 1313, 1316, 1325, 1329, 1346, 1347, 1473, 1474, 1491, 1499, 1553, 1570, 1596, 1602, 1619, 1624, 1635, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 + + obs error: *ObsErrorDiagonal + #obs error: + # covariance model: cross variable covariances + ## input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.cris-fsr_n20.nc + # input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.cris-fsr_n20.nc + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: cris-fsr_n20 + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/cris-fsr_n21.yaml b/config/jedi/ObsPlugs/da/base/cris-fsr_n21.yaml new file mode 100644 index 00000000..8230feb2 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/cris-fsr_n21.yaml @@ -0,0 +1,39 @@ +- obs space: + <<: *ObsSpace + name: cris-fsr_n21 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/cris-fsr_n21_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_cris-fsr_n21{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &cris-fsr_n21_channels 83, 85, 87, 89, 111, 115, 117, 119, 121, 123, 125, 127, 129, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 63 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n21_channels 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 103, 105, 107, 109, 111, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 74 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n21_channels 24, 26, 28, 32, 37, 39, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 111, 113, 117, 119, 121, 123, 125, 127, 129, 131, 143, 145, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 84 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n21_channels 24, 26, 28, 32, 37, 39, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 100 channel from these 431 channels (where use_flag = 1) to reduce computational cost +# channels: &cris-fsr_n21_channels Channel = 19, 24, 26, 27, 28, 31, 32, 33, 37, 39, 42, 44, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 208, 211, 216, 224, 234, 236, 238, 239, 242, 246, 248, 255, 264, 266, 268, 275, 279, 283, 285, 291, 295, 301, 305, 311, 332, 342, 389, 400, 402, 404, 406, 410, 427, 439, 440, 441, 445, 449, 455, 458, 461, 464, 467, 470, 473, 475, 482, 486, 487, 490, 493, 496, 499, 501, 503, 505, 511, 513, 514, 518, 519, 520, 522, 529, 534, 563, 568, 575, 592, 594, 596, 598, 600, 602, 604, 611, 614, 616, 618, 620, 622, 626, 631, 638, 646, 648, 652, 659, 673, 675, 678, 684, 688, 694, 700, 707, 710, 713, 714, 718, 720, 722, 725, 728, 735, 742, 748, 753, 762, 780, 784, 798, 849, 860, 862, 866, 874, 882, 890, 898, 906, 907, 908, 914, 937, 972, 973, 978, 980, 981, 988, 995, 998, 1000, 1003, 1008, 1009, 1010, 1014, 1017, 1018, 1020, 1022, 1024, 1026, 1029, 1030, 1032, 1034, 1037, 1038, 1041, 1042, 1044, 1046, 1049, 1050, 1053, 1054, 1058, 1060, 1062, 1064, 1066, 1069, 1076, 1077, 1080, 1086, 1091, 1095, 1101, 1109, 1112, 1121, 1128, 1133, 1163, 1172, 1187, 1189, 1205, 1211, 1219, 1231, 1245, 1271, 1289, 1300, 1313, 1316, 1325, 1329, 1346, 1347, 1473, 1474, 1491, 1499, 1553, 1570, 1596, 1602, 1619, 1624, 1635, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 + + obs error: *ObsErrorDiagonal + #obs error: + # covariance model: cross variable covariances + ## input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.cris-fsr_n21.nc + # input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.cris-fsr_n21.nc + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: cris-fsr_n21 + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/cris-fsr_npp.yaml b/config/jedi/ObsPlugs/da/base/cris-fsr_npp.yaml new file mode 100644 index 00000000..2f403c08 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/cris-fsr_npp.yaml @@ -0,0 +1,34 @@ +- obs space: + <<: *ObsSpace + name: cris-fsr_npp + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/cris-fsr_npp_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_cris-fsr_npp{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &cris-fsr_npp_channels 83, 85, 87, 89, 111, 115, 117, 119, 121, 123, 125, 127, 129, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713 +# using a subset of 55 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_npp_channels 24, 26, 28, 32, 37, 39, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713 +# using a subset of 92 channel from these 431 channels (where use_flag = 1) to reduce computational cost +# channels: &cris-fsr_npp_channels Channel = 19, 24, 26, 27, 28, 31, 32, 33, 37, 39, 42, 44, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 208, 211, 216, 224, 234, 236, 238, 239, 242, 246, 248, 255, 264, 266, 268, 275, 279, 283, 285, 291, 295, 301, 305, 311, 332, 342, 389, 400, 402, 404, 406, 410, 427, 439, 440, 441, 445, 449, 455, 458, 461, 464, 467, 470, 473, 475, 482, 486, 487, 490, 493, 496, 499, 501, 503, 505, 511, 513, 514, 518, 519, 520, 522, 529, 534, 563, 568, 575, 592, 594, 596, 598, 600, 602, 604, 611, 614, 616, 618, 620, 622, 626, 631, 638, 646, 648, 652, 659, 673, 675, 678, 684, 688, 694, 700, 707, 710, 713, 714, 718, 720, 722, 725, 728, 735, 742, 748, 753, 762, 780, 784, 798, 849, 860, 862, 866, 874, 882, 890, 898, 906, 907, 908, 914, 937, 972, 973, 978, 980, 981, 988, 995, 998, 1000, 1003, 1008, 1009, 1010, 1014, 1017, 1018, 1020, 1022, 1024, 1026, 1029, 1030, 1032, 1034, 1037, 1038, 1041, 1042, 1044, 1046, 1049, 1050, 1053, 1054, 1058, 1060, 1062, 1064, 1066, 1069, 1076, 1077, 1080, 1086, 1091, 1095, 1101, 1109, 1112, 1121, 1128, 1133, 1163, 1172, 1187, 1189, 1205, 1211, 1219, 1231, 1245, 1271, 1289, 1300, 1313, 1316, 1325, 1329, 1346, 1347, 1473, 1474, 1491, 1499, 1553, 1570, 1596, 1602, 1619, 1624, 1635, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 + + #obs error: *ObsErrorDiagonal + obs error: + covariance model: cross variable covariances + input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.cris-fsr_npp.nc + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: cris-fsr_npp + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/cris_n20.yaml b/config/jedi/ObsPlugs/da/base/cris_n20.yaml new file mode 100644 index 00000000..878b288d --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/cris_n20.yaml @@ -0,0 +1,30 @@ +- obs space: + <<: *ObsSpace + name: cris_n20 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/cris_n20_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_cris_n20{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &cris_n20_channels 67,73,75,79,81,83,85,87,89,93,95,99,102,104,107,111,116,120,123,125,130,133,136,138,143,145,147,151,153,155,157,159,161,163,165,168,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,334,338,342,349,352,361,378,390,404,427,447,464,482,501,529,710,713,743,880,890,900,921,924,927,945,991,994,1007,1015,1030,1094 +# using a subset of 89 channel from these 399 channels (where use_flag = 1) to reduce computational cost + #channels: &cris_n20_channels 27,28,31,33,37,49,51,53,59,61,63,65,67,69,71,73,75,79,81,83,85,87,89,93,95,99,102,104,107,111,113,116,120,123,125,130,133,136,138,143,145,147,151,153,155,157,159,161,163,165,168,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,334,338,342,349,352,361,378,390,404,427,447,464,482,501,529,710,713,743,880,890,900,921,994,1007,1015,1030,1094 +# using a subset of 100 channel from these 399 channels (where use_flag = 1) to reduce computational cost +# channels: &cris_n20_channels 27,28,31,32,33,37,49,51,53,59,61,63,64,65,67,69,71,73,75,79,80,81,83,85,87,88,89,93,95,96,99,101,102,104,106,107,111,113,116,120,123,124,125,126,130,132,133,136,137,138,142,143,144,145,147,148,150,151,153,154,155,157,158,159,160,161,162,163,164,165,166,168,170,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,333,334,338,340,341, 342,349,352,358,361,364,366,367,368,378,390,391,392,394,395,396,397,398,399,404,427,447,464,473,482,484,501,529,556,557,558,560,561,562,564,565,566,569,573,574,577,580,581,584,585,587,590,591,594,597,598,601,604,607,611,614,616,617,619,622,626,628,634,637,638,640,641,642,644,646,647,650,651,652,654,655,657,659,663,667,670,707,710,713,716,730,735,736,739,743,744,746,748,751,754,755,756,757,758,760,761,762,763,766,767,768,771,772,773,776,777,778,779,780,782,783,784,785,786,787,788,789,790,791,792,794,796,798,800,802,803,804,806,807,808,809,811,812,814,816,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,838,839,840,842,843,844,845,846,847,848,849,850,851,852,853,854,856,861,862,864,865,866,867,869,871,872,874,876,878,879,880,884,886,887,888,889,890,900,921,924,927,945,991,994,1007,1015,1030,1094,1106,1130,1132,1133,1135,1142,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1177,1178,1179,1180,1181,1187,1189,1190,1192,1193,1194,1196,1197,1198,1199,1200,1202,1203,1204,1206,1207,1208,1210,1212,1214,1215,1217,1218,1220,1222,1224,1226,1228,1229,1231,1232,1234,1235,1236,1237,1238,1239,1241,1242,1243,1244,1245,1247,1250,1270,1271,1282,1285,1288,1290,1293,1298,1301 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: cris_n20 + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/cris_npp.yaml b/config/jedi/ObsPlugs/da/base/cris_npp.yaml new file mode 100644 index 00000000..83def5d2 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/cris_npp.yaml @@ -0,0 +1,32 @@ +- obs space: + <<: *ObsSpace + name: cris_npp + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/cris_npp_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_cris_npp{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &cris_npp_channels 67,73,75,79,81,83,85,87,89,93,95,99,102,104,107,111,116,120,123,125,130,133,136,138,143,145,147,151,153,155,157,159,161,163,165,168,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,334,338,342,349,352,361,378,390,404,427,447,464,482,501,529,710,713,743,880,890,945,994,1007,1015,1030,1094 +# using a subset of 84 channel from these 399 channels (where use_flag = 1) to reduce computational cost + #channels: &cris_npp_channels 67,73,75,79,81,83,85,87,89,93,95,99,102,104,107,111,116,120,123,125,130,133,136,138,143,145,147,151,153,155,157,159,161,163,165,168,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,334,338,342,349,352,361,378,390,404,427,447,464,482,501,529,710,713,743,880,890,900,921,924,927,945,991,994,1007,1015,1030,1094 +# using a subset of 89 channel from these 399 channels (where use_flag = 1) to reduce computational cost + #channels: &cris_npp_channels 27,28,31,33,37,49,51,53,59,61,63,65,67,69,71,73,75,79,81,83,85,87,89,93,95,99,102,104,107,111,113,116,120,123,125,130,133,136,138,143,145,147,151,153,155,157,159,161,163,165,168,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,334,338,342,349,352,361,378,390,404,427,447,464,482,501,529,710,713,743,880,890,900,921,994,1007,1015,1030,1094 +# using a subset of 100 channel from these 399 channels (where use_flag = 1) to reduce computational cost +# channels: &cris_npp_channels 27,28,31,32,33,37,49,51,53,59,61,63,64,65,67,69,71,73,75,79,80,81,83,85,87,88,89,93,95,96,99,101,102,104,106,107,111,113,116,120,123,124,125,126,130,132,133,136,137,138,142,143,144,145,147,148,150,151,153,154,155,157,158,159,160,161,162,163,164,165,166,168,170,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,333,334,338,340,341, 342,349,352,358,361,364,366,367,368,378,390,391,392,394,395,396,397,398,399,404,427,447,464,473,482,484,501,529,556,557,558,560,561,562,564,565,566,569,573,574,577,580,581,584,585,587,590,591,594,597,598,601,604,607,611,614,616,617,619,622,626,628,634,637,638,640,641,642,644,646,647,650,651,652,654,655,657,659,663,667,670,707,710,713,716,730,735,736,739,743,744,746,748,751,754,755,756,757,758,760,761,762,763,766,767,768,771,772,773,776,777,778,779,780,782,783,784,785,786,787,788,789,790,791,792,794,796,798,800,802,803,804,806,807,808,809,811,812,814,816,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,838,839,840,842,843,844,845,846,847,848,849,850,851,852,853,854,856,861,862,864,865,866,867,869,871,872,874,876,878,879,880,884,886,887,888,889,890,900,921,924,927,945,991,994,1007,1015,1030,1094,1106,1130,1132,1133,1135,1142,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1177,1178,1179,1180,1181,1187,1189,1190,1192,1193,1194,1196,1197,1198,1199,1200,1202,1203,1204,1206,1207,1208,1210,1212,1214,1215,1217,1218,1220,1222,1224,1226,1228,1229,1231,1232,1234,1235,1236,1237,1238,1239,1241,1242,1243,1244,1245,1247,1250,1270,1271,1282,1285,1288,1290,1293,1298,1301 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: cris_npp + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/iasi_metop-a.yaml b/config/jedi/ObsPlugs/da/base/iasi_metop-a.yaml index a9801b39..d0e2266c 100644 --- a/config/jedi/ObsPlugs/da/base/iasi_metop-a.yaml +++ b/config/jedi/ObsPlugs/da/base/iasi_metop-a.yaml @@ -13,12 +13,16 @@ <<: *{{ObsDataIn}} {{ObsDataOut}} simulated variables: [brightnessTemperature] - channels: &iasi_metop-a_channels 260,262,265,267,275,282,294,296,299,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 + channels: &iasi_metop-a_channels 260,262,265,267,275,282,294,296,299,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,559,2019,2119,2213,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 # using a subset of 88 channel from these 616 channels (where use_flag = 1) to reduce computational cost # channels: &iasi_metop-a_channels 16,38,49,51,55,57,59,61,63,66,70,72,74,79,81,83,85,87,104,106,109,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,151,154,157,159,161,163,167,170,173,176,180,185,187,193,199,205,207,210,212,214,217,219,222,224,226,230,232,236,239,243,246,249,252,254,260,262,265,267,275,282,294,296,299,303,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1479,1509,1513,1521,1536,1574,1579,1585,1587,1626,1639,1643,1652,1658,1671,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 # using a subset of 174 channel from these 616 channels (where use_flag = 1) to reduce computational cost #16,29,32,35,38,41,44,47,49,50,51,53,55,56,57,59,61,62,63,66,68,70,72,74,76,78,79,81,82,83,84,85,86,87,89,92,93,95,97,99,101,103,104,106,109,110,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,150,151,154,157,159,160,161,163,167,170,173,176,179,180,185,187,191,193,197,199,200,202,203,205,207,210,212,213,214,217,218,219,222,224,225,226,228,230,231,232,236,237,239,243,246,249,252,254,259,260,262,265,267,269,275,279,282,285,294,296,299,300,303,306,309,313,320,323,326,327,329,332,335,345,347,350,354,356,360,363,366,371,372,373,375,377,379,381,383,386,389,398,401,404,405,407,408,410,411,414,416,418,423,426,428,432,433,434,439,442,445,450,457,459,472,477,483,509,515,546,552,559,566,571,573,578,584,594,625,646,662,668,705,739,756,797,867,906,921,1027,1046,1090,1098,1121,1133,1173,1191,1194,1222,1271,1283,1338,1409,1414,1420,1424,1427,1430,1434,1440,1442,1445,1450,1454,1460,1463,1469,1474,1479,1483,1487,1494,1496,1502,1505,1509,1510,1513,1518,1521,1526,1529,1532,1536,1537,1541,1545,1548,1553,1560,1568,1574,1579,1583,1585,1587,1606,1626,1639,1643,1652,1658,1659,1666,1671,1675,1681,1694,1697,1710,1786,1791,1805,1839,1884,1913,1946,1947,1991,2019,2094,2119,2213,2239,2271,2289,2321,2333,2346,2349,2352,2359,2367,2374,2398,2426,2562,2701,2741,2745,2760,2819,2889,2907,2910,2919,2921,2939,2944,2945,2948,2951,2958,2971,2977,2985,2988,2990,2991,2993,3002,3008,3014,3027,3029,3030,3036,3047,3049,3052,3053,3055,3058,3064,3069,3087,3093,3098,3105,3107,3110,3116,3127,3129,3136,3146,3151,3160,3165,3168,3175,3178,3189,3207,3228,3244,3248,3252,3256,3263,3281,3295,3303,3309,3312,3322,3326,3354,3366,3375,3378,3411,3416,3432,3438,3440,3442,3444,3446,3448,3450,3452,3454,3458,3467,3476,3484,3491,3497,3499,3504,3506,3509,3518,3527,3555,3575,3577,3580,3582,3586,3589,3599,3610,3626,3638,3646,3653,3658,3661,3673,3689,3700,3710,3726,3763,3814,3841,3888,4032,4059,4068,4082,4095,4160,4234,4257,4411,4498,4520,4552,4567,4608,4646,4698,4808,4849,4920,4939,4947,4967,4991,4996,5015,5028,5056,5128,5130,5144,5170,5178,5183,5188,5191,5368,5371,5379,5381,5383,5397,5399,5401,5403,5405,5446,5455,5472,5480,5483,5485,5492,5497,5502,5507,5509,5517,5528,5558,5697,5714,5749,5766,5785,5798,5799,5801,5817,5833,5834,5836,5849,5851,5852,5865,5869,5881,5884,5897,5900,5916,5932,5948,5963,5968,5978,5988,5992,5994,5997,6003,6008,6023,6026,6039,6053,6056,6067,6071,6082,6085,6098,6112,6126,6135,6140,6149,6154,6158,6161,6168,6174,6182,6187,6205,6209,6213,6317,6339,6342,6366,6381,6391,6489,6962,6966,6970,6975,6977,6982,6985,6987,6989,6991,6993,6995,6997,6999,7000,7004,7008,7013,7016,7021,7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 - obs error: *ObsErrorDiagonal + #obs error: *ObsErrorDiagonal + obs error: + covariance model: cross variable covariances + #input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.iasi_metop-a.nc + input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.iasi_metop-a.nc <<: *horizObsLoc obs operator: <<: *clearCRTMObsOperator diff --git a/config/jedi/ObsPlugs/da/base/iasi_metop-a.yaml_66ch b/config/jedi/ObsPlugs/da/base/iasi_metop-a.yaml_66ch new file mode 100644 index 00000000..d567acfb --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/iasi_metop-a.yaml_66ch @@ -0,0 +1,34 @@ +- obs space: + <<: *ObsSpace + name: iasi_metop-a + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/iasi_metop-a_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_iasi_metop-a{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &iasi_metop-a_channels 260,262,265,267,275,282,294,296,299,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,552,559,906,1121,1786,2019,2119,2213,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# using a subset of 88 channel from these 616 channels (where use_flag = 1) to reduce computational cost +# channels: &iasi_metop-a_channels 16,38,49,51,55,57,59,61,63,66,70,72,74,79,81,83,85,87,104,106,109,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,151,154,157,159,161,163,167,170,173,176,180,185,187,193,199,205,207,210,212,214,217,219,222,224,226,230,232,236,239,243,246,249,252,254,260,262,265,267,275,282,294,296,299,303,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1479,1509,1513,1521,1536,1574,1579,1585,1587,1626,1639,1643,1652,1658,1671,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# using a subset of 174 channel from these 616 channels (where use_flag = 1) to reduce computational cost +#16,29,32,35,38,41,44,47,49,50,51,53,55,56,57,59,61,62,63,66,68,70,72,74,76,78,79,81,82,83,84,85,86,87,89,92,93,95,97,99,101,103,104,106,109,110,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,150,151,154,157,159,160,161,163,167,170,173,176,179,180,185,187,191,193,197,199,200,202,203,205,207,210,212,213,214,217,218,219,222,224,225,226,228,230,231,232,236,237,239,243,246,249,252,254,259,260,262,265,267,269,275,279,282,285,294,296,299,300,303,306,309,313,320,323,326,327,329,332,335,345,347,350,354,356,360,363,366,371,372,373,375,377,379,381,383,386,389,398,401,404,405,407,408,410,411,414,416,418,423,426,428,432,433,434,439,442,445,450,457,459,472,477,483,509,515,546,552,559,566,571,573,578,584,594,625,646,662,668,705,739,756,797,867,906,921,1027,1046,1090,1098,1121,1133,1173,1191,1194,1222,1271,1283,1338,1409,1414,1420,1424,1427,1430,1434,1440,1442,1445,1450,1454,1460,1463,1469,1474,1479,1483,1487,1494,1496,1502,1505,1509,1510,1513,1518,1521,1526,1529,1532,1536,1537,1541,1545,1548,1553,1560,1568,1574,1579,1583,1585,1587,1606,1626,1639,1643,1652,1658,1659,1666,1671,1675,1681,1694,1697,1710,1786,1791,1805,1839,1884,1913,1946,1947,1991,2019,2094,2119,2213,2239,2271,2289,2321,2333,2346,2349,2352,2359,2367,2374,2398,2426,2562,2701,2741,2745,2760,2819,2889,2907,2910,2919,2921,2939,2944,2945,2948,2951,2958,2971,2977,2985,2988,2990,2991,2993,3002,3008,3014,3027,3029,3030,3036,3047,3049,3052,3053,3055,3058,3064,3069,3087,3093,3098,3105,3107,3110,3116,3127,3129,3136,3146,3151,3160,3165,3168,3175,3178,3189,3207,3228,3244,3248,3252,3256,3263,3281,3295,3303,3309,3312,3322,3326,3354,3366,3375,3378,3411,3416,3432,3438,3440,3442,3444,3446,3448,3450,3452,3454,3458,3467,3476,3484,3491,3497,3499,3504,3506,3509,3518,3527,3555,3575,3577,3580,3582,3586,3589,3599,3610,3626,3638,3646,3653,3658,3661,3673,3689,3700,3710,3726,3763,3814,3841,3888,4032,4059,4068,4082,4095,4160,4234,4257,4411,4498,4520,4552,4567,4608,4646,4698,4808,4849,4920,4939,4947,4967,4991,4996,5015,5028,5056,5128,5130,5144,5170,5178,5183,5188,5191,5368,5371,5379,5381,5383,5397,5399,5401,5403,5405,5446,5455,5472,5480,5483,5485,5492,5497,5502,5507,5509,5517,5528,5558,5697,5714,5749,5766,5785,5798,5799,5801,5817,5833,5834,5836,5849,5851,5852,5865,5869,5881,5884,5897,5900,5916,5932,5948,5963,5968,5978,5988,5992,5994,5997,6003,6008,6023,6026,6039,6053,6056,6067,6071,6082,6085,6098,6112,6126,6135,6140,6149,6154,6158,6161,6168,6174,6182,6187,6205,6209,6213,6317,6339,6342,6366,6381,6391,6489,6962,6966,6970,6975,6977,6982,6985,6987,6989,6991,6993,6995,6997,6999,7000,7004,7008,7013,7016,7021,7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 + #obs error: *ObsErrorDiagonal + obs error: + covariance model: cross variable covariances + #input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.iasi_metop-a.nc + input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.iasi_metop-a.nc + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: iasi_metop-a + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/iasi_metop-a.yaml_88ch b/config/jedi/ObsPlugs/da/base/iasi_metop-a.yaml_88ch new file mode 100644 index 00000000..aa30a2eb --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/iasi_metop-a.yaml_88ch @@ -0,0 +1,34 @@ +- obs space: + <<: *ObsSpace + name: iasi_metop-a + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/iasi_metop-a_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_iasi_metop-a{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &iasi_metop-a_channels 260,262,265,267,275,282,294,296,299,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# using a subset of 88 channel from these 616 channels (where use_flag = 1) to reduce computational cost +# channels: &iasi_metop-a_channels 16,38,49,51,55,57,59,61,63,66,70,72,74,79,81,83,85,87,104,106,109,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,151,154,157,159,161,163,167,170,173,176,180,185,187,193,199,205,207,210,212,214,217,219,222,224,226,230,232,236,239,243,246,249,252,254,260,262,265,267,275,282,294,296,299,303,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1479,1509,1513,1521,1536,1574,1579,1585,1587,1626,1639,1643,1652,1658,1671,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# using a subset of 174 channel from these 616 channels (where use_flag = 1) to reduce computational cost +#16,29,32,35,38,41,44,47,49,50,51,53,55,56,57,59,61,62,63,66,68,70,72,74,76,78,79,81,82,83,84,85,86,87,89,92,93,95,97,99,101,103,104,106,109,110,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,150,151,154,157,159,160,161,163,167,170,173,176,179,180,185,187,191,193,197,199,200,202,203,205,207,210,212,213,214,217,218,219,222,224,225,226,228,230,231,232,236,237,239,243,246,249,252,254,259,260,262,265,267,269,275,279,282,285,294,296,299,300,303,306,309,313,320,323,326,327,329,332,335,345,347,350,354,356,360,363,366,371,372,373,375,377,379,381,383,386,389,398,401,404,405,407,408,410,411,414,416,418,423,426,428,432,433,434,439,442,445,450,457,459,472,477,483,509,515,546,552,559,566,571,573,578,584,594,625,646,662,668,705,739,756,797,867,906,921,1027,1046,1090,1098,1121,1133,1173,1191,1194,1222,1271,1283,1338,1409,1414,1420,1424,1427,1430,1434,1440,1442,1445,1450,1454,1460,1463,1469,1474,1479,1483,1487,1494,1496,1502,1505,1509,1510,1513,1518,1521,1526,1529,1532,1536,1537,1541,1545,1548,1553,1560,1568,1574,1579,1583,1585,1587,1606,1626,1639,1643,1652,1658,1659,1666,1671,1675,1681,1694,1697,1710,1786,1791,1805,1839,1884,1913,1946,1947,1991,2019,2094,2119,2213,2239,2271,2289,2321,2333,2346,2349,2352,2359,2367,2374,2398,2426,2562,2701,2741,2745,2760,2819,2889,2907,2910,2919,2921,2939,2944,2945,2948,2951,2958,2971,2977,2985,2988,2990,2991,2993,3002,3008,3014,3027,3029,3030,3036,3047,3049,3052,3053,3055,3058,3064,3069,3087,3093,3098,3105,3107,3110,3116,3127,3129,3136,3146,3151,3160,3165,3168,3175,3178,3189,3207,3228,3244,3248,3252,3256,3263,3281,3295,3303,3309,3312,3322,3326,3354,3366,3375,3378,3411,3416,3432,3438,3440,3442,3444,3446,3448,3450,3452,3454,3458,3467,3476,3484,3491,3497,3499,3504,3506,3509,3518,3527,3555,3575,3577,3580,3582,3586,3589,3599,3610,3626,3638,3646,3653,3658,3661,3673,3689,3700,3710,3726,3763,3814,3841,3888,4032,4059,4068,4082,4095,4160,4234,4257,4411,4498,4520,4552,4567,4608,4646,4698,4808,4849,4920,4939,4947,4967,4991,4996,5015,5028,5056,5128,5130,5144,5170,5178,5183,5188,5191,5368,5371,5379,5381,5383,5397,5399,5401,5403,5405,5446,5455,5472,5480,5483,5485,5492,5497,5502,5507,5509,5517,5528,5558,5697,5714,5749,5766,5785,5798,5799,5801,5817,5833,5834,5836,5849,5851,5852,5865,5869,5881,5884,5897,5900,5916,5932,5948,5963,5968,5978,5988,5992,5994,5997,6003,6008,6023,6026,6039,6053,6056,6067,6071,6082,6085,6098,6112,6126,6135,6140,6149,6154,6158,6161,6168,6174,6182,6187,6205,6209,6213,6317,6339,6342,6366,6381,6391,6489,6962,6966,6970,6975,6977,6982,6985,6987,6989,6991,6993,6995,6997,6999,7000,7004,7008,7013,7016,7021,7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 + #obs error: *ObsErrorDiagonal + obs error: + covariance model: cross variable covariances + #input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.iasi_metop-a.nc + input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.iasi_metop-a.nc + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: iasi_metop-a + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/iasi_metop-a_rttov.yaml b/config/jedi/ObsPlugs/da/base/iasi_metop-a_rttov.yaml new file mode 100644 index 00000000..94a55654 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/iasi_metop-a_rttov.yaml @@ -0,0 +1,33 @@ +- obs space: + <<: *ObsSpace + name: iasi_metop-a + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/iasi_metop-a_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_iasi_metop-a{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &iasi_metop-a_channels 260,262,265,267,275,282,294,296,299,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,552,559,906,1121,1786,2019,2119,2213,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# using a subset of 88 channel from these 616 channels (where use_flag = 1) to reduce computational cost +# channels: &iasi_metop-a_channels 16,38,49,51,55,57,59,61,63,66,70,72,74,79,81,83,85,87,104,106,109,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,151,154,157,159,161,163,167,170,173,176,180,185,187,193,199,205,207,210,212,214,217,219,222,224,226,230,232,236,239,243,246,249,252,254,260,262,265,267,275,282,294,296,299,303,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1479,1509,1513,1521,1536,1574,1579,1585,1587,1626,1639,1643,1652,1658,1671,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# using a subset of 174 channel from these 616 channels (where use_flag = 1) to reduce computational cost +#16,29,32,35,38,41,44,47,49,50,51,53,55,56,57,59,61,62,63,66,68,70,72,74,76,78,79,81,82,83,84,85,86,87,89,92,93,95,97,99,101,103,104,106,109,110,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,150,151,154,157,159,160,161,163,167,170,173,176,179,180,185,187,191,193,197,199,200,202,203,205,207,210,212,213,214,217,218,219,222,224,225,226,228,230,231,232,236,237,239,243,246,249,252,254,259,260,262,265,267,269,275,279,282,285,294,296,299,300,303,306,309,313,320,323,326,327,329,332,335,345,347,350,354,356,360,363,366,371,372,373,375,377,379,381,383,386,389,398,401,404,405,407,408,410,411,414,416,418,423,426,428,432,433,434,439,442,445,450,457,459,472,477,483,509,515,546,552,559,566,571,573,578,584,594,625,646,662,668,705,739,756,797,867,906,921,1027,1046,1090,1098,1121,1133,1173,1191,1194,1222,1271,1283,1338,1409,1414,1420,1424,1427,1430,1434,1440,1442,1445,1450,1454,1460,1463,1469,1474,1479,1483,1487,1494,1496,1502,1505,1509,1510,1513,1518,1521,1526,1529,1532,1536,1537,1541,1545,1548,1553,1560,1568,1574,1579,1583,1585,1587,1606,1626,1639,1643,1652,1658,1659,1666,1671,1675,1681,1694,1697,1710,1786,1791,1805,1839,1884,1913,1946,1947,1991,2019,2094,2119,2213,2239,2271,2289,2321,2333,2346,2349,2352,2359,2367,2374,2398,2426,2562,2701,2741,2745,2760,2819,2889,2907,2910,2919,2921,2939,2944,2945,2948,2951,2958,2971,2977,2985,2988,2990,2991,2993,3002,3008,3014,3027,3029,3030,3036,3047,3049,3052,3053,3055,3058,3064,3069,3087,3093,3098,3105,3107,3110,3116,3127,3129,3136,3146,3151,3160,3165,3168,3175,3178,3189,3207,3228,3244,3248,3252,3256,3263,3281,3295,3303,3309,3312,3322,3326,3354,3366,3375,3378,3411,3416,3432,3438,3440,3442,3444,3446,3448,3450,3452,3454,3458,3467,3476,3484,3491,3497,3499,3504,3506,3509,3518,3527,3555,3575,3577,3580,3582,3586,3589,3599,3610,3626,3638,3646,3653,3658,3661,3673,3689,3700,3710,3726,3763,3814,3841,3888,4032,4059,4068,4082,4095,4160,4234,4257,4411,4498,4520,4552,4567,4608,4646,4698,4808,4849,4920,4939,4947,4967,4991,4996,5015,5028,5056,5128,5130,5144,5170,5178,5183,5188,5191,5368,5371,5379,5381,5383,5397,5399,5401,5403,5405,5446,5455,5472,5480,5483,5485,5492,5497,5502,5507,5509,5517,5528,5558,5697,5714,5749,5766,5785,5798,5799,5801,5817,5833,5834,5836,5849,5851,5852,5865,5869,5881,5884,5897,5900,5916,5932,5948,5963,5968,5978,5988,5992,5994,5997,6003,6008,6023,6026,6039,6053,6056,6067,6071,6082,6085,6098,6112,6126,6135,6140,6149,6154,6158,6161,6168,6174,6182,6187,6205,6209,6213,6317,6339,6342,6366,6381,6391,6489,6962,6966,6970,6975,6977,6982,6985,6987,6989,6991,6993,6995,6997,6999,7000,7004,7008,7013,7016,7021,7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 + #obs error: *ObsErrorDiagonal + obs error: + covariance model: cross variable covariances + #input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.iasi_metop-a.nc + input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.iasi_metop-a.nc + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred101L/ + SensorID: metop_2_iasi_o3co2 + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/iasi_metop-b.yaml b/config/jedi/ObsPlugs/da/base/iasi_metop-b.yaml index 4f98b1ff..66f7953d 100644 --- a/config/jedi/ObsPlugs/da/base/iasi_metop-b.yaml +++ b/config/jedi/ObsPlugs/da/base/iasi_metop-b.yaml @@ -13,12 +13,25 @@ <<: *{{ObsDataIn}} {{ObsDataOut}} simulated variables: [brightnessTemperature] - channels: &iasi_metop-b_channels 260,262,265,267,275,282,294,296,299,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 + channels: &iasi_metop-b_channels 260,262,265,267,275,282,294,296,299,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,559,2019,2119,2213,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# channels: &iasi_metop-b_channels [260,262,265,267,275,282,294,296,299,306, +# 323,327,329,335,345,347,350,354,356,360, +# 366,371,373,375,377,379,381,383,386,389, +# 398,401,404,407,410,414,416,426,428,432, +# 434,439,445,457,552,559, +# 906, +# 1121,1786,2019, +# 2119,2213,2271,2321,2398,2701,2889,2958, +# 2993,3002,3049,3105,3110,5381,5399,5480] # using a subset of 88 channel from these 616 channels (where use_flag = 1) to reduce computational cost # channels: &iasi_metop-b_channels 16,38,49,51,55,57,59,61,63,66,70,72,74,79,81,83,85,87,104,106,109,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,151,154,157,159,161,163,167,170,173,176,180,185,187,193,199,205,207,210,212,214,217,219,222,224,226,230,232,236,239,243,246,249,252,254,260,262,265,267,275,282,294,296,299,303,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1479,1509,1513,1521,1536,1574,1579,1585,1587,1626,1639,1643,1652,1658,1671,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 # using a subset of 174 channel from these 616 channels (where use_flag = 1) to reduce computational cost #16,29,32,35,38,41,44,47,49,50,51,53,55,56,57,59,61,62,63,66,68,70,72,74,76,78,79,81,82,83,84,85,86,87,89,92,93,95,97,99,101,103,104,106,109,110,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,150,151,154,157,159,160,161,163,167,170,173,176,179,180,185,187,191,193,197,199,200,202,203,205,207,210,212,213,214,217,218,219,222,224,225,226,228,230,231,232,236,237,239,243,246,249,252,254,259,260,262,265,267,269,275,279,282,285,294,296,299,300,303,306,309,313,320,323,326,327,329,332,335,345,347,350,354,356,360,363,366,371,372,373,375,377,379,381,383,386,389,398,401,404,405,407,408,410,411,414,416,418,423,426,428,432,433,434,439,442,445,450,457,459,472,477,483,509,515,546,552,559,566,571,573,578,584,594,625,646,662,668,705,739,756,797,867,906,921,1027,1046,1090,1098,1121,1133,1173,1191,1194,1222,1271,1283,1338,1409,1414,1420,1424,1427,1430,1434,1440,1442,1445,1450,1454,1460,1463,1469,1474,1479,1483,1487,1494,1496,1502,1505,1509,1510,1513,1518,1521,1526,1529,1532,1536,1537,1541,1545,1548,1553,1560,1568,1574,1579,1583,1585,1587,1606,1626,1639,1643,1652,1658,1659,1666,1671,1675,1681,1694,1697,1710,1786,1791,1805,1839,1884,1913,1946,1947,1991,2019,2094,2119,2213,2239,2271,2289,2321,2333,2346,2349,2352,2359,2367,2374,2398,2426,2562,2701,2741,2745,2760,2819,2889,2907,2910,2919,2921,2939,2944,2945,2948,2951,2958,2971,2977,2985,2988,2990,2991,2993,3002,3008,3014,3027,3029,3030,3036,3047,3049,3052,3053,3055,3058,3064,3069,3087,3093,3098,3105,3107,3110,3116,3127,3129,3136,3146,3151,3160,3165,3168,3175,3178,3189,3207,3228,3244,3248,3252,3256,3263,3281,3295,3303,3309,3312,3322,3326,3354,3366,3375,3378,3411,3416,3432,3438,3440,3442,3444,3446,3448,3450,3452,3454,3458,3467,3476,3484,3491,3497,3499,3504,3506,3509,3518,3527,3555,3575,3577,3580,3582,3586,3589,3599,3610,3626,3638,3646,3653,3658,3661,3673,3689,3700,3710,3726,3763,3814,3841,3888,4032,4059,4068,4082,4095,4160,4234,4257,4411,4498,4520,4552,4567,4608,4646,4698,4808,4849,4920,4939,4947,4967,4991,4996,5015,5028,5056,5128,5130,5144,5170,5178,5183,5188,5191,5368,5371,5379,5381,5383,5397,5399,5401,5403,5405,5446,5455,5472,5480,5483,5485,5492,5497,5502,5507,5509,5517,5528,5558,5697,5714,5749,5766,5785,5798,5799,5801,5817,5833,5834,5836,5849,5851,5852,5865,5869,5881,5884,5897,5900,5916,5932,5948,5963,5968,5978,5988,5992,5994,5997,6003,6008,6023,6026,6039,6053,6056,6067,6071,6082,6085,6098,6112,6126,6135,6140,6149,6154,6158,6161,6168,6174,6182,6187,6205,6209,6213,6317,6339,6342,6366,6381,6391,6489,6962,6966,6970,6975,6977,6982,6985,6987,6989,6991,6993,6995,6997,6999,7000,7004,7008,7013,7016,7021,7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 - obs error: *ObsErrorDiagonal + #obs error: *ObsErrorDiagonal + obs error: + covariance model: cross variable covariances + #input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.iasi_metop-b.nc + input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.iasi_metop-b.nc <<: *horizObsLoc obs operator: <<: *clearCRTMObsOperator diff --git a/config/jedi/ObsPlugs/da/base/iasi_metop-b.yaml_66ch b/config/jedi/ObsPlugs/da/base/iasi_metop-b.yaml_66ch new file mode 100644 index 00000000..85837573 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/iasi_metop-b.yaml_66ch @@ -0,0 +1,43 @@ +- obs space: + <<: *ObsSpace + name: iasi_metop-b + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/iasi_metop-b_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_iasi_metop-b{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &iasi_metop-b_channels 260,262,265,267,275,282,294,296,299,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,552,559,906,1121,1786,2019,2119,2213,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# channels: &iasi_metop-b_channels [260,262,265,267,275,282,294,296,299,306, +# 323,327,329,335,345,347,350,354,356,360, +# 366,371,373,375,377,379,381,383,386,389, +# 398,401,404,407,410,414,416,426,428,432, +# 434,439,445,457,552,559, +# 906, +# 1121,1786,2019, +# 2119,2213,2271,2321,2398,2701,2889,2958, +# 2993,3002,3049,3105,3110,5381,5399,5480] +# using a subset of 88 channel from these 616 channels (where use_flag = 1) to reduce computational cost +# channels: &iasi_metop-b_channels 16,38,49,51,55,57,59,61,63,66,70,72,74,79,81,83,85,87,104,106,109,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,151,154,157,159,161,163,167,170,173,176,180,185,187,193,199,205,207,210,212,214,217,219,222,224,226,230,232,236,239,243,246,249,252,254,260,262,265,267,275,282,294,296,299,303,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1479,1509,1513,1521,1536,1574,1579,1585,1587,1626,1639,1643,1652,1658,1671,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# using a subset of 174 channel from these 616 channels (where use_flag = 1) to reduce computational cost +#16,29,32,35,38,41,44,47,49,50,51,53,55,56,57,59,61,62,63,66,68,70,72,74,76,78,79,81,82,83,84,85,86,87,89,92,93,95,97,99,101,103,104,106,109,110,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,150,151,154,157,159,160,161,163,167,170,173,176,179,180,185,187,191,193,197,199,200,202,203,205,207,210,212,213,214,217,218,219,222,224,225,226,228,230,231,232,236,237,239,243,246,249,252,254,259,260,262,265,267,269,275,279,282,285,294,296,299,300,303,306,309,313,320,323,326,327,329,332,335,345,347,350,354,356,360,363,366,371,372,373,375,377,379,381,383,386,389,398,401,404,405,407,408,410,411,414,416,418,423,426,428,432,433,434,439,442,445,450,457,459,472,477,483,509,515,546,552,559,566,571,573,578,584,594,625,646,662,668,705,739,756,797,867,906,921,1027,1046,1090,1098,1121,1133,1173,1191,1194,1222,1271,1283,1338,1409,1414,1420,1424,1427,1430,1434,1440,1442,1445,1450,1454,1460,1463,1469,1474,1479,1483,1487,1494,1496,1502,1505,1509,1510,1513,1518,1521,1526,1529,1532,1536,1537,1541,1545,1548,1553,1560,1568,1574,1579,1583,1585,1587,1606,1626,1639,1643,1652,1658,1659,1666,1671,1675,1681,1694,1697,1710,1786,1791,1805,1839,1884,1913,1946,1947,1991,2019,2094,2119,2213,2239,2271,2289,2321,2333,2346,2349,2352,2359,2367,2374,2398,2426,2562,2701,2741,2745,2760,2819,2889,2907,2910,2919,2921,2939,2944,2945,2948,2951,2958,2971,2977,2985,2988,2990,2991,2993,3002,3008,3014,3027,3029,3030,3036,3047,3049,3052,3053,3055,3058,3064,3069,3087,3093,3098,3105,3107,3110,3116,3127,3129,3136,3146,3151,3160,3165,3168,3175,3178,3189,3207,3228,3244,3248,3252,3256,3263,3281,3295,3303,3309,3312,3322,3326,3354,3366,3375,3378,3411,3416,3432,3438,3440,3442,3444,3446,3448,3450,3452,3454,3458,3467,3476,3484,3491,3497,3499,3504,3506,3509,3518,3527,3555,3575,3577,3580,3582,3586,3589,3599,3610,3626,3638,3646,3653,3658,3661,3673,3689,3700,3710,3726,3763,3814,3841,3888,4032,4059,4068,4082,4095,4160,4234,4257,4411,4498,4520,4552,4567,4608,4646,4698,4808,4849,4920,4939,4947,4967,4991,4996,5015,5028,5056,5128,5130,5144,5170,5178,5183,5188,5191,5368,5371,5379,5381,5383,5397,5399,5401,5403,5405,5446,5455,5472,5480,5483,5485,5492,5497,5502,5507,5509,5517,5528,5558,5697,5714,5749,5766,5785,5798,5799,5801,5817,5833,5834,5836,5849,5851,5852,5865,5869,5881,5884,5897,5900,5916,5932,5948,5963,5968,5978,5988,5992,5994,5997,6003,6008,6023,6026,6039,6053,6056,6067,6071,6082,6085,6098,6112,6126,6135,6140,6149,6154,6158,6161,6168,6174,6182,6187,6205,6209,6213,6317,6339,6342,6366,6381,6391,6489,6962,6966,6970,6975,6977,6982,6985,6987,6989,6991,6993,6995,6997,6999,7000,7004,7008,7013,7016,7021,7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 + #obs error: *ObsErrorDiagonal + obs error: + covariance model: cross variable covariances + #input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.iasi_metop-b.nc + input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.iasi_metop-b.nc + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: iasi_metop-b + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/iasi_metop-b.yaml_88ch b/config/jedi/ObsPlugs/da/base/iasi_metop-b.yaml_88ch new file mode 100644 index 00000000..455f063e --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/iasi_metop-b.yaml_88ch @@ -0,0 +1,34 @@ +- obs space: + <<: *ObsSpace + name: iasi_metop-b + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/iasi_metop-b_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_iasi_metop-b{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &iasi_metop-b_channels 260,262,265,267,275,282,294,296,299,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# using a subset of 88 channel from these 616 channels (where use_flag = 1) to reduce computational cost +# channels: &iasi_metop-b_channels 16,38,49,51,55,57,59,61,63,66,70,72,74,79,81,83,85,87,104,106,109,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,151,154,157,159,161,163,167,170,173,176,180,185,187,193,199,205,207,210,212,214,217,219,222,224,226,230,232,236,239,243,246,249,252,254,260,262,265,267,275,282,294,296,299,303,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1479,1509,1513,1521,1536,1574,1579,1585,1587,1626,1639,1643,1652,1658,1671,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# using a subset of 174 channel from these 616 channels (where use_flag = 1) to reduce computational cost +#16,29,32,35,38,41,44,47,49,50,51,53,55,56,57,59,61,62,63,66,68,70,72,74,76,78,79,81,82,83,84,85,86,87,89,92,93,95,97,99,101,103,104,106,109,110,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,150,151,154,157,159,160,161,163,167,170,173,176,179,180,185,187,191,193,197,199,200,202,203,205,207,210,212,213,214,217,218,219,222,224,225,226,228,230,231,232,236,237,239,243,246,249,252,254,259,260,262,265,267,269,275,279,282,285,294,296,299,300,303,306,309,313,320,323,326,327,329,332,335,345,347,350,354,356,360,363,366,371,372,373,375,377,379,381,383,386,389,398,401,404,405,407,408,410,411,414,416,418,423,426,428,432,433,434,439,442,445,450,457,459,472,477,483,509,515,546,552,559,566,571,573,578,584,594,625,646,662,668,705,739,756,797,867,906,921,1027,1046,1090,1098,1121,1133,1173,1191,1194,1222,1271,1283,1338,1409,1414,1420,1424,1427,1430,1434,1440,1442,1445,1450,1454,1460,1463,1469,1474,1479,1483,1487,1494,1496,1502,1505,1509,1510,1513,1518,1521,1526,1529,1532,1536,1537,1541,1545,1548,1553,1560,1568,1574,1579,1583,1585,1587,1606,1626,1639,1643,1652,1658,1659,1666,1671,1675,1681,1694,1697,1710,1786,1791,1805,1839,1884,1913,1946,1947,1991,2019,2094,2119,2213,2239,2271,2289,2321,2333,2346,2349,2352,2359,2367,2374,2398,2426,2562,2701,2741,2745,2760,2819,2889,2907,2910,2919,2921,2939,2944,2945,2948,2951,2958,2971,2977,2985,2988,2990,2991,2993,3002,3008,3014,3027,3029,3030,3036,3047,3049,3052,3053,3055,3058,3064,3069,3087,3093,3098,3105,3107,3110,3116,3127,3129,3136,3146,3151,3160,3165,3168,3175,3178,3189,3207,3228,3244,3248,3252,3256,3263,3281,3295,3303,3309,3312,3322,3326,3354,3366,3375,3378,3411,3416,3432,3438,3440,3442,3444,3446,3448,3450,3452,3454,3458,3467,3476,3484,3491,3497,3499,3504,3506,3509,3518,3527,3555,3575,3577,3580,3582,3586,3589,3599,3610,3626,3638,3646,3653,3658,3661,3673,3689,3700,3710,3726,3763,3814,3841,3888,4032,4059,4068,4082,4095,4160,4234,4257,4411,4498,4520,4552,4567,4608,4646,4698,4808,4849,4920,4939,4947,4967,4991,4996,5015,5028,5056,5128,5130,5144,5170,5178,5183,5188,5191,5368,5371,5379,5381,5383,5397,5399,5401,5403,5405,5446,5455,5472,5480,5483,5485,5492,5497,5502,5507,5509,5517,5528,5558,5697,5714,5749,5766,5785,5798,5799,5801,5817,5833,5834,5836,5849,5851,5852,5865,5869,5881,5884,5897,5900,5916,5932,5948,5963,5968,5978,5988,5992,5994,5997,6003,6008,6023,6026,6039,6053,6056,6067,6071,6082,6085,6098,6112,6126,6135,6140,6149,6154,6158,6161,6168,6174,6182,6187,6205,6209,6213,6317,6339,6342,6366,6381,6391,6489,6962,6966,6970,6975,6977,6982,6985,6987,6989,6991,6993,6995,6997,6999,7000,7004,7008,7013,7016,7021,7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 + #obs error: *ObsErrorDiagonal + obs error: + covariance model: cross variable covariances + #input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.iasi_metop-b.nc + input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.iasi_metop-b.nc + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: iasi_metop-b + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/iasi_metop-b_rttov.yaml b/config/jedi/ObsPlugs/da/base/iasi_metop-b_rttov.yaml new file mode 100644 index 00000000..85837573 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/iasi_metop-b_rttov.yaml @@ -0,0 +1,43 @@ +- obs space: + <<: *ObsSpace + name: iasi_metop-b + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/iasi_metop-b_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_iasi_metop-b{{ObsOutSuffix}}.h5 + obsdatain: + <<: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &iasi_metop-b_channels 260,262,265,267,275,282,294,296,299,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,552,559,906,1121,1786,2019,2119,2213,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# channels: &iasi_metop-b_channels [260,262,265,267,275,282,294,296,299,306, +# 323,327,329,335,345,347,350,354,356,360, +# 366,371,373,375,377,379,381,383,386,389, +# 398,401,404,407,410,414,416,426,428,432, +# 434,439,445,457,552,559, +# 906, +# 1121,1786,2019, +# 2119,2213,2271,2321,2398,2701,2889,2958, +# 2993,3002,3049,3105,3110,5381,5399,5480] +# using a subset of 88 channel from these 616 channels (where use_flag = 1) to reduce computational cost +# channels: &iasi_metop-b_channels 16,38,49,51,55,57,59,61,63,66,70,72,74,79,81,83,85,87,104,106,109,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,151,154,157,159,161,163,167,170,173,176,180,185,187,193,199,205,207,210,212,214,217,219,222,224,226,230,232,236,239,243,246,249,252,254,260,262,265,267,275,282,294,296,299,303,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1479,1509,1513,1521,1536,1574,1579,1585,1587,1626,1639,1643,1652,1658,1671,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 +# using a subset of 174 channel from these 616 channels (where use_flag = 1) to reduce computational cost +#16,29,32,35,38,41,44,47,49,50,51,53,55,56,57,59,61,62,63,66,68,70,72,74,76,78,79,81,82,83,84,85,86,87,89,92,93,95,97,99,101,103,104,106,109,110,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,150,151,154,157,159,160,161,163,167,170,173,176,179,180,185,187,191,193,197,199,200,202,203,205,207,210,212,213,214,217,218,219,222,224,225,226,228,230,231,232,236,237,239,243,246,249,252,254,259,260,262,265,267,269,275,279,282,285,294,296,299,300,303,306,309,313,320,323,326,327,329,332,335,345,347,350,354,356,360,363,366,371,372,373,375,377,379,381,383,386,389,398,401,404,405,407,408,410,411,414,416,418,423,426,428,432,433,434,439,442,445,450,457,459,472,477,483,509,515,546,552,559,566,571,573,578,584,594,625,646,662,668,705,739,756,797,867,906,921,1027,1046,1090,1098,1121,1133,1173,1191,1194,1222,1271,1283,1338,1409,1414,1420,1424,1427,1430,1434,1440,1442,1445,1450,1454,1460,1463,1469,1474,1479,1483,1487,1494,1496,1502,1505,1509,1510,1513,1518,1521,1526,1529,1532,1536,1537,1541,1545,1548,1553,1560,1568,1574,1579,1583,1585,1587,1606,1626,1639,1643,1652,1658,1659,1666,1671,1675,1681,1694,1697,1710,1786,1791,1805,1839,1884,1913,1946,1947,1991,2019,2094,2119,2213,2239,2271,2289,2321,2333,2346,2349,2352,2359,2367,2374,2398,2426,2562,2701,2741,2745,2760,2819,2889,2907,2910,2919,2921,2939,2944,2945,2948,2951,2958,2971,2977,2985,2988,2990,2991,2993,3002,3008,3014,3027,3029,3030,3036,3047,3049,3052,3053,3055,3058,3064,3069,3087,3093,3098,3105,3107,3110,3116,3127,3129,3136,3146,3151,3160,3165,3168,3175,3178,3189,3207,3228,3244,3248,3252,3256,3263,3281,3295,3303,3309,3312,3322,3326,3354,3366,3375,3378,3411,3416,3432,3438,3440,3442,3444,3446,3448,3450,3452,3454,3458,3467,3476,3484,3491,3497,3499,3504,3506,3509,3518,3527,3555,3575,3577,3580,3582,3586,3589,3599,3610,3626,3638,3646,3653,3658,3661,3673,3689,3700,3710,3726,3763,3814,3841,3888,4032,4059,4068,4082,4095,4160,4234,4257,4411,4498,4520,4552,4567,4608,4646,4698,4808,4849,4920,4939,4947,4967,4991,4996,5015,5028,5056,5128,5130,5144,5170,5178,5183,5188,5191,5368,5371,5379,5381,5383,5397,5399,5401,5403,5405,5446,5455,5472,5480,5483,5485,5492,5497,5502,5507,5509,5517,5528,5558,5697,5714,5749,5766,5785,5798,5799,5801,5817,5833,5834,5836,5849,5851,5852,5865,5869,5881,5884,5897,5900,5916,5932,5948,5963,5968,5978,5988,5992,5994,5997,6003,6008,6023,6026,6039,6053,6056,6067,6071,6082,6085,6098,6112,6126,6135,6140,6149,6154,6158,6161,6168,6174,6182,6187,6205,6209,6213,6317,6339,6342,6366,6381,6391,6489,6962,6966,6970,6975,6977,6982,6985,6987,6989,6991,6993,6995,6997,6999,7000,7004,7008,7013,7016,7021,7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 + #obs error: *ObsErrorDiagonal + obs error: + covariance model: cross variable covariances + #input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.iasi_metop-b.nc + input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.iasi_metop-b.nc + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: iasi_metop-b + get values: + <<: *GetValues + tropopause pressure method: {{tropprsMethod}} diff --git a/config/jedi/ObsPlugs/da/base/iasi_metop-c.yaml b/config/jedi/ObsPlugs/da/base/iasi_metop-c.yaml index badcd8cd..6d3adf04 100644 --- a/config/jedi/ObsPlugs/da/base/iasi_metop-c.yaml +++ b/config/jedi/ObsPlugs/da/base/iasi_metop-c.yaml @@ -18,7 +18,11 @@ # channels: &iasi_metop-c_channels 16,38,49,51,55,57,59,61,63,66,70,72,74,79,81,83,85,87,104,106,109,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,151,154,157,159,161,163,167,170,173,176,180,185,187,193,199,205,207,210,212,214,217,219,222,224,226,230,232,236,239,243,246,249,252,254,260,262,265,267,275,282,294,296,299,303,306,323,327,329,335,345,347,350,354,356,360,366,371,373,375,377,379,381,383,386,389,398,401,404,407,410,414,416,426,428,432,434,439,445,457,515,546,552,559,566,571,573,646,662,668,756,867,906,921,1027,1046,1121,1133,1191,1194,1271,1479,1509,1513,1521,1536,1574,1579,1585,1587,1626,1639,1643,1652,1658,1671,1786,1805,1884,1991,2019,2094,2119,2213,2239,2271,2321,2398,2701,2889,2958,2993,3002,3049,3105,3110,5381,5399,5480 # using a subset of 174 channel from these 616 channels (where use_flag = 1) to reduce computational cost #16,29,32,35,38,41,44,47,49,50,51,53,55,56,57,59,61,62,63,66,68,70,72,74,76,78,79,81,82,83,84,85,86,87,89,92,93,95,97,99,101,103,104,106,109,110,111,113,116,119,122,125,128,131,133,135,138,141,144,146,148,150,151,154,157,159,160,161,163,167,170,173,176,179,180,185,187,191,193,197,199,200,202,203,205,207,210,212,213,214,217,218,219,222,224,225,226,228,230,231,232,236,237,239,243,246,249,252,254,259,260,262,265,267,269,275,279,282,285,294,296,299,300,303,306,309,313,320,323,326,327,329,332,335,345,347,350,354,356,360,363,366,371,372,373,375,377,379,381,383,386,389,398,401,404,405,407,408,410,411,414,416,418,423,426,428,432,433,434,439,442,445,450,457,459,472,477,483,509,515,546,552,559,566,571,573,578,584,594,625,646,662,668,705,739,756,797,867,906,921,1027,1046,1090,1098,1121,1133,1173,1191,1194,1222,1271,1283,1338,1409,1414,1420,1424,1427,1430,1434,1440,1442,1445,1450,1454,1460,1463,1469,1474,1479,1483,1487,1494,1496,1502,1505,1509,1510,1513,1518,1521,1526,1529,1532,1536,1537,1541,1545,1548,1553,1560,1568,1574,1579,1583,1585,1587,1606,1626,1639,1643,1652,1658,1659,1666,1671,1675,1681,1694,1697,1710,1786,1791,1805,1839,1884,1913,1946,1947,1991,2019,2094,2119,2213,2239,2271,2289,2321,2333,2346,2349,2352,2359,2367,2374,2398,2426,2562,2701,2741,2745,2760,2819,2889,2907,2910,2919,2921,2939,2944,2945,2948,2951,2958,2971,2977,2985,2988,2990,2991,2993,3002,3008,3014,3027,3029,3030,3036,3047,3049,3052,3053,3055,3058,3064,3069,3087,3093,3098,3105,3107,3110,3116,3127,3129,3136,3146,3151,3160,3165,3168,3175,3178,3189,3207,3228,3244,3248,3252,3256,3263,3281,3295,3303,3309,3312,3322,3326,3354,3366,3375,3378,3411,3416,3432,3438,3440,3442,3444,3446,3448,3450,3452,3454,3458,3467,3476,3484,3491,3497,3499,3504,3506,3509,3518,3527,3555,3575,3577,3580,3582,3586,3589,3599,3610,3626,3638,3646,3653,3658,3661,3673,3689,3700,3710,3726,3763,3814,3841,3888,4032,4059,4068,4082,4095,4160,4234,4257,4411,4498,4520,4552,4567,4608,4646,4698,4808,4849,4920,4939,4947,4967,4991,4996,5015,5028,5056,5128,5130,5144,5170,5178,5183,5188,5191,5368,5371,5379,5381,5383,5397,5399,5401,5403,5405,5446,5455,5472,5480,5483,5485,5492,5497,5502,5507,5509,5517,5528,5558,5697,5714,5749,5766,5785,5798,5799,5801,5817,5833,5834,5836,5849,5851,5852,5865,5869,5881,5884,5897,5900,5916,5932,5948,5963,5968,5978,5988,5992,5994,5997,6003,6008,6023,6026,6039,6053,6056,6067,6071,6082,6085,6098,6112,6126,6135,6140,6149,6154,6158,6161,6168,6174,6182,6187,6205,6209,6213,6317,6339,6342,6366,6381,6391,6489,6962,6966,6970,6975,6977,6982,6985,6987,6989,6991,6993,6995,6997,6999,7000,7004,7008,7013,7016,7021,7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 - obs error: *ObsErrorDiagonal + #obs error: *ObsErrorDiagonal + obs error: + covariance model: cross variable covariances + #input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.iasi_metop-c.nc + input file: /glade/campaign/mmm/parc/liuz/pandac_common/iasicris_obserr/Rcov.iasi_metop-c.nc <<: *horizObsLoc obs operator: <<: *clearCRTMObsOperator diff --git a/config/jedi/ObsPlugs/da/base/mhs-cld_metop-a.yaml b/config/jedi/ObsPlugs/da/base/mhs-cld_metop-a.yaml new file mode 100644 index 00000000..d76594cd --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs-cld_metop-a.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: mhs-cld_metop-a + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs-cld_metop-a_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs-cld_metop-a{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_metop-a_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: mhs_metop-a + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/mhs-cld_metop-b.yaml b/config/jedi/ObsPlugs/da/base/mhs-cld_metop-b.yaml new file mode 100644 index 00000000..d8d0fe1b --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs-cld_metop-b.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: mhs-cld_metop-b + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs-cld_metop-b_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs-cld_metop-b{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_metop-b_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: mhs_metop-b + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/mhs-cld_metop-c.yaml b/config/jedi/ObsPlugs/da/base/mhs-cld_metop-c.yaml new file mode 100644 index 00000000..873207b6 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs-cld_metop-c.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: mhs-cld_metop-c + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs-cld_metop-c_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs-cld_metop-c{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_metop-c_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: mhs_metop-c + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/mhs-cld_n18.yaml b/config/jedi/ObsPlugs/da/base/mhs-cld_n18.yaml new file mode 100644 index 00000000..52e9f3f9 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs-cld_n18.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: mhs-cld_n18 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs-cld_n18_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs-cld_n18{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_n18_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: mhs_n18 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/mhs-cld_n19.yaml b/config/jedi/ObsPlugs/da/base/mhs-cld_n19.yaml new file mode 100644 index 00000000..2b5aad5d --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs-cld_n19.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: mhs-cld_n19 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs-cld_n19_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs-cld_n19{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_n19_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: mhs_n19 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/mhs_metop-a.yaml b/config/jedi/ObsPlugs/da/base/mhs_metop-a.yaml index 0374a942..3b25bfee 100644 --- a/config/jedi/ObsPlugs/da/base/mhs_metop-a.yaml +++ b/config/jedi/ObsPlugs/da/base/mhs_metop-a.yaml @@ -12,7 +12,7 @@ obsdatain: *{{ObsDataIn}} {{ObsDataOut}} simulated variables: [brightnessTemperature] - channels: &mhs_metop-a_channels 3-5 + channels: &mhs_metop-a_channels 1-5 obs error: *ObsErrorDiagonal <<: *horizObsLoc obs operator: diff --git a/config/jedi/ObsPlugs/da/base/mhs_metop-a_rttov.yaml b/config/jedi/ObsPlugs/da/base/mhs_metop-a_rttov.yaml new file mode 100644 index 00000000..baf1faf8 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs_metop-a_rttov.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: mhs_metop-a + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs_metop-a_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs_metop-a{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_metop-a_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred54L/ + SensorID: metop_2_mhs_o3 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/mhs_metop-b.yaml b/config/jedi/ObsPlugs/da/base/mhs_metop-b.yaml index b611e448..2757f5e8 100644 --- a/config/jedi/ObsPlugs/da/base/mhs_metop-b.yaml +++ b/config/jedi/ObsPlugs/da/base/mhs_metop-b.yaml @@ -12,7 +12,7 @@ obsdatain: *{{ObsDataIn}} {{ObsDataOut}} simulated variables: [brightnessTemperature] - channels: &mhs_metop-b_channels 3-5 + channels: &mhs_metop-b_channels 1-5 obs error: *ObsErrorDiagonal <<: *horizObsLoc obs operator: diff --git a/config/jedi/ObsPlugs/da/base/mhs_metop-b_rttov.yaml b/config/jedi/ObsPlugs/da/base/mhs_metop-b_rttov.yaml new file mode 100644 index 00000000..0662cf62 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs_metop-b_rttov.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: mhs_metop-b + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs_metop-b_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs_metop-b{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_metop-b_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred54L/ + SensorID: metop_1_mhs_o3 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/mhs_metop-c.yaml b/config/jedi/ObsPlugs/da/base/mhs_metop-c.yaml new file mode 100644 index 00000000..091cd255 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs_metop-c.yaml @@ -0,0 +1,24 @@ +- obs space: + <<: *ObsSpace + name: mhs_metop-c + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs_metop-c_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs_metop-c{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_metop-c_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: mhs_metop-c + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/mhs_n18.yaml b/config/jedi/ObsPlugs/da/base/mhs_n18.yaml index 0999e3ce..654aee6c 100644 --- a/config/jedi/ObsPlugs/da/base/mhs_n18.yaml +++ b/config/jedi/ObsPlugs/da/base/mhs_n18.yaml @@ -12,7 +12,7 @@ obsdatain: *{{ObsDataIn}} {{ObsDataOut}} simulated variables: [brightnessTemperature] - channels: &mhs_n18_channels 3-5 + channels: &mhs_n18_channels 1-5 obs error: *ObsErrorDiagonal <<: *horizObsLoc obs operator: diff --git a/config/jedi/ObsPlugs/da/base/mhs_n18_rttov.yaml b/config/jedi/ObsPlugs/da/base/mhs_n18_rttov.yaml new file mode 100644 index 00000000..de7f19c3 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs_n18_rttov.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: mhs_n18 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs_n18_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs_n18{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_n18_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred54L/ + SensorID: noaa_18_mhs_o3 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/mhs_n18_rttov12.yaml b/config/jedi/ObsPlugs/da/base/mhs_n18_rttov12.yaml new file mode 100644 index 00000000..c4799d10 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs_n18_rttov12.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: mhs_n18_rttov12 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs_n18_rttov12_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs_n18_rttov12{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_n18_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/campaign/mmm/parc/liuz/rttov123/rtcoef_rttov12/rttov7pred54L/ + SensorID: noaa_18_mhs + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/base/mhs_n19.yaml b/config/jedi/ObsPlugs/da/base/mhs_n19.yaml index a923c663..56a69d79 100644 --- a/config/jedi/ObsPlugs/da/base/mhs_n19.yaml +++ b/config/jedi/ObsPlugs/da/base/mhs_n19.yaml @@ -12,7 +12,7 @@ obsdatain: *{{ObsDataIn}} {{ObsDataOut}} simulated variables: [brightnessTemperature] - channels: &mhs_n19_channels 3-5 + channels: &mhs_n19_channels 1-5 obs error: *ObsErrorDiagonal <<: *horizObsLoc obs operator: diff --git a/config/jedi/ObsPlugs/da/base/mhs_n19_rttov.yaml b/config/jedi/ObsPlugs/da/base/mhs_n19_rttov.yaml new file mode 100644 index 00000000..0069a738 --- /dev/null +++ b/config/jedi/ObsPlugs/da/base/mhs_n19_rttov.yaml @@ -0,0 +1,23 @@ +- obs space: + <<: *ObsSpace + name: mhs_n19 + _obsdatain: &ObsDataIn + engine: + type: H5File + obsfile: {{InDBDir}}/mhs_n19_rttov_obs_{{thisValidDate}}.h5 + _obsdataout: &ObsDataOut + engine: + type: H5File + obsfile: {{OutDBDir}}{{MemberDir}}/{{obsPrefix}}_mhs_n19{{ObsOutSuffix}}.h5 + obsdatain: *{{ObsDataIn}} + {{ObsDataOut}} + simulated variables: [brightnessTemperature] + channels: &mhs_n19_channels 1-5 + obs error: *ObsErrorDiagonal + <<: *horizObsLoc + obs operator: + name: RTTOVCPP + CoefPath: /glade/work/liuz/rttov14/rtcoef_rttov14/rttov13pred54L/ + SensorID: noaa_19_mhs_o3 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/da/bias/amsua-all_metop-a.yaml b/config/jedi/ObsPlugs/da/bias/amsua-all_metop-a.yaml new file mode 100644 index 00000000..9c2d66ea --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-all_metop-a.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-all_metop-a.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-all_metop-a.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacldmetopatlap {{fixedTlapmeanCov}}/amsua_metop-a_tlapmean.txt + - name: lapseRate + tlapse: *amsuacldmetopatlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-all_metop-a.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-all_metop-a.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua-all_metop-b.yaml b/config/jedi/ObsPlugs/da/bias/amsua-all_metop-b.yaml new file mode 100644 index 00000000..801ac4f5 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-all_metop-b.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-all_metop-b.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-all_metop-b.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacldmetopbtlap {{fixedTlapmeanCov}}/amsua_metop-b_tlapmean.txt + - name: lapseRate + tlapse: *amsuacldmetopbtlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-all_metop-b.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-all_metop-b.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua-all_n15.yaml b/config/jedi/ObsPlugs/da/bias/amsua-all_n15.yaml new file mode 100644 index 00000000..1dab8e64 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-all_n15.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-all_n15.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-all_n15.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacld15tlap {{fixedTlapmeanCov}}/amsua_n15_tlapmean.txt + - name: lapseRate + tlapse: *amsuacld15tlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-all_n15.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-all_n15.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua-all_n18.yaml b/config/jedi/ObsPlugs/da/bias/amsua-all_n18.yaml new file mode 100644 index 00000000..808f60a5 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-all_n18.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-all_n18.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-all_n18.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacld18tlap {{fixedTlapmeanCov}}/amsua_n18_tlapmean.txt + - name: lapseRate + tlapse: *amsuacld18tlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-all_n18.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-all_n18.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua-all_n19.yaml b/config/jedi/ObsPlugs/da/bias/amsua-all_n19.yaml new file mode 100644 index 00000000..808f60a5 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-all_n19.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-all_n18.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-all_n18.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacld18tlap {{fixedTlapmeanCov}}/amsua_n18_tlapmean.txt + - name: lapseRate + tlapse: *amsuacld18tlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-all_n18.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-all_n18.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua-cld_metop-a.yaml b/config/jedi/ObsPlugs/da/bias/amsua-cld_metop-a.yaml new file mode 100644 index 00000000..55f49424 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-cld_metop-a.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-cld_metop-a.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-cld_metop-a.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacldmetopatlap {{fixedTlapmeanCov}}/amsua_metop-a_tlapmean.txt + - name: lapseRate + tlapse: *amsuacldmetopatlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-cld_metop-a.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-cld_metop-a.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua-cld_metop-b.yaml b/config/jedi/ObsPlugs/da/bias/amsua-cld_metop-b.yaml new file mode 100644 index 00000000..08f40e66 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-cld_metop-b.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-cld_metop-b.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-cld_metop-b.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacldmetopbtlap {{fixedTlapmeanCov}}/amsua_metop-b_tlapmean.txt + - name: lapseRate + tlapse: *amsuacldmetopbtlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-cld_metop-b.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-cld_metop-b.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua-cld_metop-c.yaml b/config/jedi/ObsPlugs/da/bias/amsua-cld_metop-c.yaml new file mode 100644 index 00000000..2be3d53e --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-cld_metop-c.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-cld_metop-c.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-cld_metop-c.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacldmetopctlap {{fixedTlapmeanCov}}/amsua_metop-c_tlapmean.txt + - name: lapseRate + tlapse: *amsuacldmetopctlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-cld_metop-c.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-cld_metop-c.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua-cld_n15.yaml b/config/jedi/ObsPlugs/da/bias/amsua-cld_n15.yaml new file mode 100644 index 00000000..843adb61 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-cld_n15.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-cld_n15.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-cld_n15.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacld15tlap {{fixedTlapmeanCov}}/amsua_n15_tlapmean.txt + - name: lapseRate + tlapse: *amsuacld15tlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-cld_n15.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-cld_n15.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua-cld_n18.yaml b/config/jedi/ObsPlugs/da/bias/amsua-cld_n18.yaml new file mode 100644 index 00000000..3ba56444 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-cld_n18.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-cld_n18.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-cld_n18.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacld18tlap {{fixedTlapmeanCov}}/amsua_n18_tlapmean.txt + - name: lapseRate + tlapse: *amsuacld18tlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-cld_n18.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-cld_n18.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua-cld_n19.yaml b/config/jedi/ObsPlugs/da/bias/amsua-cld_n19.yaml new file mode 100644 index 00000000..82307a77 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua-cld_n19.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua-cld_n19.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua-cld_n19.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuacld19tlap {{fixedTlapmeanCov}}/amsua_n19_tlapmean.txt + - name: lapseRate + tlapse: *amsuacld19tlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua-cld_n19.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua-cld_n19.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua_aqua_rttov.yaml b/config/jedi/ObsPlugs/da/bias/amsua_aqua_rttov.yaml new file mode 100644 index 00000000..e0da6b01 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua_aqua_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua_aqua.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua_aqua.h5 + variational bc: + predictors: &predictors5 + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuaaquatlap {{fixedTlapmeanCov}}/amsua_aqua_tlapmean.txt + - name: lapseRate + tlapse: *amsuaaquatlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua_aqua.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua_aqua.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua_metop-a_rttov.yaml b/config/jedi/ObsPlugs/da/bias/amsua_metop-a_rttov.yaml new file mode 100644 index 00000000..3df930eb --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua_metop-a_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua_metop-a.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua_metop-a.h5 + variational bc: + predictors: &predictors4 + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuametopatlap {{fixedTlapmeanCov}}/amsua_metop-a_tlapmean.txt + - name: lapseRate + tlapse: *amsuametopatlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua_metop-a.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua_metop-a.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua_metop-b_rttov.yaml b/config/jedi/ObsPlugs/da/bias/amsua_metop-b_rttov.yaml new file mode 100644 index 00000000..3b88aadd --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua_metop-b_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua_metop-b.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua_metop-b.h5 + variational bc: + predictors: &predictors4 + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsuametopbtlap {{fixedTlapmeanCov}}/amsua_metop-b_tlapmean.txt + - name: lapseRate + tlapse: *amsuametopbtlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua_metop-b.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua_metop-b.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua_n15_rttov.yaml b/config/jedi/ObsPlugs/da/bias/amsua_n15_rttov.yaml new file mode 100644 index 00000000..8f4d48c3 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua_n15_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua_n15.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua_n15.h5 + variational bc: + predictors: &predictors2 + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsua15tlap {{fixedTlapmeanCov}}/amsua_n15_tlapmean.txt + - name: lapseRate + tlapse: *amsua15tlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua_n15.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua_n15.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua_n18_rttov.yaml b/config/jedi/ObsPlugs/da/bias/amsua_n18_rttov.yaml new file mode 100644 index 00000000..a3502332 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua_n18_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua_n18.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua_n18.h5 + variational bc: + predictors: &predictors3 + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsua18tlap {{fixedTlapmeanCov}}/amsua_n18_tlapmean.txt + - name: lapseRate + tlapse: *amsua18tlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua_n18.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua_n18.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua_n18_rttov12.yaml b/config/jedi/ObsPlugs/da/bias/amsua_n18_rttov12.yaml new file mode 100644 index 00000000..dc314adc --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua_n18_rttov12.yaml @@ -0,0 +1,30 @@ +# obs bias: +# input file: {{biasCorrectionDir}}/satbias_amsua_n18.h5 +# output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua_n18.h5 +# variational bc: +# predictors: &predictors3 +# - name: constant +# - name: lapseRate +# order: 2 +# tlapse: &amsua18tlap {{fixedTlapmeanCov}}/amsua_n18_tlapmean.txt +# - name: lapseRate +# tlapse: *amsua18tlap +# - name: emissivityJacobian +# - name: sensorScanAngle +# order: 4 +# - name: sensorScanAngle +# order: 3 +# - name: sensorScanAngle +# order: 2 +# - name: sensorScanAngle +# covariance: +# minimal required obs number: 20 +# variance range: [1.0e-6, 10.] +# step size: 1.0e-4 +# largest analysis variance: 10000.0 +# prior: +# input file: {{biasCorrectionDir}}/satbias_cov_amsua_n18.h5 +# inflation: +# ratio: 1.1 +# ratio for small dataset: 2.0 +# output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua_n18.h5 diff --git a/config/jedi/ObsPlugs/da/bias/amsua_n19_rttov.yaml b/config/jedi/ObsPlugs/da/bias/amsua_n19_rttov.yaml new file mode 100644 index 00000000..75085d9d --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/amsua_n19_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_amsua_n19.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_amsua_n19.h5 + variational bc: + predictors: &predictors1 + - name: constant + - name: lapseRate + order: 2 + tlapse: &amsua19tlap {{fixedTlapmeanCov}}/amsua_n19_tlapmean.txt + - name: lapseRate + tlapse: *amsua19tlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_amsua_n19.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_amsua_n19.h5 diff --git a/config/jedi/ObsPlugs/da/bias/atms_n20.yaml b/config/jedi/ObsPlugs/da/bias/atms_n20.yaml new file mode 100644 index 00000000..12a015e4 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/atms_n20.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_atms_n20.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_atms_n20.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &atmsn20tlap {{fixedTlapmeanCov}}/atms_n20_tlapmean.txt + - name: lapseRate + tlapse: *atmsn20tlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_atms_n20.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_atms_n20.h5 diff --git a/config/jedi/ObsPlugs/da/bias/atms_n21.yaml b/config/jedi/ObsPlugs/da/bias/atms_n21.yaml new file mode 100644 index 00000000..1aa12f79 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/atms_n21.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_atms_n21.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_atms_n21.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &atmsn21tlap {{fixedTlapmeanCov}}/atms_n21_tlapmean.txt + - name: lapseRate + tlapse: *atmsn21tlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_atms_n21.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_atms_n21.h5 diff --git a/config/jedi/ObsPlugs/da/bias/atms_npp.yaml b/config/jedi/ObsPlugs/da/bias/atms_npp.yaml new file mode 100644 index 00000000..d51a0758 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/atms_npp.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_atms_npp.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_atms_npp.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &atmsnpptlap {{fixedTlapmeanCov}}/atms_npp_tlapmean.txt + - name: lapseRate + tlapse: *atmsnpptlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_atms_npp.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_atms_npp.h5 diff --git a/config/jedi/ObsPlugs/da/bias/cris-fsr_n20.yaml b/config/jedi/ObsPlugs/da/bias/cris-fsr_n20.yaml new file mode 100644 index 00000000..9836ef26 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/cris-fsr_n20.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_cris-fsr_n20.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cris-fsr_n20.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &crisfsrn20tlap {{fixedTlapmeanCov}}/cris-fsr_n20_tlapmean.txt + - name: lapseRate + tlapse: *crisfsrn20tlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_cris-fsr_n20.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_cris-fsr_n20.h5 diff --git a/config/jedi/ObsPlugs/da/bias/cris-fsr_n21.yaml b/config/jedi/ObsPlugs/da/bias/cris-fsr_n21.yaml new file mode 100644 index 00000000..3de01e3a --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/cris-fsr_n21.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_cris-fsr_n21.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cris-fsr_n21.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &crisfsrn21tlap {{fixedTlapmeanCov}}/cris-fsr_n21_tlapmean.txt + - name: lapseRate + tlapse: *crisfsrn21tlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_cris-fsr_n21.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_cris-fsr_n21.h5 diff --git a/config/jedi/ObsPlugs/da/bias/cris-fsr_npp.yaml b/config/jedi/ObsPlugs/da/bias/cris-fsr_npp.yaml new file mode 100644 index 00000000..0442d010 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/cris-fsr_npp.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_cris-fsr_npp.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cris-fsr_npp.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &crisfsrnpptlap {{fixedTlapmeanCov}}/cris-fsr_npp_tlapmean.txt + - name: lapseRate + tlapse: *crisfsrnpptlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_cris-fsr_npp.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_cris-fsr_npp.h5 diff --git a/config/jedi/ObsPlugs/da/bias/cris_n20.yaml b/config/jedi/ObsPlugs/da/bias/cris_n20.yaml new file mode 100644 index 00000000..6ab1dc42 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/cris_n20.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_cris_n20.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cris_n20.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &crismetopatlap {{fixedTlapmeanCov}}/cris_n20_tlapmean.txt + - name: lapseRate + tlapse: *crismetopatlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_cris_n20.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_cris_n20.h5 diff --git a/config/jedi/ObsPlugs/da/bias/cris_npp.yaml b/config/jedi/ObsPlugs/da/bias/cris_npp.yaml new file mode 100644 index 00000000..d5420138 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/cris_npp.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_cris_npp.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cris_npp.h5 + variational bc: + predictors: + - name: constant + - name: lapse_rate + order: 2 + tlapse: &crismetopatlap {{fixedTlapmeanCov}}/cris_npp_tlapmean.txt + - name: lapse_rate + tlapse: *crismetopatlap + - name: emissivity + - name: scan_angle + order: 4 + - name: scan_angle + order: 3 + - name: scan_angle + order: 2 + - name: scan_angle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_cris_npp.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_cris_npp.h5 diff --git a/config/jedi/ObsPlugs/da/bias/iasi_metop-a_rttov.yaml b/config/jedi/ObsPlugs/da/bias/iasi_metop-a_rttov.yaml new file mode 100644 index 00000000..00a438d7 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/iasi_metop-a_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_iasi_metop-a.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_iasi_metop-a.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &iasimetopatlap {{fixedTlapmeanCov}}/iasi_metop-a_tlapmean.txt + - name: lapseRate + tlapse: *iasimetopatlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_iasi_metop-a.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_iasi_metop-a.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs-cld_metop-a.yaml b/config/jedi/ObsPlugs/da/bias/mhs-cld_metop-a.yaml new file mode 100644 index 00000000..2141a0ad --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs-cld_metop-a.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_mhs-cld_metop-a.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs-cld_metop-a.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &mhsmetopatlap {{fixedTlapmeanCov}}/mhs_metop-a_tlapmean.txt + - name: lapseRate + tlapse: *mhsmetopatlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_mhs-cld_metop-a.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs-cld_metop-a.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs-cld_metop-b.yaml b/config/jedi/ObsPlugs/da/bias/mhs-cld_metop-b.yaml new file mode 100644 index 00000000..6afeebe4 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs-cld_metop-b.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_mhs-cld_metop-b.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs-cld_metop-b.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &mhsmetopbtlap {{fixedTlapmeanCov}}/mhs_metop-b_tlapmean.txt + - name: lapseRate + tlapse: *mhsmetopbtlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_mhs-cld_metop-b.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs-cld_metop-b.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs-cld_metop-c.yaml b/config/jedi/ObsPlugs/da/bias/mhs-cld_metop-c.yaml new file mode 100644 index 00000000..508ac348 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs-cld_metop-c.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_mhs-cld_metop-c.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs-cld_metop-c.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &mhsmetopctlap {{fixedTlapmeanCov}}/mhs_metop-c_tlapmean.txt + - name: lapseRate + tlapse: *mhsmetopctlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_mhs-cld_metop-c.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs-cld_metop-c.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs-cld_n18.yaml b/config/jedi/ObsPlugs/da/bias/mhs-cld_n18.yaml new file mode 100644 index 00000000..1324dd83 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs-cld_n18.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_mhs-cld_n18.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs-cld_n18.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &mhs18tlap {{fixedTlapmeanCov}}/mhs_n18_tlapmean.txt + - name: lapseRate + tlapse: *mhs18tlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_mhs-cld_n18.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs-cld_n18.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs-cld_n19.yaml b/config/jedi/ObsPlugs/da/bias/mhs-cld_n19.yaml new file mode 100644 index 00000000..11dcb4ec --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs-cld_n19.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_mhs-cld_n19.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs-cld_n19.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &mhs19tlap {{fixedTlapmeanCov}}/mhs_n19_tlapmean.txt + - name: lapseRate + tlapse: *mhs19tlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_mhs-cld_n19.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs-cld_n19.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs_metop-a.yaml b/config/jedi/ObsPlugs/da/bias/mhs_metop-a.yaml index c585b16b..7ff9051a 100644 --- a/config/jedi/ObsPlugs/da/bias/mhs_metop-a.yaml +++ b/config/jedi/ObsPlugs/da/bias/mhs_metop-a.yaml @@ -2,7 +2,7 @@ input file: {{biasCorrectionDir}}/satbias_mhs_metop-a.h5 output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs_metop-a.h5 variational bc: - predictors: &predictors1 + predictors: - name: constant - name: lapseRate order: 2 diff --git a/config/jedi/ObsPlugs/da/bias/mhs_metop-a_rttov.yaml b/config/jedi/ObsPlugs/da/bias/mhs_metop-a_rttov.yaml new file mode 100644 index 00000000..05fd77d0 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs_metop-a_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_mhs_metop-a.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs_metop-a.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &mhsmetopatlap {{fixedTlapmeanCov}}/mhs_metop-a_tlapmean.txt + - name: lapseRate + tlapse: *mhsmetopatlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_mhs_metop-a.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs_metop-a.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs_metop-b.yaml b/config/jedi/ObsPlugs/da/bias/mhs_metop-b.yaml index 0071218e..9d5c591d 100644 --- a/config/jedi/ObsPlugs/da/bias/mhs_metop-b.yaml +++ b/config/jedi/ObsPlugs/da/bias/mhs_metop-b.yaml @@ -2,7 +2,7 @@ input file: {{biasCorrectionDir}}/satbias_mhs_metop-b.h5 output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs_metop-b.h5 variational bc: - predictors: &predictors1 + predictors: - name: constant - name: lapseRate order: 2 diff --git a/config/jedi/ObsPlugs/da/bias/mhs_metop-b_rttov.yaml b/config/jedi/ObsPlugs/da/bias/mhs_metop-b_rttov.yaml new file mode 100644 index 00000000..0c8e465b --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs_metop-b_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_mhs_metop-b.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs_metop-b.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &mhsmetopbtlap {{fixedTlapmeanCov}}/mhs_metop-b_tlapmean.txt + - name: lapseRate + tlapse: *mhsmetopbtlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_mhs_metop-b.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs_metop-b.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs_metop-c.yaml b/config/jedi/ObsPlugs/da/bias/mhs_metop-c.yaml new file mode 100644 index 00000000..b5fa28dd --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs_metop-c.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_mhs_metop-c.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs_metop-c.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &mhsmetopctlap {{fixedTlapmeanCov}}/mhs_metop-c_tlapmean.txt + - name: lapseRate + tlapse: *mhsmetopctlap + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_mhs_metop-c.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs_metop-c.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs_n18.yaml b/config/jedi/ObsPlugs/da/bias/mhs_n18.yaml index fe1c8e20..dcf46773 100644 --- a/config/jedi/ObsPlugs/da/bias/mhs_n18.yaml +++ b/config/jedi/ObsPlugs/da/bias/mhs_n18.yaml @@ -2,7 +2,7 @@ input file: {{biasCorrectionDir}}/satbias_mhs_n18.h5 output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs_n18.h5 variational bc: - predictors: &predictors1 + predictors: - name: constant - name: lapseRate order: 2 diff --git a/config/jedi/ObsPlugs/da/bias/mhs_n18_rttov.yaml b/config/jedi/ObsPlugs/da/bias/mhs_n18_rttov.yaml new file mode 100644 index 00000000..39c59ebe --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs_n18_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_mhs_n18.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs_n18.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &mhs18tlap {{fixedTlapmeanCov}}/mhs_n18_tlapmean.txt + - name: lapseRate + tlapse: *mhs18tlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_mhs_n18.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs_n18.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs_n18_rttov12.yaml b/config/jedi/ObsPlugs/da/bias/mhs_n18_rttov12.yaml new file mode 100644 index 00000000..b2bdb9a1 --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs_n18_rttov12.yaml @@ -0,0 +1,30 @@ +# obs bias: +# input file: {{biasCorrectionDir}}/satbias_mhs_n18.h5 +# output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs_n18.h5 +# variational bc: +# predictors: +# - name: constant +# - name: lapseRate +# order: 2 +# tlapse: &mhs18tlap {{fixedTlapmeanCov}}/mhs_n18_tlapmean.txt +# - name: lapseRate +# tlapse: *mhs18tlap +# - name: emissivityJacobian +# - name: sensorScanAngle +# order: 4 +# - name: sensorScanAngle +# order: 3 +# - name: sensorScanAngle +# order: 2 +# - name: sensorScanAngle +# covariance: +# minimal required obs number: 20 +# variance range: [1.0e-6, 10.] +# step size: 1.0e-4 +# largest analysis variance: 10000.0 +# prior: +# input file: {{biasCorrectionDir}}/satbias_cov_mhs_n18.h5 +# inflation: +# ratio: 1.1 +# ratio for small dataset: 2.0 +# output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs_n18.h5 diff --git a/config/jedi/ObsPlugs/da/bias/mhs_n19.yaml b/config/jedi/ObsPlugs/da/bias/mhs_n19.yaml index 4541ccf0..889d7a1f 100644 --- a/config/jedi/ObsPlugs/da/bias/mhs_n19.yaml +++ b/config/jedi/ObsPlugs/da/bias/mhs_n19.yaml @@ -2,7 +2,7 @@ input file: {{biasCorrectionDir}}/satbias_mhs_n19.h5 output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs_n19.h5 variational bc: - predictors: &predictors1 + predictors: - name: constant - name: lapseRate order: 2 diff --git a/config/jedi/ObsPlugs/da/bias/mhs_n19_rttov.yaml b/config/jedi/ObsPlugs/da/bias/mhs_n19_rttov.yaml new file mode 100644 index 00000000..d459c3ad --- /dev/null +++ b/config/jedi/ObsPlugs/da/bias/mhs_n19_rttov.yaml @@ -0,0 +1,30 @@ + obs bias: + input file: {{biasCorrectionDir}}/satbias_mhs_n19.h5 + output file: {{OutDBDir}}{{MemberDir}}/satbias_mhs_n19.h5 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &mhs19tlap {{fixedTlapmeanCov}}/mhs_n19_tlapmean.txt + - name: lapseRate + tlapse: *mhs19tlap +# - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: [1.0e-6, 10.] + step size: 1.0e-4 + largest analysis variance: 10000.0 + prior: + input file: {{biasCorrectionDir}}/satbias_cov_mhs_n19.h5 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: {{OutDBDir}}{{MemberDir}}/satbias_cov_mhs_n19.h5 diff --git a/config/jedi/ObsPlugs/da/filters/abi-clr_g16.yaml b/config/jedi/ObsPlugs/da/filters/abi-clr_g16.yaml index 8b4c8026..994b685f 100644 --- a/config/jedi/ObsPlugs/da/filters/abi-clr_g16.yaml +++ b/config/jedi/ObsPlugs/da/filters/abi-clr_g16.yaml @@ -12,6 +12,8 @@ # minvalue: 1.0 - filter: Gaussian Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space - filter: Background Check threshold: 3.0 <<: *multiIterationFilter diff --git a/config/jedi/ObsPlugs/da/filters/abi_g16.yaml b/config/jedi/ObsPlugs/da/filters/abi_g16.yaml index 752615a0..3aaeb231 100644 --- a/config/jedi/ObsPlugs/da/filters/abi_g16.yaml +++ b/config/jedi/ObsPlugs/da/filters/abi_g16.yaml @@ -6,6 +6,8 @@ maxvalue: 65.0 - filter: Gaussian Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space - filter: Perform Action <<: *multiIterationFilter filter variables: diff --git a/config/jedi/ObsPlugs/da/filters/ahi-clr_himawari8.yaml b/config/jedi/ObsPlugs/da/filters/ahi-clr_himawari8.yaml index bcfa0619..9f05c53e 100644 --- a/config/jedi/ObsPlugs/da/filters/ahi-clr_himawari8.yaml +++ b/config/jedi/ObsPlugs/da/filters/ahi-clr_himawari8.yaml @@ -9,6 +9,8 @@ maxvalue: 0.05 - filter: Gaussian Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space - filter: Background Check threshold: 3.0 <<: *multiIterationFilter diff --git a/config/jedi/ObsPlugs/da/filters/ahi_himawari8.yaml b/config/jedi/ObsPlugs/da/filters/ahi_himawari8.yaml index b66bc3fc..9c067eea 100644 --- a/config/jedi/ObsPlugs/da/filters/ahi_himawari8.yaml +++ b/config/jedi/ObsPlugs/da/filters/ahi_himawari8.yaml @@ -6,6 +6,8 @@ maxvalue: 65.0 - filter: Gaussian Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space - filter: Perform Action <<: *multiIterationFilter filter variables: diff --git a/config/jedi/ObsPlugs/da/filters/amsua-all_metop-a.yaml b/config/jedi/ObsPlugs/da/filters/amsua-all_metop-a.yaml new file mode 100644 index 00000000..beed54e6 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/amsua-all_metop-a.yaml @@ -0,0 +1,12 @@ + obs filters: + - filter: PreQC + maxvalue: 0 + - filter: Background Check + threshold: 3 + <<: *multiIterationFilter +# - filter: Gaussian Thinning +# horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_metop-a.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/amsua-all_metop-b.yaml b/config/jedi/ObsPlugs/da/filters/amsua-all_metop-b.yaml new file mode 100644 index 00000000..f02f0eec --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/amsua-all_metop-b.yaml @@ -0,0 +1,12 @@ + obs filters: + - filter: PreQC + maxvalue: 0 + - filter: Background Check + threshold: 3 + <<: *multiIterationFilter +# - filter: Gaussian Thinning +# horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_metop-b.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/amsua-all_n15.yaml b/config/jedi/ObsPlugs/da/filters/amsua-all_n15.yaml new file mode 100644 index 00000000..13b180e6 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/amsua-all_n15.yaml @@ -0,0 +1,12 @@ + obs filters: + - filter: PreQC + maxvalue: 0 + - filter: Background Check + threshold: 3 + <<: *multiIterationFilter +# - filter: Gaussian Thinning +# horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n15.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/amsua-all_n18.yaml b/config/jedi/ObsPlugs/da/filters/amsua-all_n18.yaml new file mode 100644 index 00000000..e233bba0 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/amsua-all_n18.yaml @@ -0,0 +1,12 @@ + obs filters: + - filter: PreQC + maxvalue: 0 + - filter: Background Check + threshold: 3 + <<: *multiIterationFilter +# - filter: Gaussian Thinning +# horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n18.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/amsua-all_n19.yaml b/config/jedi/ObsPlugs/da/filters/amsua-all_n19.yaml new file mode 100644 index 00000000..5a4728ff --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/amsua-all_n19.yaml @@ -0,0 +1,12 @@ + obs filters: + - filter: PreQC + maxvalue: 0 + - filter: Background Check + threshold: 3 + <<: *multiIterationFilter +# - filter: Gaussian Thinning +# horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n19.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/amsua-cld_aqua.yaml b/config/jedi/ObsPlugs/da/filters/amsua-cld_aqua.yaml index ba236933..9b46af38 100644 --- a/config/jedi/ObsPlugs/da/filters/amsua-cld_aqua.yaml +++ b/config/jedi/ObsPlugs/da/filters/amsua-cld_aqua.yaml @@ -6,5 +6,7 @@ <<: *multiIterationFilter # - filter: Gaussian Thinning # horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_aqua.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/amsua-cld_metop-a.yaml b/config/jedi/ObsPlugs/da/filters/amsua-cld_metop-a.yaml index 620f6fda..beed54e6 100644 --- a/config/jedi/ObsPlugs/da/filters/amsua-cld_metop-a.yaml +++ b/config/jedi/ObsPlugs/da/filters/amsua-cld_metop-a.yaml @@ -6,5 +6,7 @@ <<: *multiIterationFilter # - filter: Gaussian Thinning # horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_metop-a.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/amsua-cld_metop-b.yaml b/config/jedi/ObsPlugs/da/filters/amsua-cld_metop-b.yaml index 44041e2f..f02f0eec 100644 --- a/config/jedi/ObsPlugs/da/filters/amsua-cld_metop-b.yaml +++ b/config/jedi/ObsPlugs/da/filters/amsua-cld_metop-b.yaml @@ -6,5 +6,7 @@ <<: *multiIterationFilter # - filter: Gaussian Thinning # horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_metop-b.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/amsua-cld_n15.yaml b/config/jedi/ObsPlugs/da/filters/amsua-cld_n15.yaml index b2e4a5dd..13b180e6 100644 --- a/config/jedi/ObsPlugs/da/filters/amsua-cld_n15.yaml +++ b/config/jedi/ObsPlugs/da/filters/amsua-cld_n15.yaml @@ -6,5 +6,7 @@ <<: *multiIterationFilter # - filter: Gaussian Thinning # horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n15.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/amsua-cld_n18.yaml b/config/jedi/ObsPlugs/da/filters/amsua-cld_n18.yaml index 3b5b4133..e233bba0 100644 --- a/config/jedi/ObsPlugs/da/filters/amsua-cld_n18.yaml +++ b/config/jedi/ObsPlugs/da/filters/amsua-cld_n18.yaml @@ -6,5 +6,7 @@ <<: *multiIterationFilter # - filter: Gaussian Thinning # horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n18.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/amsua-cld_n19.yaml b/config/jedi/ObsPlugs/da/filters/amsua-cld_n19.yaml index 177ea48b..5a4728ff 100644 --- a/config/jedi/ObsPlugs/da/filters/amsua-cld_n19.yaml +++ b/config/jedi/ObsPlugs/da/filters/amsua-cld_n19.yaml @@ -6,5 +6,7 @@ <<: *multiIterationFilter # - filter: Gaussian Thinning # horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n19.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/cris-fsr_n20.yaml b/config/jedi/ObsPlugs/da/filters/cris-fsr_n20.yaml new file mode 100644 index 00000000..8fd06ea7 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/cris-fsr_n20.yaml @@ -0,0 +1,31 @@ + obs filters: +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 63 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 74 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + minvalue: 1.0e-12 + action: + name: reject + - filter: Background Check + threshold: 3.0 + <<: *multiIterationFilter + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space + #- filter: GOMsaver + # filename: {{OutDBDir}}/{{geoPrefix}}_cris-fsr_n20.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/cris-fsr_n21.yaml b/config/jedi/ObsPlugs/da/filters/cris-fsr_n21.yaml new file mode 100644 index 00000000..d970170c --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/cris-fsr_n21.yaml @@ -0,0 +1,31 @@ + obs filters: +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 63 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 74 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + minvalue: 1.0e-12 + action: + name: reject + - filter: Background Check + threshold: 3.0 + <<: *multiIterationFilter + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space + #- filter: GOMsaver + # filename: {{OutDBDir}}/{{geoPrefix}}_cris-fsr_n21.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/cris-fsr_npp.yaml b/config/jedi/ObsPlugs/da/filters/cris-fsr_npp.yaml new file mode 100644 index 00000000..6620f9da --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/cris-fsr_npp.yaml @@ -0,0 +1,27 @@ + obs filters: +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 55 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 92 from these 431 channels, only those where use_flag = 1 + minvalue: 1.0e-12 + action: + name: reject + - filter: Background Check + threshold: 3.0 + <<: *multiIterationFilter + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space + #- filter: GOMsaver + # filename: {{OutDBDir}}/{{geoPrefix}}_cris-fsr_npp.nc4 diff --git a/config/jedi/ObsPlugs/da/filters/cris_n20.yaml b/config/jedi/ObsPlugs/da/filters/cris_n20.yaml new file mode 100644 index 00000000..9ca1797f --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/cris_n20.yaml @@ -0,0 +1,40 @@ + obs filters: +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris_n20_channels + options: + channels: *cris_n20_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 89 from these 399 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 +# use_flag: [-1,1,1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1] + minvalue: 1.0e-12 + action: + name: reject + - filter: Background Check + threshold: 3.0 + <<: *multiIterationFilter + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space + #- filter: GOMsaver + # filename: {{OutDBDir}}/{{geoPrefix}}_cris_npp.nc4 + #- filter: YDIAGsaver + # filename: {{OutDBDir}}/{{diagPrefix}}_cris_npp.nc4 + # filter variables: + # - name: brightness_temperature_jacobian_air_temperature + # channels: *cris_npp_channels + # - name: brightness_temperature_jacobian_humidity_mixing_ratio + # channels: *cris_npp_channels + # - name: brightness_temperature_jacobian_surface_emissivity + # channels: *cris_npp_channels + # - name: brightness_temperature_jacobian_surface_temperature + # channels: *cris_npp_channels + diff --git a/config/jedi/ObsPlugs/da/filters/cris_npp.yaml b/config/jedi/ObsPlugs/da/filters/cris_npp.yaml new file mode 100644 index 00000000..1a81165d --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/cris_npp.yaml @@ -0,0 +1,41 @@ + obs filters: +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris_npp_channels + options: + channels: *cris_npp_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 399 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 89 from these 399 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 +# use_flag: [-1, 1, 1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1] + minvalue: 1.0e-12 + action: + name: reject + - filter: Background Check + threshold: 3.0 + <<: *multiIterationFilter + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space + - filter: GOMsaver + filename: {{OutDBDir}}/{{geoPrefix}}_cris_npp.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}/{{diagPrefix}}_cris_npp.nc4 + filter variables: + - name: brightness_temperature_jacobian_air_temperature + channels: *cris_npp_channels + - name: brightness_temperature_jacobian_humidity_mixing_ratio + channels: *cris_npp_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *cris_npp_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *cris_npp_channels diff --git a/config/jedi/ObsPlugs/da/filters/gnssrobndmo.yaml b/config/jedi/ObsPlugs/da/filters/gnssrobndmo.yaml index e71bee1d..c2fea63b 100644 --- a/config/jedi/ObsPlugs/da/filters/gnssrobndmo.yaml +++ b/config/jedi/ObsPlugs/da/filters/gnssrobndmo.yaml @@ -13,11 +13,84 @@ name: MetaData/geoidUndulation minvalue: -200.0 maxvalue: 200.0 + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NRL + - filter: Background Check + threshold: 3.0 + <<: *multiIterationFilter -# # reject where refractivity is assimilated +## # reject where refractivity is assimilated +## # NPol +## - filter: RejectList +## defer to post: true +## filter variables: +## - name: bendingAngle +## where: +## - variable: +## name: MetaData/latitude +## minvalue: *minNPol +## maxvalue: *maxNPol +## - variable: +## name: MetaData/impactHeightRO +## maxvalue: *gnssrorefncepNPolExcludeMin +## # NMid +## - filter: RejectList +## defer to post: true +## filter variables: +## - name: bendingAngle +## where: +## - variable: +## name: MetaData/latitude +## minvalue: *minNMid +## maxvalue: *maxNMid +## - variable: +## name: MetaData/impactHeightRO +## maxvalue: *gnssrorefncepNMidExcludeMin +## # Tro +## - filter: RejectList +## defer to post: true +## filter variables: +## - name: bendingAngle +## where: +## - variable: +## name: MetaData/latitude +## maxvalue: *minTro +## maxvalue: *maxTro +## - variable: +## name: MetaData/impactHeightRO +## minvalue: *gnssrorefncepTroExcludeMin +## # SMid +## - filter: RejectList +## defer to post: true +## filter variables: +## - name: bendingAngle +## where: +## - variable: +## name: MetaData/latitude +## minvalue: *minSMid +## maxvalue: *maxSMid +## - variable: +## name: MetaData/impactHeightRO +## maxvalue: *gnssrorefncepSMidExcludeMin +## # SPol +## - filter: RejectList +## defer to post: true +## filter variables: +## - name: bendingAngle +## where: +## - variable: +## name: MetaData/latitude +## minvalue: *minSPol +## maxvalue: *maxSPol +## - variable: +## name: MetaData/impactHeightRO +## maxvalue: *gnssrorefncepSPolExcludeMin +# +# ## Scale ObsError based on ObsValue # # NPol -# - filter: RejectList -# defer to post: true +# - filter: Perform Action # filter variables: # - name: bendingAngle # where: @@ -25,12 +98,19 @@ # name: MetaData/latitude # minvalue: *minNPol # maxvalue: *maxNPol -# - variable: -# name: MetaData/impactHeightRO -# maxvalue: *gnssrorefncepNPolExcludeMin +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndmoNPolErrors # # NMid -# - filter: RejectList -# defer to post: true +# - filter: Perform Action # filter variables: # - name: bendingAngle # where: @@ -38,25 +118,39 @@ # name: MetaData/latitude # minvalue: *minNMid # maxvalue: *maxNMid -# - variable: -# name: MetaData/impactHeightRO -# maxvalue: *gnssrorefncepNMidExcludeMin +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndmoNMidErrors # # Tro -# - filter: RejectList -# defer to post: true +# - filter: Perform Action # filter variables: # - name: bendingAngle # where: # - variable: # name: MetaData/latitude -# maxvalue: *minTro +# minvalue: *minTro # maxvalue: *maxTro -# - variable: -# name: MetaData/impactHeightRO -# minvalue: *gnssrorefncepTroExcludeMin +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndmoTroErrors # # SMid -# - filter: RejectList -# defer to post: true +# - filter: Perform Action # filter variables: # - name: bendingAngle # where: @@ -64,12 +158,19 @@ # name: MetaData/latitude # minvalue: *minSMid # maxvalue: *maxSMid -# - variable: -# name: MetaData/impactHeightRO -# maxvalue: *gnssrorefncepSMidExcludeMin +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndmoSMidErrors # # SPol -# - filter: RejectList -# defer to post: true +# - filter: Perform Action # filter variables: # - name: bendingAngle # where: @@ -77,112 +178,14 @@ # name: MetaData/latitude # minvalue: *minSPol # maxvalue: *maxSPol -# - variable: -# name: MetaData/impactHeightRO -# maxvalue: *gnssrorefncepSPolExcludeMin - - ## Scale ObsError based on ObsValue - # NPol - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minNPol - maxvalue: *maxNPol - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndmoNPolErrors - # NMid - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minNMid - maxvalue: *maxNMid - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndmoNMidErrors - # Tro - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minTro - maxvalue: *maxTro - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndmoTroErrors - # SMid - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minSMid - maxvalue: *maxSMid - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndmoSMidErrors - # SPol - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minSPol - maxvalue: *maxSPol - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndmoSPolErrors - - - filter: Background Check - threshold: 3.0 - <<: *multiIterationFilter +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndmoSPolErrors diff --git a/config/jedi/ObsPlugs/da/filters/gnssrobndropp1d.yaml b/config/jedi/ObsPlugs/da/filters/gnssrobndropp1d.yaml index 049ac457..9de7b75d 100644 --- a/config/jedi/ObsPlugs/da/filters/gnssrobndropp1d.yaml +++ b/config/jedi/ObsPlugs/da/filters/gnssrobndropp1d.yaml @@ -13,6 +13,13 @@ name: MetaData/geoidUndulation minvalue: -200.0 maxvalue: 200.0 + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NRL + - filter: Background Check + threshold: 3.0 + <<: *multiIterationFilter ### # reject where refractivity is assimilated ### # NPol @@ -160,108 +167,104 @@ # errmodel: ECMWF # <<: *multiIterationFilter - ## Scale ObsError based on ObsValue - # NPol - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minNPol - maxvalue: *maxNPol - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndropp1dNPolErrors - # NMid - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minNMid - maxvalue: *maxNMid - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndropp1dNMidErrors - # Tro - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minTro - maxvalue: *maxTro - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndropp1dTroErrors - # SMid - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minSMid - maxvalue: *maxSMid - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndropp1dSMidErrors - # SPol - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minSPol - maxvalue: *maxSPol - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndropp1dSPolErrors - - - filter: Background Check - threshold: 3.0 - <<: *multiIterationFilter +# ## Scale ObsError based on ObsValue +# # NPol +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minNPol +# maxvalue: *maxNPol +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndropp1dNPolErrors +# # NMid +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minNMid +# maxvalue: *maxNMid +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndropp1dNMidErrors +# # Tro +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minTro +# maxvalue: *maxTro +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndropp1dTroErrors +# # SMid +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minSMid +# maxvalue: *maxSMid +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndropp1dSMidErrors +# # SPol +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minSPol +# maxvalue: *maxSPol +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndropp1dSPolErrors diff --git a/config/jedi/ObsPlugs/da/filters/mhs_metop-c.yaml b/config/jedi/ObsPlugs/da/filters/mhs_metop-c.yaml new file mode 100644 index 00000000..13738c3b --- /dev/null +++ b/config/jedi/ObsPlugs/da/filters/mhs_metop-c.yaml @@ -0,0 +1,8 @@ + obs filters: + - filter: PreQC + maxvalue: 0 +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_metop-c.nc4 + - filter: Background Check + threshold: 3.0 + <<: *multiIterationFilter diff --git a/config/jedi/ObsPlugs/da/filters/satwind.yaml b/config/jedi/ObsPlugs/da/filters/satwind.yaml index ea3e4445..dff2eb60 100644 --- a/config/jedi/ObsPlugs/da/filters/satwind.yaml +++ b/config/jedi/ObsPlugs/da/filters/satwind.yaml @@ -26,6 +26,8 @@ maxvalue: 200.0 - filter: Gaussian Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space - filter: Background Check threshold: 3.0 <<: *multiIterationFilter diff --git a/config/jedi/ObsPlugs/da/filters/satwnd.yaml b/config/jedi/ObsPlugs/da/filters/satwnd.yaml index b10ad157..013b2bff 100644 --- a/config/jedi/ObsPlugs/da/filters/satwnd.yaml +++ b/config/jedi/ObsPlugs/da/filters/satwnd.yaml @@ -27,6 +27,8 @@ name: reject - filter: Gaussian Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space - filter: Background Check threshold: 3.0 <<: *multiIterationFilter diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_metop-a.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_metop-a.yaml new file mode 100644 index 00000000..e5c62013 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_metop-a.yaml @@ -0,0 +1,304 @@ + obs filters: + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: ObsValue + x0: &id1metopAamsua + [0.03, 0.03, 0.03, 0.03, 0.0, + 0.1, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.03] + x1: &id2metopAamsua + [0.55, 0.58, 0.37, 0.44, 1.0, + 1.50, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.23] + err0: &id3metopAamsua + [4.41, 3.22, 2.51, 0.59, 0.3, + 0.23, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 5.60] + err1: &id4metopAamsua + [31.20, 43.6, 14.12, 2.94, 0.5, + 0.3, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 15.36] + <<: *multiIterationFilter + +# partly address cold-air outbreak issues + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# Obs CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Background CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + sensor: amsua_metop-a + channels: 1-15 + <<: *multiIterationFilter + +# Transmittance Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + <<: *multiIterationFilter + +# Surface Jacobian check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_metop-a + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: 1-15 + options: + sensor: amsua_metop-a + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + #bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + #bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: 1-15 + options: + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + #bias_application: HofX + clwret_clearsky: *id1metopAamsua + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: + - ObsValue + - HofX + x0: *id1metopAamsua + x1: *id2metopAamsua + err0: *id3metopAamsua + err1: *id4metopAamsua + obserr_clearsky: *id3metopAamsua + <<: *multiIterationFilter + +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: 1-15 + options: + sensor: amsua_metop-a + channels: 1-15 + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_metop-a + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: HofX + x0: *id1metopAamsua + x1: *id2metopAamsua + err0: *id3metopAamsua + err1: *id4metopAamsua + threshold: 3 + threshold_precip: 2.5 + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter + +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_metop-a + use_flag: &id5metopAamsua + [1, 1, 1, 1, 1, + 1, -1, -1, 1, -1, + -1, -1, -1, -1, 1 ] + maxvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: 1-15 + options: + channels: 1-15 + use_flag: *id5metopAamsua + minvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_metop-a.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_metop-b.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_metop-b.yaml new file mode 100644 index 00000000..714ea015 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_metop-b.yaml @@ -0,0 +1,304 @@ + obs filters: + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: ObsValue + x0: &id1metopBamsua + [0.03, 0.03, 0.03, 0.03, 0.0, + 0.1, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.03] + x1: &id2metopBamsua + [0.55, 0.58, 0.37, 0.44, 1.0, + 1.50, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.23] + err0: &id3metopBamsua + [4.41, 3.22, 2.51, 0.59, 0.3, + 0.23, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 5.60] + err1: &id4metopBamsua + [31.20, 43.6, 14.12, 2.94, 0.5, + 0.3, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 15.36] + <<: *multiIterationFilter + +# partly address cold-air outbreak issues + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# Obs CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Background CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + sensor: amsua_metop-b + channels: 1-15 + <<: *multiIterationFilter + +# Transmittance Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + <<: *multiIterationFilter + +# Surface Jacobian check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_metop-b + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: 1-15 + options: + sensor: amsua_metop-b + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + #bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + #bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: 1-15 + options: + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + #bias_application: HofX + clwret_clearsky: *id1metopBamsua + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: + - ObsValue + - HofX + x0: *id1metopBamsua + x1: *id2metopBamsua + err0: *id3metopBamsua + err1: *id4metopBamsua + obserr_clearsky: *id3metopBamsua + <<: *multiIterationFilter + +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: 1-15 + options: + sensor: amsua_metop-b + channels: 1-15 + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: HofX + x0: *id1metopBamsua + x1: *id2metopBamsua + err0: *id3metopBamsua + err1: *id4metopBamsua + threshold: 3 + threshold_precip: 2.5 + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter + +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_metop-b + use_flag: &id5metopBamsua + [1, 1, 1, 1, -1, + -1, -1, 1, 1, -1, + -1, -1, -1, -1, 1 ] + maxvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: 1-15 + options: + channels: 1-15 + use_flag: *id5metopBamsua + minvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_metop-b.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n15.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n15.yaml new file mode 100644 index 00000000..b9788692 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n15.yaml @@ -0,0 +1,304 @@ + obs filters: + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: ObsValue + x0: &id1n15amsua + [0.03, 0.03, 0.03, 0.03, 0.0, + 0.1, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.03] + x1: &id2n15amsua + [0.57, 0.58, 0.37, 0.43, 1.0, + 1.50, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.24] + err0: &id3n15amsua + [4.50, 3.29, 2.44, 0.51, 0.3, + 0.23, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 5.77] + err1: &id4n15amsua + [37.54, 47.42, 13.81, 2.84, 0.5, + 0.3, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 15.44] + <<: *multiIterationFilter + +# partly address cold-air outbreak issues + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# Obs CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Background CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + sensor: amsua_n15 + channels: 1-15 + <<: *multiIterationFilter + +# Transmittance Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + <<: *multiIterationFilter + +# Surface Jacobian check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n15 + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: 1-15 + options: + sensor: amsua_n15 + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + #bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + #bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: 1-15 + options: + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + #bias_application: HofX + clwret_clearsky: *id1n15amsua + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: + - ObsValue + - HofX + x0: *id1n15amsua + x1: *id2n15amsua + err0: *id3n15amsua + err1: *id4n15amsua + obserr_clearsky: *id3n15amsua + <<: *multiIterationFilter + +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: 1-15 + options: + sensor: amsua_n15 + channels: 1-15 + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n15 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: HofX + x0: *id1n15amsua + x1: *id2n15amsua + err0: *id3n15amsua + err1: *id4n15amsua + threshold: 3 + threshold_precip: 2.5 + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter + +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n15 + use_flag: &id5n15amsua + [1, 1, 1, 1, 1, + -1, 1, 1, 1, -1, + -1, -1, -1, -1, 1 ] + maxvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: 1-15 + options: + channels: 1-15 + use_flag: *id5n15amsua + minvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n15.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n18.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n18.yaml new file mode 100644 index 00000000..04c527f9 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n18.yaml @@ -0,0 +1,304 @@ + obs filters: + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: ObsValue + x0: &id1n18amsua + [0.04, 0.04, 0.04, 0.04, 0.0, + 0.1, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.04] + x1: &id2n18amsua + [0.55, 0.57, 0.36, 0.41, 1.0, + 1.50, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.24] + err0: &id3n18amsua + [4.51, 3.45, 2.59, 0.67, 0.3, + 0.23, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 6.05] + err1: &id4n18amsua + [33.25, 44.55, 13.92, 2.88, 0.5, + 0.3, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 15.32] + <<: *multiIterationFilter + +# partly address cold-air outbreak issues + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# Obs CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Background CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + sensor: amsua_n18 + channels: 1-15 + <<: *multiIterationFilter + +# Transmittance Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + <<: *multiIterationFilter + +# Surface Jacobian check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n18 + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: 1-15 + options: + sensor: amsua_n18 + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + #bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + #bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: 1-15 + options: + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + #bias_application: HofX + clwret_clearsky: *id1n18amsua + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: + - ObsValue + - HofX + x0: *id1n18amsua + x1: *id2n18amsua + err0: *id3n18amsua + err1: *id4n18amsua + obserr_clearsky: *id3n18amsua + <<: *multiIterationFilter + +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: 1-15 + options: + sensor: amsua_n18 + channels: 1-15 + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n18 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: HofX + x0: *id1n18amsua + x1: *id2n18amsua + err0: *id3n18amsua + err1: *id4n18amsua + threshold: 3 + threshold_precip: 2.5 + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter + +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n18 + use_flag: &id5n18amsua + [1, 1, 1, 1, 1, + 1, 1, 1, 1, -1, + -1, -1, -1, -1, 1 ] + maxvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: 1-15 + options: + channels: 1-15 + use_flag: *id5n18amsua + minvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n18.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n19.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n19.yaml new file mode 100644 index 00000000..3d2f7da4 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n19.yaml @@ -0,0 +1,304 @@ + obs filters: + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: ObsValue + x0: &id1n19amsua + [0.03, 0.03, 0.03, 0.03, 0.0, + 0.1, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.03] + x1: &id2n19amsua + [0.55, 0.58, 0.37, 0.44, 1.0, + 1.50, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.23] + err0: &id3n19amsua + [4.41, 3.22, 2.51, 0.59, 0.3, + 0.23, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 5.60] + err1: &id4n19amsua + [31.20, 43.6, 14.12, 2.94, 0.5, + 0.3, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 15.36] + <<: *multiIterationFilter + +# partly address cold-air outbreak issues + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# Obs CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Background CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + sensor: amsua_n19 + channels: 1-15 + <<: *multiIterationFilter + +# Transmittance Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + <<: *multiIterationFilter + +# Surface Jacobian check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n19 + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: 1-15 + options: + sensor: amsua_n19 + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + #bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + #bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: 1-15 + options: + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + #bias_application: HofX + clwret_clearsky: *id1n19amsua + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: + - ObsValue + - HofX + x0: *id1n19amsua + x1: *id2n19amsua + err0: *id3n19amsua + err1: *id4n19amsua + obserr_clearsky: *id3n19amsua + <<: *multiIterationFilter + +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: 1-15 + options: + sensor: amsua_n19 + channels: 1-15 + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: HofX + x0: *id1n19amsua + x1: *id2n19amsua + err0: *id3n19amsua + err1: *id4n19amsua + threshold: 3 + threshold_precip: 2.5 + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter + +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n19 + use_flag: &id5n19amsua + [1, 1, 1, 1, 1, + 1, 1, -1, 1, -1, + -1, -1, -1, -1, 1 ] + maxvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: 1-15 + options: + channels: 1-15 + use_flag: *id5n19amsua + minvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n19.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n19.yaml_cold-air-outbreak b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n19.yaml_cold-air-outbreak new file mode 100644 index 00000000..d8065662 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-all_n19.yaml_cold-air-outbreak @@ -0,0 +1,406 @@ + obs filters: + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + # - filter: Domain Check + #filter variables: + #- name: brightnessTemperature + #channels: 1-4,15 + #where: + #- variable: + # name: GeoVaLs/water_area_fraction + #minvalue: 1.0 + #- variable: + # name: MetaData/latitude + #minvalue: -60.0 + #maxvalue: 60.0 + #<<: *multiIterationFilter + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: ObsValue + x0: &id1 + [0.03, 0.03, 0.03, 0.03, 0.0, + 0.1, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.03] + x1: &id2 + [0.55, 0.58, 0.37, 0.44, 1.0, + 1.50, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.23] + err0: &id3 + [4.41, 3.22, 2.51, 0.59, 0.3, + 0.23, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 5.60] + err1: &id4 + [31.20, 43.6, 14.12, 2.94, 0.5, + 0.3, 0.23, 0.25, 0.25, 0.35, + 0.4, 0.55, 0.8, 4.0, 15.36] + <<: *multiIterationFilter + +# Obs CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Background CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + sensor: amsua_n19 + channels: 1-15 + <<: *multiIterationFilter + +# Transmittance Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + <<: *multiIterationFilter + +# Surface Jacobian check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n19 + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-15 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: 1-15 + options: + sensor: amsua_n19 + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: 1-15 + options: + channels: 1-15 + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + clwret_clearsky: *id1 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: + - ObsValue + - HofX + x0: *id1 + x1: *id2 + err0: *id3 + err1: *id4 + obserr_clearsky: *id3 + <<: *multiIterationFilter + +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: 1-15 + options: + sensor: amsua_n19 + channels: 1-15 + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: 1-15 + options: + channels: 1-15 + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-15 + options: + channels: 1-15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + #bias_application: HofX + x0: *id1 + x1: *id2 + err0: *id3 + err1: *id4 + threshold: 3 + threshold_precip: 2.5 + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter + +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: 1-15 + options: + channels: 1-15 + sensor: amsua_n19 + use_flag: &id5 + [1, 1, 1, 1, 1, + 1, 1, -1, 1, -1, + -1, -1, -1, -1, 1 ] + maxvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-15 + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: 1-15 + options: + channels: 1-15 + use_flag: *id5 + minvalue: 1.0e-12 + action: + name: reject + <<: *multiIterationFilter + +# Combined ColumnLiquidCloud + ColumnIceCloud + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/ColumnLiquidIceCloud + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: GeoVaLs/mass_content_of_cloud_liquid_water_in_atmosphere_column + - name: GeoVaLs/mass_content_of_cloud_ice_in_atmosphere_column + coefs: [1, 1] +# replace zero by 9.99e-7 in DerivedMetaData/ColumnLiquidIceCloud + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/ColumnLiquidIceCloud + type: float + value: 0.0 + where: + - variable: + name: DerivedMetaData/ColumnLiquidIceCloud + maxvalue: 9.99e-07 + +# ratio of liquid /(Liquid+Ice) + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/ColumnRatioLiquidCloud + type: float + function: + name: ObsFunction/ElementMultiply + options: + variables: + - name: GeoVaLs/mass_content_of_cloud_liquid_water_in_atmosphere_column + - name: DerivedMetaData/ColumnLiquidIceCloud + exponents: [1,-1] + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/ColumnRatioLiquidCloud + type: float + value: 0.0 + where: + - variable: + name: DerivedMetaData/ColumnLiquidIceCloud + maxvalue: 1.0e-06 +# TotalColumnVaporGuess + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/TotalColumnVaporGuess + type: float + function: + name: ObsFunction/TotalColumnVaporGuess +# potentialTemperature at surface + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/PotentialTemperatureSurface + type: float + function: + name: PotentialTemperatureFromTemperature@ObsFunction + options: + use surface pressure: true +# potentialTemperature near 700 hPa + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/PotentialTemperatureAt700hPa + type: float + function: + name: PotentialTemperatureFromTemperature@ObsFunction + options: + use surface pressure: false + pressure to evaluate potential temperature: 70000.0 +# stability = Difference between PotentialTemperatur values + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/PotentialTemperatureDiff + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: DerivedMetaData/PotentialTemperatureAt700hPa + - name: DerivedMetaData/PotentialTemperatureSurface + coefs: [1, -1] + +# cold-air-outbreak (cao) check for all-sky DA with Rain, Snow, or Graupel + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + where: + - variable: + name: ObsFunction/TotalColumnVaporGuess + maxvalue: 8.0 + - variable: + name: DerivedMetaData/ColumnRatioLiquidCloud + maxvalue: 0.5 + - variable: + name: DerivedMetaData/PotentialTemperatureDiff + maxvalue: 12.0 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: reject + <<: *multiIterationFilter + +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n19.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_metop-a.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_metop-a.yaml new file mode 100644 index 00000000..8e395797 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_metop-a.yaml @@ -0,0 +1,172 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -40.0 + maxvalue: 60.0 + <<: *multiIterationFilter + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-4,15 + options: + channels: 1-4,15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [ 0.03, 0.03, 0.03, 0.03, 0.03] + x1: [ 0.55, 0.58, 0.37, 0.44, 0.23] + err0: [ 4.41, 3.22, 2.51, 0.59, 5.60] + err1: [ 31.20, 43.60, 14.12, 2.94, 15.36] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: *amsua-cld_metop-a_channels + options: + sensor: amsua_metop-a + channels: *amsua-cld_metop-a_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: *amsua-cld_metop-a_channels + options: + channels: *amsua-cld_metop-a_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + clwret_clearsky: [0.050, 0.030, 0.030, 0.020, 0.000, + 0.100, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + obserr_clearsky: [2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + <<: *multiIterationFilter +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_metop-a_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua-cld_metop-a_channels + options: + sensor: amsua_metop-a + channels: *amsua-cld_metop-a_channels + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua-cld_metop-a_channels + options: + channels: *amsua-cld_metop-a_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua-cld_metop-a_channels + options: + channels: *amsua-cld_metop-a_channels + sensor: amsua_metop-a + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua-cld_metop-a_channels + options: + channels: *amsua-cld_metop-a_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.03, 0.03, 0.03, 0.03, 0.03] + x1: [ 0.55, 0.58, 0.37, 0.44, 0.23] + err0: [ 4.41, 3.22, 2.51, 0.59, 5.60] + err1: [ 31.20, 43.60, 14.12, 2.94, 15.36] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_metop-a_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua-cld_metop-a_channels + options: + channels: *amsua-cld_metop-a_channels + use_flag: [ 1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_metop-a.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_metop-b.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_metop-b.yaml new file mode 100644 index 00000000..10f7f7e8 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_metop-b.yaml @@ -0,0 +1,173 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -40.0 + maxvalue: 60.0 + <<: *multiIterationFilter + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-4 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-4 + options: + channels: 1-4 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [ 0.03, 0.03, 0.03, 0.03] + x1: [ 0.57, 0.57, 0.37, 0.42] + err0: [ 4.47, 3.24, 2.35, 0.58] + err1: [ 30.85, 43.02, 14.17, 2.89] + <<: *multiIterationFilter + + +# Situation dependent Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: *amsua-cld_metop-b_channels + options: + sensor: amsua_metop-b + channels: *amsua-cld_metop-b_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: *amsua-cld_metop-b_channels + options: + channels: *amsua-cld_metop-b_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + clwret_clearsky: [0.050, 0.030, 0.030, 0.020, 0.000, + 0.100, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + obserr_clearsky: [2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + <<: *multiIterationFilter +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_metop-b_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua-cld_metop-b_channels + options: + sensor: amsua_metop-b + channels: *amsua-cld_metop-b_channels + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua-cld_metop-b_channels + options: + channels: *amsua-cld_metop-b_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua-cld_metop-b_channels + options: + channels: *amsua-cld_metop-b_channels + sensor: amsua_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua-cld_metop-b_channels + options: + channels: *amsua-cld_metop-b_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.03, 0.03, 0.03, 0.03] + x1: [ 0.57, 0.57, 0.37, 0.42] + err0: [ 4.47, 3.24, 2.35, 0.58] + err1: [ 30.85, 43.02, 14.17, 2.89] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_metop-b_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua-cld_metop-b_channels + options: + channels: *amsua-cld_metop-b_channels + use_flag: [ 1, -1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_metop-b.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_metop-c.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_metop-c.yaml new file mode 100644 index 00000000..54b82b02 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_metop-c.yaml @@ -0,0 +1,173 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -40.0 + maxvalue: 60.0 + <<: *multiIterationFilter + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-4,15 + options: + channels: 1-4,15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [ 0.03, 0.03, 0.03, 0.03, 0.03] + x1: [ 0.55, 0.58, 0.37, 0.44, 0.23] + err0: [ 4.41, 3.22, 2.51, 0.59, 5.60] + err1: [ 31.20, 43.60, 14.12, 2.94, 15.36] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_metop-c_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: *amsua-cld_metop-c_channels + options: + sensor: amsua_metop-c + channels: *amsua-cld_metop-c_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: *amsua-cld_metop-c_channels + options: + channels: *amsua-cld_metop-c_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + clwret_clearsky: [0.050, 0.030, 0.030, 0.020, 0.000, + 0.100, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + obserr_clearsky: [2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + <<: *multiIterationFilter +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_metop-c_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua-cld_metop-c_channels + options: + sensor: amsua_metop-c + channels: *amsua-cld_metop-c_channels + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua-cld_metop-c_channels + options: + channels: *amsua-cld_metop-c_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua-cld_metop-c_channels + options: + channels: *amsua-cld_metop-c_channels + sensor: amsua_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua-cld_metop-c_channels + options: + channels: *amsua-cld_metop-c_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.03, 0.03, 0.03, 0.03, 0.03] + x1: [ 0.55, 0.58, 0.37, 0.44, 0.23] + err0: [ 4.41, 3.22, 2.51, 0.59, 5.60] + err1: [ 31.20, 43.60, 14.12, 2.94, 15.36] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_metop-c_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua-cld_metop-c_channels + options: + channels: *amsua-cld_metop-c_channels + #use_flag: [ 1, -1, 1, 1, 1] + use_flag: [ 1, 1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_metop-c.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_n15.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_n15.yaml new file mode 100644 index 00000000..ff79653e --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_n15.yaml @@ -0,0 +1,172 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -40.0 + maxvalue: 60.0 + <<: *multiIterationFilter + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-4,15 + options: + channels: 1-4,15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [ 0.03, 0.03, 0.03, 0.03, 0.03] + x1: [ 0.57, 0.58, 0.37, 0.43, 0.24] + err0: [ 4.50, 3.29, 2.44, 0.51, 5.77] + err1: [ 37.54, 47.42, 13.81, 2.84, 15.44] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_n15_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: *amsua-cld_n15_channels + options: + sensor: amsua_n15 + channels: *amsua-cld_n15_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: *amsua-cld_n15_channels + options: + channels: *amsua-cld_n15_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + clwret_clearsky: [0.050, 0.030, 0.030, 0.020, 0.000, + 0.100, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + obserr_clearsky: [ 3.000, 2.200, 2.000, 0.600, 0.300, + 0.230, 0.250, 0.275, 0.340, 0.400, + 0.600, 1.000, 1.500, 2.000, 3.500] + <<: *multiIterationFilter +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_n15_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua-cld_n15_channels + options: + sensor: amsua_n15 + channels: *amsua-cld_n15_channels + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua-cld_n15_channels + options: + channels: *amsua-cld_n15_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua-cld_n15_channels + options: + channels: *amsua-cld_n15_channels + sensor: amsua_n15 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua-cld_n15_channels + options: + channels: *amsua-cld_n15_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.03, 0.03, 0.03, 0.03, 0.03] + x1: [ 0.57, 0.58, 0.37, 0.43, 0.24] + err0: [ 4.50, 3.29, 2.44, 0.51, 5.77] + err1: [ 37.54, 47.42, 13.81, 2.84, 15.44] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_n15_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua-cld_n15_channels + options: + channels: *amsua-cld_n15_channels + use_flag: [ 1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + #- filter: GOMsaver + # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n15.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_n18.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_n18.yaml new file mode 100644 index 00000000..dc4eef54 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_n18.yaml @@ -0,0 +1,172 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -40.0 + maxvalue: 60.0 + <<: *multiIterationFilter + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-4,15 + options: + channels: 1-4,15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [ 0.04, 0.04, 0.04, 0.04, 0.04] + x1: [ 0.55, 0.57, 0.36, 0.41, 0.24] + err0: [ 4.51, 3.45, 2.59, 0.67, 6.05] + err1: [ 33.25, 44.55, 13.92, 2.88, 15.32] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_n18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: *amsua-cld_n18_channels + options: + sensor: amsua_n18 + channels: *amsua-cld_n18_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: *amsua-cld_n18_channels + options: + channels: *amsua-cld_n18_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + clwret_clearsky: [0.050, 0.030, 0.030, 0.020, 0.000, + 0.100, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + obserr_clearsky: [2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + <<: *multiIterationFilter +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_n18_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua-cld_n18_channels + options: + sensor: amsua_n18 + channels: *amsua-cld_n18_channels + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua-cld_n18_channels + options: + channels: *amsua-cld_n18_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua-cld_n18_channels + options: + channels: *amsua-cld_n18_channels + sensor: amsua_n18 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua-cld_n18_channels + options: + channels: *amsua-cld_n18_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.04, 0.04, 0.04, 0.04, 0.04] + x1: [ 0.55, 0.57, 0.36, 0.41, 0.24] + err0: [ 4.51, 3.45, 2.59, 0.67, 6.05] + err1: [ 33.25, 44.55, 13.92, 2.88, 15.32] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_n18_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua-cld_n18_channels + options: + channels: *amsua-cld_n18_channels + use_flag: [ 1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n18.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_n19.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_n19.yaml new file mode 100644 index 00000000..0ef9ce98 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua-cld_n19.yaml @@ -0,0 +1,171 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + - variable: + name: MetaData/latitude + minvalue: -40.0 + maxvalue: 60.0 + <<: *multiIterationFilter + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-4,15 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: 1-4,15 + options: + channels: 1-4,15 + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [ 0.03, 0.03, 0.03, 0.03, 0.03] + x1: [0.55, 0.58, 0.37, 0.44, 0.23] + err0: [4.41, 3.22, 2.51, 0.59, 5.60] + err1: [31.20, 43.60, 14.12, 2.94, 15.36] + <<: *multiIterationFilter + +# Situation dependent Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_n19_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: *amsua-cld_n19_channels + options: + sensor: amsua_n19 + channels: *amsua-cld_n19_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 15 + scatret_types: [ObsValue] + bias_application: HofX + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: *amsua-cld_n19_channels + options: + channels: *amsua-cld_n19_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + bias_application: HofX + clwret_clearsky: [0.050, 0.030, 0.030, 0.020, 0.000, + 0.100, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + obserr_clearsky: [2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + <<: *multiIterationFilter + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_n19_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua-cld_n19_channels + options: + sensor: amsua_n19 + channels: *amsua-cld_n19_channels + #thresholdfactor: 1 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua-cld_n19_channels + options: + channels: *amsua-cld_n19_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua-cld_n19_channels + options: + channels: *amsua-cld_n19_channels + sensor: amsua_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua-cld_n19_channels + options: + channels: *amsua-cld_n19_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.03, 0.03, 0.03, 0.03, 0.03] + x1: [0.55, 0.58, 0.37, 0.44, 0.23] + err0: [4.41, 3.22, 2.51, 0.59, 5.60] + err1: [31.20, 43.60, 14.12, 2.94, 15.36] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua-cld_n19_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua-cld_n19_channels + options: + channels: *amsua-cld_n19_channels + use_flag: [ 1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua-cld_n19.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_aqua.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_aqua.yaml index 5c36726e..817d23ae 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_aqua.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_aqua.yaml @@ -208,5 +208,7 @@ name: reject - filter: Gaussian_Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_aqua.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_aqua_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_aqua_rttov.yaml new file mode 100644 index 00000000..e5ef60ed --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_aqua_rttov.yaml @@ -0,0 +1,227 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject +# Hydrometeor Check (cloud/precipitation affected chanels) + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_aqua_channels + test variables: + - name: ObsFunction/HydrometeorCheckAMSUA + channels: *amsua_aqua_channels + options: + channels: *amsua_aqua_channels + obserr_clearsky: [ 2.500, 2.000, 2.000, 0.500, 0.400, + 0.400, 0.500, 0.300, 0.350, 0.350, + 0.450, 1.000, 1.500, 2.500, 2.500] + clwret_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_aqua_channels + options: + channels: *amsua_aqua_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 2.500, 2.200, 2.000, 0.500, 0.400, + 0.400, 0.500, 0.300, 0.350, 0.350, + 0.450, 1.000, 1.500, 2.500, 2.500] + err1: [ 2.500, 2.000, 2.000, 0.500, 0.400, + 0.400, 0.500, 0.300, 0.350, 0.350, + 0.450, 1.000, 1.500, 2.500, 2.500] + maxvalue: 0.0 + action: + name: reject +# Topography check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_aqua_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_aqua_channels + options: + sensor: amsua_aqua + channels: *amsua_aqua_channels +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_aqua_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_aqua_channels + options: + channels: *amsua_aqua_channels +# Surface Jacobian check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_aqua_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *amsua_aqua_channels + options: + channels: *amsua_aqua_channels + sensor: amsua_aqua + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua_aqua_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua_aqua_channels + options: + sensor: amsua_aqua + channels: *amsua_aqua_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_aqua_channels + options: + channels: *amsua_aqua_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_aqua_channels + options: + channels: *amsua_aqua_channels + sensor: amsua_aqua + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_aqua_channels + options: + channels: *amsua_aqua_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 2.500, 2.000, 2.000, 0.500, 0.400, + 0.400, 0.500, 0.300, 0.350, 0.350, + 0.450, 1.000, 1.500, 2.500, 2.500] + err1: [ 2.500, 2.000, 2.000, 0.500, 0.400, + 0.400, 0.500, 0.300, 0.350, 0.350, + 0.450, 1.000, 1.500, 2.500, 2.500] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_aqua_channels + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: *amsua_aqua_channels + options: + channels: *amsua_aqua_channels + sensor: amsua_aqua + use_flag: [ -1, -1, -1, -1, -1, + -1, -1, 1, 1, -1, + -1, -1, -1, -1, -1 ] + maxvalue: 1.0e-12 + action: + name: reject +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_aqua_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua_aqua_channels + options: + channels: *amsua_aqua_channels + use_flag: [ -1, -1, -1, -1, -1, + -1, -1, 1, 1, -1, + -1, -1, -1, -1, -1 ] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + - filter: GOMsaver + filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_aqua.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}{{MemberDir}}/{{diagPrefix}}_amsua_aqua.nc4 + filter variables: + - name: brightness_temperature_assuming_clear_sky + channels: *amsua_aqua_channels + - name: transmittances_of_atmosphere_layer + channels: *amsua_aqua_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *amsua_aqua_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *amsua_aqua_channels + - name: surface_emissivity + channels: *amsua_aqua_channels diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-a.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-a.yaml index 00e43e26..5bbe4a43 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-a.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-a.yaml @@ -208,5 +208,7 @@ name: reject - filter: Gaussian_Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_metop-a.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-a_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-a_rttov.yaml new file mode 100644 index 00000000..9d4eb598 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-a_rttov.yaml @@ -0,0 +1,227 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject +# Hydrometeor Check (cloud/precipitation affected chanels) + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-a_channels + test variables: + - name: ObsFunction/HydrometeorCheckAMSUA + channels: *amsua_metop-a_channels + options: + channels: *amsua_metop-a_channels + obserr_clearsky: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + clwret_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_metop-a_channels + options: + channels: *amsua_metop-a_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + err1: [20.000, 18.000, 12.000, 3.000, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 18.000] + maxvalue: 0.0 + action: + name: reject +# Topography check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_metop-a_channels + options: + sensor: amsua_metop-a + channels: *amsua_metop-a_channels +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_metop-a_channels + options: + channels: *amsua_metop-a_channels +# Surface Jacobian check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *amsua_metop-a_channels + options: + channels: *amsua_metop-a_channels + sensor: amsua_metop-a + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-a_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua_metop-a_channels + options: + sensor: amsua_metop-a + channels: *amsua_metop-a_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_metop-a_channels + options: + channels: *amsua_metop-a_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_metop-a_channels + options: + channels: *amsua_metop-a_channels + sensor: amsua_metop-a + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_metop-a_channels + options: + channels: *amsua_metop-a_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + err1: [20.000, 18.000, 12.000, 3.000, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 18.000] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-a_channels + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: *amsua_metop-a_channels + options: + channels: *amsua_metop-a_channels + sensor: amsua_metop-a + use_flag: [ -1, -1, -1, -1, 1, + 1, -1, -1, 1, -1, + -1, -1, -1, -1, -1 ] + maxvalue: 1.0e-12 + action: + name: reject +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-a_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua_metop-a_channels + options: + channels: *amsua_metop-a_channels + use_flag: [ -1, -1, -1, -1, 1, + 1, -1, -1, 1, -1, + -1, -1, -1, -1, -1 ] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + - filter: GOMsaver + filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_metop-a.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}{{MemberDir}}/{{diagPrefix}}_amsua_metop-a.nc4 + filter variables: + - name: brightness_temperature_assuming_clear_sky + channels: *amsua_metop-a_channels + - name: transmittances_of_atmosphere_layer + channels: *amsua_metop-a_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *amsua_metop-a_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *amsua_metop-a_channels + - name: surface_emissivity + channels: *amsua_metop-a_channels diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-b.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-b.yaml index 84f6108b..e93866fa 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-b.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-b.yaml @@ -208,5 +208,7 @@ name: reject - filter: Gaussian_Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_metop-b.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-b_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-b_rttov.yaml new file mode 100644 index 00000000..26cc169d --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-b_rttov.yaml @@ -0,0 +1,227 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject +# Hydrometeor Check (cloud/precipitation affected chanels) + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-b_channels + test variables: + - name: ObsFunction/HydrometeorCheckAMSUA + channels: *amsua_metop-b_channels + options: + channels: *amsua_metop-b_channels + obserr_clearsky: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + clwret_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_metop-b_channels + options: + channels: *amsua_metop-b_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + err1: [20.000, 18.000, 12.000, 3.000, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 18.000] + maxvalue: 0.0 + action: + name: reject +# Topography check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_metop-b_channels + options: + sensor: amsua_metop-b + channels: *amsua_metop-b_channels +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_metop-b_channels + options: + channels: *amsua_metop-b_channels +# Surface Jacobian check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *amsua_metop-b_channels + options: + channels: *amsua_metop-b_channels + sensor: amsua_metop-b + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-b_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua_metop-b_channels + options: + sensor: amsua_metop-b + channels: *amsua_metop-b_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_metop-b_channels + options: + channels: *amsua_metop-b_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_metop-b_channels + options: + channels: *amsua_metop-b_channels + sensor: amsua_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_metop-b_channels + options: + channels: *amsua_metop-b_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + err1: [20.000, 18.000, 12.000, 3.000, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 18.000] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-b_channels + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: *amsua_metop-b_channels + options: + channels: *amsua_metop-b_channels + sensor: amsua_metop-b + use_flag: [ -1, -1, -1, -1, -1, + -1, -1, 1, 1, -1, + -1, -1, -1, -1, -1 ] + maxvalue: 1.0e-12 + action: + name: reject +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_metop-b_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua_metop-b_channels + options: + channels: *amsua_metop-b_channels + use_flag: [ -1, -1, -1, -1, -1, + -1, -1, 1, 1, -1, + -1, -1, -1, -1, -1 ] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + - filter: GOMsaver + filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_metop-b.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}{{MemberDir}}/{{diagPrefix}}_amsua_metop-b.nc4 + filter variables: + - name: brightness_temperature_assuming_clear_sky + channels: *amsua_metop-b_channels + - name: transmittances_of_atmosphere_layer + channels: *amsua_metop-b_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *amsua_metop-b_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *amsua_metop-b_channels + - name: surface_emissivity + channels: *amsua_metop-b_channels diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-c.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-c.yaml index 20b1a376..6f952152 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-c.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_metop-c.yaml @@ -208,5 +208,7 @@ name: reject - filter: Gaussian_Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_metop-c.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n15.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n15.yaml index 48bf8301..b8734be3 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n15.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n15.yaml @@ -208,5 +208,7 @@ name: reject - filter: Gaussian_Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_n15.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n15_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n15_rttov.yaml new file mode 100644 index 00000000..8906fc3b --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n15_rttov.yaml @@ -0,0 +1,227 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject +# Hydrometeor Check (cloud/precipitation affected chanels) + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n15_channels + test variables: + - name: ObsFunction/HydrometeorCheckAMSUA + channels: *amsua_n15_channels + options: + channels: *amsua_n15_channels + obserr_clearsky: [ 3.000, 2.200, 2.000, 0.600, 0.300, + 0.230, 0.250, 0.275, 0.340, 0.400, + 0.600, 1.000, 1.500, 2.000, 3.500] + clwret_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_n15_channels + options: + channels: *amsua_n15_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 3.000, 2.200, 2.000, 0.600, 0.300, + 0.230, 0.250, 0.275, 0.340, 0.400, + 0.600, 1.000, 1.500, 2.000, 3.500] + err1: [ 3.000, 2.200, 2.000, 0.600, 0.300, + 0.230, 0.250, 0.275, 0.340, 0.400, + 0.600, 1.000, 1.500, 2.000, 3.500] + maxvalue: 0.0 + action: + name: reject +# Topography check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_n15_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_n15_channels + options: + sensor: amsua_n15 + channels: *amsua_n15_channels +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_n15_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_n15_channels + options: + channels: *amsua_n15_channels +# Surface Jacobian check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_n15_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *amsua_n15_channels + options: + channels: *amsua_n15_channels + sensor: amsua_n15 + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n15_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua_n15_channels + options: + sensor: amsua_n15 + channels: *amsua_n15_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_n15_channels + options: + channels: *amsua_n15_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_n15_channels + options: + channels: *amsua_n15_channels + sensor: amsua_n15 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_n15_channels + options: + channels: *amsua_n15_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 3.000, 2.200, 2.000, 0.600, 0.300, + 0.230, 0.250, 0.275, 0.340, 0.400, + 0.600, 1.000, 1.500, 2.000, 3.500] + err1: [ 3.000, 2.200, 2.000, 0.600, 0.300, + 0.230, 0.250, 0.275, 0.340, 0.400, + 0.600, 1.000, 1.500, 2.000, 3.500] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Inter-channel check #amsua-n15 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n15_channels + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: *amsua_n15_channels + options: + channels: *amsua_n15_channels + sensor: amsua_n15 + use_flag: [-1, -1, -1, -1, 1, + -1, 1, 1, 1, -1, + -1, -1, -1, -1, -1 ] + maxvalue: 1.0e-12 + action: + name: reject +# Useflag check #amsua-n15 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n15_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua_n15_channels + options: + channels: *amsua_n15_channels + use_flag: [-1, -1, -1, -1, 1, + -1, 1, 1, 1, -1, + -1, -1, -1, -1, -1 ] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + - filter: GOMsaver + filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_n15.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}{{MemberDir}}/{{diagPrefix}}_amsua_n15.nc4 + filter variables: + - name: brightness_temperature_assuming_clear_sky + channels: *amsua_n15_channels + - name: transmittances_of_atmosphere_layer + channels: *amsua_n15_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *amsua_n15_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *amsua_n15_channels + - name: surface_emissivity + channels: *amsua_n15_channels diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n18.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n18.yaml index 55de959b..6d9e4093 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n18.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n18.yaml @@ -208,5 +208,7 @@ name: reject - filter: Gaussian_Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_n18.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n18_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n18_rttov.yaml new file mode 100644 index 00000000..f16fdbc8 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n18_rttov.yaml @@ -0,0 +1,227 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject +# Hydrometeor Check (cloud/precipitation affected chanels) + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n18_channels + test variables: + - name: ObsFunction/HydrometeorCheckAMSUA + channels: *amsua_n18_channels + options: + channels: *amsua_n18_channels + obserr_clearsky: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + clwret_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_n18_channels + options: + channels: *amsua_n18_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + err1: [20.000, 18.000, 12.000, 3.000, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 18.000] + maxvalue: 0.0 + action: + name: reject +# Topography check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_n18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_n18_channels + options: + sensor: amsua_n18 + channels: *amsua_n18_channels +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_n18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_n18_channels + options: + channels: *amsua_n18_channels +# Surface Jacobian check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_n18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *amsua_n18_channels + options: + channels: *amsua_n18_channels + sensor: amsua_n18 + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n18_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua_n18_channels + options: + sensor: amsua_n18 + channels: *amsua_n18_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_n18_channels + options: + channels: *amsua_n18_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_n18_channels + options: + channels: *amsua_n18_channels + sensor: amsua_n18 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_n18_channels + options: + channels: *amsua_n18_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + err1: [20.000, 18.000, 12.000, 3.000, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 18.000] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Inter-channel check #amsua-n18 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n18_channels + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: *amsua_n18_channels + options: + channels: *amsua_n18_channels + sensor: amsua_n18 + use_flag: [ -1, -1, -1, -1, 1, + 1, 1, 1, 1, -1, + -1, -1, -1, -1, -1 ] + maxvalue: 1.0e-12 + action: + name: reject +# Useflag check #amsua-n18 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n18_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua_n18_channels + options: + channels: *amsua_n18_channels + use_flag: [ -1, -1, -1, -1, 1, + 1, 1, 1, 1, -1, + -1, -1, -1, -1, -1 ] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + - filter: GOMsaver + filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_n18.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}{{MemberDir}}/{{diagPrefix}}_amsua_n18.nc4 + filter variables: + - name: brightness_temperature_assuming_clear_sky + channels: *amsua_n18_channels + - name: transmittances_of_atmosphere_layer + channels: *amsua_n18_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *amsua_n18_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *amsua_n18_channels + - name: surface_emissivity + channels: *amsua_n18_channels diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n18_rttov12.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n18_rttov12.yaml new file mode 100644 index 00000000..c026f4da --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n18_rttov12.yaml @@ -0,0 +1,214 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 +# CLW Retrieval Check +# - filter: Bounds Check +# filter variables: +# - name: brightnessTemperature +# channels: 1-6, 15 +# test variables: +# - name: ObsFunction/CLWRetMW +# options: +# clwret_ch238: 1 +# clwret_ch314: 2 +# clwret_types: [ObsValue] +# maxvalue: 999.0 +# action: +# name: reject +# CLW Retrieval Check +# - filter: Bounds Check +# filter variables: +# - name: brightnessTemperature +# channels: 1-6, 15 +# test variables: +# - name: ObsFunction/CLWRetMW +# options: +# clwret_ch238: 1 +# clwret_ch314: 2 +# clwret_types: [HofX] +# maxvalue: 999.0 +# action: +# name: reject +# Hydrometeor Check (cloud/precipitation affected chanels) +# - filter: Bounds Check +# filter variables: +# - name: brightnessTemperature +# channels: *amsua_n18_channels +# test variables: +# - name: ObsFunction/HydrometeorCheckAMSUA +# channels: *amsua_n18_channels +# options: +# channels: *amsua_n18_channels +# obserr_clearsky: [ 2.500, 2.200, 2.000, 0.550, 0.300, +# 0.230, 0.230, 0.250, 0.250, 0.350, +# 0.400, 0.550, 0.800, 3.000, 3.500] +# clwret_function: +# name: ObsFunction/CLWRetMW +# options: +# clwret_ch238: 1 +# clwret_ch314: 2 +# clwret_types: [ObsValue] +# obserr_function: +# name: ObsFunction/ObsErrorModelRamp +# channels: *amsua_n18_channels +# options: +# channels: *amsua_n18_channels +# xvar: +# name: ObsFunction/CLWRetSymmetricMW +# options: +# clwret_ch238: 1 +# clwret_ch314: 2 +# clwret_types: [ObsValue, HofX] +# x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, +# 0.000, 0.000, 0.000, 0.000, 0.000, +# 0.000, 0.000, 0.000, 0.000, 0.030] +# x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, +# 0.000, 0.000, 0.000, 0.000, 0.000, +# 0.000, 0.000, 0.000, 0.000, 0.200] +# err0: [ 2.500, 2.200, 2.000, 0.550, 0.300, +# 0.230, 0.230, 0.250, 0.250, 0.350, +# 0.400, 0.550, 0.800, 3.000, 3.500] +# err1: [20.000, 18.000, 12.000, 3.000, 0.300, +# 0.230, 0.230, 0.250, 0.250, 0.350, +# 0.400, 0.550, 0.800, 3.000, 18.000] +# maxvalue: 0.0 +# action: +# name: reject +# Topography check +# - filter: Perform Action +# filter variables: +# - name: brightnessTemperature +# channels: *amsua_n18_channels +# action: +# name: inflate error +# inflation variable: +# name: ObsFunction/ObsErrorFactorTopoRad +# channels: *amsua_n18_channels +# options: +# sensor: amsua_n18 +# channels: *amsua_n18_channels +# Transmittance Top Check +# - filter: Perform Action +# filter variables: +# - name: brightnessTemperature +# channels: *amsua_n18_channels +# action: +# name: inflate error +# inflation variable: +# name: ObsFunction/ObsErrorFactorTransmitTopRad +# channels: *amsua_n18_channels +# options: +# channels: *amsua_n18_channels +# Surface Jacobian check +# - filter: Perform Action +# filter variables: +# - name: brightnessTemperature +# channels: *amsua_n18_channels +# action: +# name: inflate error +# inflation variable: +# name: ObsFunction/ObsErrorFactorSurfJacobianRad +# channels: *amsua_n18_channels +# options: +# channels: *amsua_n18_channels +# sensor: amsua_n18 +# obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] +# obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] +# Gross check +# - filter: Background Check +# filter variables: +# - name: brightnessTemperature +# channels: *amsua_n18_channels +# function absolute threshold: +# - name: ObsFunction/ObsErrorBoundMW +# channels: *amsua_n18_channels +# options: +# sensor: amsua_n18 +# channels: *amsua_n18_channels +# obserr_bound_latitude: +# name: ObsFunction/ObsErrorFactorLatRad +# options: +# latitude_parameters: [25.0, 0.25, 0.04, 3.0] +# obserr_bound_transmittop: +# name: ObsFunction/ObsErrorFactorTransmitTopRad +# channels: *amsua_n18_channels +# options: +# channels: *amsua_n18_channels +# obserr_bound_topo: +# name: ObsFunction/ObsErrorFactorTopoRad +# channels: *amsua_n18_channels +# options: +# channels: *amsua_n18_channels +# sensor: amsua_n18 +# obserr_function: +# name: ObsFunction/ObsErrorModelRamp +# channels: *amsua_n18_channels +# options: +# channels: *amsua_n18_channels +# xvar: +# name: ObsFunction/CLWRetSymmetricMW +# options: +# clwret_ch238: 1 +# clwret_ch314: 2 +# clwret_types: [ObsValue, HofX] +# bias_application: HofX +# x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, +# 0.000, 0.000, 0.000, 0.000, 0.000, +# 0.000, 0.000, 0.000, 0.000, 0.030] +# x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, +# 0.000, 0.000, 0.000, 0.000, 0.000, +# 0.000, 0.000, 0.000, 0.000, 0.200] +# err0: [ 2.500, 2.200, 2.000, 0.550, 0.300, +# 0.230, 0.230, 0.250, 0.250, 0.350, +# 0.400, 0.550, 0.800, 3.000, 3.500] +# err1: [20.000, 18.000, 12.000, 3.000, 0.300, +# 0.230, 0.230, 0.250, 0.250, 0.350, +# 0.400, 0.550, 0.800, 3.000, 18.000] +# obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, +# 2.0, 2.0, 2.0, 2.0, 2.0, +# 2.5, 3.5, 4.5, 4.5, 4.5] +# action: +# name: reject +# <<: *multiIterationFilter +# Inter-channel check #amsua-n18 +# - filter: Bounds Check +# filter variables: +# - name: brightnessTemperature +# channels: *amsua_n18_channels +# test variables: +# - name: ObsFunction/InterChannelConsistencyCheck +# channels: *amsua_n18_channels +# options: +# channels: *amsua_n18_channels +# sensor: amsua_n18 +# use_flag: [ -1, -1, -1, -1, 1, +# 1, 1, 1, 1, -1, +# -1, -1, -1, -1, -1 ] +# maxvalue: 1.0e-12 +# action: +# name: reject +# Useflag check #amsua-n18 +# - filter: Bounds Check +# filter variables: +# - name: brightnessTemperature +# channels: *amsua_n18_channels +# test variables: +# - name: ObsFunction/ChannelUseflagCheckRad +# channels: *amsua_n18_channels +# options: +# channels: *amsua_n18_channels +# use_flag: [ -1, -1, -1, -1, 1, +# 1, 1, 1, 1, -1, +# -1, -1, -1, -1, -1 ] +# minvalue: 1.0e-12 +# action: +# name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_n18.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n19.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n19.yaml index ffeba84d..783aaa81 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n19.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n19.yaml @@ -208,5 +208,7 @@ name: reject - filter: Gaussian_Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_n19.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n19_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n19_rttov.yaml new file mode 100644 index 00000000..b1a7cd5d --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/amsua_n19_rttov.yaml @@ -0,0 +1,227 @@ + obs filters: + - filter: Domain Check + where: + - variable: + name: MetaData/sensorZenithAngle + maxvalue: 45.0 +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + maxvalue: 999.0 + action: + name: reject +# CLW Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6, 15 + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + maxvalue: 999.0 + action: + name: reject +# Hydrometeor Check (cloud/precipitation affected chanels) + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n19_channels + test variables: + - name: ObsFunction/HydrometeorCheckAMSUA + channels: *amsua_n19_channels + options: + channels: *amsua_n19_channels + obserr_clearsky: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + clwret_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_n19_channels + options: + channels: *amsua_n19_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + err1: [20.000, 18.000, 12.000, 3.000, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 18.000] + maxvalue: 0.0 + action: + name: reject +# Topography check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_n19_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_n19_channels + options: + sensor: amsua_n19 + channels: *amsua_n19_channels +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_n19_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_n19_channels + options: + channels: *amsua_n19_channels +# Surface Jacobian check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *amsua_n19_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *amsua_n19_channels + options: + channels: *amsua_n19_channels + sensor: amsua_n19 + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n19_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *amsua_n19_channels + options: + sensor: amsua_n19 + channels: *amsua_n19_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *amsua_n19_channels + options: + channels: *amsua_n19_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *amsua_n19_channels + options: + channels: *amsua_n19_channels + sensor: amsua_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *amsua_n19_channels + options: + channels: *amsua_n19_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.050, 0.030, 0.030, 0.020, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.030] + x1: [ 0.600, 0.450, 0.400, 0.450, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.200] + err0: [ 2.500, 2.200, 2.000, 0.550, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 3.500] + err1: [20.000, 18.000, 12.000, 3.000, 0.300, + 0.230, 0.230, 0.250, 0.250, 0.350, + 0.400, 0.550, 0.800, 3.000, 18.000] + obserr_bound_max: [4.5, 4.5, 4.5, 2.5, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, + 2.5, 3.5, 4.5, 4.5, 4.5] + action: + name: reject + <<: *multiIterationFilter +# Inter-channel check #amsua-n19 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n19_channels + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: *amsua_n19_channels + options: + channels: *amsua_n19_channels + sensor: amsua_n19 + use_flag: [ -1, -1, -1, -1, 1, + 1, 1, -1, 1, -1, + -1, -1, -1, -1, -1 ] + maxvalue: 1.0e-12 + action: + name: reject +# Useflag check #amsua-n19 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *amsua_n19_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *amsua_n19_channels + options: + channels: *amsua_n19_channels + use_flag: [ -1, -1, -1, -1, 1, + 1, 1, -1, 1, -1, + -1, -1, -1, -1, -1 ] + minvalue: 1.0e-12 + action: + name: reject + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + - filter: GOMsaver + filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_amsua_n19.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}{{MemberDir}}/{{diagPrefix}}_amsua_n19.nc4 + filter variables: + - name: brightness_temperature_assuming_clear_sky + channels: *amsua_n19_channels + - name: transmittances_of_atmosphere_layer + channels: *amsua_n19_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *amsua_n19_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *amsua_n19_channels + - name: surface_emissivity + channels: *amsua_n19_channels diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/atms_n20.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/atms_n20.yaml new file mode 100644 index 00000000..7f699435 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/atms_n20.yaml @@ -0,0 +1,402 @@ + obs filters: + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-5,16,17 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + <<: *multiIterationFilter + +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *atms_n20_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n20_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [0.03, 0.03, 0.03, 0.03, 0.03, + 0.04, 0.04, 0.04, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.03, 0.03, 0.04, 0.04, 0.04, 0.04, 0.04 ] + x1: [0.53, 0.47, 0.41, 0.41, 0.43, + 0.92, 0.92, 0.150, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.31, 0.53, 0.70, 0.70, 0.70, 0.70, 0.70] + err0: [4.40, 3.37, 2.56, 1.44, 0.53, + 0.32, 0.28, 0.260, 0.400, 0.480, + 0.450, 0.450, 0.550, 0.800, 3.000, + 5.96, 2.88, 2.31, 2.21, 2.31, 2.53, 2.81] + err1: [35.23, 42.77, 17.89, 9.71, 4.33, + 2.60, 0.77, 0.340, 0.400, 0.480, + 0.450, 0.450, 0.550, 0.800, 3.000, + 20.35, 35.56, 27.01, 20.55, 17.50, 13.15, 9.92 ] + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n20_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.98 + action: + name: assign error + error function: + #name: ObsFunction/ObsErrorModelRamp + name: ObsFunction/ObsErrorModelQuad + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 16 + siret_ch150: 17 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + + a: [ 0.030, 0.030, 0.030, 0.020, 0.030, + 0.005, 0.002, 0.001, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 9.00, 0.030, 0.042, 0.033, 0.032, + 0.020, 0.018] + b: [ 0.350, 0.380, 0.400, 0.450, 0.500, + 0.119, 0.119, 0.119, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 15.0, 0.500, 0.119, 0.119, 0.119, + 0.119, 0.119] + err0: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 1.32, 0.38, 0.29, 0.33, 0.48, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.0, 500.0, 5.39, 4.23, 3.64, + 3.32, 3.17] + err1: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 4.20, 2.00, 1.00, 0.33, 0.48, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.00, 500.00, 28.79, 26.32, 23.27, + 20.66, 16.80] + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *atms_n20_channels + options: + sensor: atms_n20 + channels: *atms_n20_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + <<: *multiIterationFilter +# Surface Jacobian check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + sensor: atms_n20 + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] + <<: *multiIterationFilter +# Situation dependent Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n20_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: *atms_n20_channels + options: + sensor: atms_n20 + channels: *atms_n20_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 16 + scatret_types: [ObsValue] + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + clwret_clearsky: [ 0.03, 0.03, 0.03, 0.03, 0.03, + 0.04, 0.04, 0.04, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.03, 0.03, 0.04, 0.04, 0.04, + 0.04, 0.04 ] + obserr_clearsky: [ 4.40, 3.37, 2.56, 1.44, 0.53, + 0.32, 0.28, 0.260, 0.400, 0.480, + 0.450, 0.450, 0.550, 0.800, 3.000, + 5.96, 2.88, 2.31, 2.21, 2.31, + 2.53, 2.81] + + <<: *multiIterationFilter +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *atms_n20_channels + + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *atms_n20_channels + options: + sensor: atms_n20 + channels: *atms_n20_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + sensor: atms_n20 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + x0: [0.03, 0.03, 0.03, 0.03, 0.03, + 0.04, 0.04, 0.04, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.03, 0.03, 0.04, 0.04, 0.04, 0.04, 0.04 ] + x1: [0.53, 0.47, 0.41, 0.41, 0.43, + 0.92, 0.92, 0.150, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.31, 0.53, 0.70, 0.70, 0.70, 0.70, 0.70] + err0: [4.40, 3.37, 2.56, 1.44, 0.53, + 0.32, 0.28, 0.260, 0.400, 0.480, + 0.450, 0.450, 0.550, 0.800, 3.000, + 5.96, 2.88, 2.31, 2.21, 2.31, 2.53, 2.81] + err1: [35.23, 42.77, 17.89, 9.71, 4.33, + 2.60, 0.77, 0.340, 0.400, 0.480, + 0.450, 0.450, 0.550, 0.800, 3.000, + 20.35, 35.56, 27.01, 20.55, 17.50, 13.15, 9.92 ] + obserr_bound_max: [4.5, 4.5, 3.0, 3.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 2.0, 4.5, + 4.5, 2.0, 2.0, 2.0, 2.0, + 2.0, 2.0] + action: + name: reject + <<: *multiIterationFilter +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *atms_n20_channels + + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.98 + + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *atms_n20_channels + options: + sensor: atms_n20 + channels: *atms_n20_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + sensor: atms_n20 + obserr_function: + name: ObsFunction/ObsErrorModelQuad + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 16 + siret_ch150: 17 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + a: [ 0.030, 0.030, 0.030, 0.020, 0.030, + 0.005, 0.002, 0.001, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 9.00, 0.030, 0.042, 0.033, 0.032, + 0.020, 0.018] + b: [ 0.350, 0.380, 0.400, 0.450, 0.500, + 0.119, 0.119, 0.119, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 15.0, 0.500, 0.119, 0.119, 0.119, + 0.119, 0.119] + err0: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 1.32, 0.38, 0.29, 0.33, 0.48, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.0, 500.0, 5.39, 4.23, 3.64, + 3.32, 3.17] + err1: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 4.20, 2.00, 1.00, 0.33, 0.48, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.00, 500.00, 28.79, 26.32, 23.27, + 20.66, 16.80] + obserr_bound_max: [4.5, 4.5, 3.0, 3.0, 1.0, + 3.0, 1.2, 1.2, 1.2, 1.5, + 1.0, 1.0, 1.0, 2.0, 4.5, + 4.5, 2.0, 6.0, 5.0, 5.0, + 5.0, 5.0] + + action: + name: reject + <<: *multiIterationFilter +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *atms_n20_channels + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: *atms_n20_channels + options: + channels: *atms_n20_channels + sensor: atms_n20 + use_flag: [ 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, + 1, 1] + maxvalue: 1.0e-12 + action: + name: reject +# 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, -1, + 1, 1, 1, 1, 1, + 1, 1] + minvalue: 1.0e-12 + action: + name: reject + +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_atms_n20.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/atms_n21.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/atms_n21.yaml new file mode 100644 index 00000000..1e009b9e --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/atms_n21.yaml @@ -0,0 +1,402 @@ + obs filters: + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-5,16,17 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + <<: *multiIterationFilter + +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [0.03, 0.03, 0.03, 0.03, 0.03, + 0.04, 0.04, 0.04, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.03, 0.03, 0.04, 0.04, 0.04, 0.04, 0.04 ] + x1: [0.53, 0.47, 0.41, 0.41, 0.43, + 0.92, 0.92, 0.150, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.31, 0.53, 0.70, 0.70, 0.70, 0.70, 0.70] + err0: [4.40, 3.37, 2.56, 1.44, 0.53, + 0.32, 0.28, 0.260, 0.400, 0.480, + 0.450, 0.450, 0.550, 0.800, 3.000, + 5.96, 2.88, 2.31, 2.21, 2.31, 2.53, 2.81] + err1: [35.23, 42.77, 17.89, 9.71, 4.33, + 2.60, 0.77, 0.340, 0.400, 0.480, + 0.450, 0.450, 0.550, 0.800, 3.000, + 20.35, 35.56, 27.01, 20.55, 17.50, 13.15, 9.92 ] + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.98 + action: + name: assign error + error function: + #name: ObsFunction/ObsErrorModelRamp + name: ObsFunction/ObsErrorModelQuad + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 16 + siret_ch150: 17 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + + a: [ 0.030, 0.030, 0.030, 0.020, 0.030, + 0.005, 0.002, 0.001, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 9.00, 0.030, 0.042, 0.033, 0.032, + 0.020, 0.018] + b: [ 0.350, 0.380, 0.400, 0.450, 0.500, + 0.119, 0.119, 0.119, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 15.0, 0.500, 0.119, 0.119, 0.119, + 0.119, 0.119] + err0: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 1.32, 0.38, 0.29, 0.33, 0.48, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.0, 500.0, 5.39, 4.23, 3.64, + 3.32, 3.17] + err1: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 4.20, 2.00, 1.00, 0.33, 0.48, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.00, 500.00, 28.79, 26.32, 23.27, + 20.66, 16.80] + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *atms_n21_channels + options: + sensor: atms_n21 + channels: *atms_n21_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + <<: *multiIterationFilter +# Surface Jacobian check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + sensor: atms_n21 + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] + <<: *multiIterationFilter +# Situation dependent Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: *atms_n21_channels + options: + sensor: atms_n21 + channels: *atms_n21_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 16 + scatret_types: [ObsValue] + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + clwret_clearsky: [ 0.03, 0.03, 0.03, 0.03, 0.03, + 0.04, 0.04, 0.04, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.03, 0.03, 0.04, 0.04, 0.04, + 0.04, 0.04 ] + obserr_clearsky: [ 4.40, 3.37, 2.56, 1.44, 0.53, + 0.32, 0.28, 0.260, 0.400, 0.480, + 0.450, 0.450, 0.550, 0.800, 3.000, + 5.96, 2.88, 2.31, 2.21, 2.31, + 2.53, 2.81] + + <<: *multiIterationFilter +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *atms_n21_channels + options: + sensor: atms_n21 + channels: *atms_n21_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + sensor: atms_n21 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + x0: [0.03, 0.03, 0.03, 0.03, 0.03, + 0.04, 0.04, 0.04, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.03, 0.03, 0.04, 0.04, 0.04, 0.04, 0.04 ] + x1: [0.53, 0.47, 0.41, 0.41, 0.43, + 0.92, 0.92, 0.150, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.31, 0.53, 0.70, 0.70, 0.70, 0.70, 0.70] + err0: [4.40, 3.37, 2.56, 1.44, 0.53, + 0.32, 0.28, 0.260, 0.400, 0.480, + 0.450, 0.450, 0.550, 0.800, 3.000, + 5.96, 2.88, 2.31, 2.21, 2.31, 2.53, 2.81] + err1: [35.23, 42.77, 17.89, 9.71, 4.33, + 2.60, 0.77, 0.340, 0.400, 0.480, + 0.450, 0.450, 0.550, 0.800, 3.000, + 20.35, 35.56, 27.01, 20.55, 17.50, 13.15, 9.92 ] + obserr_bound_max: [4.5, 4.5, 3.0, 3.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 2.0, 4.5, + 4.5, 2.0, 2.0, 2.0, 2.0, + 2.0, 2.0] + action: + name: reject + <<: *multiIterationFilter +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.98 + + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *atms_n21_channels + options: + sensor: atms_n21 + channels: *atms_n21_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + sensor: atms_n21 + obserr_function: + name: ObsFunction/ObsErrorModelQuad + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 16 + siret_ch150: 17 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + a: [ 0.030, 0.030, 0.030, 0.020, 0.030, + 0.005, 0.002, 0.001, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 9.00, 0.030, 0.042, 0.033, 0.032, + 0.020, 0.018] + b: [ 0.350, 0.380, 0.400, 0.450, 0.500, + 0.119, 0.119, 0.119, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 15.0, 0.500, 0.119, 0.119, 0.119, + 0.119, 0.119] + err0: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 1.32, 0.38, 0.29, 0.33, 0.48, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.0, 500.0, 5.39, 4.23, 3.64, + 3.32, 3.17] + err1: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 4.20, 2.00, 1.00, 0.33, 0.48, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.00, 500.00, 28.79, 26.32, 23.27, + 20.66, 16.80] + obserr_bound_max: [4.5, 4.5, 3.0, 3.0, 1.0, + 3.0, 1.2, 1.2, 1.2, 1.5, + 1.0, 1.0, 1.0, 2.0, 4.5, + 4.5, 2.0, 6.0, 5.0, 5.0, + 5.0, 5.0] + + action: + name: reject + <<: *multiIterationFilter +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + sensor: atms_n21 + use_flag: [ 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, + 1, 1] + maxvalue: 1.0e-12 + action: + name: reject +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *atms_n21_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *atms_n21_channels + options: + channels: *atms_n21_channels + use_flag: [ 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, + 1, 1] + minvalue: 1.0e-12 + action: + name: reject + +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_atms_n21.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/atms_npp.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/atms_npp.yaml new file mode 100644 index 00000000..d74d3e42 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/atms_npp.yaml @@ -0,0 +1,393 @@ + obs filters: + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 1-5,16,17 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + <<: *multiIterationFilter +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [0.03, 0.03, 0.03, 0.03, 0.03, + 0.04, 0.04, 0.04, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.03, 0.03, 0.04, 0.04, 0.04, 0.04, 0.04 ] + x1: [0.47, 0.47, 0.41, 0.41, 0.43, + 0.70, 0.75, 0.150, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.30, 0.54, 0.54, 0.54, 0.54, 0.66, 0.66] + err0: [4.43, 3.40, 2.56, 1.47, 0.53, + 0.36, 0.36, 0.310, 0.400, 0.500, + 0.450, 0.450, 0.550, 0.800, 3.000, + 5.94, 2.90, 2.30, 2.21, 2.31, 2.55, 2.81] + err1: [32.97, 42.57, 15.89, 7.71, 3.34, + 2.27, 0.74, 0.370, 0.400, 0.500, + 0.450, 0.450, 0.550, 0.800, 3.000, + 18.35, 36.44, 25.27, 20.55, 15.69, 12.10, 8.54 ] + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.98 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelQuad + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 16 + siret_ch150: 17 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + a: [ 0.030, 0.030, 0.030, 0.020, 0.030, + 0.005, 0.001, 0.001, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 9.00, 0.030, 0.042, 0.030, 0.027, + 0.023, 0.015] + b: [ 0.350, 0.380, 0.400, 0.450, 0.500, + -0.032, -0.032, -0.032, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 15.0, 0.500, -0.032, -0.032, -0.032, + -0.032, -0.032] + err0: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 1.31, 0.44, 0.33, 0.40, 0.53, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.0, 500.0, 5.63, 4.56, 4.04, + 3.76, 3.53] + err1: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 4.49, 1.6, 0.85, 0.40, 0.53, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.0, 500.00, 27.67, 25.27, 22.80, + 19.76, 17.57] + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *atms_npp_channels + options: + sensor: atms_npp + channels: *atms_npp_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + <<: *multiIterationFilter +# Surface Jacobian check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + sensor: atms_npp + obserr_demisf: [0.010, 0.020, 0.015, 0.020, 0.200] + obserr_dtempf: [0.500, 2.000, 1.000, 2.000, 4.500] + <<: *multiIterationFilter +# Situation dependent Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSituDependMW + channels: *atms_npp_channels + options: + sensor: atms_npp + channels: *atms_npp_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + scatobs_function: + name: ObsFunction/SCATRetMW + options: + scatret_ch238: 1 + scatret_ch314: 2 + scatret_ch890: 16 + scatret_types: [ObsValue] + clwmatchidx_function: + name: ObsFunction/CLWMatchIndexMW + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + clwobs_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue] + clwbkg_function: + name: ObsFunction/CLWRetMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [HofX] + clwret_clearsky: [0.03, 0.03, 0.03, 0.03, 0.03, + 0.04, 0.04, 0.04, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.03, 0.03, 0.04, 0.04, 0.04, + 0.04, 0.04 ] + obserr_clearsky: [ 4.43, 3.40, 2.56, 1.47, 0.53, + 0.36, 0.36, 0.310, 0.400, 0.500, + 0.450, 0.450, 0.550, 0.800, 3.000, + 5.94, 2.90, 2.30, 2.21, 2.31, + 2.55, 2.81] + <<: *multiIterationFilter + +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *atms_npp_channels + options: + sensor: atms_npp + channels: *atms_npp_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + sensor: atms_npp + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch238: 1 + clwret_ch314: 2 + clwret_types: [ObsValue, HofX] + x0: [0.03, 0.03, 0.03, 0.03, 0.03, + 0.04, 0.04, 0.04, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.03, 0.03, 0.04, 0.04, 0.04, 0.04, 0.04 ] + x1: [0.47, 0.47, 0.41, 0.41, 0.43, + 0.70, 0.75, 0.150, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.30, 0.54, 0.54, 0.54, 0.54, 0.66, 0.66] + err0: [4.43, 3.40, 2.56, 1.47, 0.53, + 0.36, 0.36, 0.310, 0.400, 0.500, + 0.450, 0.450, 0.550, 0.800, 3.000, + 5.94, 2.90, 2.30, 2.21, 2.31, 2.55, 2.81] + err1: [32.97, 42.57, 15.89, 7.71, 3.34, + 2.27, 0.74, 0.370, 0.400, 0.500, + 0.450, 0.450, 0.550, 0.800, 3.000, + 18.35, 36.44, 25.27, 20.55, 15.69, 12.10, 8.54 ] + obserr_bound_max: [4.5, 4.5, 3.0, 3.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 2.0, 4.5, + 4.5, 2.0, 2.0, 2.0, 2.0, + 2.0, 2.0] + action: + name: reject + <<: *multiIterationFilter +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.98 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *atms_npp_channels + options: + sensor: atms_npp + channels: *atms_npp_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.25, 0.04, 3.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + sensor: atms_npp + obserr_function: + name: ObsFunction/ObsErrorModelQuad + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 16 + siret_ch150: 17 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + a: [ 0.030, 0.030, 0.030, 0.020, 0.030, + 0.005, 0.001, 0.001, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 9.00, 0.030, 0.042, 0.030, 0.027, + 0.023, 0.015] + b: [ 0.350, 0.380, 0.400, 0.450, 0.500, + -0.032, -0.032, -0.032, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 15.0, 0.500, -0.032, -0.032, -0.032, + -0.032, -0.032] + err0: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 1.31, 0.44, 0.33, 0.40, 0.53, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.0, 500.0, 5.63, 4.56, 4.04, + 3.76, 3.53] + err1: [ 500.0, 500.0, 500.0, 500.0, 500.0, + 4.49, 1.6, 0.85, 0.40, 0.53, + 500.0, 500.0, 500.0, 500.0, 500.0, + 500.0, 500.00, 27.67, 25.27, 22.80, + 19.76, 17.57] + obserr_bound_max: [4.5, 4.5, 3.0, 3.0, 1.0, + 3.0, 1.2, 1.2, 1.2, 1.5, + 1.0, 1.0, 1.0, 2.0, 4.5, + 4.5, 2.0, 6.0, 5.0, 5.0, + 5.0, 5.0] + action: + name: reject + <<: *multiIterationFilter +# Inter-channel check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + sensor: atms_npp + use_flag: [ 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, + 1, 1] + maxvalue: 1.0e-12 + action: + name: reject +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *atms_npp_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *atms_npp_channels + options: + channels: *atms_npp_channels + use_flag: [ 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, + -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, + 1, 1] + minvalue: 1.0e-12 + action: + name: reject + +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_atms_npp.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/cris-fsr_n20.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/cris-fsr_n20.yaml new file mode 100644 index 00000000..e66409f5 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/cris-fsr_n20.yaml @@ -0,0 +1,184 @@ + obs filters: +# Cloud Detection Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 63 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 74 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + #use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Wavenumber Check (not needed when assimilating a subset of channels that does not include any channels listed below) +# - filter: Perform Action +# filter variables: +# - name: brightnessTemperature +# channels: 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 +# where: +# - variable: +# name: MetaData/solarZenithAngle +# maxvalue: 88.9999 +# - variable: +# name: GeoVaLs/water_area_fraction +# minvalue: 1.0e-12 +# action: +# name: reject + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject +# Topography Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels + sensor: cris-fsr_n20 +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels +# NSST Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 63 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 74 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + obserr_demisf: [0.01,0.02,0.03,0.02,0.03] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Surface Jacobians Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels + sensor: cris-fsr_n20 + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.5, 0.04, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels + obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] + #obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] + #obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] + #obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + action: + name: reject +# Useflag Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + minvalue: 1.0e-12 + action: + name: reject + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}/{{geoPrefix}}_cris-fsr_n20.nc4 +# - filter: YDIAGsaver +# filename: {{OutDBDir}}/{{diagPrefix}}_cris-fsr_n20.nc4 +# filter variables: +# - name: brightness_temperature_jacobian_air_temperature +# channels: *cris-fsr_n20_channels +# - name: brightness_temperature_jacobian_humidity_mixing_ratio +# channels: *cris-fsr_n20_channels +# - name: brightness_temperature_jacobian_surface_temperature +# channels: *cris-fsr_n20_channels +# - name: brightness_temperature_jacobian_surface_emissivity +# channels: *cris-fsr_n20_channels diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/cris-fsr_n21.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/cris-fsr_n21.yaml new file mode 100644 index 00000000..42979840 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/cris-fsr_n21.yaml @@ -0,0 +1,185 @@ + obs filters: +# Cloud Detection Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 63 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 74 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + #use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Wavenumber Check (not needed when assimilating a subset of channels that does not include any channels listed below) +# - filter: Perform Action +# filter variables: +# - name: brightnessTemperature +# channels: 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 +# where: +# - variable: +# name: MetaData/solarZenithAngle +# maxvalue: 88.9999 +# - variable: +# name: GeoVaLs/water_area_fraction +# minvalue: 1.0e-12 +# action: +# name: reject + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject +# Topography Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels + sensor: cris-fsr_n21 +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels +# NSST Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels + #test_bias: GsiObsBias + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 63 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 74 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + obserr_demisf: [0.01,0.02,0.03,0.02,0.03] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Surface Jacobians Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels + sensor: cris-fsr_n21 + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.5, 0.04, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels + obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] + #obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] + #obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] + #obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + action: + name: reject +# Useflag Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + minvalue: 1.0e-12 + action: + name: reject + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}/{{geoPrefix}}_cris-fsr_n21.nc4 +# - filter: YDIAGsaver +# filename: {{OutDBDir}}/{{diagPrefix}}_cris-fsr_n21.nc4 +# filter variables: +# - name: brightness_temperature_jacobian_air_temperature +# channels: *cris-fsr_n21_channels +# - name: brightness_temperature_jacobian_humidity_mixing_ratio +# channels: *cris-fsr_n21_channels +# - name: brightness_temperature_jacobian_surface_temperature +# channels: *cris-fsr_n21_channels +# - name: brightness_temperature_jacobian_surface_emissivity +# channels: *cris-fsr_n21_channels diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/cris-fsr_npp.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/cris-fsr_npp.yaml new file mode 100644 index 00000000..91271779 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/cris-fsr_npp.yaml @@ -0,0 +1,172 @@ + obs filters: +# Cloud Detection Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels + #test_bias: GsiObsBias + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 55 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 92 from these 431 channels, only those where use_flag = 1 + #use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Wavenumber Check (not needed when assimilating a subset of channels that does not include any channels listed below) +# - filter: Perform Action +# filter variables: +# - name: brightnessTemperature +# channels: 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 +# where: +# - variable: +# name: MetaData/solarZenithAngle +# maxvalue: 88.9999 +# - variable: +# name: GeoVaLs/water_area_fraction +# minvalue: 1.0e-12 +# action: +# name: reject + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject +# Topography Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels + sensor: cris-fsr_npp +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels +# NSST Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels + #test_bias: GsiObsBias + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 55 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 + obserr_demisf: [0.01,0.02,0.03,0.02,0.03] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Surface Jacobians Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels + sensor: cris-fsr_npp + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.5, 0.04, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels + obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] + #obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + action: + name: reject +# Useflag Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + minvalue: 1.0e-12 + action: + name: reject + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}/{{geoPrefix}}_cris-fsr_npp.nc4 +# - filter: YDIAGsaver +# filename: {{OutDBDir}}/{{diagPrefix}}_cris-fsr_npp.nc4 +# filter variables: +# - name: brightness_temperature_jacobian_air_temperature +# channels: *cris-fsr_npp_channels +# - name: brightness_temperature_jacobian_humidity_mixing_ratio +# channels: *cris-fsr_npp_channels +# - name: brightness_temperature_jacobian_surface_emissivity +# channels: *cris-fsr_npp_channels +# - name: brightness_temperature_jacobian_surface_temperature +# channels: *cris-fsr_npp_channels diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/cris_n20.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/cris_n20.yaml new file mode 100644 index 00000000..c4cf0d80 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/cris_n20.yaml @@ -0,0 +1,177 @@ + obs filters: +# Cloud Detection Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: *cris_n20_channels + options: + channels: *cris_n20_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + # using a subset of 89 from these 399 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + # using a subset of 100 from these 399 channels, only those where use_flag = 1 + #use_flag: [-1, 1, 1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1] + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag_clddet: [-1, 1, 1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Wavenumber Check (not needed when assimilating a subset of channels that does not include any channels listed below) +# - filter: Perform Action +# filter variables: +# - name: brightnessTemperature +# channels: 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 +# where: +# - variable: +# name: MetaData/solarZenithAngle +# maxvalue: 88.9999 +# - variable: +# name: GeoVaLs/water_area_fraction +# minvalue: 1.0e-12 +# action: +# name: reject + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: *cris_n20_channels + options: + channels: *cris_n20_channels +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject +# Topography Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *cris_n20_channels + options: + channels: *cris_n20_channels + sensor: cris_n20 +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *cris_n20_channels + options: + channels: *cris_n20_channels +# NSST Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *cris_n20_channels + options: + channels: *cris_n20_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 +# use_flag: [-1,1,1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + obserr_demisf: [0.01,0.02,0.03,0.02,0.03] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Surface Jacobians Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *cris_n20_channels + options: + channels: *cris_n20_channels + sensor: cris_n20 + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *cris_n20_channels + options: + channels: *cris_n20_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.5, 0.04, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *cris_n20_channels + options: + channels: *cris_n20_channels + obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] +# using a subset of 89 from these 399 channels, only those where use_flag = 1 + #obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 +# obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0, 2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0, 2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] + action: + name: reject +# Useflag Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris_n20_channels + options: + channels: *cris_n20_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 +# use_flag: [-1,1,1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + minvalue: 1.0e-12 + action: + name: reject + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space# + - filter: GOMsaver + filename: {{OutDBDir}}/{{geoPrefix}}_cris_n20.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}/{{diagPrefix}}_cris_n20.nc4 + filter variables: + - name: brightness_temperature_jacobian_air_temperature + channels: *cris_n20_channels + - name: brightness_temperature_jacobian_humidity_mixing_ratio + channels: *cris_n20_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *cris_n20_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *cris_n20_channels + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/cris_npp.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/cris_npp.yaml new file mode 100644 index 00000000..5c753ee5 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/cris_npp.yaml @@ -0,0 +1,183 @@ + obs filters: +# Cloud Detection Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: *cris_npp_channels + options: + channels: *cris_npp_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 399 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 89 from these 399 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 +# use_flag: [-1, 1, 1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1] + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# use_flag_clddet: [-1, 1, 1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Wavenumber Check (not needed when assimilating a subset of channels that does not include any channels listed below) +# - filter: Perform Action +# filter variables: +# - name: brightnessTemperature +# channels: 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 +# where: +# - variable: +# name: MetaData/solarZenithAngle +# maxvalue: 88.9999 +# - variable: +# name: GeoVaLs/water_area_fraction +# minvalue: 1.0e-12 +# action: +# name: reject + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: *cris_npp_channels + options: + channels: *cris_npp_channels +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject +# Topography Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *cris_npp_channels + options: + channels: *cris_npp_channels + sensor: cris_npp +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *cris_npp_channels + options: + channels: *cris_npp_channels +# NSST Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *cris_npp_channels + options: + channels: *cris_npp_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 +# use_flag: [-1,1,1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + obserr_demisf: [0.01,0.02,0.03,0.02,0.03] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Surface Jacobians Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *cris_npp_channels + options: + channels: *cris_npp_channels + sensor: cris_npp + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *cris_npp_channels + options: + channels: *cris_npp_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.5, 0.04, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *cris_npp_channels + options: + channels: *cris_npp_channels + obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] + #obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] +# using a subset of 89 from these 399 channels, only those where use_flag = 1 + #obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 +# obserr_bound_max: [2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0, 2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0, 2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0] + action: + name: reject +# Useflag Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris_npp_channels + options: + channels: *cris_npp_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 +# use_flag: [-1,1,1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + minvalue: 1.0e-12 + action: + name: reject + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space + - filter: GOMsaver + filename: {{OutDBDir}}/{{geoPrefix}}_cris_npp.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}/{{diagPrefix}}_cris_npp.nc4 + filter variables: + - name: brightness_temperature_jacobian_air_temperature + channels: *cris_npp_channels + - name: brightness_temperature_jacobian_humidity_mixing_ratio + channels: *cris_npp_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *cris_npp_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *cris_npp_channels + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a.yaml index ba698bd0..e5e67ebf 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a.yaml @@ -1,4 +1,15 @@ obs filters: + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + where: + - variable: + name: MetaData/latitude + minvalue: -50.0 + maxvalue: 50.0 + <<: *multiIterationFilter + # Cloud Detection Check - filter: Bounds Check filter variables: @@ -9,32 +20,26 @@ channels: *iasi_metop-a_channels options: channels: *iasi_metop-a_channels - use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 88 from these 616 channels, only those where use_flag = 1 -# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 174 from these 616 channels, only those where use_flag = 1 -#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] - use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] -# use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] -#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + use_flag: &iasi_metop-a_use + [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1, + 1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1] +# using a subset of 66 from these 616 channels, only those where use_flag = 1 + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1, + 1,1,1,1,1,1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1] obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] maxvalue: 1.0e-12 action: name: reject -# Wavenumber Check (not needed when assimilating a subset of channels that does not include any channels listed below) -# - filter: Perform Action -# filter variables: -# - name: brightnessTemperature -# channels: 7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 -# where: -# - variable: -# name: MetaData/solarZenithAngle -# maxvalue: 88.9999 -# - variable: -# name: GeoVaLs/water_area_fraction -# minvalue: 1.0e-12 -# action: -# name: reject - filter: Perform Action filter variables: - name: brightnessTemperature @@ -90,11 +95,7 @@ channels: *iasi_metop-a_channels options: channels: *iasi_metop-a_channels - use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 88 from these 616 channels, only those where use_flag = 1 -# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 174 from these 616 channels, only those where use_flag = 1 -#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + use_flag: *iasi_metop-a_use obserr_demisf: [0.01,0.02,0.03,0.02,0.03] obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] maxvalue: 1.0e-12 @@ -134,13 +135,17 @@ channels: *iasi_metop-a_channels options: channels: *iasi_metop-a_channels - obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5,4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0,5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] -# using a subset of 88 from these 616 channels, only those where use_flag = 1 -# obserr_bound_max: [3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,3.5,2.0,2.0,2.0,3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.5,2.0,2.5,2.5,3.0,2.5,2.5,2.5,3.5,2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5,4.0,4.5,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0,5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] -# using a subset of 174 from these 616 channels, only those where use_flag = 1 -#[3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,4.0,3.5,2.5,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,3.5,2.0,2.0,2.0,2.0,2.0,2.0,3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.5,2.0,2.5,2.5,3.0,2.5,2.5,2.5,2.5,3.5,2.5,2.5,3.0,3.5,3.0,4.0,4.0,4.0,4.0,4.0,4.0,4.5,4.5,4.5,4.5,4.5,4.0,4.5,4.0,4.0,4.5,2.5,3.0,2.5,3.0,2.5,3.0,2.0,2.5,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,5.0,4.0,4.0,5.0,5.0,5.0,5.0,5.5,5.5,4.0,5.0,4.0,4.5,5.5,5.5,6.0,4.5,4.5,4.0,5.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,5.5,4.5,6.0,5.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,4.0,6.0,6.0,6.0,6.0,4.5,6.0,6.0,4.5,6.0,6.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,5.0,6.0,6.0,5.0,6.0,5.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] + obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5, + 4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0, + 2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0, + 5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0, + 6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] action: name: reject + <<: *multiIterationFilter + # Useflag Check - filter: Bounds Check filter variables: @@ -151,15 +156,13 @@ channels: *iasi_metop-a_channels options: channels: *iasi_metop-a_channels - use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 88 from these 616 channels, only those where use_flag = 1 -# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 174 from these 616 channels, only those where use_flag = 1 -#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + use_flag: *iasi_metop-a_use minvalue: 1.0e-12 action: name: reject # - filter: Gaussian_Thinning # input already thinned IASI data # horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}/{{geoPrefix}}_iasi_metop-a.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a.yaml_66ch b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a.yaml_66ch new file mode 100644 index 00000000..b8d95137 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a.yaml_66ch @@ -0,0 +1,159 @@ + obs filters: +# Cloud Detection Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + use_flag: &iasi_metop-a_use + [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1] +# using a subset of 66 from these 616 channels, only those where use_flag = 1 + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject +# Topography Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + sensor: iasi_metop-a +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels +# NSST Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + use_flag: *iasi_metop-a_use + obserr_demisf: [0.01,0.02,0.03,0.02,0.03] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Surface Jacobians Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + sensor: iasi_metop-a + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.5, 0.04, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5, + 4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0, + 2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0, + 5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0, + 6.0,6.0,6.0,6.0,6.0,6.0, + 6.0, + 6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + use_flag: *iasi_metop-a_use + minvalue: 1.0e-12 + action: + name: reject +# - filter: Gaussian_Thinning # input already thinned IASI data +# horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}/{{geoPrefix}}_iasi_metop-a.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a.yaml_88ch b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a.yaml_88ch new file mode 100644 index 00000000..51d630be --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a.yaml_88ch @@ -0,0 +1,194 @@ + obs filters: +# Cloud Detection Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + use_flag: &iasi_metop-a_use + [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1] +# using a subset of 88 from these 616 channels, only those where use_flag = 1 +# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 174 from these 616 channels, only those where use_flag = 1 +#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1] +# use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] +#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Wavenumber Check (not needed when assimilating a subset of channels that does not include any channels listed below) +# - filter: Perform Action +# filter variables: +# - name: brightnessTemperature +# channels: 7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 +# where: +# - variable: +# name: MetaData/solarZenithAngle +# maxvalue: 88.9999 +# - variable: +# name: GeoVaLs/water_area_fraction +# minvalue: 1.0e-12 +# action: +# name: reject + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject +# Topography Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + sensor: iasi_metop-a +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels +# NSST Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + use_flag: *iasi_metop-a_use +# using a subset of 88 from these 616 channels, only those where use_flag = 1 +# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 174 from these 616 channels, only those where use_flag = 1 +#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + obserr_demisf: [0.01,0.02,0.03,0.02,0.03] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Surface Jacobians Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + sensor: iasi_metop-a + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.5, 0.04, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5, + 4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0, + 2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0, + 5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] +# using a subset of 88 from these 616 channels, only those where use_flag = 1 +# obserr_bound_max: [3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,3.5,2.0,2.0,2.0,3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.5,2.0,2.5,2.5,3.0,2.5,2.5,2.5,3.5,2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5,4.0,4.5,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0,5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] +# using a subset of 174 from these 616 channels, only those where use_flag = 1 +#[3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,4.0,3.5,2.5,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,3.5,2.0,2.0,2.0,2.0,2.0,2.0,3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.5,2.0,2.5,2.5,3.0,2.5,2.5,2.5,2.5,3.5,2.5,2.5,3.0,3.5,3.0,4.0,4.0,4.0,4.0,4.0,4.0,4.5,4.5,4.5,4.5,4.5,4.0,4.5,4.0,4.0,4.5,2.5,3.0,2.5,3.0,2.5,3.0,2.0,2.5,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,5.0,4.0,4.0,5.0,5.0,5.0,5.0,5.5,5.5,4.0,5.0,4.0,4.5,5.5,5.5,6.0,4.5,4.5,4.0,5.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,5.5,4.5,6.0,5.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,4.0,6.0,6.0,6.0,6.0,4.5,6.0,6.0,4.5,6.0,6.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,5.0,6.0,6.0,5.0,6.0,5.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + use_flag: *iasi_metop-a_use +# using a subset of 88 from these 616 channels, only those where use_flag = 1 +# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 174 from these 616 channels, only those where use_flag = 1 +#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + minvalue: 1.0e-12 + action: + name: reject +# - filter: Gaussian_Thinning # input already thinned IASI data +# horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}/{{geoPrefix}}_iasi_metop-a.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a_rttov.yaml new file mode 100644 index 00000000..b8d95137 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-a_rttov.yaml @@ -0,0 +1,159 @@ + obs filters: +# Cloud Detection Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + use_flag: &iasi_metop-a_use + [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1] +# using a subset of 66 from these 616 channels, only those where use_flag = 1 + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject +# Topography Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + sensor: iasi_metop-a +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels +# NSST Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + use_flag: *iasi_metop-a_use + obserr_demisf: [0.01,0.02,0.03,0.02,0.03] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Surface Jacobians Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + sensor: iasi_metop-a + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.5, 0.04, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5, + 4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0, + 2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0, + 5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0, + 6.0,6.0,6.0,6.0,6.0,6.0, + 6.0, + 6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-a_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *iasi_metop-a_channels + options: + channels: *iasi_metop-a_channels + use_flag: *iasi_metop-a_use + minvalue: 1.0e-12 + action: + name: reject +# - filter: Gaussian_Thinning # input already thinned IASI data +# horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}/{{geoPrefix}}_iasi_metop-a.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-b.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-b.yaml index 3209dd68..c39542ee 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-b.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-b.yaml @@ -1,4 +1,15 @@ obs filters: + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + where: + - variable: + name: MetaData/latitude + minvalue: -50.0 + maxvalue: 50.0 + <<: *multiIterationFilter + # Cloud Detection Check - filter: Bounds Check filter variables: @@ -9,32 +20,26 @@ channels: *iasi_metop-b_channels options: channels: *iasi_metop-b_channels - use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 88 from these 616 channels, only those where use_flag = 1 -# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 174 from these 616 channels, only those where use_flag = 1 -#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] - use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] -# use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] -#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + use_flag: &iasi_metop-b_use + [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1, + 1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1] +# using a subset of 66 from these 616 channels, only those where use_flag = 1 + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1, + 1,1,1,1,1,1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1] obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] maxvalue: 1.0e-12 action: name: reject -# Wavenumber Check (not needed when assimilating a subset of channels that does not include any channels listed below) -# - filter: Perform Action -# filter variables: -# - name: brightnessTemperature -# channels: 7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 -# where: -# - variable: -# name: MetaData/solarZenithAngle -# maxvalue: 88.9999 -# - variable: -# name: GeoVaLs/water_area_fraction -# minvalue: 1.0e-12 -# action: -# name: reject - filter: Perform Action filter variables: - name: brightnessTemperature @@ -90,11 +95,7 @@ channels: *iasi_metop-b_channels options: channels: *iasi_metop-b_channels - use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 88 from these 616 channels, only those where use_flag = 1 -# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 174 from these 616 channels, only those where use_flag = 1 -#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + use_flag: *iasi_metop-b_use obserr_demisf: [0.01,0.02,0.03,0.02,0.03] obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] maxvalue: 1.0e-12 @@ -134,13 +135,17 @@ channels: *iasi_metop-b_channels options: channels: *iasi_metop-b_channels - obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5,4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0,5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] -# using a subset of 88 from these 616 channels, only those where use_flag = 1 -# obserr_bound_max: [3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,3.5,2.0,2.0,2.0,3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.5,2.0,2.5,2.5,3.0,2.5,2.5,2.5,3.5,2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5,4.0,4.5,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0,5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] -# using a subset of 174 from these 616 channels, only those where use_flag = 1 -#[3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,4.0,3.5,2.5,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,3.5,2.0,2.0,2.0,2.0,2.0,2.0,3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.5,2.0,2.5,2.5,3.0,2.5,2.5,2.5,2.5,3.5,2.5,2.5,3.0,3.5,3.0,4.0,4.0,4.0,4.0,4.0,4.0,4.5,4.5,4.5,4.5,4.5,4.0,4.5,4.0,4.0,4.5,2.5,3.0,2.5,3.0,2.5,3.0,2.0,2.5,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,5.0,4.0,4.0,5.0,5.0,5.0,5.0,5.5,5.5,4.0,5.0,4.0,4.5,5.5,5.5,6.0,4.5,4.5,4.0,5.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,5.5,4.5,6.0,5.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,4.0,6.0,6.0,6.0,6.0,4.5,6.0,6.0,4.5,6.0,6.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,5.0,6.0,6.0,5.0,6.0,5.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] + obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5, + 4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0, + 2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0, + 5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0, + 6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] action: name: reject + <<: *multiIterationFilter + # Useflag Check - filter: Bounds Check filter variables: @@ -151,15 +156,13 @@ channels: *iasi_metop-b_channels options: channels: *iasi_metop-b_channels - use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 88 from these 616 channels, only those where use_flag = 1 -# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] -# using a subset of 174 from these 616 channels, only those where use_flag = 1 -#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + use_flag: *iasi_metop-b_use minvalue: 1.0e-12 action: name: reject # - filter: Gaussian_Thinning # assimilate already thinned iasi data # horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}/{{geoPrefix}}_iasi_metop-b.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-b.yaml_66ch b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-b.yaml_66ch new file mode 100644 index 00000000..36dd12cb --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-b.yaml_66ch @@ -0,0 +1,159 @@ + obs filters: +# Cloud Detection Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + use_flag: &iasi_metop-b_use + [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1] +# using a subset of 66 from these 616 channels, only those where use_flag = 1 + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject +# Topography Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + sensor: iasi_metop-b +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels +# NSST Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + use_flag: *iasi_metop-b_use + obserr_demisf: [0.01,0.02,0.03,0.02,0.03] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Surface Jacobians Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + sensor: iasi_metop-b + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.5, 0.04, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5, + 4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0, + 2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0, + 5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0, + 6.0,6.0,6.0,6.0,6.0,6.0, + 6.0, + 6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + use_flag: *iasi_metop-b_use + minvalue: 1.0e-12 + action: + name: reject +# - filter: Gaussian_Thinning # assimilate already thinned iasi data +# horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}/{{geoPrefix}}_iasi_metop-b.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-b.yaml_88ch b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-b.yaml_88ch new file mode 100644 index 00000000..1995fd6c --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-b.yaml_88ch @@ -0,0 +1,194 @@ + obs filters: +# Cloud Detection Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + use_flag: &iasi_metop-b_use + [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1] +# using a subset of 88 from these 616 channels, only those where use_flag = 1 +# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 174 from these 616 channels, only those where use_flag = 1 +#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1] +# use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] +#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Wavenumber Check (not needed when assimilating a subset of channels that does not include any channels listed below) +# - filter: Perform Action +# filter variables: +# - name: brightnessTemperature +# channels: 7024,7027,7029,7032,7038,7043,7046,7049,7069,7072,7076,7081,7084,7089,7099,7209,7222,7231,7235,7247,7267,7269,7284,7389,7419,7423,7424,7426,7428,7431,7436,7444,7475,7549,7584,7665,7666,7831,7836,7853,7865,7885,7888,7912,7950,7972,7980,7995,8007,8015,8055,8078 +# where: +# - variable: +# name: MetaData/solarZenithAngle +# maxvalue: 88.9999 +# - variable: +# name: GeoVaLs/water_area_fraction +# minvalue: 1.0e-12 +# action: +# name: reject + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels +# Observation Range Sanity Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + minvalue: 50.00001 + maxvalue: 449.99999 + action: + name: reject +# Topography Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + sensor: iasi_metop-b +# Transmittance Top Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels +# NSST Retrieval Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + use_flag: *iasi_metop-b_use +# using a subset of 88 from these 616 channels, only those where use_flag = 1 +# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 174 from these 616 channels, only those where use_flag = 1 +#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + obserr_demisf: [0.01,0.02,0.03,0.02,0.03] + obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] + maxvalue: 1.0e-12 + action: + name: reject +# Surface Jacobians Check + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + sensor: iasi_metop-b + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00] +# Gross check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [25.0, 0.5, 0.04, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5, + 4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0, + 2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0, + 5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] +# using a subset of 88 from these 616 channels, only those where use_flag = 1 +# obserr_bound_max: [3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,3.5,2.0,2.0,2.0,3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.5,2.0,2.5,2.5,3.0,2.5,2.5,2.5,3.5,2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5,4.0,4.5,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0,5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] +# using a subset of 174 from these 616 channels, only those where use_flag = 1 +#[3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,4.0,3.5,2.5,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,3.5,2.0,2.0,2.0,2.0,2.0,2.0,3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.5,2.0,2.5,2.5,3.0,2.5,2.5,2.5,2.5,3.5,2.5,2.5,3.0,3.5,3.0,4.0,4.0,4.0,4.0,4.0,4.0,4.5,4.5,4.5,4.5,4.5,4.0,4.5,4.0,4.0,4.5,2.5,3.0,2.5,3.0,2.5,3.0,2.0,2.5,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,5.0,4.0,4.0,5.0,5.0,5.0,5.0,5.5,5.5,4.0,5.0,4.0,4.5,5.5,5.5,6.0,4.5,4.5,4.0,5.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,5.5,4.5,6.0,5.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,4.0,6.0,6.0,6.0,6.0,4.5,6.0,6.0,4.5,6.0,6.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,5.0,6.0,6.0,5.0,6.0,5.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag Check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *iasi_metop-b_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *iasi_metop-b_channels + options: + channels: *iasi_metop-b_channels + use_flag: *iasi_metop-b_use +# using a subset of 88 from these 616 channels, only those where use_flag = 1 +# use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 174 from these 616 channels, only those where use_flag = 1 +#[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + minvalue: 1.0e-12 + action: + name: reject +# - filter: Gaussian_Thinning # assimilate already thinned iasi data +# horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space +# - filter: GOMsaver +# filename: {{OutDBDir}}/{{geoPrefix}}_iasi_metop-b.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-c.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-c.yaml index 3d3b37c7..f79ba349 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-c.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/iasi_metop-c.yaml @@ -9,12 +9,29 @@ channels: *iasi_metop-c_channels options: channels: *iasi_metop-c_channels - use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + use_flag: &iasi_metop-c_use + [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1] # using a subset of 88 from these 616 channels, only those where use_flag = 1 # use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] # using a subset of 174 from these 616 channels, only those where use_flag = 1 #[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] - use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] + use_flag_clddet: [1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,-1,-1, + -1,-1,-1,-1,-1,-1,-1,-1] # use_flag_clddet: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] #[1,-1,-1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,1,1,1,-1,1,-1,1,-1,1,1,-1,1,1,1,1,1,1,-1,1,1,1,1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,-1,1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,1,1,1,1,1,1,1,1,1,1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1] obserr_dtempf: [0.50,2.00,4.00,2.00,4.00] @@ -90,7 +107,7 @@ channels: *iasi_metop-c_channels options: channels: *iasi_metop-c_channels - use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + use_flag: *iasi_metop-c_use # using a subset of 88 from these 616 channels, only those where use_flag = 1 # use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] # using a subset of 174 from these 616 channels, only those where use_flag = 1 @@ -134,13 +151,23 @@ channels: *iasi_metop-c_channels options: channels: *iasi_metop-c_channels - obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5,4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0,5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] + obserr_bound_max: [2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5, + 4.0,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0, + 2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0, + 5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0, + 6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] # using a subset of 88 from these 616 channels, only those where use_flag = 1 # obserr_bound_max: [3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,3.5,2.0,2.0,2.0,3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.5,2.0,2.5,2.5,3.0,2.5,2.5,2.5,3.5,2.5,3.5,4.0,4.0,4.0,4.0,4.0,4.5,4.0,4.5,4.0,4.5,2.5,3.0,2.5,3.0,2.5,2.0,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,4.0,5.0,5.0,5.0,4.0,5.0,4.0,5.5,5.5,4.5,4.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] # using a subset of 174 from these 616 channels, only those where use_flag = 1 #[3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,4.0,3.5,2.5,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,3.5,2.0,2.0,2.0,2.0,2.0,2.0,3.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.5,2.0,2.5,2.5,3.0,2.5,2.5,2.5,2.5,3.5,2.5,2.5,3.0,3.5,3.0,4.0,4.0,4.0,4.0,4.0,4.0,4.5,4.5,4.5,4.5,4.5,4.0,4.5,4.0,4.0,4.5,2.5,3.0,2.5,3.0,2.5,3.0,2.0,2.5,2.5,3.0,3.0,2.5,3.0,3.0,3.0,2.5,2.5,4.0,4.5,4.5,5.0,4.0,4.0,5.0,5.0,5.0,5.0,5.5,5.5,4.0,5.0,4.0,4.5,5.5,5.5,6.0,4.5,4.5,4.0,5.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,5.5,4.5,6.0,5.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,4.0,6.0,6.0,6.0,6.0,4.5,6.0,6.0,4.5,6.0,6.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,5.0,6.0,6.0,5.0,6.0,5.0,6.0,6.0,6.0,5.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0,6.0] action: name: reject + <<: *multiIterationFilter + # Useflag Check - filter: Bounds Check filter variables: @@ -151,7 +178,7 @@ channels: *iasi_metop-c_channels options: channels: *iasi_metop-c_channels - use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + use_flag: *iasi_metop-c_use # using a subset of 88 from these 616 channels, only those where use_flag = 1 # use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] # using a subset of 174 from these 616 channels, only those where use_flag = 1 @@ -161,5 +188,7 @@ name: reject # - filter: Gaussian_Thinning # assimilate already thinned iasi data # horizontal_mesh: {{RADTHINDISTANCE}} +# action: +# name: reduce obs space # - filter: GOMsaver # filename: {{OutDBDir}}/{{geoPrefix}}_iasi_metop-c.nc4 diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_metop-a.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_metop-a.yaml new file mode 100644 index 00000000..6cb2bb5d --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_metop-a.yaml @@ -0,0 +1,244 @@ + obs filters: + #- filter: GOMsaver + # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_metop-a.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# BennartzScatIndex check: remove excessive SI over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 4-5 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 20.0 + action: + name: reject + <<: *multiIterationFilter + +# obs prior filters: +# over non-water: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [ 0.08, 0.08, 0.15, 0.15, 0.15] + x1: [ 27.98, 29.78, 20.55, 18.15, 13.95] + err0: [ 500., 500., 2.60, 2.67, 2.56] + err1: [ 500., 500., 17.17, 24.03, 21.49] + +# over water + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelQuad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + a: [0.05, 0.02, 0.01, 0.01, 0.02 ] + b: [0.13, 0.13, -0.06, -0.06, -0.06 ] + err0: [500., 500., 2.75, 2.11, 1.55 ] + err1: [500., 500., 14.68, 24.14, 31.97 ] + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-a_channels + options: + sensor: mhs_metop-a + channels: *mhs_metop-a_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + <<: *multiIterationFilter + +# Gross check for non-water + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-a_channels + options: + sensor: mhs_metop-a + channels: *mhs_metop-a_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + sensor: mhs_metop-a + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.08, 0.08, 0.15, 0.15, 0.15] + x1: [ 27.98, 29.78, 20.55, 18.15, 13.95] + err0: [ 500., 500., 2.60, 2.67, 2.56] + err1: [ 500., 500., 17.17, 24.03, 21.49] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter + +# Gross check for water + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-a_channels + options: + sensor: mhs_metop-a + channels: *mhs_metop-a_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + sensor: mhs_metop-a + obserr_function: + name: ObsFunction/ObsErrorModelQuad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: HofX + a: [0.05, 0.02, 0.01, 0.01, 0.02 ] + b: [0.13, 0.13, -0.06, -0.06, -0.06 ] + err0: [500., 500., 2.75, 2.11, 1.55 ] + err1: [500., 500., 14.68, 24.14, 31.97 ] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_metop-b.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_metop-b.yaml new file mode 100644 index 00000000..b2adc480 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_metop-b.yaml @@ -0,0 +1,246 @@ + obs filters: + #- filter: GOMsaver + # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_metop-b.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# BennartzScatIndex check: remove excessive SI over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 4-5 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 20.0 + action: + name: reject + <<: *multiIterationFilter + +# obs prior filters: +# over non-water: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [ 0.08, 0.08, 0.00, 0.00, 0.00] + x1: [ 27.98, 29.78, 20.70, 18.30, 14.70] + err0: [ 500., 500., 2.58, 2.60, 2.52] + err1: [ 500., 500., 16.96, 23.67, 21.70] + +# over water + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelQuad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + a: [0.05, 0.02, 0.01, 0.01, 0.02 ] + b: [0.13, 0.13, 0.14, 0.14, 0.14 ] + err0: [500., 500., 2.74, 2.10, 1.55 ] + err1: [500., 500., 14.57, 24.10, 32.32 ] + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-b_channels + options: + sensor: mhs_metop-b + channels: *mhs_metop-b_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + <<: *multiIterationFilter + + +# Gross check for non-water + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-b_channels + options: + sensor: mhs_metop-b + channels: *mhs_metop-b_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + sensor: mhs_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.08, 0.08, 0.00, 0.00, 0.00] + x1: [ 27.98, 29.78, 20.70, 18.30, 14.70] + err0: [ 500., 500., 2.58, 2.60, 2.52] + err1: [ 500., 500., 16.96, 23.67, 21.70] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter + +# Gross check for water + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-b_channels + options: + sensor: mhs_metop-b + channels: *mhs_metop-b_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + sensor: mhs_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelQuad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: HofX + a: [0.05, 0.02, 0.01, 0.01, 0.02 ] + b: [0.13, 0.13, 0.14, 0.14, 0.14 ] + err0: [500., 500., 2.74, 2.10, 1.55 ] + err1: [500., 500., 14.57, 24.10, 32.32 ] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_metop-c.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_metop-c.yaml new file mode 100644 index 00000000..5f71661f --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_metop-c.yaml @@ -0,0 +1,244 @@ + obs filters: + #- filter: GOMsaver + # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_metop-c.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# BennartzScatIndex check: remove excessive SI over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 4-5 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 20.0 + action: + name: reject + <<: *multiIterationFilter + +# obs prior filters: +# over non-water: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [ 0.08, 0.08, 0.15, 0.15, 0.15] + x1: [ 27.98, 29.78, 20.55, 18.15, 13.95] + err0: [ 500., 500., 2.60, 2.67, 2.56] + err1: [ 500., 500., 17.17, 24.03, 21.49] + +# over water + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelQuad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + a: [0.05, 0.02, 0.01, 0.01, 0.02 ] + b: [0.13, 0.13, -0.06, -0.06, -0.06 ] + err0: [500., 500., 2.75, 2.11, 1.55 ] + err1: [500., 500., 14.68, 24.14, 31.97 ] + + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-c_channels + options: + sensor: mhs_metop-c + channels: *mhs_metop-c_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + <<: *multiIterationFilter + +# Gross check for non-water + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-c_channels + options: + sensor: mhs_metop-c + channels: *mhs_metop-c_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + sensor: mhs_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: HofX + x0: [ 0.08, 0.08, 0.15, 0.15, 0.15] + x1: [ 27.98, 29.78, 20.55, 18.15, 13.95] + err0: [ 500., 500., 2.60, 2.67, 2.56] + err1: [ 500., 500., 17.17, 24.03, 21.49] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter + +# Gross check for water + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-c_channels + options: + sensor: mhs_metop-c + channels: *mhs_metop-c_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + sensor: mhs_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelQuad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: HofX + a: [0.05, 0.02, 0.01, 0.01, 0.02 ] + b: [0.13, 0.13, -0.06, -0.06, -0.06 ] + err0: [500., 500., 2.75, 2.11, 1.55 ] + err1: [500., 500., 14.68, 24.14, 31.97 ] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_n18.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_n18.yaml new file mode 100644 index 00000000..2168a6d0 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_n18.yaml @@ -0,0 +1,244 @@ + obs filters: + #- filter: GOMsaver + # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_n18.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# BennartzScatIndex check: remove excessive SI over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 4-5 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 20.0 + action: + name: reject + <<: *multiIterationFilter + +# obs prior filters: +# over non-water: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [0.05, 0.02, 0.13, 0.13, 0.13 ] + x1: [0.13, 0.13, 15.43, 15.43, 14.83 ] + err0: [500., 500., 2.63, 2.68, 2.68 ] + err1: [500., 500., 14.03, 20.11, 23.13 ] + +# over water + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelQuad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + a: [0.05, 0.02, 0.01, 0.02, 0.02 ] + b: [0.13, 0.13, 0.08, 0.08, 0.08 ] + err0: [500., 500., 2.80, 2.14, 1.61 ] + err1: [500., 500., 15.29, 24.83, 33.10 ] + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n18_channels + options: + sensor: mhs_n18 + channels: *mhs_n18_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + <<: *multiIterationFilter + +# Gross check for non-water + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_n18_channels + options: + sensor: mhs_n18 + channels: *mhs_n18_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + sensor: mhs_n18 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: HofX + x0: [0.05, 0.02, 0.13, 0.13, 0.13 ] + x1: [0.13, 0.13, 15.43, 15.43, 14.83 ] + err0: [500., 500., 2.63, 2.68, 2.68 ] + err1: [500., 500., 14.03, 20.11, 23.13 ] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter +# Gross check for water + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_n18_channels + options: + sensor: mhs_n18 + channels: *mhs_n18_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + sensor: mhs_n18 + obserr_function: + name: ObsFunction/ObsErrorModelQuad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: HofX + a: [0.05, 0.02, 0.01, 0.02, 0.02 ] + b: [0.13, 0.13, 0.08, 0.08, 0.08 ] + err0: [500., 500., 2.80, 2.14, 1.61 ] + err1: [500., 500., 15.29, 24.83, 33.10 ] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_n19.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_n19.yaml new file mode 100644 index 00000000..e21d92ba --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs-cld_n19.yaml @@ -0,0 +1,245 @@ + obs filters: + #- filter: GOMsaver + # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_n19.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# BennartzScatIndex check: remove excessive SI over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 4-5 + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 20.0 + action: + name: reject + <<: *multiIterationFilter + +# obs prior filters: +# over non-water: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + x0: [0.05, 0.02, -0.08, -0.08, -0.08 ] + x1: [0.13, 0.13, 16.42, 16.42, 15.82 ] + err0: [500., 500., 4.36, 2.67, 2.70 ] + err1: [500., 500., 16.73, 23.08, 26.35 ] + +# over water + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelQuad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: ObsValue + a: [0.05, 0.02, 0.01, 0.02, 0.02 ] + b: [0.13, 0.13, 0.01, 0.08, 0.01 ] + err0: [500., 500., 4.39, 2.07, 1.53 ] + err1: [500., 500., 15.42, 24.69, 32.42 ] + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n19_channels + options: + sensor: mhs_n19 + channels: *mhs_n19_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + <<: *multiIterationFilter + +# Gross check for non-water + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_n19_channels + options: + sensor: mhs_n19 + channels: *mhs_n19_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + sensor: mhs_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: HofX + x0: [0.05, 0.02, -0.08, -0.08, -0.08 ] + x1: [0.13, 0.13, 16.42, 16.42, 15.82 ] + err0: [500., 500., 4.36, 2.67, 2.70 ] + err1: [500., 500., 16.73, 23.08, 26.35 ] + obserr_bound_max: [5.0, 5.0, 7.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter + +# Gross check for water + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_n19_channels + options: + sensor: mhs_n19 + channels: *mhs_n19_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + sensor: mhs_n19 + obserr_function: + name: ObsFunction/ObsErrorModelQuad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + xvar: + name: ObsFunction/SIRetSymmetricMW + options: + siret_ch90: 1 + siret_ch150: 2 + siret_types: [ObsValue, HofX] + bias_application: HofX + a: [0.05, 0.02, 0.01, 0.02, 0.02 ] + b: [0.13, 0.13, 0.01, 0.08, 0.01 ] + err0: [500., 500., 4.39, 2.07, 1.53 ] + err1: [500., 500., 15.42, 24.69, 32.42 ] + obserr_bound_max: [5.0, 5.0, 7.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + use_flag: [ -1, -1, -1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-a.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-a.yaml index 1bfc7f0b..8b877c75 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-a.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-a.yaml @@ -1,8 +1,150 @@ obs filters: - - filter: PreQC - maxvalue: 0 # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_metop-a.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# obs prior filters: +# Assign obs error for each channel + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + action: + name: assign error + error parameter vector: [2.50, 2.50, 2.50, 2.00, 2.00] + <<: *multiIterationFilter + +# BennartzScatIndex check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: 0.158 + bennartz_coeff_2: 0.0163 + apply_bias: ObsBiasData + maxvalue: -1.0 + action: + name: reject + <<: *multiIterationFilter + +# BennartzScatIndex check over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 10.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-a_channels + options: + sensor: mhs_metop-a + channels: *mhs_metop-a_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + <<: *multiIterationFilter + +# Background Check - filter: Background Check - threshold: 3.0 + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-a_channels + options: + sensor: mhs_metop-a + channels: *mhs_metop-a_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + sensor: mhs_metop-a + error parameter vector: + [ 2.5, 2.5, 2.5, 2.0, 2.0] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-a_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-a_rttov.yaml new file mode 100644 index 00000000..aefffc7c --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-a_rttov.yaml @@ -0,0 +1,164 @@ + obs filters: + - filter: GOMsaver + filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_metop-a.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}{{MemberDir}}/{{diagPrefix}}_mhs_metop-a.nc4 + filter variables: + - name: brightness_temperature_assuming_clear_sky + channels: *mhs_metop-a_channels + - name: transmittances_of_atmosphere_layer + channels: *mhs_metop-a_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *mhs_metop-a_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *mhs_metop-a_channels + - name: surface_emissivity + channels: *mhs_metop-a_channels + + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# obs prior filters: +# Assign obs error for each channel + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + action: + name: assign error + error parameter vector: [2.50, 2.50, 2.50, 2.00, 2.00] + <<: *multiIterationFilter + +# BennartzScatIndex check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: 0.158 + bennartz_coeff_2: 0.0163 + apply_bias: ObsBiasData + maxvalue: -1.0 + action: + name: reject + <<: *multiIterationFilter + +# BennartzScatIndex check over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 10.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-a_channels + options: + sensor: mhs_metop-a + channels: *mhs_metop-a_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + <<: *multiIterationFilter + +# Background Check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-a_channels + options: + sensor: mhs_metop-a + channels: *mhs_metop-a_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + sensor: mhs_metop-a + error parameter vector: + [ 2.5, 2.5, 2.5, 2.0, 2.0] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-a_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_metop-a_channels + options: + channels: *mhs_metop-a_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-b.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-b.yaml index 062a4266..d1ca9f61 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-b.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-b.yaml @@ -1,8 +1,151 @@ obs filters: - - filter: PreQC - maxvalue: 0 # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_metop-b.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# obs prior filters: +# Assign obs error for each channel + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + action: + name: assign error + error parameter vector: [2.50, 2.50, 2.50, 2.00, 2.00] + <<: *multiIterationFilter + +# BennartzScatIndex check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: 0.158 + bennartz_coeff_2: 0.0163 + apply_bias: ObsBiasData + maxvalue: -1.0 + action: + name: reject + <<: *multiIterationFilter + +# BennartzScatIndex check over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 10.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-b_channels + options: + sensor: mhs_metop-b + channels: *mhs_metop-b_channels + <<: *multiIterationFilter + +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + <<: *multiIterationFilter + +# Background Check - filter: Background Check - threshold: 3.0 + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-b_channels + options: + sensor: mhs_metop-b + channels: *mhs_metop-b_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + sensor: mhs_metop-b + error parameter vector: + [ 2.5, 2.5, 2.5, 2.0, 2.0] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-b_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-b_rttov.yaml new file mode 100644 index 00000000..b5a9548d --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-b_rttov.yaml @@ -0,0 +1,165 @@ + obs filters: + - filter: GOMsaver + filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_metop-b.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}{{MemberDir}}/{{diagPrefix}}_mhs_metop-b.nc4 + filter variables: + - name: brightness_temperature_assuming_clear_sky + channels: *mhs_metop-b_channels + - name: transmittances_of_atmosphere_layer + channels: *mhs_metop-b_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *mhs_metop-b_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *mhs_metop-b_channels + - name: surface_emissivity + channels: *mhs_metop-b_channels + + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# obs prior filters: +# Assign obs error for each channel + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + action: + name: assign error + error parameter vector: [2.50, 2.50, 2.50, 2.00, 2.00] + <<: *multiIterationFilter + +# BennartzScatIndex check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: 0.158 + bennartz_coeff_2: 0.0163 + apply_bias: ObsBiasData + maxvalue: -1.0 + action: + name: reject + <<: *multiIterationFilter + +# BennartzScatIndex check over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 10.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-b_channels + options: + sensor: mhs_metop-b + channels: *mhs_metop-b_channels + <<: *multiIterationFilter + +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + <<: *multiIterationFilter + +# Background Check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-b_channels + options: + sensor: mhs_metop-b + channels: *mhs_metop-b_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + sensor: mhs_metop-b + error parameter vector: + [ 2.5, 2.5, 2.5, 2.0, 2.0] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-b_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_metop-b_channels + options: + channels: *mhs_metop-b_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-c.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-c.yaml new file mode 100644 index 00000000..da4aa6f9 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_metop-c.yaml @@ -0,0 +1,150 @@ + obs filters: +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_metop-c.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# obs prior filters: +# Assign obs error for each channel + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + action: + name: assign error + error parameter vector: [2.50, 2.50, 2.50, 2.00, 2.00] + <<: *multiIterationFilter + +# BennartzScatIndex check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: 0.158 + bennartz_coeff_2: 0.0163 + apply_bias: ObsBiasData + maxvalue: -1.0 + action: + name: reject + <<: *multiIterationFilter + +# BennartzScatIndex check over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 10.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-c_channels + options: + sensor: mhs_metop-c + channels: *mhs_metop-c_channels + <<: *multiIterationFilter +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + <<: *multiIterationFilter + +# Background Check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_metop-c_channels + options: + sensor: mhs_metop-c + channels: *mhs_metop-c_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + sensor: mhs_metop-c + error parameter vector: + [ 2.5, 2.5, 2.5, 2.0, 2.0] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_metop-c_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_metop-c_channels + options: + channels: *mhs_metop-c_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n18.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n18.yaml index b0be9ab4..7de60ed4 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n18.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n18.yaml @@ -1,8 +1,152 @@ obs filters: - - filter: PreQC - maxvalue: 0 # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_n18.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# obs prior filters: +# Assign obs error for each channel + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + action: + name: assign error + error parameter vector: [2.50, 2.50, 2.50, 2.00, 2.00] + <<: *multiIterationFilter + +# BennartzScatIndex check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: 0.158 + bennartz_coeff_2: 0.0163 + apply_bias: ObsBiasData + maxvalue: -1.0 + action: + name: reject + <<: *multiIterationFilter + +# BennartzScatIndex check over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 10.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n18_channels + options: + sensor: mhs_n18 + channels: *mhs_n18_channels + <<: *multiIterationFilter + +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + <<: *multiIterationFilter + +# Background Check - filter: Background Check - threshold: 3.0 + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_n18_channels + options: + sensor: mhs_n18 + channels: *mhs_n18_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + sensor: mhs_n18 + error parameter vector: + [ 2.5, 2.5, 2.5, 2.0, 2.0] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n18_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n18_rttov.yaml new file mode 100644 index 00000000..96e59aea --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n18_rttov.yaml @@ -0,0 +1,166 @@ + obs filters: + - filter: GOMsaver + filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_n18.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}{{MemberDir}}/{{diagPrefix}}_mhs_n18.nc4 + filter variables: + - name: brightness_temperature_assuming_clear_sky + channels: *mhs_n18_channels + - name: transmittances_of_atmosphere_layer + channels: *mhs_n18_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *mhs_n18_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *mhs_n18_channels + - name: surface_emissivity + channels: *mhs_n18_channels + + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# obs prior filters: +# Assign obs error for each channel + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + action: + name: assign error + error parameter vector: [2.50, 2.50, 2.50, 2.00, 2.00] + <<: *multiIterationFilter + +# BennartzScatIndex check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: 0.158 + bennartz_coeff_2: 0.0163 + apply_bias: ObsBiasData + maxvalue: -1.0 + action: + name: reject + <<: *multiIterationFilter + +# BennartzScatIndex check over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 10.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n18_channels + options: + sensor: mhs_n18 + channels: *mhs_n18_channels + <<: *multiIterationFilter + +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + <<: *multiIterationFilter + +# Background Check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_n18_channels + options: + sensor: mhs_n18 + channels: *mhs_n18_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + sensor: mhs_n18 + error parameter vector: + [ 2.5, 2.5, 2.5, 2.0, 2.0] + obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_n18_channels + options: + channels: *mhs_n18_channels + use_flag: [ -1, -1, 1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n18_rttov12.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n18_rttov12.yaml new file mode 100644 index 00000000..04de1300 --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n18_rttov12.yaml @@ -0,0 +1,152 @@ + obs filters: +# - filter: GOMsaver +# filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_n18.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# obs prior filters: +# Assign obs error for each channel + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *mhs_n18_channels + action: + name: assign error + error parameter vector: [2.50, 2.50, 2.50, 2.00, 2.00] + <<: *multiIterationFilter + +# BennartzScatIndex check +# - filter: Bounds Check +# filter variables: +# - name: brightnessTemperature +# channels: *mhs_n18_channels +# where: +# - variable: +# name: GeoVaLs/water_area_fraction +# maxvalue: 0.99 +# test variables: +# - name: ObsFunction/BennartzScatIndex +# options: +# channel_89ghz: 1 +# channel_150ghz: 2 +# bennartz_coeff_1: 0.158 +# bennartz_coeff_2: 0.0163 +# apply_bias: ObsBiasData +# maxvalue: -1.0 +# action: +# name: reject +# <<: *multiIterationFilter + +# BennartzScatIndex check over water +# - filter: Bounds Check +# filter variables: +# - name: brightnessTemperature +# channels: *mhs_n18_channels +# where: +# - variable: +# name: GeoVaLs/water_area_fraction +# minvalue: 1.0 +# test variables: +# - name: ObsFunction/BennartzScatIndex +# options: +# channel_89ghz: 1 +# channel_150ghz: 2 +# bennartz_coeff_1: -39.2010 +# bennartz_coeff_2: 0.1104 +# apply_bias: ObsBiasData +# maxvalue: 10.0 +# action: +# name: reject +# <<: *multiIterationFilter + +# Topography check +# - filter: BlackList +# filter variables: +# - name: brightnessTemperature +# channels: *mhs_n18_channels +# action: +# name: inflate error +# inflation variable: +# name: ObsFunction/ObsErrorFactorTopoRad +# channels: *mhs_n18_channels +# options: +# sensor: mhs_n18 +# channels: *mhs_n18_channels +# <<: *multiIterationFilter + +# Transmittnace Top Check +# - filter: BlackList +# filter variables: +# - name: brightnessTemperature +# channels: *mhs_n18_channels +# action: +# name: inflate error +# inflation variable: +# name: ObsFunction/ObsErrorFactorTransmitTopRad +# channels: *mhs_n18_channels +# options: +# channels: *mhs_n18_channels +# <<: *multiIterationFilter + +# Background Check +# - filter: Background Check +# filter variables: +# - name: brightnessTemperature +# channels: *mhs_n18_channels +# function absolute threshold: +# - name: ObsFunction/ObsErrorBoundMW +# channels: *mhs_n18_channels +# options: +# sensor: mhs_n18 +# channels: *mhs_n18_channels +# threshold: 3.0 +# obserr_bound_latitude: +# name: ObsFunction/ObsErrorFactorLatRad +# options: +# latitude_parameters: [0.0, 1.0, 0.0, 1.0] +# obserr_bound_transmittop: +# name: ObsFunction/ObsErrorFactorTransmitTopRad +# channels: *mhs_n18_channels +# options: +# channels: *mhs_n18_channels +# obserr_bound_topo: +# name: ObsFunction/ObsErrorFactorTopoRad +# channels: *mhs_n18_channels +# options: +# channels: *mhs_n18_channels +# sensor: mhs_n18 +# error parameter vector: +# [ 2.5, 2.5, 2.5, 2.0, 2.0] +# obserr_bound_max: [5.0, 5.0, 10.0, 10.0, 10.0] +# action: +# name: reject +# <<: *multiIterationFilter + +# Useflag check +# - filter: Bounds Check +# filter variables: +# - name: brightnessTemperature +# channels: *mhs_n18_channels +# test variables: +# - name: ObsFunction/ChannelUseflagCheckRad +# channels: *mhs_n18_channels +# options: +# channels: *mhs_n18_channels +# use_flag: [ -1, -1, 1, 1, 1] +# minvalue: 1.0e-12 +# action: +# name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n19.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n19.yaml index e00a6850..81a30b73 100644 --- a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n19.yaml +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n19.yaml @@ -1,8 +1,150 @@ obs filters: - - filter: PreQC - maxvalue: 0 # - filter: GOMsaver # filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_n19.nc4 + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# Assign obs error for each channel + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + action: + name: assign error + error parameter vector: [2.50, 2.50, 3.00, 2.50, 2.50] + <<: *multiIterationFilter +# BennartzScatIndex check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: 0.158 + bennartz_coeff_2: 0.0163 + apply_bias: ObsBiasData + maxvalue: -1.0 + action: + name: reject + <<: *multiIterationFilter + +# BennartzScatIndex check over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 10.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n19_channels + options: + sensor: mhs_n19 + channels: *mhs_n19_channels + <<: *multiIterationFilter + +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + <<: *multiIterationFilter + +# Background Check - filter: Background Check - threshold: 3.0 + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_n19_channels + options: + sensor: mhs_n19 + channels: *mhs_n19_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + sensor: mhs_n19 + error parameter vector: + [ 2.5, 2.5, 3.0, 2.5, 2.5] + obserr_bound_max: [5.0, 5.0, 3.0, 5.0, 5.0] + action: + name: reject <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + use_flag: [ -1, -1, -1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n19_rttov.yaml b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n19_rttov.yaml new file mode 100644 index 00000000..66aeff7d --- /dev/null +++ b/config/jedi/ObsPlugs/da/filtersWithBias/mhs_n19_rttov.yaml @@ -0,0 +1,164 @@ + obs filters: + - filter: GOMsaver + filename: {{OutDBDir}}{{MemberDir}}/{{geoPrefix}}_mhs_n19.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}{{MemberDir}}/{{diagPrefix}}_mhs_n19.nc4 + filter variables: + - name: brightness_temperature_assuming_clear_sky + channels: *mhs_n19_channels + - name: transmittances_of_atmosphere_layer + channels: *mhs_n19_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *mhs_n19_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *mhs_n19_channels + - name: surface_emissivity + channels: *mhs_n19_channels + + - filter: Gaussian_Thinning + horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space + + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: 5 + where: + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + <<: *multiIterationFilter + +# Assign obs error for each channel + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + action: + name: assign error + error parameter vector: [2.50, 2.50, 3.00, 2.50, 2.50] + <<: *multiIterationFilter +# BennartzScatIndex check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: 0.158 + bennartz_coeff_2: 0.0163 + apply_bias: ObsBiasData + maxvalue: -1.0 + action: + name: reject + <<: *multiIterationFilter + +# BennartzScatIndex check over water + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1.0 + test variables: + - name: ObsFunction/BennartzScatIndex + options: + channel_89ghz: 1 + channel_150ghz: 2 + bennartz_coeff_1: -39.2010 + bennartz_coeff_2: 0.1104 + apply_bias: ObsBiasData + maxvalue: 10.0 + action: + name: reject + <<: *multiIterationFilter + +# Topography check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n19_channels + options: + sensor: mhs_n19 + channels: *mhs_n19_channels + <<: *multiIterationFilter + +# Transmittnace Top Check + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + <<: *multiIterationFilter + +# Background Check + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: *mhs_n19_channels + options: + sensor: mhs_n19 + channels: *mhs_n19_channels + threshold: 3.0 + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 1.0, 0.0, 1.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + sensor: mhs_n19 + error parameter vector: + [ 2.5, 2.5, 3.0, 2.5, 2.5] + obserr_bound_max: [5.0, 5.0, 3.0, 5.0, 5.0] + action: + name: reject + <<: *multiIterationFilter + +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *mhs_n19_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *mhs_n19_channels + options: + channels: *mhs_n19_channels + use_flag: [ -1, -1, -1, 1, 1] + minvalue: 1.0e-12 + action: + name: reject + diff --git a/config/jedi/ObsPlugs/enkf/ObsAnchors.yaml b/config/jedi/ObsPlugs/enkf/ObsAnchors.yaml index b83deb5a..854c6ed4 100644 --- a/config/jedi/ObsPlugs/enkf/ObsAnchors.yaml +++ b/config/jedi/ObsPlugs/enkf/ObsAnchors.yaml @@ -37,9 +37,9 @@ _halo dist: &HaloDistribution halo size: *HorizObsLocLengthScale _obs space: &ObsSpace - #io pool: - # max pool size: {{maxIODAPoolSize}} - # write multiple files: true + io pool: + max pool size: {{maxIODAPoolSize}} + write multiple files: false distribution: *{{ObsSpaceDistribution}} _obs error diagonal: &ObsErrorDiagonal diff --git a/config/jedi/ObsPlugs/hofx/base/cris-fsr_n20.yaml b/config/jedi/ObsPlugs/hofx/base/cris-fsr_n20.yaml new file mode 100644 index 00000000..e8ca2586 --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/base/cris-fsr_n20.yaml @@ -0,0 +1,32 @@ +- obs space: + <<: *ObsSpace + name: cris-fsr_n20 + obsdatain: + engine: + type: H5File + obsfile: {{InDBDir}}/cris-fsr_n20_obs_{{thisValidDate}}.h5 + obsdataout: + engine: + type: H5File + obsfile: {{OutDBDir}}/{{obsPrefix}}_cris-fsr_n20.h5 + simulated variables: [brightnessTemperature] + channels: &cris-fsr_n20_channels 83, 85, 87, 89, 111, 115, 117, 119, 121, 123, 125, 127, 129, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 63 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n20_channels 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 103, 105, 107, 109, 111, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 74 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n20_channels 24, 26, 28, 32, 37, 39, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 111, 113, 117, 119, 121, 123, 125, 127, 129, 131, 143, 145, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 84 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n20_channels 24, 26, 28, 32, 37, 39, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 100 channel from these 431 channels (where use_flag = 1) to reduce computational cost +# channels: &cris-fsr_n20_channels Channel = 19, 24, 26, 27, 28, 31, 32, 33, 37, 39, 42, 44, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 208, 211, 216, 224, 234, 236, 238, 239, 242, 246, 248, 255, 264, 266, 268, 275, 279, 283, 285, 291, 295, 301, 305, 311, 332, 342, 389, 400, 402, 404, 406, 410, 427, 439, 440, 441, 445, 449, 455, 458, 461, 464, 467, 470, 473, 475, 482, 486, 487, 490, 493, 496, 499, 501, 503, 505, 511, 513, 514, 518, 519, 520, 522, 529, 534, 563, 568, 575, 592, 594, 596, 598, 600, 602, 604, 611, 614, 616, 618, 620, 622, 626, 631, 638, 646, 648, 652, 659, 673, 675, 678, 684, 688, 694, 700, 707, 710, 713, 714, 718, 720, 722, 725, 728, 735, 742, 748, 753, 762, 780, 784, 798, 849, 860, 862, 866, 874, 882, 890, 898, 906, 907, 908, 914, 937, 972, 973, 978, 980, 981, 988, 995, 998, 1000, 1003, 1008, 1009, 1010, 1014, 1017, 1018, 1020, 1022, 1024, 1026, 1029, 1030, 1032, 1034, 1037, 1038, 1041, 1042, 1044, 1046, 1049, 1050, 1053, 1054, 1058, 1060, 1062, 1064, 1066, 1069, 1076, 1077, 1080, 1086, 1091, 1095, 1101, 1109, 1112, 1121, 1128, 1133, 1163, 1172, 1187, 1189, 1205, 1211, 1219, 1231, 1245, 1271, 1289, 1300, 1313, 1316, 1325, 1329, 1346, 1347, 1473, 1474, 1491, 1499, 1553, 1570, 1596, 1602, 1619, 1624, 1635, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 + obs error: *ObsErrorDiagonal + #obs error: + # covariance model: cross variable covariances + # input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.cris-fsr_n20.nc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: cris-fsr_n20 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/hofx/base/cris-fsr_n21.yaml b/config/jedi/ObsPlugs/hofx/base/cris-fsr_n21.yaml new file mode 100644 index 00000000..ec28ab9e --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/base/cris-fsr_n21.yaml @@ -0,0 +1,32 @@ +- obs space: + <<: *ObsSpace + name: cris-fsr_n21 + obsdatain: + engine: + type: H5File + obsfile: {{InDBDir}}/cris-fsr_n21_obs_{{thisValidDate}}.h5 + obsdataout: + engine: + type: H5File + obsfile: {{OutDBDir}}/{{obsPrefix}}_cris-fsr_n21.h5 + simulated variables: [brightnessTemperature] + channels: &cris-fsr_n21_channels 83, 85, 87, 89, 111, 115, 117, 119, 121, 123, 125, 127, 129, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 63 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n21_channels 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 103, 105, 107, 109, 111, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 74 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n21_channels 24, 26, 28, 32, 37, 39, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 111, 113, 117, 119, 121, 123, 125, 127, 129, 131, 143, 145, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 84 channel from these 431 channels (where use_flag = 1) to reduce computational cost + #channels: &cris-fsr_n21_channels 24, 26, 28, 32, 37, 39, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713, 742, 882, 890, 937, 995, 1008, 1022, 1058 +# using a subset of 100 channel from these 431 channels (where use_flag = 1) to reduce computational cost +# channels: &cris-fsr_n21_channels Channel = 19, 24, 26, 27, 28, 31, 32, 33, 37, 39, 42, 44, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 208, 211, 216, 224, 234, 236, 238, 239, 242, 246, 248, 255, 264, 266, 268, 275, 279, 283, 285, 291, 295, 301, 305, 311, 332, 342, 389, 400, 402, 404, 406, 410, 427, 439, 440, 441, 445, 449, 455, 458, 461, 464, 467, 470, 473, 475, 482, 486, 487, 490, 493, 496, 499, 501, 503, 505, 511, 513, 514, 518, 519, 520, 522, 529, 534, 563, 568, 575, 592, 594, 596, 598, 600, 602, 604, 611, 614, 616, 618, 620, 622, 626, 631, 638, 646, 648, 652, 659, 673, 675, 678, 684, 688, 694, 700, 707, 710, 713, 714, 718, 720, 722, 725, 728, 735, 742, 748, 753, 762, 780, 784, 798, 849, 860, 862, 866, 874, 882, 890, 898, 906, 907, 908, 914, 937, 972, 973, 978, 980, 981, 988, 995, 998, 1000, 1003, 1008, 1009, 1010, 1014, 1017, 1018, 1020, 1022, 1024, 1026, 1029, 1030, 1032, 1034, 1037, 1038, 1041, 1042, 1044, 1046, 1049, 1050, 1053, 1054, 1058, 1060, 1062, 1064, 1066, 1069, 1076, 1077, 1080, 1086, 1091, 1095, 1101, 1109, 1112, 1121, 1128, 1133, 1163, 1172, 1187, 1189, 1205, 1211, 1219, 1231, 1245, 1271, 1289, 1300, 1313, 1316, 1325, 1329, 1346, 1347, 1473, 1474, 1491, 1499, 1553, 1570, 1596, 1602, 1619, 1624, 1635, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 + obs error: *ObsErrorDiagonal + #obs error: + # covariance model: cross variable covariances + # input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.cris-fsr_n21.nc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: cris-fsr_n21 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/hofx/base/cris-fsr_npp.yaml b/config/jedi/ObsPlugs/hofx/base/cris-fsr_npp.yaml new file mode 100644 index 00000000..b3f3dfda --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/base/cris-fsr_npp.yaml @@ -0,0 +1,27 @@ +- obs space: + <<: *ObsSpace + name: cris-fsr_npp + obsdatain: + engine: + type: H5File + obsfile: {{InDBDir}}/cris-fsr_npp_obs_{{thisValidDate}}.h5 + obsdataout: + engine: + type: H5File + obsfile: {{OutDBDir}}/{{obsPrefix}}_cris-fsr_npp.h5 + simulated variables: [brightnessTemperature] + channels: &cris-fsr_npp_channels 83, 85, 87, 89, 111, 115, 117, 119, 121, 123, 125, 127, 129, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713 + #channels: &cris-fsr_npp_channels 24, 26, 28, 32, 37, 39, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 163, 167, 171, 175, 179, 183, 187, 190, 194, 197, 200, 211, 224, 275, 279, 291, 311, 332, 342, 389, 410, 427, 464, 482, 501, 529, 710, 713 +# using a subset of 92 channel from these 431 channels (where use_flag = 1) to reduce computational cost +# channels: &cris-fsr_npp_channels Channel = 19, 24, 26, 27, 28, 31, 32, 33, 37, 39, 42, 44, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 208, 211, 216, 224, 234, 236, 238, 239, 242, 246, 248, 255, 264, 266, 268, 275, 279, 283, 285, 291, 295, 301, 305, 311, 332, 342, 389, 400, 402, 404, 406, 410, 427, 439, 440, 441, 445, 449, 455, 458, 461, 464, 467, 470, 473, 475, 482, 486, 487, 490, 493, 496, 499, 501, 503, 505, 511, 513, 514, 518, 519, 520, 522, 529, 534, 563, 568, 575, 592, 594, 596, 598, 600, 602, 604, 611, 614, 616, 618, 620, 622, 626, 631, 638, 646, 648, 652, 659, 673, 675, 678, 684, 688, 694, 700, 707, 710, 713, 714, 718, 720, 722, 725, 728, 735, 742, 748, 753, 762, 780, 784, 798, 849, 860, 862, 866, 874, 882, 890, 898, 906, 907, 908, 914, 937, 972, 973, 978, 980, 981, 988, 995, 998, 1000, 1003, 1008, 1009, 1010, 1014, 1017, 1018, 1020, 1022, 1024, 1026, 1029, 1030, 1032, 1034, 1037, 1038, 1041, 1042, 1044, 1046, 1049, 1050, 1053, 1054, 1058, 1060, 1062, 1064, 1066, 1069, 1076, 1077, 1080, 1086, 1091, 1095, 1101, 1109, 1112, 1121, 1128, 1133, 1163, 1172, 1187, 1189, 1205, 1211, 1219, 1231, 1245, 1271, 1289, 1300, 1313, 1316, 1325, 1329, 1346, 1347, 1473, 1474, 1491, 1499, 1553, 1570, 1596, 1602, 1619, 1624, 1635, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 2119, 2140, 2143, 2147, 2153, 2158, 2161, 2168, 2171, 2175, 2182 + obs error: *ObsErrorDiagonal + #obs error: + # covariance model: cross variable covariances + # input file: /glade/campaign/mmm/parc/jedipara/static/skylab-8.0.0/obserrors/Rcov.cris-fsr_npp.nc + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: cris-fsr_npp + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/hofx/base/cris_n20.yaml b/config/jedi/ObsPlugs/hofx/base/cris_n20.yaml new file mode 100644 index 00000000..945798a0 --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/base/cris_n20.yaml @@ -0,0 +1,25 @@ +- obs space: + <<: *ObsSpace + name: cris_n20 + obsdatain: + engine: + type: H5File + obsfile: {{InDBDir}}/cris_n20_obs_{{thisValidDate}}.h5 + obsdataout: + engine: + type: H5File + obsfile: {{OutDBDir}}/{{obsPrefix}}_cris_n20.h5 + simulated variables: [brightnessTemperature] + channels: &cris_n20_channels 67,73,75,79,81,83,85,87,89,93,95,99,102,104,107,111,116,120,123,125,130,133,136,138,143,145,147,151,153,155,157,159,161,163,165,168,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,334,338,342,349,352,361,378,390,404,427,447,464,482,501,529,710,713,743,880,890,900,921,924,927,945,991,994,1007,1015,1030,1094 +# using a subset of 89 channel from these 399 channels (where use_flag = 1) to reduce computational cost + #channels: &cris_n20_channels 27,28,31,33,37,49,51,53,59,61,63,65,67,69,71,73,75,79,81,83,85,87,89,93,95,99,102,104,107,111,113,116,120,123,125,130,133,136,138,143,145,147,151,153,155,157,159,161,163,165,168,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,334,338,342,349,352,361,378,390,404,427,447,464,482,501,529,710,713,743,880,890,900,921,994,1007,1015,1030,1094 +# using a subset of 100 channel from these 399 channels (where use_flag = 1) to reduce computational cost +# channels: &cris_n20_channels 27,28,31,32,33,37,49,51,53,59,61,63,64,65,67,69,71,73,75,79,80,81,83,85,87,88,89,93,95,96,99,101,102,104,106,107,111,113,116,120,123,124,125,126,130,132,133,136,137,138,142,143,144,145,147,148,150,151,153,154,155,157,158,159,160,161,162,163,164,165,166,168,170,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,333,334,338,340,341, 342,349,352,358,361,364,366,367,368,378,390,391,392,394,395,396,397,398,399,404,427,447,464,473,482,484,501,529,556,557,558,560,561,562,564,565,566,569,573,574,577,580,581,584,585,587,590,591,594,597,598,601,604,607,611,614,616,617,619,622,626,628,634,637,638,640,641,642,644,646,647,650,651,652,654,655,657,659,663,667,670,707,710,713,716,730,735,736,739,743,744,746,748,751,754,755,756,757,758,760,761,762,763,766,767,768,771,772,773,776,777,778,779,780,782,783,784,785,786,787,788,789,790,791,792,794,796,798,800,802,803,804,806,807,808,809,811,812,814,816,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,838,839,840,842,843,844,845,846,847,848,849,850,851,852,853,854,856,861,862,864,865,866,867,869,871,872,874,876,878,879,880,884,886,887,888,889,890,900,921,924,927,945,991,994,1007,1015,1030,1094,1106,1130,1132,1133,1135,1142,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1177,1178,1179,1180,1181,1187,1189,1190,1192,1193,1194,1196,1197,1198,1199,1200,1202,1203,1204,1206,1207,1208,1210,1212,1214,1215,1217,1218,1220,1222,1224,1226,1228,1229,1231,1232,1234,1235,1236,1237,1238,1239,1241,1242,1243,1244,1245,1247,1250,1270,1271,1282,1285,1288,1290,1293,1298,1301 + obs error: *ObsErrorDiagonal + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: cris_n20 + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/hofx/base/cris_npp.yaml b/config/jedi/ObsPlugs/hofx/base/cris_npp.yaml new file mode 100644 index 00000000..3a0f68ef --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/base/cris_npp.yaml @@ -0,0 +1,27 @@ +- obs space: + <<: *ObsSpace + name: cris_npp + obsdatain: + engine: + type: H5File + obsfile: {{InDBDir}}/cris_npp_obs_{{thisValidDate}}.h5 + obsdataout: + engine: + type: H5File + obsfile: {{OutDBDir}}/{{obsPrefix}}_cris_npp.h5 + simulated variables: [brightnessTemperature] + channels: &cris_npp_channels 67,73,75,79,81,83,85,87,89,93,95,99,102,104,107,111,116,120,123,125,130,133,136,138,143,145,147,151,153,155,157,159,161,163,165,168,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,334,338,342,349,352,361,378,390,404,427,447,464,482,501,529,710,713,743,880,890,945,994,1007,1015,1030,1094 +# using a subset of 84 channel from these 399 channels (where use_flag = 1) to reduce computational cost + #channels: &cris_npp_channels 67,73,75,79,81,83,85,87,89,93,95,99,102,104,107,111,116,120,123,125,130,133,136,138,143,145,147,151,153,155,157,159,161,163,165,168,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,334,338,342,349,352,361,378,390,404,427,447,464,482,501,529,710,713,743,880,890,900,921,924,927,945,991,994,1007,1015,1030,1094 +# using a subset of 89 channel from these 399 channels (where use_flag = 1) to reduce computational cost + #channels: &cris_npp_channels 27,28,31,33,37,49,51,53,59,61,63,65,67,69,71,73,75,79,81,83,85,87,89,93,95,99,102,104,107,111,113,116,120,123,125,130,133,136,138,143,145,147,151,153,155,157,159,161,163,165,168,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,334,338,342,349,352,361,378,390,404,427,447,464,482,501,529,710,713,743,880,890,900,921,994,1007,1015,1030,1094 +# using a subset of 100 channel from these 399 channels (where use_flag = 1) to reduce computational cost + #channels: &cris_npp_channels 27,28,31,32,33,37,49,51,53,59,61,63,64,65,67,69,71,73,75,79,80,81,83,85,87,88,89,93,95,96,99,101,102,104,106,107,111,113,116,120,123,124,125,126,130,132,133,136,137,138,142,143,144,145,147,148,150,151,153,154,155,157,158,159,160,161,162,163,164,165,166,168,170,171,173,175,181,183,198,208,211,216,224,228,236,238,242,248,266,268,279,283,311,317,330,333,334,338,340,341, 342,349,352,358,361,364,366,367,368,378,390,391,392,394,395,396,397,398,399,404,427,447,464,473,482,484,501,529,556,557,558,560,561,562,564,565,566,569,573,574,577,580,581,584,585,587,590,591,594,597,598,601,604,607,611,614,616,617,619,622,626,628,634,637,638,640,641,642,644,646,647,650,651,652,654,655,657,659,663,667,670,707,710,713,716,730,735,736,739,743,744,746,748,751,754,755,756,757,758,760,761,762,763,766,767,768,771,772,773,776,777,778,779,780,782,783,784,785,786,787,788,789,790,791,792,794,796,798,800,802,803,804,806,807,808,809,811,812,814,816,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,838,839,840,842,843,844,845,846,847,848,849,850,851,852,853,854,856,861,862,864,865,866,867,869,871,872,874,876,878,879,880,884,886,887,888,889,890,900,921,924,927,945,991,994,1007,1015,1030,1094,1106,1130,1132,1133,1135,1142,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1177,1178,1179,1180,1181,1187,1189,1190,1192,1193,1194,1196,1197,1198,1199,1200,1202,1203,1204,1206,1207,1208,1210,1212,1214,1215,1217,1218,1220,1222,1224,1226,1228,1229,1231,1232,1234,1235,1236,1237,1238,1239,1241,1242,1243,1244,1245,1247,1250,1270,1271,1282,1285,1288,1290,1293,1298,1301 + obs error: *ObsErrorDiagonal + obs operator: + <<: *clearCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: cris_npp + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/hofx/base/mhs_metop-c.yaml b/config/jedi/ObsPlugs/hofx/base/mhs_metop-c.yaml new file mode 100644 index 00000000..28dd3e29 --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/base/mhs_metop-c.yaml @@ -0,0 +1,21 @@ +- obs space: + <<: *ObsSpace + name: mhs_metop-c + obsdatain: + engine: + type: H5File + obsfile: {{InDBDir}}/mhs_metop-c_obs_{{thisValidDate}}.h5 + obsdataout: + engine: + type: H5File + obsfile: {{OutDBDir}}/{{obsPrefix}}_mhs_metop-c.h5 + simulated variables: [brightnessTemperature] + channels: &mhs_metop-c_channels 1-5 + obs error: *ObsErrorDiagonal + obs operator: + <<: *cloudyCRTMObsOperator + obs options: + <<: *CRTMObsOptions + Sensor_ID: mhs_metop-c + get values: + <<: *GetValues diff --git a/config/jedi/ObsPlugs/hofx/filters/cris-fsr_n20.yaml b/config/jedi/ObsPlugs/hofx/filters/cris-fsr_n20.yaml new file mode 100644 index 00000000..4f9eca22 --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/filters/cris-fsr_n20.yaml @@ -0,0 +1,26 @@ + obs filters: +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n20_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris-fsr_n20_channels + options: + channels: *cris-fsr_n20_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 63 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 74 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + minvalue: 1.0e-12 + action: + name: reject + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space diff --git a/config/jedi/ObsPlugs/hofx/filters/cris-fsr_n21.yaml b/config/jedi/ObsPlugs/hofx/filters/cris-fsr_n21.yaml new file mode 100644 index 00000000..fee2077b --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/filters/cris-fsr_n21.yaml @@ -0,0 +1,26 @@ + obs filters: +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_n21_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris-fsr_n21_channels + options: + channels: *cris-fsr_n21_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 63 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 74 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 431 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 431 channels, only those where use_flag = 1 + minvalue: 1.0e-12 + action: + name: reject + #- filter: Gaussian_Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space diff --git a/config/jedi/ObsPlugs/hofx/filters/cris-fsr_npp.yaml b/config/jedi/ObsPlugs/hofx/filters/cris-fsr_npp.yaml new file mode 100644 index 00000000..103ae062 --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/filters/cris-fsr_npp.yaml @@ -0,0 +1,21 @@ + obs filters: +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris-fsr_npp_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris-fsr_npp_channels + options: + channels: *cris-fsr_npp_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 92 from these 431 channels, only those where use_flag = 1 + minvalue: 1.0e-12 + action: + name: reject + #- filter: Gaussian Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space diff --git a/config/jedi/ObsPlugs/hofx/filters/cris_n20.yaml b/config/jedi/ObsPlugs/hofx/filters/cris_n20.yaml new file mode 100644 index 00000000..06270fba --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/filters/cris_n20.yaml @@ -0,0 +1,36 @@ + obs filters: +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_n20_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris_n20_channels + options: + channels: *cris_n20_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 89 from these 399 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 +# use_flag: [-1, 1, 1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1] + minvalue: 1.0e-12 + action: + name: reject + #- filter: Gaussian Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space + #- filter: GOMsaver + # filename: {{OutDBDir}}/{{geoPrefix}}_cris_n20.nc4 + #- filter: YDIAGsaver + # filename: {{OutDBDir}}/{{diagPrefix}}_cris_n20.nc4 + # filter variables: + # - name: brightness_temperature_jacobian_air_temperature + # channels: *cris_n20_channels + # - name: brightness_temperature_jacobian_humidity_mixing_ratio + # channels: *cris_n20_channels + # - name: brightness_temperature_jacobian_surface_emissivity + # channels: *cris_n20_channels + # - name: brightness_temperature_jacobian_surface_temperature + # channels: *cris_n20_channels diff --git a/config/jedi/ObsPlugs/hofx/filters/cris_npp.yaml b/config/jedi/ObsPlugs/hofx/filters/cris_npp.yaml new file mode 100644 index 00000000..6b3744a7 --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/filters/cris_npp.yaml @@ -0,0 +1,38 @@ + obs filters: +# Useflag check + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *cris_npp_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *cris_npp_channels + options: + channels: *cris_npp_channels + use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 84 from these 399 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 89 from these 399 channels, only those where use_flag = 1 + #use_flag: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] +# using a subset of 100 from these 399 channels, only those where use_flag = 1 + #use_flag: [-1, 1, 1,-1,1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1] + minvalue: 1.0e-12 + action: + name: reject + #- filter: Gaussian Thinning + # horizontal_mesh: {{RADTHINDISTANCE}} + # action: + # name: reduce obs space + - filter: GOMsaver + filename: {{OutDBDir}}/{{geoPrefix}}_cris_npp.nc4 + - filter: YDIAGsaver + filename: {{OutDBDir}}/{{diagPrefix}}_cris_npp.nc4 + filter variables: + - name: brightness_temperature_jacobian_air_temperature + channels: *cris_npp_channels + - name: brightness_temperature_jacobian_humidity_mixing_ratio + channels: *cris_npp_channels + - name: brightness_temperature_jacobian_surface_emissivity + channels: *cris_npp_channels + - name: brightness_temperature_jacobian_surface_temperature + channels: *cris_npp_channels diff --git a/config/jedi/ObsPlugs/hofx/filters/gnssrobndmo.yaml b/config/jedi/ObsPlugs/hofx/filters/gnssrobndmo.yaml index b50218a8..fda66d75 100644 --- a/config/jedi/ObsPlugs/hofx/filters/gnssrobndmo.yaml +++ b/config/jedi/ObsPlugs/hofx/filters/gnssrobndmo.yaml @@ -13,108 +13,112 @@ name: MetaData/geoidUndulation minvalue: -200.0 maxvalue: 200.0 - ## Scale ObsError based on ObsValue - # NPol - - filter: Perform Action + - filter: ROobserror filter variables: - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minNPol - maxvalue: *maxNPol - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndmoNPolErrors - # NMid - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minNMid - maxvalue: *maxNMid - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndmoNMidErrors - # Tro - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minTro - maxvalue: *maxTro - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndmoTroErrors - # SMid - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minSMid - maxvalue: *maxSMid - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndmoSMidErrors - # SPol - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minSPol - maxvalue: *maxSPol - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndmoSPolErrors - + errmodel: NRL - filter: Background Check threshold: 10.0 <<: *multiIterationFilter + +# ## Scale ObsError based on ObsValue +# # NPol +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minNPol +# maxvalue: *maxNPol +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndmoNPolErrors +# # NMid +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minNMid +# maxvalue: *maxNMid +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndmoNMidErrors +# # Tro +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minTro +# maxvalue: *maxTro +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndmoTroErrors +# # SMid +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minSMid +# maxvalue: *maxSMid +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndmoSMidErrors +# # SPol +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minSPol +# maxvalue: *maxSPol +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndmoSPolErrors diff --git a/config/jedi/ObsPlugs/hofx/filters/gnssrobndropp1d.yaml b/config/jedi/ObsPlugs/hofx/filters/gnssrobndropp1d.yaml index ce565955..2f7a271e 100644 --- a/config/jedi/ObsPlugs/hofx/filters/gnssrobndropp1d.yaml +++ b/config/jedi/ObsPlugs/hofx/filters/gnssrobndropp1d.yaml @@ -13,115 +13,118 @@ name: MetaData/geoidUndulation minvalue: -200.0 maxvalue: 200.0 - -## ECMWF relative error model -# - filter: ROobserror -# filter variables: -# - name: bendingAngle -# errmodel: ECMWF -# <<: *multiIterationFilter - ## Scale ObsError based on ObsValue - # NPol - - filter: Perform Action + - filter: ROobserror filter variables: - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minNPol - maxvalue: *maxNPol - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndropp1dNPolErrors - # NMid - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minNMid - maxvalue: *maxNMid - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndropp1dNMidErrors - # Tro - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minTro - maxvalue: *maxTro - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndropp1dTroErrors - # SMid - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minSMid - maxvalue: *maxSMid - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndropp1dSMidErrors - # SPol - - filter: Perform Action - filter variables: - - name: bendingAngle - where: - - variable: - name: MetaData/latitude - minvalue: *minSPol - maxvalue: *maxSPol - action: - name: assign error - error function: - name: ObsFunction/ObsErrorModelStepwiseLinear - options: - xvar: - name: MetaData/impactHeightRO - scale_factor_var: - name: ObsValue/bendingAngle - xvals: *gnssroErrorLevels - errors: *gnssrobndropp1dSPolErrors - + errmodel: NRL - filter: Background Check threshold: 10.0 <<: *multiIterationFilter + +### ECMWF relative error model +## - filter: ROobserror +## filter variables: +## - name: bendingAngle +## errmodel: ECMWF +## <<: *multiIterationFilter +# ## Scale ObsError based on ObsValue +# # NPol +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minNPol +# maxvalue: *maxNPol +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndropp1dNPolErrors +# # NMid +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minNMid +# maxvalue: *maxNMid +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndropp1dNMidErrors +# # Tro +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minTro +# maxvalue: *maxTro +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndropp1dTroErrors +# # SMid +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minSMid +# maxvalue: *maxSMid +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndropp1dSMidErrors +# # SPol +# - filter: Perform Action +# filter variables: +# - name: bendingAngle +# where: +# - variable: +# name: MetaData/latitude +# minvalue: *minSPol +# maxvalue: *maxSPol +# action: +# name: assign error +# error function: +# name: ObsFunction/ObsErrorModelStepwiseLinear +# options: +# xvar: +# name: MetaData/impactHeightRO +# scale_factor_var: +# name: ObsValue/bendingAngle +# xvals: *gnssroErrorLevels +# errors: *gnssrobndropp1dSPolErrors diff --git a/config/jedi/ObsPlugs/hofx/filters/mhs_metop-c.yaml b/config/jedi/ObsPlugs/hofx/filters/mhs_metop-c.yaml new file mode 100644 index 00000000..2923a960 --- /dev/null +++ b/config/jedi/ObsPlugs/hofx/filters/mhs_metop-c.yaml @@ -0,0 +1,22 @@ + obs filters: + - filter: PreQC + maxvalue: 0 +# - filter: GOMsaver +# filename: {{OutDBDir}}/{{geoPrefix}}_mhs_metop-c.nc4 +# - filter: YDIAGsaver +# filename: {{OutDBDir}}/{{diagPrefix}}_mhs_metop-c.nc4 +# filter variables: +# - name: brightness_temperature_assuming_clear_sky +# channels: *mhs_metop-c_channels +# - name: brightness_temperature_jacobian_air_temperature +# channels: *mhs_metop-c_channels +# - name: brightness_temperature_jacobian_humidity_mixing_ratio +# channels: *mhs_metop-c_channels +# - name: brightness_temperature_jacobian_surface_emissivity +# channels: *mhs_metop-c_channels +# - name: brightness_temperature_jacobian_surface_temperature +# channels: *mhs_metop-c_channels +# - name: weightingfunction_of_atmosphere_layer +# channels: *mhs_metop-c_channels +# - name: pressure_level_at_peak_of_weightingfunction +# channels: *mhs_metop-c_channels diff --git a/config/jedi/ObsPlugs/hofx/filters/satwind.yaml b/config/jedi/ObsPlugs/hofx/filters/satwind.yaml index ad0a51f6..e123603d 100644 --- a/config/jedi/ObsPlugs/hofx/filters/satwind.yaml +++ b/config/jedi/ObsPlugs/hofx/filters/satwind.yaml @@ -26,3 +26,5 @@ maxvalue: 200.0 - filter: Gaussian Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space diff --git a/config/jedi/ObsPlugs/hofx/filters/satwnd.yaml b/config/jedi/ObsPlugs/hofx/filters/satwnd.yaml index 6024b479..36ba4f91 100644 --- a/config/jedi/ObsPlugs/hofx/filters/satwnd.yaml +++ b/config/jedi/ObsPlugs/hofx/filters/satwnd.yaml @@ -27,3 +27,5 @@ name: reject - filter: Gaussian Thinning horizontal_mesh: {{RADTHINDISTANCE}} + action: + name: reduce obs space diff --git a/config/jedi/applications/3denvar-crossed.yaml b/config/jedi/applications/3denvar-crossed.yaml index 66f2c7a1..2c6aece0 100644 --- a/config/jedi/applications/3denvar-crossed.yaml +++ b/config/jedi/applications/3denvar-crossed.yaml @@ -46,6 +46,7 @@ cost function: date: *analysisDate background error: covariance model: ensemble + no outer loop update: true localization: localization method: SABER saber central block: diff --git a/config/jedi/applications/3denvar.yaml b/config/jedi/applications/3denvar.yaml index 12075852..2a6daa33 100644 --- a/config/jedi/applications/3denvar.yaml +++ b/config/jedi/applications/3denvar.yaml @@ -46,6 +46,7 @@ cost function: date: *analysisDate background error: covariance model: ensemble + #no outer loop update: true localization: localization method: SABER saber central block: diff --git a/config/jedi/applications/3dhybrid-allsky.yaml b/config/jedi/applications/3dhybrid-allsky.yaml index 75616234..16cd2779 100644 --- a/config/jedi/applications/3dhybrid-allsky.yaml +++ b/config/jedi/applications/3dhybrid-allsky.yaml @@ -46,11 +46,12 @@ cost function: date: *analysisDate background error: covariance model: hybrid + no outer loop update: true components: - weight: date: *analysisDate stream name: control - filename: {{hybridCoefficientsDir}}/mpas.hyb_coef_sta2.2018-04-15_00.00.00.nc + filename: {{hybridCoefficientsStatic}} covariance: covariance model: SABER saber central block: @@ -94,7 +95,7 @@ cost function: - weight: date: *analysisDate stream name: control - filename: {{hybridCoefficientsDir}}/mpas.hyb_coef_ens2.2018-04-15_00.00.00.nc + filename: {{hybridCoefficientsEnsemble}} covariance: covariance model: ensemble localization: diff --git a/config/jedi/applications/3dhybrid.yaml b/config/jedi/applications/3dhybrid.yaml index 2b73a510..a1355558 100644 --- a/config/jedi/applications/3dhybrid.yaml +++ b/config/jedi/applications/3dhybrid.yaml @@ -46,9 +46,15 @@ cost function: date: *analysisDate background error: covariance model: hybrid + no outer loop update: true components: - weight: - value: {{staticCovarianceWeight}} + _staticWeightFromFile: &staticWeightFromFile + stream name: control + filename: {{hybridStaticWeightFile}} + _staticWeightFromValue: &staticWeightFromValue + value: {{staticCovarianceWeight}} + <<: {{staticBECWeight}} covariance: covariance model: SABER saber central block: @@ -74,7 +80,7 @@ cost function: data directory: {{bumpCovVBalDir}} files prefix: {{bumpCovVBalPrefix}} drivers: - read local sampling: true + read global sampling: true read vertical balance: true vertical balance: vbal: @@ -90,7 +96,12 @@ cost function: input variables: *ctlvars output variables: *incvars - weight: - value: {{ensembleCovarianceWeight}} + _ensembleWeightFromFile: &ensembleWeightFromFile + stream name: control + filename: {{hybridEnsembleWeightFile}} + _ensembleWeightFromValue: &ensembleWeightFromValue + value: {{ensembleCovarianceWeight}} + <<: {{ensembleBECWeight}} covariance: covariance model: ensemble localization: diff --git a/config/jedi/applications/3dhybrid_v3.yaml b/config/jedi/applications/3dhybrid_v3.yaml new file mode 100644 index 00000000..d22f761b --- /dev/null +++ b/config/jedi/applications/3dhybrid_v3.yaml @@ -0,0 +1,131 @@ +# ObsAnchors and ObsErrorAnchors are automatically prepended above this line +_iteration: &iterationConfig + geometry: + nml_file: {{InnerNamelistFile}} + streams_file: {{InnerStreamsFile}}{{StreamsFileMember}} + deallocate non-da fields: true + interpolation type: unstructured + gradient norm reduction: 1e-3 + #Several 'online diagnostics' are useful for checking the H correctness and Hessian symmetry +# online diagnostics: +# tlm taylor test: true +# tlm approx test: true +# adj tlm test: true +# adj obs test: true +# online adj test: true +_member: &memberConfig + date: &analysisDate {{thisISO8601Date}} + state variables: &incvars [{{AnalysisVariables}}] + stream name: ensemble +output: + filename: {{anStateDir}}{{MemberDir}}/{{anStatePrefix}}.$Y-$M-$D_$h.$m.$s.nc + stream name: analysis +variational: + minimizer: +{{VariationalMinimizer}} + iterations: +{{VariationalIterations}} +final: + diagnostics: + departures: oman +cost function: + cost type: 3D-Var + time window: + begin: {{windowBegin}} + length: {{windowLength}} + jb evaluation: false + geometry: + nml_file: {{OuterNamelistFile}} + streams_file: {{OuterStreamsFile}}{{StreamsFileMember}} + deallocate non-da fields: true + interpolation type: unstructured + analysis variables: *incvars + background: + state variables: [{{StateVariables}}] + filename: {{bgStateDir}}{{MemberDir}}/{{bgStatePrefix}}.{{thisMPASFileDate}}.nc + date: *analysisDate + background error: + covariance model: hybrid + no outer loop update: true + components: + - weight: + _staticWeightFromFile: &staticWeightFromFile + stream name: control + filename: {{hybridStaticWeightFile}} + _staticWeightFromValue: &staticWeightFromValue + value: {{staticCovarianceWeight}} + <<: {{staticBECWeight}} + covariance: + covariance model: SABER + saber central block: + saber block name: BUMP_NICAS + active variables: &ctlvars [{{bumpCovControlVariables}}] + read: + io: + data directory: {{bumpCovDir}} + files prefix: {{bumpCovPrefix}} + drivers: + multivariate strategy: univariate + read local nicas: true + grids: + - model: + variables: [{{bump3dControlVariables}}] + - model: + variables: [{{bump2dControlVariables}}] + saber outer blocks: + - saber block name: StdDev + read: + model file: + filename: {{bumpCovStdDevFile}} + date: *analysisDate + stream name: control + - saber block name: BUMP_VerticalBalance + read: + io: + data directory: {{bumpCovVBalDir}} + files prefix: {{bumpCovVBalPrefix}} + drivers: + read global sampling: true + read vertical balance: true + vertical balance: + vbal: + - balanced variable: velocity_potential + unbalanced variable: stream_function + diagonal regression: true + - balanced variable: temperature + unbalanced variable: stream_function + - balanced variable: surface_pressure + unbalanced variable: stream_function + linear variable change: + linear variable change name: Control2Analysis + input variables: *ctlvars + output variables: *incvars + - weight: + _ensembleWeightFromFile: &ensembleWeightFromFile + stream name: control + filename: {{hybridEnsembleWeightFile}} + _ensembleWeightFromValue: &ensembleWeightFromValue + value: {{ensembleCovarianceWeight}} + <<: {{ensembleBECWeight}} + covariance: + covariance model: ensemble + localization: + localization method: SABER + saber central block: + saber block name: BUMP_NICAS + active variables: *incvars + read: + io: + data directory: {{bumpLocDir}} + files prefix: {{bumpLocPrefix}} + drivers: + multivariate strategy: duplicated + read local nicas: true + model: + level for 2d variables: last +{{EnsemblePbMembers}} +{{EnsemblePbInflation}} + observations: + obs perturbations: {{ObsPerturbations}} + observers: +{{Observers}} diff --git a/config/jedi/applications/3dvar.yaml b/config/jedi/applications/3dvar.yaml index cf9db7f3..f5ed9fa4 100644 --- a/config/jedi/applications/3dvar.yaml +++ b/config/jedi/applications/3dvar.yaml @@ -34,6 +34,7 @@ cost function: date: &analysisDate {{thisISO8601Date}} background error: covariance model: SABER + no outer loop update: true saber central block: saber block name: BUMP_NICAS active variables: &ctlvars [{{bumpCovControlVariables}}] diff --git a/config/jedi/applications/4denvar_3slots.yaml b/config/jedi/applications/4denvar_3slots.yaml index dac180ff..bdfdd147 100644 --- a/config/jedi/applications/4denvar_3slots.yaml +++ b/config/jedi/applications/4denvar_3slots.yaml @@ -60,6 +60,7 @@ cost function: date: *date3 background error: covariance model: ensemble + no outer loop update: true localization: localization method: SABER saber central block: diff --git a/config/jedi/applications/4denvar_7slots.yaml b/config/jedi/applications/4denvar_7slots.yaml index 8a89bfb7..a29874bc 100644 --- a/config/jedi/applications/4denvar_7slots.yaml +++ b/config/jedi/applications/4denvar_7slots.yaml @@ -84,6 +84,7 @@ cost function: date: *date7 background error: covariance model: ensemble + no outer loop update: true localization: #communication mode: fast time decay: PT3H diff --git a/config/jedi/applications/4dhybrid.yaml b/config/jedi/applications/4dhybrid.yaml index 990fd6fd..471af548 100644 --- a/config/jedi/applications/4dhybrid.yaml +++ b/config/jedi/applications/4dhybrid.yaml @@ -84,9 +84,15 @@ cost function: date: *date7 background error: covariance model: hybrid + no outer loop update: true components: - weight: - value: {{staticCovarianceWeight}} + _staticWeightFromFile: &staticWeightFromFile + stream name: control + filename: {{hybridStaticWeightFile}} + _staticWeightFromValue: &staticWeightFromValue + value: {{staticCovarianceWeight}} + <<: {{staticBECWeight}} covariance: covariance model: SABER saber central block: @@ -99,6 +105,11 @@ cost function: drivers: multivariate strategy: univariate read local nicas: true + grids: + - model: + variables: [{{bump3dControlVariables}}] + - model: + variables: [{{bump2dControlVariables}}] saber outer blocks: - saber block name: StdDev read: @@ -111,7 +122,7 @@ cost function: data directory: {{bumpCovVBalDir}} files prefix: {{bumpCovVBalPrefix}} drivers: - read local sampling: true + read global sampling: true read vertical balance: true vertical balance: vbal: @@ -127,7 +138,12 @@ cost function: input variables: *ctlvars output variables: *incvars - weight: - value: {{ensembleCovarianceWeight}} + _ensembleWeightFromFile: &ensembleWeightFromFile + stream name: control + filename: {{hybridEnsembleWeightFile}} + _ensembleWeightFromValue: &ensembleWeightFromValue + value: {{ensembleCovarianceWeight}} + <<: {{ensembleBECWeight}} covariance: covariance model: ensemble localization: diff --git a/config/jedi/obsProc/ObsSpaceV2-to-V3.yaml b/config/jedi/obsProc/ObsSpaceV2-to-V3.yaml index de06ca26..fea74943 100644 --- a/config/jedi/obsProc/ObsSpaceV2-to-V3.yaml +++ b/config/jedi/obsProc/ObsSpaceV2-to-V3.yaml @@ -73,6 +73,8 @@ Attributes: Type: StringVLen # Unsure if this is fixed or variable-length. - Attribute: [ "_FillValue" ] Type: SameAsVariable + - Attribute: [ "scaleFactor" ] + Type: SameAsVariable - Attribute: [ "ExpectedRange" ] Type: SameAsVariable Dimensions: [ 2 ] @@ -92,18 +94,22 @@ Groups: - Group: [ "MetaData" ] Required: true Required Variables: [ "latitude", "longitude" ] # "dateTime" is left out because the name changed from "datetime", and both are valid in ioda for now. + - Group: [ "RetrievalAncillaryData" ] - Group: [ "ObsBias" ] - Group: [ "ObsValue" ] - Group: [ "DerivedObsValue" ] - Group: [ "EffectiveObsValue" ] - Group: [ "ObsError" ] - Group: [ "EffectiveError" ] + - Group: [ "BiasCoefficients" ] + - Group: [ "BiasCoefficientErrors" ] - Group: [ "QualityMarker" ] OverrideType: Enum - Group: [ "QualityInformation" ] OverrideType: Enum - Group: [ "PreQC" ] OverrideType: Enum + - Group: [ "RetrievalData" ] - Group: [ "QCFlags" ] # UKMO group that may be deprecated later. - Group: [ "OneDVar" ] - Group: [ "SurfEmiss" ] @@ -143,8 +149,11 @@ Dimensions: Required: true Type: Int64 - Dimension: [ "Channel", "nchans" ] + - Dimension: [ "Record", "nrecs"] - Dimension: [ "Level", "nlevs", "Levels" ] - Dimension: [ "Layer", "nlays", "Layers" ] + - Dimension: [ "Depth" ] + - Dimension: [ "Variable" ] # Used in VarBC as variable-length strings of variable names. - Dimension: [ "SoilLayer" ] - Dimension: [ "OceanLayer" ] - Dimension: [ "Confidence" ] # Satellite-derived winds (AMV) typically have up to 4 values for this. @@ -163,6 +172,8 @@ Dimensions: - Dimension: [ "SynopticWindSequence" ] - Dimension: [ "MetarSequence" ] - Dimension: [ "AmdarSequence" ] + - Dimension: [ "dim_2" ] # This is purely a placeholder for BUFR second dimension; should be eliminated in future. + - Dimension: [ "Vertice" ] # Deprecated - Dimension: [ "ndatetime" ] Remove: true @@ -189,12 +200,43 @@ Variable Defaults: Optional: [ "ExpectedRange", "coordinates", "valid_range", "long_name", "_Netcdf4Dimid", "_Netcdf4Coordinates" ] # Optional attributes for all variables. Variables: - Variable: [ "latitude" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] MetaData: true Attributes: { units: "degree_north" } # We may need to alter to include degrees_north and degrees_east as well. - Variable: [ "longitude" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] MetaData: true Attributes: { units: "degree_east" } + - Variable: [ "xECEFPosition" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + MetaData: true + Attributes: { units: "km" } + - Variable: [ "yECEFPosition" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + MetaData: true + Attributes: { units: "km" } + - Variable: [ "zECEFPosition" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + MetaData: true + Attributes: { units: "km" } + - Variable: [ "xECEFPositionGNSS" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + MetaData: true + Attributes: { units: "km" } + - Variable: [ "yECEFPositionGNSS" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + MetaData: true + Attributes: { units: "km" } + - Variable: [ "zECEFPositionGNSS" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + MetaData: true + Attributes: { units: "km" } + - Variable: [ "elevationAngleGNSS" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + MetaData: true + Attributes: { units: "degree" } - Variable: [ "dateTime" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] MetaData: true Type: Datetime Check Exact Units: false # Check only that units are convertible, not that the reference is identical to this one. @@ -219,10 +261,10 @@ Variables: Attributes: { units: "W m-2 sr-1" } - Variable: [ "spectralRadiance" ] Dimensions: [ [ "Location", "Channel" ] ] - Attributes: { units: "W m-2 sr-1 m" } + Attributes: { units: "W m-2 sr-1 m-1" } - Variable: [ "scaledSpectralRadiance" ] Dimensions: [ [ "Location", "Channel" ] ] - Attributes: { units: "W m-2 sr-1 m" } + Attributes: { units: "W m-2 sr-1 m-1" } - Variable: [ "brightnessTemperature", "brightness_temperature" ] Dimensions: [ [ "Location", "Channel" ] ] Attributes: { units: "K" } @@ -239,12 +281,17 @@ Variables: Attributes: { units: "1" } - Variable: [ "bendingAngle", "bending_angle" ] Attributes: { units: "radians" } + - Variable: [ "totalElectronContent" ] + Force Units: false + Type: UInt32 + MetaData: true - Variable: [ "zenithTotalDelay", "ZTD", "zenith_total_delay", "total_zenith_delay" ] Attributes: { units: "m" } - Variable: [ "slantPathDelay" ] Attributes: { units: "m" } - Variable: [ "atmosphericRefractivity", "refractivity" ] - Attributes: { units: "INVALID N units" } # TODO: Fix unit parsing here + Attributes: { units: "N units" } # TODO: Fix unit parsing here + Force Units: false - Variable: [ "albedo" ] Dimensions: [ [ "Location", "Channel" ] ] Attributes: { units: "1" } @@ -269,7 +316,7 @@ Variables: - Variable: [ "reflectivityLowestScanLevel" ] Dimensions: [ [ "Location"] ] Attributes: { units: "dBZ" } - - Variable: [ "radialVelocity" ] + - Variable: [ "radialVelocity", "radial_velocity" ] Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] Attributes: { units: "m s-1" } - Variable: [ "cosAzimuthCosTilt" ] @@ -304,10 +351,10 @@ Variables: Attributes: { units: "kg m-3" } - Variable: [ "airTemperature", "air_temperature" ] Attributes: { units: "K" } - Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "TemperatureEvent" ], [ "Location", "AmdarSequence" ] ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "Level", "TemperatureEvent" ], [ "Location", "AmdarSequence" ], [ "Location", "dim_2" ] ] - Variable: [ "wetBulbTemperature" ] Attributes: { units: "K" } - - Variable: [ "dewPointTemperature", "dewpoint_temperature", "dew_point_temperature" ] + - Variable: [ "dewPointTemperature", "dewpoint_temperature", "dew_point_temperature", "air_dew_point_temperature", "dew_point" ] Attributes: { units: "K" } Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] - Variable: [ "airTemperatureAt2M" ] @@ -324,13 +371,13 @@ Variables: - Variable: [ "soilTemperature" ] Dimensions: [ [ "Location", "SoilLayer" ] ] Attributes: { units: "K" } - - Variable: [ "skinTemperature" ] + - Variable: [ "skinTemperature", "skin_temperature" ] Attributes: { units: "K" } - Variable: [ "snowTemperature" ] Attributes: { units: "K" } - Variable: [ "iceSurfaceTemperature" ] Attributes: { units: "K" } - - Variable: [ "waterTemperature", "water_temperature", "ocean_temperature", "sea_temperature" ] + - Variable: [ "waterTemperature", "sea_water_temperature", "ocean_temperature", "sea_temperature", "water_temperature" ] Dimensions: [ [ "Location" ], [ "Location", "OceanLayer" ], [ "Location", "WaterTemperatureEvent" ] ] Attributes: { units: "K" } - Variable: [ "waterPressure", "ocean_pressure" ] @@ -340,6 +387,9 @@ Variables: - Variable: [ "waterPotentialTemperature", "ocean_potential_temperature", "sea_potential_temperature" ] Dimensions: [ [ "Location" ], [ "Location", "OceanLayer" ] ] Attributes: { units: "K" } + - Variable: [ "waterConservativeTemperature" ] + Dimensions: [ [ "Location" ], [ "Location", "OceanLayer" ] ] + Attributes: { units: "K" } - Variable: [ "seaSurfaceTemperature", "sea_surface_temperature" ] Dimensions: [ [ "Location" ], [ "Location", "WaterTemperatureEvent" ] ] Attributes: { units: "K" } @@ -357,11 +407,11 @@ Variables: - Variable: [ "relativeHumidityAt2M" ] Attributes: { units: "1" } - Variable: [ "specificHumidity", "specific_humidity" ] - Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "HumidityEvent" ] ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "Level", "HumidityEvent" ] ] Attributes: { units: "kg kg-1" } - Variable: [ "specificHumidityAt2M" ] Attributes: { units: "kg kg-1" } - - Variable: [ "waterVaporMixingRatio", "vapor_mixing_ratio" ] + - Variable: [ "waterVaporMixingRatio", "vapor_mixing_ratio", "humidity_mixing_ratio" ] Attributes: { units: "kg kg-1" } Dimensions: [ [ "Location" ], [ "Location", "AmdarSequence" ] ] - Variable: [ "soilMoisture", "soil_moisture" ] @@ -370,25 +420,30 @@ Variables: Attributes: { units: "m3 m-3" } - Variable: [ "soilMoistureNormalized" ] Attributes: { units: "1" } + - Variable: [ "soilMoistureContentSurface" ] + Attributes: { units: "kg m-2" } - Variable: [ "leafAreaIndex", "leaf_area_index" ] Attributes: { units: "1" } - Variable: [ "depthBelowSoilSurface" ] Attributes: { units: "m" } + MetaData: true - Variable: [ "snowCoverFraction", "snow_cover_fraction" ] Attributes: { units: "1" } - Variable: [ "landAreaFraction", "land_area_fraction" ] Attributes: { units: "1" } + - Variable: [ "waterAreaFraction", "water_area_fraction", "water_fraction" ] + Attributes: { units: "1" } - Variable: [ "windDirection", "wind_direction", "wind_from_direction" ] Attributes: { units: "degree" } - Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "AmdarSequence" ] ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "AmdarSequence" ], [ "Location", "dim_2" ] ] - Variable: [ "windSpeed", "wind_speed", "surface_wind_speed" ] Attributes: { units: "m s-1" } - Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "AmdarSequence" ] ] - - Variable: [ "windEastward", "eastward_wind" ] - Dimensions: [ [ "Location" ], [ "Location", "WindEvent" ] ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "AmdarSequence" ], [ "Location", "dim_2" ] ] + - Variable: [ "windEastward", "eastward_wind", "u_wind_component" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "Level", "WindEvent" ] ] Attributes: { units: "m s-1" } - - Variable: [ "windNorthward", "northward_wind" ] - Dimensions: [ [ "Location" ], [ "Location", "WindEvent" ] ] + - Variable: [ "windNorthward", "northward_wind", "v_wind_component" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "Level", "WindEvent" ] ] Attributes: { units: "m s-1" } - Variable: [ "windUpward" ] Attributes: { units: "m s-1" } @@ -407,6 +462,9 @@ Variables: - Variable: [ "maximumWindGustSpeed" ] Attributes: { units: "m s-1" } Dimensions: [ [ "Location" ], [ "Location", "SynopticWindSequence" ] ] + - Variable: [ "maximumWindGustDirection" ] + Attributes: { units: "degree" } + Dimensions: [ [ "Location" ], [ "Location", "SynopticWindSequence" ] ] - Variable: [ "windShearEastward" ] Attributes: { units: "m s-1" } - Variable: [ "windShearNorthward" ] @@ -415,16 +473,21 @@ Variables: Attributes: { units: "Pa" } - Variable: [ "pressure", "air_pressure" ] Attributes: { units: "Pa" } - Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "PressureEvent" ] ] # NCEP BUFR/PREPBUFR + Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "Level", "PressureEvent" ] ] MetaData: true - - Variable: [ "stationPressure", "surface_pressure" ] + - Variable: [ "pressureVertice" ] + Attributes: { units: "Pa" } + Dimensions: [ [ "Location", "Vertice" ] ] + - Variable: [ "stationPressure", "surface_pressure", "pressure_station" ] Attributes: { units: "Pa" } - - Variable: [ "pressureSurface", "pressure_surface" ] # Only for use by UKMO + - Variable: [ "surfacePressure", "pressure_surface" ] # Only for use by UKMO Attributes: { units: "Pa" } - Variable: [ "pressureChange" ] Attributes: { units: "Pa s-1" } - Variable: [ "pressureReducedToMeanSeaLevel" ] Attributes: { units: "Pa" } + - Variable: [ "standardPressure"] + Attributes: { units: "Pa" } - Variable: [ "horizontalVisibility" ] Attributes: { units: "m" } - Variable: [ "verticalVisibility" ] @@ -444,7 +507,9 @@ Variables: - Variable: [ "cloudCoverTotal" ] Attributes: { units: "1" } - Variable: [ "cloudAmount", "cloud_fraction", "initial_cloud_fraction", "cloud_area_fraction" ] - Dimensions: [ [ "Location" ], [ "Location", "Layer" ], [ "Location", "Channel"] ] + Dimensions: [ [ "Location" ], [ "Location", "Layer" ], [ "Location", "Channel"], [ "Location", "CloudSequence" ] ] + Attributes: { units: "1" } + - Variable: [ "cloudAmountOfLowestLayer" ] Attributes: { units: "1" } - Variable: [ "cloudType" ] Dimensions: [ [ "Location" ], [ "Location", "CloudSequence" ] ] # NCEP BUFR/PREPBUFR @@ -497,6 +562,8 @@ Variables: Attributes: { units: "m s-1" } - Variable: [ "snowWaterEquivalent" ] Attributes: { units: "kg m-2" } + - Variable: [ "snowWaterEquivalentRate" ] + Attributes: { units: "kg m-2 s-1" } - Variable: [ "sizeOfPrecipitatingElement" ] Attributes: { units: "m" } - Variable: [ "precipitableWater" ] @@ -561,11 +628,11 @@ Variables: Type: Enum - Variable: [ "seaSurfaceHeight" ] Attributes: { units: "m" } - - Variable: [ "seaSurfaceHeightAnomaly", "sea_surface_height_anomoly" ] + - Variable: [ "seaSurfaceHeightAnomaly", "sea_surface_height_anomaly" ] Attributes: { units: "m" } - Variable: [ "absoluteDynamicTopography", "absolute_dynamic_topography" ] Attributes: { units: "m" } - - Variable: [ "seaIceFraction", "sea_ice_fraction" ] + - Variable: [ "seaIceFraction", "sea_ice_fraction", "sea_ice_area_fraction" ] Attributes: { units: "1" } - Variable: [ "seaIceFreeboard", "sea_ice_freeboard" ] Attributes: { units: "m" } @@ -579,25 +646,43 @@ Variables: Attributes: { units: "s" } - Variable: [ "heightOfWaves" ] Attributes: { units: "m" } - - Variable: [ "waveHeightSignificant" ] + - Variable: [ "waveHeightSignificant", "sea_surface_wave_significant_height" ] Attributes: { units: "m" } - - Variable: [ "salinity" ] + - Variable: [ "salinity", "sea_water_salinity", "ocean_salinity" ] Dimensions: [ [ "Location" ], [ "Location", "OceanLayer" ] ] Attributes: { units: "1" } - - Variable: [ "seaSurfaceSalinity" ] + Force Units: false + - Variable: [ "absoluteSalinity" ] + Dimensions: [ [ "Location" ], [ "Location", "OceanLayer" ] ] + Attributes: { units: "g/kg" } + - Variable: [ "seaSurfaceSalinity", "sea_surface_salinity" ] Attributes: { units: "1" } - - Variable: [ "seaSurfaceZonalWind" ] + Force Units: false + - Variable: [ "seaSurfaceZonalWind", "surface_eastward_wind" ] + Attributes: { units: "m s-1" } + - Variable: [ "seaSurfaceMeridionalWind", "surface_northward_wind" ] + Attributes: { units: "m s-1" } + - Variable: [ "waterSurfaceZonalVelocity", "surface_eastward_sea_water_velocity" ] Attributes: { units: "m s-1" } - - Variable: [ "seaSurfaceMeridionalWind" ] + - Variable: [ "waterSurfaceMeridionalVelocity", "surface_northward_sea_water_velocity" ] Attributes: { units: "m s-1" } - Variable: [ "waterZonalVelocity" ] + Dimensions: [ [ "Location" ], [ "Location", "OceanLayer" ] ] Attributes: { units: "m s-1" } - Variable: [ "waterMeridionalVelocity" ] + Dimensions: [ [ "Location" ], [ "Location", "OceanLayer" ] ] Attributes: { units: "m s-1" } - Variable: [ "chlorophyllMassConcentration", "mass_concentration_of_chlorophyll_in_sea_water" ] + Dimensions: [ [ "Location" ], [ "Location", "OceanLayer" ] ] + Attributes: { units: "mg m-3" } + - Variable: [ "seaSurfaceChlorophyllMassConcentration", "sea_surface_chlorophyll" ] Attributes: { units: "mg m-3" } - Variable: [ "oceanMassParticulateAsCarbon" ] + Dimensions: [ [ "Location" ], [ "Location", "OceanLayer" ] ] Attributes: { units: "mg m-3" } + - Variable: [ "oceanSurfaceBiomassContent", "sea_surface_biomass_in_p_units" ] + Attributes: { units: "p units" } + Force Units: false - Variable: [ "solarIrradianceDirect" ] Attributes: { units: "W m-2" } - Variable: [ "solarIrradianceDiffuse" ] @@ -631,7 +716,7 @@ Variables: Attributes: { units: "g kg-1 s-1" } - Variable: [ "lightningStroke" ] Type: Enum - - Variable: [ "lightningFlashDensity" ] + - Variable: [ "lightningFlashExtentDensity" ] Attributes: { units: "m-2" } - Variable: [ "lightningDischargePolarity" ] Type: Enum @@ -643,80 +728,88 @@ Variables: - Variable: [ "aerosolOpticalDepth", "Total_Aerosol_Optical_Depth_550", "aerosol_optical_depth" ] # Long name from GEOS AOD Dimensions: [ ["Location"], [ "Location", "Channel" ] ] Attributes: { units: "1" } - - Variable: [ "absorptionAerosolOpticalDepth" ] + - Variable: [ "absorptionAerosolOpticalDepth", "absorption_aerosol_optical_depth" ] Dimensions: [ ["Location"], [ "Location", "Channel" ] ] Attributes: { units: "1" } - - Variable: [ "ozoneTotal", "integrated_layer_ozone_in_air" ] # TODO: check old name. Same variable? OMPS, OMI. - Dimensions: [ [ "Location" ] ] - Attributes: { units: "DU" } - - Variable: [ "ozoneLayer" ] + - Variable: [ "aprioriTerm" ] + Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] + Attributes: { units: "mol m-2" } + - Variable: [ "averagingKernel" ] Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] - Attributes: { units: "DU" } + Attributes: { units: "1" } - Variable: [ "ozoneColumn" ] Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] Attributes: { units: "mol m-2" } - Variable: [ "ozoneProfile" ] Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] Attributes: { units: "mol mol-1" } - - Variable: [ "ozoneSurface" ] - Attributes: { units: "kg kg-1" } - - Variable: [ "nitrogendioxideColumn" ] + - Variable: [ "ozoneInsitu" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + Attributes: { units: "mol mol-1" } + Force Units: false + - Variable: [ "nitrogendioxideColumn", "nitrogen_dioxide_in_tropospheric_column" ] Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] Attributes: { units: "mol m-2" } + - Variable: [ "nitrogendioxideProfile" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + Attributes: { units: "mol mol-1" } + - Variable: [ "nitrogendioxideInsitu" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + Attributes: { units: "mol mol-1" } - Variable: [ "carbonmonoxideColumn" ] Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] Attributes: { units: "mol m-2" } + - Variable: [ "carbonmonoxideProfile" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + Attributes: { units: "mol mol-1" } + - Variable: [ "carbonmonoxideInsitu" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + Attributes: { units: "mol mol-1" } - Variable: [ "sulfurdioxideColumn" ] Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] Attributes: { units: "mol m-2" } - - Variable: [ "methaneColumn" ] - Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] - Attributes: { units: "mol m-2" } + - Variable: [ "sulfurdioxideProfile" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + Attributes: { units: "mol mol-1" } + - Variable: [ "sulfurdioxideInsitu" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + Attributes: { units: "mol mol-1" } - Variable: [ "carbondioxideColumn" ] Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] Attributes: { units: "mol m-2" } - - Variable: [ "sulfurdioxideColumn" ] + - Variable: [ "methaneColumn" ] Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] Attributes: { units: "mol m-2" } - Variable: [ "formaldehydeColumn" ] Dimensions: [ [ "Location" ], [ "Location", "Layer" ] ] Attributes: { units: "mol m-2" } - - Variable: [ "nitrogendioxideProfile" ] - Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] - Attributes: { units: "mol mol-1" } - - Variable: [ "carbonmonoxideProfile" ] + - Variable: [ "formaldehydeInsitu" ] Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] Attributes: { units: "mol mol-1" } - Variable: [ "nitricacidProfile" ] Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] Attributes: { units: "mol mol-1" } - - Variable: [ "sulfurdioxideProfile" ] + - Variable: [ "particulatematter2p5Insitu" ] Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] - Attributes: { units: "mol mol-1" } - - Variable: [ "nitrogendioxideSurface" ] - Attributes: { units: "kg kg-1" } - - Variable: [ "carbonmonoxideSurface" ] - Attributes: { units: "kg kg-1" } - - Variable: [ "sulfurdioxideSurface" ] - Attributes: { units: "kg kg-1" } - - Variable: [ "particulatematter2p5Surface" ] Attributes: { units: "kg m-3" } - - Variable: [ "particulatematter2p5particulatematter10Surface" ] + Check Exact Units: false + - Variable: [ "particulatematter10Insitu" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] Attributes: { units: "kg m-3" } - - Variable: [ "observationTypeNum" ] + - Variable: [ "observationTypeNum", "observation_type" ] MetaData: true Type: Enum - - Variable: [ "observationSubTypeNum", "ops_subtype" ] + - Variable: [ "observationSubTypeNum", "ops_subtype", "obs_subtype" ] MetaData: true Type: Enum - - Variable: [ "observationReport", "observation_report" ] + - Variable: [ "observationReport", "observation_report" ] Type: UInt32 - - Variable: [ "thinningPriority", "thinning_priority" ] + - Variable: [ "thinningPriority", "thinning_priority", "priority", "thin_score" ] Type: UInt32 - Variable: [ "superObservation", "is_superob" ] # TODO: should someday be logical/byte=0 false, 1=true Type: UInt16 MetaData: true - - Variable: [ "windProfiler", "wind_profiler" ] + - Variable: [ "windProfiler", "wind_profiler" ] Type: UInt32 - Variable: [ "instrumentPackage" ] MetaData: true @@ -739,27 +832,39 @@ Variables: - Variable: [ "satelliteIdentifier", "satellite_identifier", "satellite_id", "occulting_sat_id" ] MetaData: true Type: Enum - - Variable: [ "satelliteTransmitterId", "reference_sat_id" ] + - Variable: [ "satelliteTransmitterId", "reference_sat_id", "platform_id" ] MetaData: true Type: Enum - Variable: [ "satelliteAscendingFlag", "ascending_flag" ] MetaData: true Type: Enum - - Variable: [ "satelliteConstellationRO", "gnss_sat_class" ] + - Variable: [ "satelliteConstellationRO", "gnss_sat_class", "satellite_classification" ] MetaData: true + Type: UInt32 + Force Units: false - Variable: [ "impactHeightRO", "impact_height" ] MetaData: true + Force Units: false - Variable: [ "impactParameterRO", "impact_parameter" ] MetaData: true + Force Units: false - Variable: [ "sequenceNumber", "sequence_number", "record_number", "rec_id", "profileNumberRO" ] Force Units: false Type: UInt32 MetaData: true + - Variable: [ "numberObservationsUsed" ] + Force Units: false + Type: UInt32 - Variable: [ "geoidUndulation", "geoid_height_above_reference_ellipsoid" ] + Attributes: { units: "m" } MetaData: true - Variable: [ "earthRadiusCurvature", "earth_radius_of_curvature" ] + Attributes: { units: "m" } MetaData: true - - Variable: [ "dataProviderOrigin", "processing_center", "originating_center" ] + - Variable: [ "dataProviderOrigin", "processing_center", "originating_center", "originating_centre" ] + MetaData: true + Type: Enum + - Variable: [ "dataProviderSubOrigin", "originating_subcentre" ] MetaData: true Type: Enum - Variable: [ "dataRestrictedExpiration" ] @@ -775,19 +880,36 @@ Variables: Check Exact Units: false # Check only that units are convertible, not that the reference is identical to this one. Attributes: units: "seconds since 1970-01-01T00:00:00Z" - - Variable: [ "generatingApplication", "wind_generating_application", "wind_generating_application_" ] + - Variable: [ "timeOffset", "time_difference" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ] ] + Attributes: { units: "s" } MetaData: true - Type: Enum + Type: UInt32 - Variable: [ "sensorAzimuthAngle", "sensor_azimuth_angle" ] MetaData: true Attributes: { units: "degree" } - - Variable: [ "sensorZenithAngle", "sensor_zenith_angle" ] + - Variable: [ "sensorZenithAngle", "sensor_zenith_angle", "zenith_angle"] MetaData: true Attributes: { units: "degree" } - - Variable: [ "satelliteZenithAngle", "satellite_zenith_angle" ] + - Variable: [ "sensorZenithAngle1", "sensor_zenith_angle1" ] + MetaData: true + Attributes: { units: "degree" } + - Variable: [ "sensorAzimuthAngle1", "sensor_azimuth_angle1" ] + MetaData: true + Attributes: { units: "degree" } + - Variable: [ "solarZenithAngle", "solar_zenith_angle", "sol_zenith_angle" ] + MetaData: true + Attributes: { units: "degree" } + - Variable: [ "solarAzimuthAngle", "solar_azimuth_angle", "sol_azimuth_angle" ] MetaData: true Attributes: { units: "degree" } - - Variable: [ "viewingZenithAngle" ] + - Variable: [ "solarZenithAngle1", "solar_zenith_angle1" ] + MetaData: true + Attributes: { units: "degree" } + - Variable: [ "solarAzimuthAngle1", "solar_azimuth_angle1" ] + MetaData: true + Attributes: { units: "degree" } + - Variable: [ "satelliteZenithAngle", "satellite_zenith_angle" ] MetaData: true Attributes: { units: "degree" } - Variable: [ "sensorPixelSizeHorizontal" ] @@ -796,10 +918,7 @@ Variables: - Variable: [ "sensorViewAngle", "sensor_view_angle" ] MetaData: true Attributes: { units: "degree" } - - Variable: [ "sensorElevationAngle", "sensor_elevation_angle" ] - MetaData: true - Attributes: { units: "degree" } - - Variable: [ "sensorScanAngle", "sensor_scan_angle" ] + - Variable: [ "sensorScanAngle", "sensor_scan_angle", "scanAngle", "scan_angle" ] MetaData: true Attributes: { units: "degree" } - Variable: [ "sensorScanPosition", "scan_position" ] @@ -818,11 +937,11 @@ Variables: MetaData: true Type: UInt32 Force Units: false - - Variable: [ "fractionOfClearPixelsInFOV" ] # Q: ObsValue or MetaData ? - Dimensions: [ [ "Location", "Cluster" ] ] -# MetaData: true + - Variable: [ "fractionOfClearPixelsInFOV" ] + Dimensions: [ [ "Location" ], [ "Location", "Cluster" ] ] + MetaData: true Attributes: { units: "1" } - - Variable: [ "sensorChannelNumber", "sensor_channel", "sensor_chan", "chans" ] # chans from geos aod + - Variable: [ "sensorChannelNumber", "sensor_channel", "sensor_chan", "chans", "channel_number", "channels" ] # chans from geos aod Dimensions: [ [ "Channel" ], [ "Location" ], [ "Location", "Channel" ] ] MetaData: true Type: UInt32 @@ -841,16 +960,16 @@ Variables: Dimensions: [ [ "Location", "Band" ] ] MetaData: true Force Units: false - - Variable: [ "sensorCentralFrequency", "sensor_band_central_radiation_frequency", "frequency" ] + - Variable: [ "sensorCentralFrequency", "sensor_band_central_radiation_frequency", "frequency", "sensor_central_frequency" ] Dimensions: [ [ "Channel" ], [ "Location" ], [ "Location", "Channel" ] ] MetaData: true Type: Double Attributes: { units: "Hz" } - - Variable: [ "sensorCentralWavenumber", "sensor_band_central_radiation_wavenumber", "wavenumber" ] + - Variable: [ "sensorCentralWavenumber", "sensor_band_central_radiation_wavenumber", "wavenumber", "sensor_central_wavenumber" ] Dimensions: [ [ "Channel" ], [ "Location" ], [ "Location", "Channel" ] ] MetaData: true Attributes: { units: "m-1" } - - Variable: [ "sensorCentralWavelength", "channel_wavelength" ] + - Variable: [ "sensorCentralWavelength", "channel_wavelength", "sensor_central_wavelength" ] Dimensions: [ [ "Channel" ], [ "Location" ], [ "Location", "Channel" ] ] MetaData: true Attributes: { units: "microns" } @@ -859,23 +978,69 @@ Variables: Type: Enum Dimensions: [ [ "Channel" ] ] Force Units: false - - Variable: [ "solarZenithAngle", "solar_zenith_angle", "sol_zenith_angle" ] + - Variable: [ "beamTiltAngle" ] MetaData: true Attributes: { units: "degree" } - - Variable: [ "solarAzimuthAngle", "solar_azimuth_angle", "sol_azimuth_angle" ] + - Variable: [ "beamAzimuthAngle" ] MetaData: true Attributes: { units: "degree" } - - Variable: [ "stationICAO" ] + - Variable: [ "beamWidth" ] MetaData: true - Type: StringFixedLen # 4-character string - - Variable: [ "wmoBlockNumber" ] + Attributes: { units: "degree" } + - Variable: [ "gateWidth" ] + MetaData: true + Attributes: { units: "m" } + - Variable: [ "gatePhase" ] + MetaData: true + Attributes: { units: "degree" } + - Variable: [ "gateRange" ] + MetaData: true + Attributes: { units: "m" } + - Variable: [ "minGateRange" ] + MetaData: true + Attributes: { units: "m" } + - Variable: [ "numberOfBeams" ] + MetaData: true + Type: UInt32 + Force Units: false + - Variable: [ "numberOfGates" ] + MetaData: true + Type: UInt32 + Force Units: false + - Variable: [ "ppiIndex" ] + MetaData: true + Type: UInt32 + Force Units: false + - Variable: [ "ppiVolume" ] + MetaData: true + Type: UInt32 + Force Units: false + - Variable: [ "rhiIndex" ] + MetaData: true + Type: UInt32 + Force Units: false + - Variable: [ "rhiVolume" ] MetaData: true - Type: UInt32 # 2 digits (1-99 only) + Type: UInt32 Force Units: false - - Variable: [ "wmoStationNumber" ] + - Variable: [ "unfoldingVelocity" ] + MetaData: true + Attributes: { units: "m s-1" } + - Variable: [ "spectralWidth" ] + MetaData: true + Attributes: { units: "dBZ" } + Force Units: false + - Variable: [ "radarPulseFrequency" ] + Dimensions: [ [ "Channel" ] ] + MetaData: true + Attributes: { units: "Hz" } + - Variable: [ "minDetectableSignal" ] MetaData: true - Type: UInt32 # 3 digits (1-999 only) + Attributes: { units: "dBZ" } Force Units: false + - Variable: [ "stationICAO" ] + MetaData: true + Type: StringFixedLen # 4-character string - Variable: [ "stationWMO" ] MetaData: true Type: StringFixedLen # 5-character string, leading zeroes of the two above @@ -883,7 +1048,7 @@ Variables: - Variable: [ "stationWIGOSId" ] MetaData: true Type: StringFixedLen - - Variable: [ "stationIdentification", "station_id", "Station_ID" ] + - Variable: [ "stationIdentification", "station_id", "Station_ID", "statid" ] MetaData: true Type: StringFixedLen - Variable: [ "stationLongName" ] @@ -892,12 +1057,21 @@ Variables: - Variable: [ "stationACCombined", "full_site_name" ] MetaData: true Type: StringFixedLen + - Variable: [ "roadSiteIdentifier" ] + MetaData: true + Type: StringVLen # Usually 5-character string - Variable: [ "instantaneousAltitudeRate" ] MetaData: true Attributes: { units: "m s-1" } - Variable: [ "stationElevation", "station_elevation", "station_altitude", "station_height" ] MetaData: true Attributes: { units: "m" } + - Variable: [ "stationLatitude" ] + MetaData: true + Attributes: { units: "degree_north" } + - Variable: [ "stationLongitude" ] + MetaData: true + Attributes: { units: "degree_east" } - Variable: [ "stationType" ] MetaData: true Type: Enum @@ -907,26 +1081,34 @@ Variables: - Variable: [ "sensorMomentumHeight", "anemometer_height" ] MetaData: true Attributes: { units: "m" } - - Variable: [ "height", "altitude", "obs_height", "height_above_mean_sea_level", "geometric_height" ] - Dimensions: [ [ "Location" ], [ "Location", "HeightEvent" ] ] + - Variable: [ "height", "altitude", "obs_height", "height_above_mean_sea_level", "geometric_height", "aircraft_altitude" ] + Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "Location", "Level", "HeightEvent" ] ] MetaData: true Attributes: { units: "m" } - Variable: [ "flightLevel" ] Attributes: { units: "m" } MetaData: true + - Variable: [ "referenceLevel" ] # Typically a numbered level such as model level number + Dimensions: [ [ "Location" ], [ "Location", "Level" ], [ "averagingKernelLevels" ], [ "Location", "averagingKernelLevels" ] ] + MetaData: true + Force Units: false + - Variable: [ "positionEstimated" ] + MetaData: true + Type: Enum + Force Units: false - Variable: [ "geopotentialHeight", "geopotential_height" ] MetaData: true Attributes: { units: "m" } - - Variable: [ "altitudeIndicator" ] # TODO: altitude vs height + - Variable: [ "altitudeIndicator" ] MetaData: true Type: Enum - - Variable: [ "heightOfSurface", "elevation", "surface_height", "surface_altitude" ] + - Variable: [ "pressureSensorAltitude", "pressure_sensor_altitude"] MetaData: true Attributes: { units: "m" } - - Variable: [ "heightOfLandSurface" ] + - Variable: [ "heightOfSurface", "elevation", "surface_height", "surface_altitude", "surface_elevation" ] MetaData: true Attributes: { units: "m" } - - Variable: [ "aircraftAltitude" ] + - Variable: [ "heightOfLandSurface" ] MetaData: true Attributes: { units: "m" } - Variable: [ "distanceToCoastline" ] @@ -935,6 +1117,9 @@ Variables: - Variable: [ "releaseTime", "LaunchTime", "launchTime" ] MetaData: true Type: Datetime + Check Exact Units: false + Attributes: + units: "seconds since 1970-01-01T00:00:00Z" - Variable: [ "aircraftIdentifier" ] MetaData: true Type: StringFixedLen @@ -960,21 +1145,36 @@ Variables: - Variable: [ "aircraftFlightPhase" ] MetaData: true Type: Enum + - Variable: [ "aircraftNavigationalSystem" ] + Type: Enum + MetaData: true + - Variable: [ "commercialAircraftType" ] + Type: Enum + MetaData: true - Variable: [ "shipHeading" ] MetaData: true Attributes: { units: "degree" } - Variable: [ "shipVelocity" ] MetaData: true Attributes: { units: "m s-1" } + - Variable: [ "buoyType", "buoy_type"] + Type: Enum + MetaData: true - Variable: [ "waterTemperatureMethod" ] MetaData: true Type: Enum - Variable: [ "satwindIdentifier" ] Type: StringVLen MetaData: true - - Variable: [ "windComputationMethod", "satelliteDerivedWindComputationMethod" ] + - Variable: [ "windComputationMethod", "satelliteDerivedWindComputationMethod", "wind_computation_method" ] MetaData: true Type: Enum + - Variable: [ "solutionLikelihood", "solution_likelihood" ] + Type: UInt32 + MetaData: true + - Variable: [ "windVectorCellQuality", "wind_vector_cell_quality" ] + Type: UInt32 + MetaData: true - Variable: [ "windHeightAssignMethod" ] MetaData: true Type: Enum @@ -982,8 +1182,35 @@ Variables: MetaData: true Type: Enum - Variable: [ "windTrackingCorrelation" ] + Dimensions: [ [ "Location" ], [ "Location", "dim_2" ] ] + MetaData: true + Attributes: { units: "1" } + # Scatterometer windvector product + - Variable: [ "crossTrackCellNumber", "cross_track_cell_number" ] + Type: UInt32 + MetaData: true + - Variable: [ "numberVectorAmbiguities", "num_vector_ambiguities", "number_of_vector_ambiguities" ] + Type: UInt32 + MetaData: true + - Variable: [ "selectedWindVectorIndex", "selected_wind_vector_index" ] + Type: UInt32 + # Scatterometer soil wetness index product + - Variable: [ "soilMoistureEstError" ] + MetaData: true + Attributes: { units: "percent" } + - Variable: [ "soilMoistureClimoMean" ] MetaData: true Attributes: { units: "1" } + - Variable: [ "soilMoistureProcessingFlags" ] + Type: UInt32 + MetaData: true + - Variable: [ "soilMoistureCorrectionFlags" ] + Type: UInt32 + MetaData: true + - Variable: [ "soilMoistureQuality" ] + MetaData: true + Attributes: { units: "percent" } + # endof Scatterometer - Variable: [ "qiRecursiveFilterFunction", "QI_recursive_filter_function" ] MetaData: true Attributes: { units: "percent" } @@ -1005,6 +1232,10 @@ Variables: - Variable: [ "qiWeightedMixtureWithoutForecast" ] MetaData: true Attributes: { units: "percent" } + - Variable: [ "windGeneratingApplication", "wind_generating_application", "wind_generating_application_" ] + Dimensions: [ [ "Location" ], [ "Location", "Confidence" ] ] + MetaData: true + Type: Enum - Variable: [ "pressureGeneratingApplication" ] Dimensions: [ [ "Location", "Confidence" ] ] MetaData: true @@ -1017,6 +1248,14 @@ Variables: Dimensions: [ [ "Location", "Confidence" ] ] MetaData: true Attributes: { units: "percent" } + - Variable: [ "windSpeedPercentConfidence" ] + Dimensions: [ [ "Location", "Confidence" ] ] + MetaData: true + Attributes: { units: "percent" } + - Variable: [ "windDirectionPercentConfidence" ] + Dimensions: [ [ "Location", "Confidence" ] ] + MetaData: true + Attributes: { units: "percent" } - Variable: [ "pressurePercentConfidence" ] Dimensions: [ [ "Location", "Confidence" ] ] MetaData: true @@ -1026,17 +1265,15 @@ Variables: MetaData: true Attributes: { units: "percent" } - Variable: [ "humidityPercentConfidence" ] - Dimensions: [ [ "Location", "Confidence" ] ] + Dimensions: [ [ "Location" ], [ "Location", "Confidence" ] ] MetaData: true Attributes: { units: "percent" } - - Variable: [ "qualityFlags", "quality_flags", "qc_flags" ] - MetaData: true - Type: Enum - Variable: [ "landOrSeaQualifier", "land_sea" ] # TODO: land_sea needs enum conversion (ATMS) MetaData: true Type: Enum - Variable: [ "surfaceQualifier", "surface_type" ] # 0=land, 1=sea, 2=seaice MetaData: true + Force Units: false Type: Enum - Variable: [ "earthSurfaceType" ] # TODO: BUFR table 008029 or 013040 (among others) MetaData: true @@ -1044,12 +1281,6 @@ Variables: - Variable: [ "dayOrNightQualifier" ] MetaData: true Type: Enum - - Variable: [ "verticalResolution" ] - MetaData: true - Attributes: { units: "m" } - - Variable: [ "verticalSignificance" ] - Type: Enum - Dimensions: [ [ "Location" ], [ "Location", "CloudSequence" ] ] - Variable: [ "instrumentTemperature" ] MetaData: true Attributes: { units: "K" } @@ -1075,14 +1306,9 @@ Variables: - Variable: [ "scatteringIndexRetrievedFromObservation" ] MetaData: true Force Units: false - - Variable: [ "percentConfidenceWithForecast" ] - MetaData: true - Attributes: { units: "percent" } - - Variable: [ "percentConfidenceWithoutForecast" ] - MetaData: true - Attributes: { units: "percent" } - Variable: [ "topographyComplexity" ] MetaData: true + Force Units: false - Variable: [ "wetlandFraction", "wetland_fraction" ] MetaData: true Attributes: { units: "1" } @@ -1090,15 +1316,24 @@ Variables: MetaData: true Type: Enum - Variable: [ "easeRowIndex" ] + Type: UInt32 MetaData: true + Force Units: false - Variable: [ "easeColumnIndex" ] + Type: UInt32 MetaData: true + Force Units: false - Variable: [ "numberOfIterations", "n_iterations", "n_iters" ] Type: UInt32 Dimensions: [ [ "Location" ] ] - Variable: [ "extendedObsSpace", "extended_obs_space" ] Type: Enum MetaData: true + - Variable: [ "channelData", "channel_data" ] + Dimensions: [ [ "Location", "Channel" ] ] + - Variable: [ "verticalSignificance" ] + Type: Enum + Dimensions: [ [ "Location" ], [ "Location", "CloudSequence" ] ] # OneDVar specific - Variable: [ "finalCost", "FinalCost"] Type: UInt32 @@ -1107,52 +1342,32 @@ Variables: - Variable: [ "surfaceClassAAPP", "surface_class" ] Type: Enum MetaData: true - # Scatterometer - - Variable: [ "crossTrackCellNumber", "cross_track_cell_number" ] + - Variable: [ "bennartzIndexAAPP", "aapp_bennartz_index" ] Type: UInt32 MetaData: true - - Variable: [ "numberVectorAmbiguities", "num_vector_ambiguities" ] + - Variable: [ "cirrusIndexAAPP", "aapp_cirrus_index" ] Type: UInt32 MetaData: true - - Variable: [ "selectedWindVectorIndex", "selected_wind_vector_index" ] - Type: UInt32 - - # NCEP BUFR - RADIANCE - - Variable: [ "spectralRadiance" ] - Dimensions: [ [ "Location", "Channel" ] ] - Attributes: { units: "W m-2 sr-1 m" } - - Variable: [ "scaledSpectralRadiance" ] - Dimensions: [ [ "Location", "Channel" ] ] - Attributes: { units: "W m-2 sr-1 m" } - - Variable: [ "heightOfStation" ] - MetaData: true - Attributes: { units: "m" } - - Variable: [ "satelliteInstrument" ] - MetaData: true - Type: Enum - - Variable: [ "orbitNumber" ] - MetaData: true + # Conventional specific UKMO + - Variable: [ "levelType", "level_type"] Type: Enum - - Variable: [ "satelliteAntennaCorrectionsVersionNumber" ] MetaData: true + - Variable: [ "dataSelection", "data_selection"] Type: Enum - - Variable: [ "antennaTemperature" ] - Dimensions: [ [ "Location", "Channel" ] ] - Attributes: { units: "K" } - - Variable: [ "fractionOfClearPixelsInFov" ] # Q: ObsValue or MetaData ? - Dimensions: [ [ "Location", "Cluster" ] ] - MetaData: true - Attributes: { units: "1" } - - Variable: [ "startChannel" ] - Dimensions: [ [ "Location", "Band" ] ] MetaData: true - - Variable: [ "solutionLikelihood", "solution_likelihood" ] + - Variable: [ "numberOfLevels", "number_of_levels"] Type: UInt32 MetaData: true - - Variable: [ "windVectorCellQuality", "wind_vector_cell_quality" ] - Type: UInt32 + - Variable: [ "obPractice", "ob_practice"] + Type: Enum MetaData: true # Variables UKMO may deprecate later + - Variable: [ "sondeReportIdentifier" ] + Type: Enum + MetaData: true + - Variable: [ "pressureSensorFlag" ] + Type: Enum + MetaData: true - Variable: [ "OPS_airTemperature", "OPS_air_temperature" ] Attributes: { units: "K" } - Variable: [ "OPS_windEastward", "OPS_eastward_wind" ] @@ -1164,53 +1379,56 @@ Variables: - Variable: [ "OPS_observationReport", "OPS_observation_report" ] Type: UInt32 + # Bias correction predictor names (some names above already match, so do not show repeats) + - Variable: [ "constant" ] + - Variable: [ "legendre", "Legendre" ] + - Variable: [ "legendre_order_1" ] + - Variable: [ "legendre_order_2" ] + - Variable: [ "legendre_order_3" ] + - Variable: [ "legendre_order_4" ] + - Variable: [ "legendre_order_5" ] + - Variable: [ "legendre_order_6" ] + - Variable: [ "thickness_850_300hPa" ] + - Variable: [ "thickness_200_50hPa" ] + - Variable: [ "cosineOfLatitudeTimesOrbitNode", "cosine_of_latitude_times_orbit_node" ] + - Variable: [ "sineOfLatitude", "sine_of_latitude" ] + - Variable: [ "lapseRate", "lapse_rate" ] + - Variable: [ "lapseRate_order_2", "lapse_rate_order_2", "lapse_rate_squared" ] + - Variable: [ "emissivityJacobian" ] + - Variable: [ "cloudWaterContent_order_2" , "cloud_liquid_water_order_2"] + - Variable: [ "satelliteSelector", "satellite_selector" ] + Type: UInt32 + - Variable: [ "obsMetadataPredictor", "obs_metadata_predictor" ] + - Variable: [ "sensorScanAngle_order_2", "scan_angle_order_2" ] + - Variable: [ "sensorScanAngle_order_3", "scan_angle_order_3" ] + - Variable: [ "sensorScanAngle_order_4", "scan_angle_order_4" ] + - Variable: [ "sensorZenithAngle_order_2", "zenith_angle_order_2", "satellite_zenith_angle_order_2" ] + - Variable: [ "sensorZenithAngle_order_3", "zenith_angle_order_3", "satellite_zenith_angle_order_3" ] + - Variable: [ "sensorZenithAngle_order_4", "zenith_angle_order_4", "satellite_zenith_angle_order_4" ] + - Variable: [ "satelliteOrbitalAngle", "satellite_orbital_angle", "orbital_angle" ] + - Variable: [ "satelliteOrbitalAngle_order_1_cos", "satellite_orbital_angle_order_1_cos" ] + - Variable: [ "satelliteOrbitalAngle_order_1_sin", "satellite_orbital_angle_order_1_sin" ] + - Variable: [ "satelliteOrbitalAngle_order_2_cos", "satellite_orbital_angle_order_2_cos" ] + - Variable: [ "satelliteOrbitalAngle_order_2_sin", "satellite_orbital_angle_order_2_sin" ] + - Variable: [ "satelliteOrbitalAngle_order_3_cos", "satellite_orbital_angle_order_3_cos" ] + - Variable: [ "satelliteOrbitalAngle_order_3_sin", "satellite_orbital_angle_order_3_sin" ] + - Variable: [ "satelliteOrbitalAngle_order_4_cos", "satellite_orbital_angle_order_4_cos" ] + - Variable: [ "satelliteOrbitalAngle_order_4_sin", "satellite_orbital_angle_order_4_sin" ] + - Variable: [ "satelliteOrbitalAngle_order_5_cos", "satellite_orbital_angle_order_5_cos" ] + - Variable: [ "satelliteOrbitalAngle_order_5_sin", "satellite_orbital_angle_order_5_sin" ] + - Variable: [ "satelliteOrbitalAngle_order_6_cos", "satellite_orbital_angle_order_6_cos" ] + - Variable: [ "satelliteOrbitalAngle_order_6_sin", "satellite_orbital_angle_order_6_sin" ] + - Variable: [ "satelliteOrbitalAngle_order_7_cos", "satellite_orbital_angle_order_7_cos" ] + - Variable: [ "satelliteOrbitalAngle_order_7_sin", "satellite_orbital_angle_order_7_sin" ] + - Variable: [ "satelliteOrbitalAngle_order_8_cos", "satellite_orbital_angle_order_8_cos" ] + - Variable: [ "satelliteOrbitalAngle_order_8_sin", "satellite_orbital_angle_order_8_sin" ] + - Variable: [ "satelliteOrbitalAngle_order_9_cos", "satellite_orbital_angle_order_9_cos" ] + - Variable: [ "satelliteOrbitalAngle_order_9_sin", "satellite_orbital_angle_order_9_sin" ] + - Variable: [ "satelliteOrbitalAngle_order_10_cos", "satellite_orbital_angle_order_10_cos" ] + - Variable: [ "satelliteOrbitalAngle_order_10_sin", "satellite_orbital_angle_order_10_sin" ] - # Possibly missing or needs categorization: - # surfaceGropotentialHeight - # surfaceRoughnessLength / surface_roughness_length - # surfaceTemperature / surface_temperature - # wind_reduction_factor_at_10m - # mean_lapse_rate (mhs, ssmis) - # gsi_use_flag - # bottom_level_pressure, top_level_pressure (omps, omi) - # row_anomaly_index (omps, omi) - # tao, cloud_level, cloudy_channel, ermax_rad, etc. (iasi metop-a) - # chaninfoidx, error_variance, satinfo_chan, use_flag (gmi) - # aapp_bennartz_index, aapp_cirrus_index, amsuscatindex, surface_cost_fn, surface_type (atms) - # modis_deep_blue_flag (VIIRS AOD) - # lots of old vars in amsr2_obs_20191230T0000Z_100subset.nc4 (also still a IODAv1 file; is it a dead file?) - # bathymetry - - - Variable: [ "cloudCeiling" ] - Attributes: { units: "m" } - #NCEP BUFR/PREPBUFR - AIRCFT - - Variable: [ "flightLevel" ] - Attributes: { units: "m" } - MetaData: true - - Variable: [ "aircraftNavigationalSystem" ] - Type: Enum - MetaData: true - - Variable: [ "commercialAircraftType" ] - Type: Enum - MetaData: true - - Variable: [ "dataReceiptTimeHour" ] - Attributes: { units: "Hour" } - MetaData: true - - Variable: [ "dataReceiptTimeMinute" ] - Attributes: { units: "Minute" } - MetaData: true - - Variable: [ "dataReceiptTimeSignificance" ] - Type: Enum - MetaData: true - - Variable: [ "timeProfileLevel" ] - Attributes: { units: "Hour" } - MetaData: true - - Variable: [ "dataRestrictedExpiration" ] - Attributes: { units: "Hour" } + # Intended for any quality flags needed, but probably should use the group for QualityInformation instead of this. + - Variable: [ "qualityFlags", "quality_flags", "qc_flags" ] + Dimensions: [ [ "Location" ], [ "averagingKernelLevels" ], [ "Location", "averagingKernelLevels" ] ] MetaData: true - - Variable: [ "dataProviderRestricted" ] Type: Enum - MetaData: true - - Variable: [ "relativeHumidityPercentConfidence" ] - Attributes: { units: "percent" } - MetaData: true diff --git a/config/mpas/variables.csh b/config/mpas/variables.csh index e8ebf45d..596f9b2c 100755 --- a/config/mpas/variables.csh +++ b/config/mpas/variables.csh @@ -28,6 +28,8 @@ set StandardStateVariables = ( \ isltyp \ snowh \ vegfra \ + t2m \ + q2 \ u10 \ v10 \ lai \ diff --git a/config/mpas/variational/stream_list.atmosphere.background b/config/mpas/variational/stream_list.atmosphere.background index bc9dc02d..4ce69c3c 100644 --- a/config/mpas/variational/stream_list.atmosphere.background +++ b/config/mpas/variational/stream_list.atmosphere.background @@ -22,3 +22,5 @@ v10 vegfra w xice +t2m +q2 diff --git a/initialize/applications/EnKF.py b/initialize/applications/EnKF.py index c2765ed0..8da3cfb4 100755 --- a/initialize/applications/EnKF.py +++ b/initialize/applications/EnKF.py @@ -83,7 +83,7 @@ class EnKF(Component): ## maxIODAPoolSize # maximum number of IO pool members in IODA writer class # OPTIONS: 1 to NPE, default: 10 - 'maxIODAPoolSize': [1, int], + 'maxIODAPoolSize': [16, int], ## radianceThinningDistance # distance (km) used for the Gaussian Thinning filter for all radiance-based observations @@ -261,7 +261,7 @@ def __init__(self, script = $origin/bin/ConcatenateObsFeedback.csh '''+concatArgs+''' '''+concattask.job()+concattask.directives()] self._dependencies += [''' - EnKF => ConcatEnKF'''] + EnKF => ConcatEnKF => '''+self.tf.post] self._dependencies += [''' diff --git a/initialize/applications/Forecast.py b/initialize/applications/Forecast.py index 29bf9fa3..64a24f0c 100644 --- a/initialize/applications/Forecast.py +++ b/initialize/applications/Forecast.py @@ -51,7 +51,8 @@ class Forecast(Component): ## post # list of tasks for Post - 'post': [['verifyobs', 'verifymodel'], list] + # e.g.: ['verifyobs', 'verifymodel'] + 'post': [['verifymodel'], list] } def __init__(self, @@ -235,7 +236,7 @@ def export(self, daFinished:str, daMeanDir:str): attr = { 'seconds': {'def': 300}, 'nodes': {'def': 1, 'typ': int}, - 'PEPerNode': {'def': 36, 'typ': int}, + 'PEPerNode': {'def': 128, 'typ': int}, 'queue': {'def': self.hpc['NonCriticalQueue']}, 'account': {'def': self.hpc['NonCriticalAccount']}, } diff --git a/initialize/applications/ForecastSACA.py b/initialize/applications/ForecastSACA.py index 7bdfde50..599ce0bc 100644 --- a/initialize/applications/ForecastSACA.py +++ b/initialize/applications/ForecastSACA.py @@ -53,7 +53,8 @@ class ForecastSACA(Component): ## post # list of tasks for Post - 'post': [['verifyobs', 'verifymodel'], list], + # e.g.: ['verifyobs', 'verifymodel'] + 'post': [['verifymodel'], list], } def __init__(self, @@ -243,7 +244,7 @@ def export(self, daFinished:str, daMeanDir:str): attr = { 'seconds': {'def': 300}, 'nodes': {'def': 1, 'typ': int}, - 'PEPerNode': {'def': 36, 'typ': int}, + 'PEPerNode': {'def': 128, 'typ': int}, 'queue': {'def': self.hpc['NonCriticalQueue']}, 'account': {'def': self.hpc['NonCriticalAccount']}, } diff --git a/initialize/applications/HofX.py b/initialize/applications/HofX.py index 9d90fe0d..7689a5f3 100644 --- a/initialize/applications/HofX.py +++ b/initialize/applications/HofX.py @@ -261,7 +261,7 @@ def __init__(self, script = $origin/bin/ConcatenateObsFeedback.csh '''+concatArgs+''' '''+concattask.job()+concattask.directives()] self._dependencies += [''' - '''+execute+''' => '''+concat+''' => '''+self.tf.finished] + '''+execute+''' => '''+concat+''' => '''+self.tf.post] ######### # outputs diff --git a/initialize/applications/Variational.py b/initialize/applications/Variational.py index 2c5a1a2b..166d8167 100644 --- a/initialize/applications/Variational.py +++ b/initialize/applications/Variational.py @@ -34,12 +34,8 @@ class Variational(Component): } optionalVariables = { - ##ensembleCovarianceWeight and staticCovarianceWeight - # weights of ensemble and static components of the background errorcovariance - # MUST be specified when DAType==3dhybrid in order to avoid an error - 'ensembleCovarianceWeight': float, - 'staticCovarianceWeight': float, - + ## Number of processors to run the variational exectuables + 'numProcessors': int, } variablesWithDefaults = { @@ -56,6 +52,15 @@ class Variational(Component): ['DRPCG','DRIPCG', 'DRPLanczos', 'DRPBlockLanczos'] ], + ## hybridBECWeightFromFile + # whether to use hybrid BEC weights from file or defined in values + 'hybridBECWeightFromFile': [False, bool], + + ##ensembleCovarianceWeight and staticCovarianceWeight + # weights of ensemble and static components of the background errorcovariance + 'ensembleCovarianceWeight': [0.75, float], + 'staticCovarianceWeight': [0.25, float], + ## SelfExclusion, whether exclude own background from the ensemble B perturbations in EnVar during EDA cycling 'SelfExclusion': [True, bool], @@ -284,7 +289,8 @@ def __init__(self, self._setOrDie('.'.join(['covariance', r, 'bumpCovDir']), str, None, 'bumpCovDir') self._setOrDie('.'.join(['covariance', r, 'bumpCovStdDevFile']), str, None, 'bumpCovStdDevFile') self._setOrDie('.'.join(['covariance', r, 'bumpCovVBalDir']), str, None, 'bumpCovVBalDir') - self._setOrDie('.'.join(['covariance', r, 'hybridCoefficientsDir']), str, None, 'hybridCoefficientsDir') + self._setOrDie('.'.join(['covariance', r, 'hybridEnsembleWeightFile']), str, None, 'hybridEnsembleWeightFile') + self._setOrDie('.'.join(['covariance', r, 'hybridStaticWeightFile']), str, None, 'hybridStaticWeightFile') self._cshVars = list(self._vtable.keys()) @@ -376,7 +382,7 @@ def __init__(self, script = $origin/bin/ConcatenateObsFeedback.csh '''+concatArgs+''' '''+concattask.job()+concattask.directives()] self._dependencies += [''' - '''+self.base+str(mm)+''' => '''+concat] + '''+self.base+str(mm)+''' => '''+concat+''' => '''+self.tf.post] else: # single instance or ensemble of EnsembleOfVariational(s) @@ -400,7 +406,7 @@ def __init__(self, script = $origin/bin/ConcatenateObsFeedback.csh '''+concatArgs+''' '''+concattask.job()+concattask.directives()] self._dependencies += [''' - EDA'''+str(instance)+''' => '''+concat] + EDA'''+str(instance)+''' => '''+concat+''' => '''+self.tf.post] # TODO: make ABEI consistent with external class design # GenerateABEInflation diff --git a/initialize/data/Model.py b/initialize/data/Model.py index a98384c1..29b5b6d4 100644 --- a/initialize/data/Model.py +++ b/initialize/data/Model.py @@ -57,7 +57,7 @@ class Model(Component): variablesWithDefaults = { ## GraphInfoDir # directory containing x{{meshRatio}}.{{nCells}}.graph.info* files - 'GraphInfoDir': ['/glade/derecho/scratch/taosun/pandac/MPAS_GRAPH', str], + 'GraphInfoDir': ['/glade/campaign/mmm/parc/taosun/pandac/MPAS_GRAPH', str], ## precision # floating-point precision of all application output diff --git a/initialize/data/Observations.py b/initialize/data/Observations.py index 1533fdcd..ed3a277d 100644 --- a/initialize/data/Observations.py +++ b/initialize/data/Observations.py @@ -82,7 +82,7 @@ class Observations(Component): 'GDASObsErrtable': ['/glade/campaign/mmm/parc/liuz/pandac_common/fixed_input/GSI_errtables/HRRRENS_errtable_10sep2018.r3dv', str], ## CRTM - 'CRTMTABLES': ['/glade/work/nystrom/Code/JEDI/jcsda_internal/CRTM_V3_coeffs/', str], + 'CRTMTABLES': ['/glade/campaign/mmm/parc/liuz/pandac_common/crtm_coeffs_v2.4.1/', str], # static directories for bias correction files 'fixedCoeff': ['/glade/campaign/mmm/parc/jban/pandac_common/obs/satbias', str], diff --git a/initialize/framework/Build.py b/initialize/framework/Build.py index 3b9810c7..c2308026 100644 --- a/initialize/framework/Build.py +++ b/initialize/framework/Build.py @@ -44,8 +44,7 @@ def __init__(self, config:Config, model:Model=None): self.variablesWithDefaults['mpas bundle'] = [config._bundle_dir, str] else: self.variablesWithDefaults['mpas bundle'] = \ - ['/glade/campaign/mmm/parc/liuz/pandac_common/mpas-bundle-code-build/mpas_bundle_v3_internal_gnuSP/build', str] ## MPAS-JEDI 3.0.0 release with MPAS-A V8.2.1 - + ['/glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP', str] ## release-v3.0.3 self.variablesWithDefaults['bundle compiler used'] = ['gnu-cray', str, ['gnu-cray', 'intel-cray']] self.variablesWithDefaults['forecast directory'] = ['bundle', str] @@ -153,13 +152,10 @@ def __init__(self, config:Config, model:Model=None): self._set('ungribEXE', 'ungrib.exe') self._set('WPSBuildDir', wpsBuildDir) - # Obs2IODA-v2 + # Obs2IODA-v3 # ----------- - self._set('obs2iodaEXE', 'obs2ioda-v2.x') - self._set('obs2iodaBuildDir', '/glade/campaign/mmm/parc/ivette/pandac/fork_obs2ioda/obs2ioda/obs2ioda-v2/src') - self._set('iodaUpgradeEXE1', 'ioda-upgrade-v1-to-v2.x') - self._set('iodaUpgradeEXE2', 'ioda-upgrade-v2-to-v3.x') - self._set('iodaUpgradeBuildDir', self['mpas bundle']+'/bin') + self._set('obs2iodaEXE', 'obs2ioda_v3') + self._set('obs2iodaBuildDir', '/glade/campaign/mmm/parc/ivette/pandac/codeBuild/obs2iodaV3/build/bin') # Mean state calculator # --------------------- diff --git a/initialize/framework/HPC.py b/initialize/framework/HPC.py index 8dfdb785..d1075f15 100644 --- a/initialize/framework/HPC.py +++ b/initialize/framework/HPC.py @@ -37,7 +37,7 @@ class HPC(Component): 'CriticalQueue': ['economy', str, ['economy', 'regular', 'premium']], # NonCritical*: used non-critical path jobs, single or multi-node, multi-processor only - 'NonCriticalAccount': ['NMMM0015', str], + 'NonCriticalAccount': ['NMMM0043', str], # override this below based on host 'NonCriticalQueue': ['economy', str, ['economy', 'regular', 'premium']], diff --git a/initialize/post/VerifyModel.py b/initialize/post/VerifyModel.py index d750bc38..dfbb6b55 100644 --- a/initialize/post/VerifyModel.py +++ b/initialize/post/VerifyModel.py @@ -37,8 +37,7 @@ def __init__(self, hname = os.getenv('NCAR_HOST') if hname == "derecho": self.variablesWithDefaults['script directory'] = \ - ['/glade/campaign/mmm/parc/liuz/pandac_common/mpas-bundle-code-build/mpas_bundle_v3_internal_gnuSP/code/mpas-jedi/graphics', str] - + ['/glade/work/bjung/panda-c/build/mpas-bundle-release-v3.0.2/mpas-jedi/graphics', str] super().__init__(config) hpc = localConf['hpc']; assert isinstance(hpc, HPC), self.base+': incorrect type for hpc' diff --git a/initialize/post/VerifyObs.py b/initialize/post/VerifyObs.py index 69853f28..c337c8d5 100644 --- a/initialize/post/VerifyObs.py +++ b/initialize/post/VerifyObs.py @@ -37,7 +37,7 @@ def __init__(self, hname = os.getenv('NCAR_HOST') if hname == "derecho": self.variablesWithDefaults['script directory'] = \ - ['/glade/campaign/mmm/parc/liuz/pandac_common/mpas-bundle-code-build/mpas_bundle_v3_internal_gnuSP/code/mpas-jedi/graphics', str] + ['/glade/work/bjung/panda-c/build/mpas-bundle-release-v3.0.2/mpas-jedi/graphics', str] super().__init__(config) hpc = localConf['hpc']; assert isinstance(hpc, HPC), self.base+': incorrect type for hpc' diff --git a/initialize/suites/GenerateExternalAnalyses.py b/initialize/suites/GenerateExternalAnalyses.py index 6cf3bc3c..6f34c2e2 100644 --- a/initialize/suites/GenerateExternalAnalyses.py +++ b/initialize/suites/GenerateExternalAnalyses.py @@ -15,6 +15,7 @@ from initialize.data.ExternalAnalyses import ExternalAnalyses from initialize.data.Model import Model +from initialize.data.InvariantStream import InvariantStream from initialize.framework.Build import Build from initialize.framework.Experiment import Experiment @@ -31,6 +32,7 @@ def __init__(self, conf:Config): self.c['externalanalyses'] = ExternalAnalyses(conf, self.c['hpc'], self.c['model'].getMeshes()) self.c['initic'] = InitIC(conf, self.c['hpc'], self.c['model'].getMeshes(), self.c['externalanalyses']) self.c['experiment'] = Experiment(conf, self.c['hpc']) + self.c['ss'] = InvariantStream(conf, self.c['model'].getMeshes(), self.c['workflow']['FirstCycleDate'], self.c['externalanalyses'], self.c['experiment']) self.c['naming'] = Naming(conf, self.c['experiment']) # TODO: make members optional, modify getCycleVars diff --git a/scenarios/0_3dhyb_csrama_csrmhs.yaml b/scenarios/0_3dhyb_csrama_csrmhs.yaml new file mode 100644 index 00000000..71c9e2b5 --- /dev/null +++ b/scenarios/0_3dhyb_csrama_csrmhs.yaml @@ -0,0 +1,89 @@ +experiment: + name: '0_3dhyb_csrama_csrmhs' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: main + NonCriticalAccount: NMMM0043 + NonCriticalQueue: main + priority: regular + SingleProcAccount: NMMM0043 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 240 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: false + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 1500 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180404T18 + final cycle point: 20180415T00 diff --git a/scenarios/0_3dhyb_csrama_csrmhs_rttovcpp.yaml b/scenarios/0_3dhyb_csrama_csrmhs_rttovcpp.yaml new file mode 100644 index 00000000..a14d3a6b --- /dev/null +++ b/scenarios/0_3dhyb_csrama_csrmhs_rttovcpp.yaml @@ -0,0 +1,90 @@ +experiment: + name: '0_3dhyb_csrama_csrmhs_rttovcpp' +build: + mpas bundle: /glade/work/jianglp/code/mpas_bundle_v3.0.3_internal_patch/build + #mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0015 + CriticalQueue: main + NonCriticalAccount: NMMM0015 + NonCriticalQueue: main + priority: premium + SingleProcAccount: NMMM0015 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 100 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: false + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua_rttov, + amsua_metop-a_rttov, + amsua_metop-b_rttov, + amsua_n15_rttov, + amsua_n18_rttov, + amsua_n19_rttov, + mhs_metop-a_rttov, + mhs_metop-b_rttov, + mhs_n18_rttov, + mhs_n19_rttov, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 3000 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180404T18 + final cycle point: 20180419T06 diff --git a/scenarios/1_3dhyb_asrama_csrmhs.yaml b/scenarios/1_3dhyb_asrama_csrmhs.yaml new file mode 100644 index 00000000..d4347514 --- /dev/null +++ b/scenarios/1_3dhyb_asrama_csrmhs.yaml @@ -0,0 +1,94 @@ +experiment: + name: '1_3dhyb_asrama_csrmhs' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: main + NonCriticalAccount: NMMM0043 + NonCriticalQueue: main + priority: regular + SingleProcAccount: NMMM0043 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 240 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 4200 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + # restart cycle point: 20180415T06 + final cycle point: 20180415T00 diff --git a/scenarios/2_3dhyb_asrama_asrmhs.yaml b/scenarios/2_3dhyb_asrama_asrmhs.yaml new file mode 100644 index 00000000..18f5bbce --- /dev/null +++ b/scenarios/2_3dhyb_asrama_asrmhs.yaml @@ -0,0 +1,94 @@ +experiment: + name: '2_3dhyb_asrama_asrmhs' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: main + NonCriticalAccount: NMMM0043 + NonCriticalQueue: main + priority: regular + SingleProcAccount: NMMM0043 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 240 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs-cld_metop-a, + mhs-cld_metop-b, + mhs-cld_n18, + mhs-cld_n19, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 4200 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + # restart cycle point: 20180415T06 + final cycle point: 20180415T00 diff --git a/scenarios/3_3dhyb_asrama_asrmhs_atms.yaml b/scenarios/3_3dhyb_asrama_asrmhs_atms.yaml new file mode 100644 index 00000000..bc9e8205 --- /dev/null +++ b/scenarios/3_3dhyb_asrama_asrmhs_atms.yaml @@ -0,0 +1,96 @@ +experiment: + name: '3_3dhyb_asrama_asrmhs_atms' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0015 + CriticalQueue: main + NonCriticalAccount: NMMM0015 + NonCriticalQueue: main + priority: premium + SingleProcAccount: NMMM0015 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 100 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs-cld_metop-a, + mhs-cld_metop-b, + mhs-cld_n18, + mhs-cld_n19, + atms_n20, + atms_npp, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 2000 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + # restart cycle point: 20180415T06 + final cycle point: 20180514T18 diff --git a/scenarios/3_3dhyb_asrama_asrmhs_atms_UpdateVarBC.yaml b/scenarios/3_3dhyb_asrama_asrmhs_atms_UpdateVarBC.yaml new file mode 100644 index 00000000..50a8eab8 --- /dev/null +++ b/scenarios/3_3dhyb_asrama_asrmhs_atms_UpdateVarBC.yaml @@ -0,0 +1,96 @@ +experiment: + name: '3_3dhyb_asrama_asrmhs_atms_UpdateVarBC' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0015 + CriticalQueue: main + NonCriticalAccount: NMMM0015 + NonCriticalQueue: main + priority: premium + SingleProcAccount: NMMM0015 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 100 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias_2018051418 + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias_2018051418/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias_2018051418/2018 +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs-cld_metop-a, + mhs-cld_metop-b, + mhs-cld_n18, + mhs-cld_n19, + atms_n20, + atms_npp, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 2000 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + # restart cycle point: 20180415T06 + final cycle point: 20180514T18 diff --git a/scenarios/3_4dhyb_asrama_asrmhs_atms.yaml b/scenarios/3_4dhyb_asrama_asrmhs_atms.yaml new file mode 100644 index 00000000..7b03b195 --- /dev/null +++ b/scenarios/3_4dhyb_asrama_asrmhs_atms.yaml @@ -0,0 +1,99 @@ +experiment: + name: '3_4dhyb_asrama_asrmhs_atms' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: main + NonCriticalAccount: NMMM0043 + NonCriticalQueue: main + priority: premium + SingleProcAccount: NMMM0043 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + FourD: True + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 100 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 +variational: + DAType: 4dhybrid + biasCorrection: True + #ensembleCovarianceWeight: 0.75 + #staticCovarianceWeight: 0.25 + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 3584 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs-cld_metop-a, + mhs-cld_metop-b, + mhs-cld_n18, + mhs-cld_n19, + atms_n20, + atms_npp, + ] + job: + 15km: + 30km: + 4dhybrid: + nodes: 56 + PEPerNode: 64 + memory: 235GB + baseSeconds: 4400 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180418T06 + final cycle point: 20180514T18 diff --git a/scenarios/3_4dhyb_asrama_asrmhs_atms_UpdateVarBC.yaml b/scenarios/3_4dhyb_asrama_asrmhs_atms_UpdateVarBC.yaml new file mode 100644 index 00000000..6e2bd900 --- /dev/null +++ b/scenarios/3_4dhyb_asrama_asrmhs_atms_UpdateVarBC.yaml @@ -0,0 +1,99 @@ +experiment: + name: '3_4dhyb_asrama_asrmhs_atms_UpdateVarBC' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: main + NonCriticalAccount: NMMM0043 + NonCriticalQueue: main + priority: regular + SingleProcAccount: NMMM0043 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + FourD: True + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 100 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias_2018051418 + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias_2018051418/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias_2018051418/2018 +variational: + DAType: 4dhybrid + biasCorrection: True + #ensembleCovarianceWeight: 0.75 + #staticCovarianceWeight: 0.25 + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 3584 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs-cld_metop-a, + mhs-cld_metop-b, + mhs-cld_n18, + mhs-cld_n19, + atms_n20, + atms_npp, + ] + job: + 15km: + 30km: + 4dhybrid: + nodes: 56 + PEPerNode: 64 + memory: 235GB + baseSeconds: 4400 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180418T06 + final cycle point: 20180514T18 diff --git a/scenarios/3denvar_O15kmI30km_AllSky.yaml b/scenarios/3denvar_O15kmI30km_AllSky.yaml new file mode 100644 index 00000000..6bae0539 --- /dev/null +++ b/scenarios/3denvar_O15kmI30km_AllSky.yaml @@ -0,0 +1,56 @@ +experiment: + name: '3denvar_O15kmI30km_AllSky' +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC +variational: + DAType: 3denvar + biasCorrection: True + ensembleCovarianceWeight: 0.75 + staticCovarianceWeight: 0.25 + nInnerIterations: [60,60,] + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + ] +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180415T00 + final cycle point: 20180415T00 diff --git a/scenarios/3denvar_O15kmI30km_SpecifiedEnsemble_VarBC.yaml b/scenarios/3denvar_O15kmI30km_SpecifiedEnsemble_VarBC.yaml new file mode 100644 index 00000000..a9cf190b --- /dev/null +++ b/scenarios/3denvar_O15kmI30km_SpecifiedEnsemble_VarBC.yaml @@ -0,0 +1,49 @@ +experiment: + name: '3denvar_O15kmI30km_clrsky_amsua_mhs' +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC +variational: + DAType: 3denvar + biasCorrection: True + nInnerIterations: [60,60,] + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + ] +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180430T06 + final cycle point: 20180422T00 diff --git a/scenarios/3denvar_O30kmIE60km_WarmStart.yaml b/scenarios/3denvar_O30kmIE60km_WarmStart.yaml index 2dee8681..972e5097 100644 --- a/scenarios/3denvar_O30kmIE60km_WarmStart.yaml +++ b/scenarios/3denvar_O30kmIE60km_WarmStart.yaml @@ -13,22 +13,22 @@ variational: nInnerIterations: [60,60,] ensemble: forecasts: - resource: "PANDAC.GEFS" + resource: "PANDAC.EDA" observations: resource: PANDACArchive resources: PANDACArchive: IODADirectory: da: - abi_g16: /glade/campaign/mmm/parc/liuz/pandac_common/obs/ioda_v3/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct - abi-clr_g16: /glade/campaign/mmm/parc/liuz/pandac_common/obs/ioda_v3/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct - ahi_himawari8: /glade/campaign/mmm/parc/liuz/pandac_common/obs/ioda_v3/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct - ahi-clr_himawari8: /glade/campaign/mmm/parc/liuz/pandac_common/obs/ioda_v3/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct + abi_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct + abi-clr_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct + ahi_himawari8: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct + ahi-clr_himawari8: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct hofx: - abi_g16: /glade/campaign/mmm/parc/liuz/pandac_common/obs/ioda_v3/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct - abi-clr_g16: /glade/campaign/mmm/parc/liuz/pandac_common/obs/ioda_v3/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct - ahi_himawari8: /glade/campaign/mmm/parc/liuz/pandac_common/obs/ioda_v3/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct - ahi-clr_himawari8: /glade/campaign/mmm/parc/liuz/pandac_common/obs/ioda_v3/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct + abi_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct + abi-clr_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct + ahi_himawari8: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct + ahi-clr_himawari8: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct IODASuperObGrid: abi_g16: 15X15 ahi_himawari8: 15X15 diff --git a/scenarios/3denvar_O30kmIE60km_WarmStart_SpecifiedEnsemble.yaml b/scenarios/3denvar_O30kmIE60km_WarmStart_SpecifiedEnsemble.yaml index 5a7a9194..bc7981ae 100644 --- a/scenarios/3denvar_O30kmIE60km_WarmStart_SpecifiedEnsemble.yaml +++ b/scenarios/3denvar_O30kmIE60km_WarmStart_SpecifiedEnsemble.yaml @@ -30,14 +30,6 @@ variational: experiment: suffix: '_B-SE80+RTPP70' -forecast: - job: - 30km: - # more efficient - nodes: 4 - PEPerNode: 36 - baseSeconds: 60 - secondsPerForecastHR: 150 observations: resource: PANDACArchive resources: diff --git a/scenarios/3dhybrid-allsky_O15kmI30km_SpecifiedEnsemble_VarBC_New.yaml b/scenarios/3dhybrid-allsky_O15kmI30km_SpecifiedEnsemble_VarBC_New.yaml new file mode 100644 index 00000000..2ebd79e1 --- /dev/null +++ b/scenarios/3dhybrid-allsky_O15kmI30km_SpecifiedEnsemble_VarBC_New.yaml @@ -0,0 +1,93 @@ +experiment: + name: '3dhybrid_O15kmI30km_amsuaAllsky_mhsClrsky_new_crtm241_8nodes' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: main + NonCriticalAccount: NMMM0015 + NonCriticalQueue: economy + SingleProcAccount: NMMM0015 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 240 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/campaign/mmm/parc/liuz/pandac_common/crtm_coeffs_v2.4.1/ +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + 30km: + bumpCovDir: /glade/u/home/taosun/scratch/pandac/BUMP_STATIC/30km/BUMP_NICAS_NEW + bumpCovStdDevFile: /glade/u/home/taosun/scratch/pandac/BUMP_STATIC/30km/BUMP_HDIAG_NEW/mpas.stddev.nc + bumpCovVBalDir: /glade/u/home/taosun/scratch/pandac/BUMP_STATIC/30km/BUMP_VBAL_NEW + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 2200 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + final cycle point: 20180415T00 diff --git a/scenarios/3dhybrid-allsky_O30kmIE60km_SpecifiedEnsemble_VarBC.yaml b/scenarios/3dhybrid-allsky_O30kmIE60km_SpecifiedEnsemble_VarBC.yaml index 471493f4..7e5aa394 100644 --- a/scenarios/3dhybrid-allsky_O30kmIE60km_SpecifiedEnsemble_VarBC.yaml +++ b/scenarios/3dhybrid-allsky_O30kmIE60km_SpecifiedEnsemble_VarBC.yaml @@ -12,11 +12,7 @@ forecast: externalanalyses: resource: "GFS.PANDAC" - resources: - GFS: - PANDAC: # only available 20180418T00-20180524T00 - 30km: - directory: "/glade/campaign/mmm/parc/liuz/pandac_common/fixed_input/30km/GFSAnaAndDiagnostics" + members: n: 1 diff --git a/scenarios/3dhybrid_O15-3kmI30km_SpecifiedEnsemble_VarBC.yaml b/scenarios/3dhybrid_O15-3kmI30km_SpecifiedEnsemble_VarBC.yaml new file mode 100644 index 00000000..d15d993e --- /dev/null +++ b/scenarios/3dhybrid_O15-3kmI30km_SpecifiedEnsemble_VarBC.yaml @@ -0,0 +1,56 @@ +experiment: + name: '3dhybrid_O15-3kmI30km_VarBC_80mem_LGETKF_AllSky' +externalanalyses: + resource: "GFS.PANDAC" +firstbackground: + resource: "PANDAC.GFS" +forecast: + post: [] # use this when doing extended forecast +members: + n: 1 +model: + outerMesh: 15-3km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC +variational: + DAType: 3dhybrid + biasCorrection: True + ensembleCovarianceWeight: 0.75 + staticCovarianceWeight: 0.25 + nInnerIterations: [60,60,] + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + sfc, + sondes, + satwind, + satwnd, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + ] +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180415T00 + final cycle point: 20180415T00 diff --git a/scenarios/3dhybrid_O15-3kmI30km_SpecifiedEnsemble_VarBC_New.yaml b/scenarios/3dhybrid_O15-3kmI30km_SpecifiedEnsemble_VarBC_New.yaml new file mode 100644 index 00000000..42ef6a35 --- /dev/null +++ b/scenarios/3dhybrid_O15-3kmI30km_SpecifiedEnsemble_VarBC_New.yaml @@ -0,0 +1,67 @@ +experiment: + name: '3dhybrid_O15-3kmI30km_clrsky_amsua_mhs_new' +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast +members: + n: 1 +model: + outerMesh: 15-3km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: false + nInnerIterations: [60,60,] + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + 30km: + bumpCovDir: /glade/u/home/taosun/scratch/pandac/BUMP_STATIC/30km/BUMP_NICAS_NEW + bumpCovStdDevFile: /glade/u/home/taosun/scratch/pandac/BUMP_STATIC/30km/BUMP_HDIAG_NEW/mpas.stddev.nc + bumpCovVBalDir: /glade/u/home/taosun/scratch/pandac/BUMP_STATIC/30km/BUMP_VBAL_NEW + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + ] +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: economy + NonCriticalAccount: NMMM0043 + NonCriticalQueue: economy + SingleProcAccount: NMMM0015 + SingleProcQueue: casper@casper-pbs +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180504T18 + final cycle point: 20180514T12 diff --git a/scenarios/3dhybrid_O15kmI30km_SpecifiedEnsemble_VarBC.yaml b/scenarios/3dhybrid_O15kmI30km_SpecifiedEnsemble_VarBC.yaml new file mode 100644 index 00000000..90f01f73 --- /dev/null +++ b/scenarios/3dhybrid_O15kmI30km_SpecifiedEnsemble_VarBC.yaml @@ -0,0 +1,51 @@ +experiment: + name: '3dhybrid_O15kmI30km_clrsky_amsua_mhs' +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC +variational: + DAType: 3dhybrid + biasCorrection: True + ensembleCovarianceWeight: 0.75 + staticCovarianceWeight: 0.25 + nInnerIterations: [60,60,] + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + ] +workflow: + first cycle point: 20180414T18 + restart cycle point: 20180430T06 + final cycle point: 20180514T12 diff --git a/scenarios/3dhybrid_O15kmI60km_SpecifiedEnsemble_VarBC_New.yaml b/scenarios/3dhybrid_O15kmI60km_SpecifiedEnsemble_VarBC_New.yaml new file mode 100644 index 00000000..1f736ad1 --- /dev/null +++ b/scenarios/3dhybrid_O15kmI60km_SpecifiedEnsemble_VarBC_New.yaml @@ -0,0 +1,56 @@ +experiment: + name: '3dhybrid_O15kmI60km_clrsky_amsua_mhs_new' +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 60km + ensembleMesh: 60km +observations: + resource: PANDACArchiveForVarBC +variational: + DAType: 3dhybrid + biasCorrection: True + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + ensemble: + forecasts: + resource: "PANDAC.EDA" + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + ] + job: + 15km: + 60km: + 3dhybrid: + nodes: 4 + PEPerNode: 64 + memory: 235GB + baseSeconds: 1500 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + restart cycle point: 20180423T18 + final cycle point: 20180514T12 diff --git a/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC.yaml b/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC.yaml index 4856dc66..e7e0a2cf 100644 --- a/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC.yaml +++ b/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC.yaml @@ -19,11 +19,7 @@ forecast: externalanalyses: resource: "GFS.PANDAC" - resources: - GFS: - PANDAC: # only available 20180418T00-20180524T00 - 30km: - directory: "/glade/campaign/mmm/parc/liuz/pandac_common/fixed_input/30km/GFSAnaAndDiagnostics" + members: n: 1 @@ -45,17 +41,6 @@ variational: forecasts: resource: "PANDAC.EDA" - # resource requirements - job: - 30km: - 60km: - 3dhybrid: - nodes: 2 - PEPerNode: 128 - memory: 235GB - baseSeconds: 800 - secondsPerEnVarMember: 9 - #execute: False # the default is True #post: [] # this turns off verifyobs diff --git a/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC_allConfig.yaml b/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC_allConfig.yaml index e8ee09ea..e6c5e0bd 100644 --- a/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC_allConfig.yaml +++ b/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC_allConfig.yaml @@ -91,9 +91,9 @@ externalanalyses: GFS: PANDAC: # only available 20180418T00-20180524T00 30km: - directory: /glade/campaign/mmm/parc/liuz/pandac_common/30km/30km_GFSANA + directory: /glade/campaign/mmm/parc/taosun/pandac/30kmMeshGFS/MPAS_IC_NEW 60km: - directory: /glade/campaign/mmm/parc/liuz/pandac_common/60km/60km_GFSANA + directory: /glade/campaign/mmm/parc/taosun/pandac/60kmMeshGFS/MPAS_IC_NEW initic: job: diff --git a/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC_iasi.yaml b/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC_iasi.yaml index ebe2f70e..00018eee 100644 --- a/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC_iasi.yaml +++ b/scenarios/3dhybrid_O30kmIE60km_SpecifiedEnsemble_VarBC_iasi.yaml @@ -9,10 +9,7 @@ firstbackground: forecast: job: 30km: - nodes: 2 - PEPerNode: 128 - baseSeconds: 60 - secondsPerForecastHR: 240 + secondsPerForecastHR: 20 #execute: False # the default is True #post: [] # use this when doing extended forecast @@ -20,11 +17,7 @@ forecast: externalanalyses: resource: "GFS.PANDAC" - resources: - GFS: - PANDAC: # only available 20180418T00-20180524T00 - 30km: - directory: "/glade/campaign/mmm/parc/liuz/pandac_common/fixed_input/30km/GFSAnaAndDiagnostics" + members: n: 1 diff --git a/scenarios/3dhybrid_O60-3kmIE60km_SpecifiedEnsemble_VarBC.yaml b/scenarios/3dhybrid_O60-3kmIE60km_SpecifiedEnsemble_VarBC.yaml index 128de65f..6892a9f0 100644 --- a/scenarios/3dhybrid_O60-3kmIE60km_SpecifiedEnsemble_VarBC.yaml +++ b/scenarios/3dhybrid_O60-3kmIE60km_SpecifiedEnsemble_VarBC.yaml @@ -6,13 +6,6 @@ firstbackground: resource: "PANDAC.GFS" forecast: - job: - 30km: - nodes: 2 - PEPerNode: 128 - baseSeconds: 60 - secondsPerForecastHR: 240 - #execute: False # the default is True post: [] # use this when doing extended forecast #post: [verifymodel] # this turns off verifyobs @@ -45,15 +38,6 @@ variational: job: defaults: retry: '3*PT30S' - 60-3km: - 60km: - 3dhybrid: - nodes: 4 - PEPerNode: 64 - memory: 235GB - baseSeconds: 900 - secondsPerEnVarMember: 10 - #execute: False # the default is True post: [] # this turns off verifyobs diff --git a/scenarios/3dhybrid_OIE30km_SpecifiedEnsemble_VarBC.yaml b/scenarios/3dhybrid_OIE30km_SpecifiedEnsemble_VarBC.yaml new file mode 100644 index 00000000..35666925 --- /dev/null +++ b/scenarios/3dhybrid_OIE30km_SpecifiedEnsemble_VarBC.yaml @@ -0,0 +1,59 @@ +# settings borrowed from /glade/work/liuz/pandac_hybrid/amsua_clrsky +experiment: + suffix: '_LGETKF_VarBC' + +firstbackground: + resource: "PANDAC.GFS" + +forecast: + job: + 30km: + nodes: 2 + PEPerNode: 128 + baseSeconds: 60 + secondsPerForecastHR: 240 + + #execute: False # the default is True + post: [] # use this when doing extended forecast + +externalanalyses: + resource: "GFS.PANDAC" + +members: + n: 1 + +model: + outerMesh: 30km + innerMesh: 30km + ensembleMesh: 30km + +observations: + resource: PANDACArchiveForVarBC + +variational: + DAType: 3dhybrid + biasCorrection: True + ensembleCovarianceWeight: 0.75 + staticCovarianceWeight: 0.25 + nInnerIterations: [60,60,] + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + job: + 30km: + nodes: 4 + PEPerNode: 64 + baseSeconds: 120 + secondsPerForecastHR: 240 + +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180415T00 + final cycle point: 20180415T00 + #final cycle point: 20180514T18 + #CyclingWindowHR: 24 # default is 6 for cycling DA + #max active cycle points: 4 # used for independent 'extendedforecast' diff --git a/scenarios/3dvar_O30kmIE60km_ColdStart.yaml b/scenarios/3dvar_O30kmIE60km_ColdStart.yaml index 92399a8e..677a9958 100644 --- a/scenarios/3dvar_O30kmIE60km_ColdStart.yaml +++ b/scenarios/3dvar_O30kmIE60km_ColdStart.yaml @@ -22,12 +22,6 @@ model: externalanalyses: resource: "GFS.RDA" forecast: - job: - 30km: - nodes: 8 - PEPerNode: 32 # the default is 36 now, but no partition file for 288 core in Duda's directory - baseSeconds: 60 - secondsPerForecastHR: 120 post: [] variational: DAType: 3dvar diff --git a/scenarios/3dvar_OIE120km_WarmStart_PostProcess.yaml b/scenarios/3dvar_OIE120km_WarmStart_PostProcess.yaml index ce70f6ae..42e49f6e 100644 --- a/scenarios/3dvar_OIE120km_WarmStart_PostProcess.yaml +++ b/scenarios/3dvar_OIE120km_WarmStart_PostProcess.yaml @@ -18,7 +18,7 @@ firstbackground: forecast: execute: False - post: [verifyobs, verifymodel] + post: [verifymodel] #verifyobs members: n: 1 diff --git a/scenarios/4_3dhyb_asrama_asrmhs_atms_iasi.yaml b/scenarios/4_3dhyb_asrama_asrmhs_atms_iasi.yaml new file mode 100644 index 00000000..3fc9cd69 --- /dev/null +++ b/scenarios/4_3dhyb_asrama_asrmhs_atms_iasi.yaml @@ -0,0 +1,98 @@ +experiment: + name: '4_3dhyb_asrama_asrmhs_atms_iasi' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0015 + CriticalQueue: main + NonCriticalAccount: NMMM0015 + NonCriticalQueue: main + priority: premium + SingleProcAccount: NMMM0015 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 240 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias_2018042412 + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias_2018042412/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias_2018042412/2018 +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs-cld_metop-a, + mhs-cld_metop-b, + mhs-cld_n18, + mhs-cld_n19, + atms_n20, + atms_npp, + iasi_metop-a, + iasi_metop-b, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 3000 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180424T12 + #restart cycle point: 20180416T12 + final cycle point: 20180514T18 diff --git a/scenarios/4_3dhyb_asrama_asrmhs_atms_iasiQCmore.yaml b/scenarios/4_3dhyb_asrama_asrmhs_atms_iasiQCmore.yaml new file mode 100644 index 00000000..2699de07 --- /dev/null +++ b/scenarios/4_3dhyb_asrama_asrmhs_atms_iasiQCmore.yaml @@ -0,0 +1,98 @@ +experiment: + name: '4_3dhyb_asrama_asrmhs_atms_iasiQCmore' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0015 + CriticalQueue: main + NonCriticalAccount: NMMM0015 + NonCriticalQueue: main + priority: premium + SingleProcAccount: NMMM0015 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 240 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias_2018042412 + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias_2018042412/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias_2018042412/2018 +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs-cld_metop-a, + mhs-cld_metop-b, + mhs-cld_n18, + mhs-cld_n19, + atms_n20, + atms_npp, + iasi_metop-a, + iasi_metop-b, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 3000 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180424T12 + #restart cycle point: 20180416T12 + final cycle point: 20180514T18 diff --git a/scenarios/4_4dhyb_asrama_asrmhs_atms_iasi.yaml b/scenarios/4_4dhyb_asrama_asrmhs_atms_iasi.yaml new file mode 100644 index 00000000..f9b949f0 --- /dev/null +++ b/scenarios/4_4dhyb_asrama_asrmhs_atms_iasi.yaml @@ -0,0 +1,101 @@ +experiment: + name: '4_4dhyb_asrama_asrmhs_atms_iasi' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: main + NonCriticalAccount: NMMM0043 + NonCriticalQueue: main + priority: economy + SingleProcAccount: NMMM0043 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + FourD: True + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 800 + secondsPerForecastHR: 240 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 +variational: + DAType: 4dhybrid + biasCorrection: True + #ensembleCovarianceWeight: 0.75 + #staticCovarianceWeight: 0.25 + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 3584 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + amsua-cld_metop-a, + amsua-cld_metop-b, + amsua-cld_n15, + amsua-cld_n18, + amsua-cld_n19, + mhs-cld_metop-a, + mhs-cld_metop-b, + mhs-cld_n18, + mhs-cld_n19, + atms_n20, + atms_npp, + iasi_metop-a, + iasi_metop-b, + ] + job: + 15km: + 30km: + 4dhybrid: + nodes: 56 + PEPerNode: 64 + memory: 235GB + baseSeconds: 6400 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + restart cycle point: 20180418T06 + final cycle point: 20180514T12 diff --git a/scenarios/4dhybrid_O15kmI30km_SpecifiedEnsemble_VarBC_New.yaml b/scenarios/4dhybrid_O15kmI30km_SpecifiedEnsemble_VarBC_New.yaml new file mode 100644 index 00000000..92aa61a4 --- /dev/null +++ b/scenarios/4dhybrid_O15kmI30km_SpecifiedEnsemble_VarBC_New.yaml @@ -0,0 +1,62 @@ +experiment: + name: '4dhybrid_O15kmI30km_clrsky_amsua_mhs_new' +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + FourD: True + post: [] # use this when doing extended forecast +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC +variational: + DAType: 4dhybrid + biasCorrection: True + ensembleCovarianceWeight: 0.75 + staticCovarianceWeight: 0.25 + nInnerIterations: [60,60,] + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + 30km: + bumpCovDir: /glade/u/home/taosun/scratch/pandac/BUMP_STATIC/30km/BUMP_NICAS_NEW + bumpCovStdDevFile: /glade/u/home/taosun/scratch/pandac/BUMP_STATIC/30km/BUMP_HDIAG_NEW/mpas.stddev.nc + bumpCovVBalDir: /glade/u/home/taosun/scratch/pandac/BUMP_STATIC/30km/BUMP_VBAL_NEW + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + ] +workflow: + first cycle point: 20180414T18 + restart cycle point: 20180415T06 + final cycle point: 20180415T12 diff --git a/scenarios/4dhybrid_O15kmI60km_SpecifiedEnsemble_VarBC_New.yaml b/scenarios/4dhybrid_O15kmI60km_SpecifiedEnsemble_VarBC_New.yaml new file mode 100644 index 00000000..50739d52 --- /dev/null +++ b/scenarios/4dhybrid_O15kmI60km_SpecifiedEnsemble_VarBC_New.yaml @@ -0,0 +1,58 @@ +experiment: + name: '4dhybrid_O15kmI60km_clrsky_amsua_mhs_new' +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + FourD: True + post: [] # use this when doing extended forecast +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 60km + ensembleMesh: 60km +observations: + resource: PANDACArchiveForVarBC +variational: + DAType: 4dhybrid + biasCorrection: True + ensembleCovarianceWeight: 0.75 + staticCovarianceWeight: 0.25 + nInnerIterations: [60,60,] + numProcessors: 1792 + ensemble: + forecasts: + resource: "PANDAC.GEFS_4DEnVar_80mem" + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua, + amsua_metop-a, + amsua_metop-b, + amsua_n15, + amsua_n18, + amsua_n19, + mhs_metop-a, + mhs_metop-b, + mhs_n18, + mhs_n19, + ] + job: + 15km: + 60km: + 4dhybrid: + nodes: 20 + PEPerNode: 100 + memory: 235GB + secondsPerEnVarMember: 8 +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180415T06 + final cycle point: 20180415T00 diff --git a/scenarios/4dhybrid_OIE120km_WarmStart.yaml b/scenarios/4dhybrid_OIE120km_WarmStart.yaml index 196684dd..fcf347dd 100644 --- a/scenarios/4dhybrid_OIE120km_WarmStart.yaml +++ b/scenarios/4dhybrid_OIE120km_WarmStart.yaml @@ -6,7 +6,7 @@ firstbackground: resource: "PANDAC.GFS_4DEnVAR" forecast: FourD: True - post: [verifyobs, verifymodel] + post: [verifymodel] #verifyobs members: n: 1 model: diff --git a/scenarios/5_3denvar120km_csrama_csrmhs_crtm241.yaml b/scenarios/5_3denvar120km_csrama_csrmhs_crtm241.yaml new file mode 100644 index 00000000..8d5ffb6c --- /dev/null +++ b/scenarios/5_3denvar120km_csrama_csrmhs_crtm241.yaml @@ -0,0 +1,79 @@ +experiment: + name: '5_3denvar120km_csrama_csrmhs_crtm241' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: main + NonCriticalAccount: NMMM0043 + NonCriticalQueue: main + priority: regular + SingleProcAccount: NMMM0043 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + # job: + # 120km: + # nodes: 1 + # PEPerNode: 128 + # baseSeconds: 600 + # secondsPerForecastHR: 20 + +members: + n: 1 +model: + outerMesh: 120km + innerMesh: 120km + ensembleMesh: 120km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/campaign/mmm/parc/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/campaign/mmm/parc/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/campaign/mmm/parc/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/campaign/mmm/parc/liuz/pandac_common/satbias/2018 +variational: + DAType: 3denvar + biasCorrection: True + nInnerIterations: [10,10,] + # numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.GEFS" + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + #amsua_aqua, + #amsua-all_metop-a, + #amsua-all_metop-b, + #amsua-all_n15, + amsua_n18, + #amsua-all_n19, + #mhs_metop-a, + #mhs_metop-b, + mhs_n18, + #mhs_n19, + ] + # job: + # 15km: + # 30km: + # 3dhybrid_v3: + # nodes: 8 + # PEPerNode: 64 + # memory: 235GB + # baseSeconds: 4200 + # secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + # restart cycle point: 20180415T06 + final cycle point: 20180415T00 diff --git a/scenarios/5_3denvar120km_csrama_csrmhs_rttov14.yaml b/scenarios/5_3denvar120km_csrama_csrmhs_rttov14.yaml new file mode 100644 index 00000000..1fde6a10 --- /dev/null +++ b/scenarios/5_3denvar120km_csrama_csrmhs_rttov14.yaml @@ -0,0 +1,81 @@ +experiment: + name: '5_3denvar120km_csrama_csrmhs_rttov14' +build: + mpas bundle: /glade/work/jianglp/code/mpas_bundle_v3.0.3_internal_patch/build + #/glade/work/jianglp/code/mpas_bundle_v3.0.3_internal_patch/build + ##/glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: main + NonCriticalAccount: NMMM0043 + NonCriticalQueue: main + priority: regular + SingleProcAccount: NMMM0043 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + # job: + # 120km: + # nodes: 1 + # PEPerNode: 128 + # baseSeconds: 600 + # secondsPerForecastHR: 20 + +members: + n: 1 +model: + outerMesh: 120km + innerMesh: 120km + ensembleMesh: 120km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/campaign/mmm/parc/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/campaign/mmm/parc/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/campaign/mmm/parc/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/campaign/mmm/parc/liuz/pandac_common/satbias/2018 +variational: + DAType: 3denvar + biasCorrection: True + nInnerIterations: [10,10,] + # numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.GEFS" + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + #amsua_aqua, + #amsua-all_metop-a, + #amsua-all_metop-b, + #amsua-all_n15, + amsua_n18_rttov, + #amsua-all_n19, + #mhs_metop-a, + #mhs_metop-b, + mhs_n18_rttov, + #mhs_n19, + ] + # job: + # 15km: + # 30km: + # 3dhybrid_v3: + # nodes: 8 + # PEPerNode: 64 + # memory: 235GB + # baseSeconds: 4200 + # secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + # restart cycle point: 20180415T06 + final cycle point: 20180415T00 diff --git a/scenarios/6_3dhyb_csrama_csrmhs_iasi_rttovcpp.yaml b/scenarios/6_3dhyb_csrama_csrmhs_iasi_rttovcpp.yaml new file mode 100644 index 00000000..60f9e3b7 --- /dev/null +++ b/scenarios/6_3dhyb_csrama_csrmhs_iasi_rttovcpp.yaml @@ -0,0 +1,91 @@ +experiment: + name: '6_3dhyb_csrama_csrmhs_iasi_rttovcpp' +build: + mpas bundle: /glade/work/jianglp/code/mpas_bundle_v3.0.3_internal_patch/build + #mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal_patch/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0015 + CriticalQueue: main + NonCriticalAccount: NMMM0015 + NonCriticalQueue: main + priority: premium + SingleProcAccount: NMMM0015 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 100 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/derecho/scratch/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/derecho/scratch/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/derecho/scratch/liuz/pandac_common/satbias/2018 +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: false + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + amsua_aqua_rttov, + amsua_metop-a_rttov, + amsua_metop-b_rttov, + amsua_n15_rttov, + amsua_n18_rttov, + amsua_n19_rttov, + mhs_metop-a_rttov, + mhs_metop-b_rttov, + mhs_n18_rttov, + mhs_n19_rttov, + iasi_metop-a_rttov, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 3000 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + #restart cycle point: 20180404T18 + final cycle point: 20180415T00 diff --git a/scenarios/6_3dhyb_csrama_csrmhs_rttov12.yaml b/scenarios/6_3dhyb_csrama_csrmhs_rttov12.yaml new file mode 100644 index 00000000..6a16e40f --- /dev/null +++ b/scenarios/6_3dhyb_csrama_csrmhs_rttov12.yaml @@ -0,0 +1,89 @@ +experiment: + name: '6_3dhyb_csrama_csrmhs_rttov12' +build: + mpas bundle: /glade/work/liuz/mpas-bundle-build/mpas_bundle_v3.0.3_internal/build_gnuSP + #forecast directory: '' + #bundle compiler used: gnu-openmpi +hpc: + CriticalAccount: NMMM0043 + CriticalQueue: main + NonCriticalAccount: NMMM0043 + NonCriticalQueue: main + priority: regular + SingleProcAccount: NMMM0043 + SingleProcQueue: casper@casper-pbs +firstbackground: + resource: "PANDAC.GFS" +externalanalyses: + resource: "GFS.PANDAC" +forecast: + post: [] # use this when doing extended forecast + job: + 15km: + nodes: 8 + PEPerNode: 128 + baseSeconds: 600 + secondsPerForecastHR: 240 + +members: + n: 1 +model: + outerMesh: 15km + innerMesh: 30km + ensembleMesh: 30km +observations: + resource: PANDACArchiveForVarBC + CRTMTABLES: /glade/campaign/mmm/parc/liuz/pandac_common/crtm_coeffs_v2.4.1/ + fixedCoeff: /glade/campaign/mmm/parc/liuz/pandac_common/satbias + fixedTlapmeanCov: /glade/campaign/mmm/parc/liuz/pandac_common/satbias/2018 + initialVARBCcoeff: /glade/campaign/mmm/parc/liuz/pandac_common/satbias/2018 +variational: + DAType: 3dhybrid_v3 + biasCorrection: True + hybridBECWeightFromFile: true + nInnerIterations: [60,60,] + numProcessors: 512 + ensemble: + forecasts: + resource: "PANDAC.LGETKF" + covariance: + bumpCovControlVariables: + - stream_function + - velocity_potential + - temperature + - spechum + - surface_pressure + bumpCovPrefix: mpas + bumpCovVBalPrefix: mpas + post: [] + observers: [ + aircraft, + gnssrobndropp1d, + satwind, + satwnd, + sfc, + sondes, + #amsua_aqua, + #amsua-all_metop-a, + #amsua-all_metop-b, + #amsua-all_n15, + amsua_n18_rttov12, + #amsua-all_n19, + #mhs_metop-a, + #mhs_metop-b, + mhs_n18_rttov12, + #mhs_n19, + ] + job: + 15km: + 30km: + 3dhybrid_v3: + nodes: 8 + PEPerNode: 64 + memory: 235GB + baseSeconds: 4200 + secondsPerEnVarMember: 10 +workflow: + first cycle point: 20180414T18 + # restart cycle point: 20180415T06 + final cycle point: 20180415T00 diff --git a/scenarios/CloudDirectInsertion.yaml b/scenarios/CloudDirectInsertion.yaml index c947cffd..11d47003 100644 --- a/scenarios/CloudDirectInsertion.yaml +++ b/scenarios/CloudDirectInsertion.yaml @@ -21,7 +21,7 @@ extendedforecast: DACycling: True updateSea: True #execute: False # uncomment if forecasts are already completed - post: [verifyobs] #verifyobs + post: [] #verifyobs forecastsaca: #execute: False diff --git a/scenarios/GenerateGFSAnalyses_15km.yaml b/scenarios/GenerateGFSAnalyses_15km.yaml new file mode 100644 index 00000000..eccdef7f --- /dev/null +++ b/scenarios/GenerateGFSAnalyses_15km.yaml @@ -0,0 +1,16 @@ +suite: GenerateExternalAnalyses +externalanalyses: + resource: "GFS.GFS_ungrib" +experiment: + name: 'GenerateGFSAnalyses' + prefix: '' +model: + outerMesh: 15km + innerMesh: 15km +hpc: + CriticalQueue: economy + NonCriticalQueue: economy +workflow: + first cycle point: 20180430T18 + final cycle point: 20180514T18 + max active cycle points: 8 diff --git a/scenarios/GenerateGFSAnalyses_15km3km.yaml b/scenarios/GenerateGFSAnalyses_15km3km.yaml new file mode 100644 index 00000000..7e1c33b7 --- /dev/null +++ b/scenarios/GenerateGFSAnalyses_15km3km.yaml @@ -0,0 +1,16 @@ +suite: GenerateExternalAnalyses +externalanalyses: + resource: "GFS.GFS_ungrib" +experiment: + name: 'GenerateGFSAnalyses_15-3km' + prefix: '' +model: + outerMesh: 15-3km + innerMesh: 15-3km +hpc: + CriticalQueue: economy + NonCriticalQueue: economy +workflow: + first cycle point: 20180430T00 + final cycle point: 20180516T00 + max active cycle points: 4 diff --git a/scenarios/IASI120km3denvar.yaml b/scenarios/IASI120km3denvar.yaml index 55807d39..c21c9998 100644 --- a/scenarios/IASI120km3denvar.yaml +++ b/scenarios/IASI120km3denvar.yaml @@ -49,21 +49,7 @@ variational: amsua_n19, iasi_metop-b, ] - # for a 6h obs file - job: - 120km: - 120km: - 3denvar: - baseSeconds: 900 - nodes: 8 - PEPerNode: 16 - memory: 109GB -hpc: - CriticalQueue: premium - NonCriticalQueue: premium + # check job specification for Derecho + verifyobs: script directory: /glade/campaign/mmm/parc/ivette/pandac/graphics -hofx: - job: - 120km: - seconds: 500 diff --git a/scenarios/IASI30kmIE60km3denvar.yaml b/scenarios/IASI30kmIE60km3denvar.yaml index 9ab6557e..df032a46 100644 --- a/scenarios/IASI30kmIE60km3denvar.yaml +++ b/scenarios/IASI30kmIE60km3denvar.yaml @@ -66,16 +66,7 @@ variational: amsua_n19, iasi_metop-b, ] - job: - 30km: - 60km: - 3denvar: - baseSeconds: 4500 - nodes: 8 - PEPerNode: 16 - memory: 109GB -hpc: - CriticalQueue: premium - NonCriticalQueue: premium + # check job specification for Derecho + verifyobs: script directory: /glade/campaign/mmm/parc/ivette/pandac/graphics diff --git a/scenarios/RealTime.yaml b/scenarios/RealTime.yaml index 939d58d0..6aea46c1 100644 --- a/scenarios/RealTime.yaml +++ b/scenarios/RealTime.yaml @@ -21,12 +21,3 @@ variational: DAType: 3dvar nInnerIterations: [60,] biasCorrection: True - job: - 120km: - # Assuming 60 total inner iterations - 120km: - 3dvar: - baseSeconds: 400 -hpc: - CriticalQueue: premium - NonCriticalQueue: economy diff --git a/scenarios/VerifyingGFSAnalysesFromRDA.yaml b/scenarios/VerifyingGFSAnalysesFromRDA.yaml index 7227a34d..baa329d2 100644 --- a/scenarios/VerifyingGFSAnalysesFromRDA.yaml +++ b/scenarios/VerifyingGFSAnalysesFromRDA.yaml @@ -15,25 +15,10 @@ extendedforecast: # optionally turn on extended forecast verification post: [] -forecast: - job: - 30km: - nodes: 4 - PEPerNode: 32 - baseSeconds: 60 - secondsPerForecastHR: 150 - hpc: CriticalQueue: regular NonCriticalQueue: regular -initic: - job: - 30km: - seconds: 60 - nodes: 4 - PEPerNode: 32 - members: n: 1 diff --git a/scenarios/defaults/enkf.yaml b/scenarios/defaults/enkf.yaml index 40ca0f0b..d3ca405c 100644 --- a/scenarios/defaults/enkf.yaml +++ b/scenarios/defaults/enkf.yaml @@ -36,6 +36,47 @@ enkf: # These are starting points. When more memory is needed (e.g., more observations, more # memmbers) than is available in default resource requests below, use more nodes and/or # processors + 30km: + LETKF: + observer: + # cost for record (20 members, PBS JOB email) + # 2 x 32 PE : 3.3 min., 50.0 GB (single precision) + nodes: 4 + PEPerNode: 128 + memory: 235GB + baseSeconds: 100 + secondsPerMember: 7 + solver: + # cost for record (20 members, PBS JOB email, single precision) + # 16 x 32 PE, 3d iterator : 83.6 min., 275 GB + # 16 x 32 PE, 3d iterator (no vert loc.) : 108 min., 314 GB + # 16 x 32 PE, 2d iterator (no vert loc.) : 7.5 min., 274 GB + nodes: 8 + PEPerNode: 128 + threads: 1 + memory: 235GB + baseSeconds: 200 + secondsPerMember: 290 + GETKF: + observer: + # cost for record (20 members, 95% variance retained [13 eig], PBS JOB email) + # 8 x 32 PE : 13.5 min., 151 GB (single precision) + nodes: 4 + PEPerNode: 128 + memory: 235GB + baseSeconds: 200 + secondsPerMember: 45 + solver: + # cost for record (20 members, 95% variance retained [13 eig], PBS JOB email, single precision) + # 16 x 8 PE : 86.5 min., 480 GB, 109GB/node + # 16 x 8 PE x 2 omp : 90.5 min., 480 GB, 45GB/node + # 16 x 8 PE x 4 omp : 92.5 min., 480 GB, 45GB/node + # 16 x 16 PE : 77.0 min., 878 GB, 109GB/node + nodes: 16 + PEPerNode: 64 + memory: 235GB + baseSeconds: 200 + secondsPerMember: 500 60km: LETKF: observer: diff --git a/scenarios/defaults/externalanalyses.yaml b/scenarios/defaults/externalanalyses.yaml index ed68a063..baf5f75c 100644 --- a/scenarios/defaults/externalanalyses.yaml +++ b/scenarios/defaults/externalanalyses.yaml @@ -37,6 +37,10 @@ externalanalyses: directory: "/glade/campaign/mmm/parc/taosun/pandac/60kmMeshGFS/MPAS_IC_NEW" 30km: directory: "/glade/campaign/mmm/parc/taosun/pandac/30kmMeshGFS/MPAS_IC_NEW" + 15km: + directory: "/glade/campaign/mmm/parc/taosun/pandac/15kmMeshGFS/MPAS_IC" + 15-3km: + directory: "/glade/campaign/mmm/parc/taosun/pandac/15km3kmVMeshGFS/MPAS_IC" 60-3km: directory: "/glade/campaign/mmm/parc/taosun/pandac/60km3kmVMeshGFS/MPAS_IC_NEW" RDA: diff --git a/scenarios/defaults/firstbackground.yaml b/scenarios/defaults/firstbackground.yaml index f5126b6b..eaec3260 100644 --- a/scenarios/defaults/firstbackground.yaml +++ b/scenarios/defaults/firstbackground.yaml @@ -34,7 +34,12 @@ firstbackground: 60km: # only available 20180414T18, 20200723T18 directory: "/glade/campaign/mmm/parc/taosun/pandac/60kmMeshGFS/FirstBackground_NEW/{{FirstCycleDate}}" 30km: # only available 20180414T18 - directory: "/glade/campaign/mmm/parc/taosun/pandac/30kmMeshGFS/FirstBackground_NEW/{{FirstCycleDate}}" + directory: "/glade/derecho/scratch/liuz/pandac_common/30kmMeshGFS/FirstBackground_NEW/{{FirstCycleDate}}" + 15km: + #directory: "/glade/campaign/mmm/parc/taosun/pandac/15kmMeshGFS/FirstBackground/{{FirstCycleDate}}" + directory: "/glade/derecho/scratch/liuz/pandac_common/15kmMeshGFS/FirstBackground/{{FirstCycleDate}}" + 15-3km: + directory: "/glade/campaign/mmm/parc/taosun/pandac/15km3kmVMeshGFS/FirstBackground/{{FirstCycleDate}}" 60-3km: directory: "/glade/campaign/mmm/parc/taosun/pandac/60km3kmVMeshGFS/FirstBackground_Thompson_NEW/{{FirstCycleDate}}" LaggedGEFS: diff --git a/scenarios/defaults/forecast.yaml b/scenarios/defaults/forecast.yaml index 2c1aa466..ebf48290 100644 --- a/scenarios/defaults/forecast.yaml +++ b/scenarios/defaults/forecast.yaml @@ -26,6 +26,29 @@ forecast: PEPerNode: 128 baseSeconds: 60 secondsPerForecastHR: 300 #240 for calling radiation every 30 minutes + 15-3km: + # faster turnaround + #nodes: 16 + #PEPerNode: 32 + #baseSeconds: 60 + #secondsPerForecastHR: 120 + # more efficient + nodes: 16 + PEPerNode: 128 + baseSeconds: 360 + secondsPerForecastHR: 600 + 15km: + # faster turnaround + #nodes: 16 + #PEPerNode: 32 + #baseSeconds: 60 + #secondsPerForecastHR: 120 + # more efficient + nodes: 4 + PEPerNode: 128 + baseSeconds: 60 + #secondsPerForecastHR: 120 + secondsPerForecastHR: 240 30km: # faster turnaround #nodes: 16 diff --git a/scenarios/defaults/initic.yaml b/scenarios/defaults/initic.yaml index 84988b45..2f550ab3 100644 --- a/scenarios/defaults/initic.yaml +++ b/scenarios/defaults/initic.yaml @@ -18,6 +18,14 @@ initic: seconds: 320 nodes: 2 PEPerNode: 128 + 15-3km: + seconds: 600 + nodes: 4 + PEPerNode: 64 + 15km: + seconds: 600 + nodes: 4 + PEPerNode: 64 30km: seconds: 320 nodes: 2 diff --git a/scenarios/defaults/invariantstream.yaml b/scenarios/defaults/invariantstream.yaml index e3a41a67..a6480edb 100644 --- a/scenarios/defaults/invariantstream.yaml +++ b/scenarios/defaults/invariantstream.yaml @@ -5,7 +5,7 @@ invariantstream: # can be overridden in either a `common` or `{{mesh}}``-specific block defaults: ## directory (required): location of invariant stream file - InvariantDirectory: /glade/campaign/mmm/parc/taosun/pandac/Invariant + InvariantDirectory: /glade/derecho/scratch/liuz/pandac_common/Invariant ## filePrefix: prefix of invariant stream file InvariantFilePrefix: "x{{meshRatio}}.{{nCells}}.invariant" diff --git a/scenarios/defaults/model.yaml b/scenarios/defaults/model.yaml index 13e4e639..8e1aeeed 100644 --- a/scenarios/defaults/model.yaml +++ b/scenarios/defaults/model.yaml @@ -37,6 +37,40 @@ model: RadiationSW: rrtmg_sw SfcLayer: sf_mynn LSM: sf_noah + 15-3km: + meshRatio: 5 + nCells: 6488066 + TimeStep: 20.0 + DiffusionLengthScale: 3000.0 + RadiationLWInterval: 00:15:00 + RadiationSWInterval: 00:15:00 + PhysicsSuite: convection_permitting + Microphysics: mp_thompson + Convection: cu_ntiedtke + PBL: bl_mynn + Gwdo: bl_ysu_gwdo + RadiationCloud: cld_fraction_thompson + RadiationLW: rrtmg_lw + RadiationSW: rrtmg_sw + SfcLayer: sf_mynn + LSM: sf_noah + 15km: + meshRatio: 1 + nCells: 2621442 + TimeStep: 90.0 + DiffusionLengthScale: 15000.0 + RadiationLWInterval: 00:15:00 + RadiationSWInterval: 00:15:00 + PhysicsSuite: mesoscale_reference + Microphysics: mp_wsm6 + Convection: cu_ntiedtke + PBL: bl_ysu + Gwdo: bl_ysu_gwdo + RadiationCloud: cld_fraction + RadiationLW: rrtmg_lw + RadiationSW: rrtmg_sw + SfcLayer: sf_monin_obukhov + LSM: sf_noah 30km: meshRatio: 1 nCells: 655362 diff --git a/scenarios/defaults/observations.yaml b/scenarios/defaults/observations.yaml index 4a17d087..59627254 100644 --- a/scenarios/defaults/observations.yaml +++ b/scenarios/defaults/observations.yaml @@ -213,6 +213,12 @@ observations: - amsua-cld_n15 - amsua-cld_n18 - amsua-cld_n19 + - amsua-all_metop-a + - amsua-all_metop-b + - amsua-all_metop-c + - amsua-all_n15 + - amsua-all_n18 + - amsua-all_n19 - iasi_metop-a - iasi_metop-b - iasi_metop-c @@ -220,8 +226,27 @@ observations: - mhs_metop-b - mhs_n18 - mhs_n19 - - IODAPrefix: + - mhs-cld_metop-a + - mhs-cld_metop-b + - mhs-cld_n18 + - mhs-cld_n19 + - atms_n20 + - atms_npp + - amsua_aqua_rttov + - amsua_metop-a_rttov + - amsua_metop-b_rttov + - amsua_n15_rttov + - amsua_n18_rttov + - amsua_n19_rttov + - mhs_metop-a_rttov + - mhs_metop-b_rttov + - mhs_n18_rttov + - mhs_n19_rttov + - iasi_metop-a_rttov + - iasi_metop-b_rttov + - mhs_n18_rttov12 + + IODAPrefix: # define obs-space correspendance to ioda file name gnssrobndropp1d: gnssro gnssrobndnbam: gnssro gnssrobndmo: gnssro @@ -234,43 +259,93 @@ observations: amsua-cld_n15: amsua_n15 amsua-cld_n18: amsua_n18 amsua-cld_n19: amsua_n19 + amsua-all_metop-a: amsua_metop-a + amsua-all_metop-b: amsua_metop-b + amsua-all_metop-c: amsua_metop-c + amsua-all_n15: amsua_n15 + amsua-all_n18: amsua_n18 + amsua-all_n19: amsua_n19 + amsua_aqua_rttov: amsua_aqua + amsua_metop-a_rttov: amsua_metop-a + amsua_metop-b_rttov: amsua_metop-b + amsua_n15_rttov: amsua_n15 + amsua_n18_rttov: amsua_n18 + amsua_n19_rttov: amsua_n19 + amsua_n18_rttov12: amsua_n18 + mhs-cld_metop-a: mhs_metop-a + mhs-cld_metop-b: mhs_metop-b + mhs-cld_n18: mhs_n18 + mhs-cld_n19: mhs_n19 + mhs_metop-a_rttov: mhs_metop-a + mhs_metop-b_rttov: mhs_metop-b + mhs_n18_rttov: mhs_n18 + mhs_n19_rttov: mhs_n19 + iasi_metop-a_rttov: iasi_metop-a + iasi_metop-b_rttov: iasi_metop-b + mhs_n18_rttov12: mhs_n18 abi-clr_g16: abi_g16 ahi-clr_himawari8: ahi_himawari8 + IODADirectory: da: ##anchor - aircraft: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - gnssrobndropp1d: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - gnssrobndnbam: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - gnssrobndmo: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - gnssrobndmo-nopseudo: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - gnssrorefncep: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - gnssrorefncep_tunedErrors: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - satwind: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - satwnd: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - sfc: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - sondes: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs + aircraft: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + gnssrobndropp1d: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + gnssrobndnbam: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + gnssrobndmo: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + gnssrobndmo-nopseudo: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + gnssrorefncep: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + gnssrorefncep_tunedErrors: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + satwind: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + satwnd: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + sfc: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + sondes: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs ## amsua - amsua_aqua: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua_metop-a: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua_metop-b: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua_n15: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua_n18: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua_n19: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua-cld_aqua: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua-cld_metop-a: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua-cld_metop-b: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua-cld_n15: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua-cld_n18: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs - amsua-cld_n19: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_aqua: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_metop-a: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_metop-b: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_n15: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_n18: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_n19: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-cld_aqua: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-cld_metop-a: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-cld_metop-b: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-cld_n15: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-cld_n18: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-cld_n19: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-all_metop-a: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-all_metop-b: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-all_n15: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-all_n18: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua-all_n19: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_aqua_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_metop-a_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_metop-b_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_n15_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_n18_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_n19_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + amsua_n18_rttov12: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs ## mhs - mhs_metop-a: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/no_bias - mhs_metop-b: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/no_bias - mhs_n18: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/no_bias - mhs_n19: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/no_bias + mhs_metop-a: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs_metop-b: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs_n18: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs_n19: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs-cld_metop-a: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs-cld_metop-b: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs-cld_n18: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs-cld_n19: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs_metop-a_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs_metop-b_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs_n18_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs_n19_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + mhs_n18_rttov12: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + + ## atms + atms_n20: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + atms_npp: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs ## abi abi_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct @@ -281,9 +356,10 @@ observations: ahi-clr_himawari8: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct ## iasi - iasi_metop-a: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/iasi_thin145km - iasi_metop-b: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/iasi_thin145km - iasi_metop-c: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/iasi_thin145km + iasi_metop-a: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/iasi_thin145km + iasi_metop-b: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/iasi_thin145km + iasi_metop-a_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/iasi_thin145km + iasi_metop-b_rttov: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/iasi_thin145km hofx: ## anchor @@ -319,6 +395,10 @@ observations: mhs_n18: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/bias_corr mhs_n19: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/bias_corr + ## atms + atms_n20: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + atms_npp: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/raw_obs + ## abi abi_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct abi-clr_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct @@ -328,15 +408,15 @@ observations: ahi-clr_himawari8: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct ## iasi - iasi_metop-a: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/iasi_thin145km - iasi_metop-b: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/iasi_thin145km - iasi_metop-c: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/iasi_thin145km + iasi_metop-a: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/iasi_thin145km + iasi_metop-b: /glade/derecho/scratch/liuz/pandac_common/obsiodav3_intScanP_20230927/2018/iasi_thin145km IODASuperObGrid: abi_g16: 15X15 ahi_himawari8: 15X15 - PANDACArchiveForVarBC_4d: + + PANDACArchiveForVarBC2025: PrepareObservationsTasks: [ObsReady__] instrumentsAllowingBiasCorrection: @@ -354,15 +434,36 @@ observations: - amsua-cld_n15 - amsua-cld_n18 - amsua-cld_n19 - - iasi_metop-a - - iasi_metop-b - - iasi_metop-c + - amsua-all_metop-a + - amsua-all_metop-b + - amsua-all_metop-c + - amsua-all_n15 + - amsua-all_n18 + - amsua-all_n19 - mhs_metop-a - mhs_metop-b + - mhs_metop-c - mhs_n18 - mhs_n19 + - mhs-cld_metop-a + - mhs-cld_metop-b + - mhs-cld_metop-c + - mhs-cld_n18 + - mhs-cld_n19 + - amsua_n18_rttov + - mhs_n18_rttov + - mhs_n18_rttov12 + - atms_n21 + - atms_n20 + - atms_npp + - iasi_metop-a + - iasi_metop-b + - iasi_metop-c + - cris-fsr_npp + - cris-fsr_n20 + - cris-fsr_n21 - IODAPrefix: + IODAPrefix: # define obs-space correspendance to ioda file name gnssrobndropp1d: gnssro gnssrobndnbam: gnssro gnssrobndmo: gnssro @@ -372,111 +473,181 @@ observations: amsua-cld_aqua: amsua_aqua amsua-cld_metop-a: amsua_metop-a amsua-cld_metop-b: amsua_metop-b + amsua-cld_metop-c: amsua_metop-c amsua-cld_n15: amsua_n15 amsua-cld_n18: amsua_n18 amsua-cld_n19: amsua_n19 + amsua-all_metop-a: amsua_metop-a + amsua-all_metop-b: amsua_metop-b + amsua-all_metop-c: amsua_metop-c + amsua-all_n15: amsua_n15 + amsua-all_n18: amsua_n18 + amsua-all_n19: amsua_n19 + amsua_n18_rttov: amsua_n18 + amsua_n18_rttov12: amsua_n18 + mhs-cld_metop-a: mhs_metop-a + mhs-cld_metop-b: mhs_metop-b + mhs-cld_metop-c: mhs_metop-c + mhs-cld_n18: mhs_n18 + mhs-cld_n19: mhs_n19 + mhs_n18_rttov: mhs_n18 + mhs_n18_rttov12: mhs_n18 abi-clr_g16: abi_g16 ahi-clr_himawari8: ahi_himawari8 + IODADirectory: da: ##anchor - aircraft: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrobndropp1d: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrobndnbam: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrobndmo: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrobndmo-nopseudo: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrorefncep: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrorefncep_tunedErrors: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - satwind: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - satwnd: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - sfc: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - sondes: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs + aircraft: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrobndropp1d: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrobndnbam: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrobndmo: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrobndmo-nopseudo: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrorefncep: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrorefncep_tunedErrors: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + satwind: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + satwnd: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + sfc: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + sondes: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 ## amsua - amsua_aqua: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua_metop-a: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua_metop-b: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua_n15: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua_n18: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua_n19: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_aqua: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_metop-a: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_metop-b: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_n15: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_n18: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_n19: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs + amsua_aqua: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_metop-a: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_n15: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_n18: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_n19: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_aqua: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_metop-a: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_n15: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_n18: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_n19: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-all_metop-a: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-all_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-all_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-all_n15: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-all_n18: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-all_n19: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_n18_rttov: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_n18_rttov12: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 ## mhs - mhs_metop-a: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - mhs_metop-b: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - mhs_n18: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - mhs_n19: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs + mhs_metop-a: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_n18: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_n19: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs-cld_metop-a: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs-cld_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs-cld_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs-cld_n18: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs-cld_n19: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_n18_rttov: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_n18_rttov12: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + + ## atms + atms_npp: /glade/derecho/scratch/jban/pandac_common/obsiodav3_intScanP_20230927/2025/raw_obs + atms_n20: /glade/derecho/scratch/jban/pandac_common/obsiodav3_intScanP_20230927/2025/raw_obs + atms_n21: /glade/derecho/scratch/jban/pandac_common/obsiodav3_intScanP_20230927/2025/raw_obs ## abi - abi_g16: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct - abi-clr_g16: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/ABIASR/IODANC_THIN15KM_SUPERO15X15_no-bias-correct + abi_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct + abi-clr_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct ## ahi - ahi_himawari8: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct - ahi-clr_himawari8: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct + ahi_himawari8: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct + ahi-clr_himawari8: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct ## iasi - iasi_metop-a: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/iasi_thin145km - iasi_metop-b: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/iasi_thin145km - iasi_metop-c: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/iasi_thin145km + #iasi_metop-a: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + #iasi_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + #iasi_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + iasi_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025/iasi_thin145km + iasi_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025/iasi_thin145km + + ## cris + #cris-fsr_npp: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + #cris-fsr_n20: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + #cris-fsr_n21: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + cris-fsr_n20: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025/cris_thin145km + cris-fsr_n21: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025/cris_thin145km hofx: ## anchor - aircraft: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrobndropp1d: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrobndnbam: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrobndmo: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrobndmo-nopseudo: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrorefncep: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - gnssrorefncep_tunedErrors: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - satwind: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - satwnd: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - sfc: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - sondes: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs + sondes: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/conv_obs + aircraft: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrobndropp1d: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrobndnbam: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrobndmo: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrobndmo-nopseudo: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrorefncep: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + gnssrorefncep_tunedErrors: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + satwind: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + satwnd: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + sfc: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + sondes: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 ## amsua - amsua_aqua: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua_metop-a: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua_metop-b: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua_n15: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua_n18: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua_n19: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_aqua: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_metop-a: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_metop-b: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_n15: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_n18: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - amsua-cld_n19: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs + amsua_aqua: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_metop-a: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_n15: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_n18: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua_n19: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_aqua: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_metop-a: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_n15: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_n18: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + amsua-cld_n19: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 ## mhs - mhs_metop-a: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - mhs_metop-b: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - mhs_n18: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs - mhs_n19: /glade/scratch/jban/pandac/obsiodav3_intScanP_20230812/2018/raw_obs + mhs_metop-a: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_n18: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_n19: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_n18_rttov: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + mhs_n18_rttov12: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + + ## atms + atms_npp: /glade/derecho/scratch/jban/pandac_common/obsiodav3_intScanP_20230927/2025/raw_obs + atms_n20: /glade/derecho/scratch/jban/pandac_common/obsiodav3_intScanP_20230927/2025/raw_obs + atms_n21: /glade/derecho/scratch/jban/pandac_common/obsiodav3_intScanP_20230927/2025/raw_obs ## abi - abi_g16: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_const-bias-correct - abi-clr_g16: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/ABIASR/IODANC_THIN15KM_SUPERO15X15_const-bias-correct + abi_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct + abi-clr_g16: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/ABIASR/IODANC_THIN15KM_SUPEROB15X15_no-bias-correct ## ahi - ahi_himawari8: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/AHIASR/IODANC_SUPEROB15X15_const-bias-correct - ahi-clr_himawari8: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/AHIASR/IODANC_SUPEROB15X15_const-bias-correct + ahi_himawari8: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct + ahi-clr_himawari8: /glade/campaign/mmm/parc/jban/pandac/obsiodav3_intScanP_20230927/2018/AHIASR/IODANC_SUPEROB15X15_no-bias-correct ## iasi - iasi_metop-a: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/iasi_thin145km - iasi_metop-b: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/iasi_thin145km - iasi_metop-c: /glade/p/mmm/parc/jban/pandac_common/obs/ioda_v3/2018/iasi_thin145km + #iasi_metop-a: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + #iasi_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + #iasi_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + iasi_metop-b: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025/iasi_thin145km + iasi_metop-c: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025/iasi_thin145km + + ## cris + #cris-fsr_npp: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + #cris-fsr_n20: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + #cris-fsr_n21: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025 + cris-fsr_n20: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025/cris_thin145km + cris-fsr_n21: /glade/campaign/mmm/parc/zhuming/pandac/obs/ioda_v3/2025/cris_thin145km IODASuperObGrid: abi_g16: 15X15 ahi_himawari8: 15X15 + GenerateObs: PrepareObservationsTasks: [ObsReady__] diff --git a/scenarios/defaults/variational.yaml b/scenarios/defaults/variational.yaml index 80d4081d..9a2c8984 100644 --- a/scenarios/defaults/variational.yaml +++ b/scenarios/defaults/variational.yaml @@ -62,23 +62,25 @@ variational: # is added as with `except: [{{backgroundMember}}]`, where {{backgroundMember}} is equal # to the member iterator (i.e., 1 for member 1, 2 for member 2, etc.) + EDA: 60km: - maxMembers: 20 - directory0: '/glade/campaign/mmm/parc/liuz/pandac_common/fixed_input/60km/EnsForCov/{{prevDateTime}}' - filePrefix: EnsForCov - memberNDigits: 2 + maxMembers: 80 + directory0: '/glade/campaign/mmm/parc/liuz/pandac_common/60km/60km_EnsFC_80EDA/{{prevDateTime}}' + memberPrefix: mem + memberNDigits: 3 - DART: + LGETKF: 60km: maxMembers: 80 - directory0: '/glade/scratch/guerrett/pandac/schwartz_dart_NMEM80_60km/CyclingFC/{{prevDateTime}}' + directory0: '/glade/campaign/mmm/parc/taosun/LGETKF/taosun_GETKF_NMEM80_O60km_BC_AllSky/CyclingFC/{{prevDateTime}}' + filePrefix: mpasout memberPrefix: mem memberNDigits: 3 - EDA: - 60km: + 30km: maxMembers: 80 - directory0: '/glade/campaign/mmm/parc/liuz/pandac_common/60km/60km_EnsFC_80EDA/{{prevDateTime}}' + directory0: '/glade/derecho/scratch/liuz/pandac_common/LGETKF/taosun_LGETKF_30km_WarmStart_80Mem_AllSky/CyclingFC/{{prevDateTime}}' + filePrefix: EnsForCov memberPrefix: mem memberNDigits: 3 @@ -118,8 +120,8 @@ variational: # bumpLocPrefix: str # bumpLocDir: str 30km: - bumpLocPrefix: bumploc_1200.0km_6.0km - bumpLocDir: /glade/campaign/mmm/parc/liuz/pandac_common/fixed_input/30km/bumploc/h=1200.0km_v=6.0km_06JAN2023code + bumpLocPrefix: bumploc + bumpLocDir: /glade/derecho/scratch/liuz/pandac_common/30kmMeshGFS/BUMP/EnsLoc 60km: bumpLocPrefix: bumploc_1200.0km_6.0km bumpLocDir: /glade/campaign/mmm/parc/liuz/pandac_common/BUMP_files/derecho_2.1/60km.bumploc.duplicated.limited.1200km6km @@ -143,20 +145,23 @@ variational: # bumpCovVBalDir: str # hybridCoefficientsDir: str 30km: - bumpCovDir: None - bumpCovStdDevFile: None - bumpCovVBalDir: None - hybridCoefficientsDir: None + bumpCovDir: /glade/derecho/scratch/liuz/pandac_common/30kmMeshGFS/BUMP_STATIC/BUMP_NICAS_NEW + bumpCovStdDevFile: /glade/derecho/scratch/liuz/pandac_common/30kmMeshGFS/BUMP_STATIC/BUMP_HDIAG_NEW/mpas.stddev.nc + bumpCovVBalDir: /glade/derecho/scratch/liuz/pandac_common/30kmMeshGFS/BUMP_STATIC/BUMP_VBAL_NEW + hybridEnsembleWeightFile: /glade/derecho/scratch/liuz/pandac_common/30kmMeshGFS/BUMP/HybWeight/mpas30km.hyb_weight_ens.nc + hybridStaticWeightFile: /glade/derecho/scratch/liuz/pandac_common/30kmMeshGFS/BUMP/HybWeight/mpas30km.hyb_weight_static.nc 60km: - hybridCoefficientsDir: /glade/campaign/mmm/parc/liuz/pandac_hybrid/60km.allsky_hybrid bumpCovDir: /glade/campaign/mmm/parc/liuz/pandac_common/BUMP_files/derecho_2.1/60km.NICAS_00global bumpCovStdDevFile: /glade/campaign/mmm/parc/liuz/pandac_common/BUMP_files/derecho_2.1/60km.CMAT_00/mpas.stddev_0p33.2018-04-15_00.00.00.nc bumpCovVBalDir: /glade/campaign/mmm/parc/liuz/pandac_common/BUMP_files/derecho_2.1/60km.VBAL_00 + hybridEnsembleWeightFile: /glade/campaign/mmm/parc/liuz/pandac_hybrid/60km.allsky_hybrid/mpas.hyb_coef_ens2.2018-04-15_00.00.00.nc + hybridStaticWeightFile: /glade/campaign/mmm/parc/liuz/pandac_hybrid/60km.allsky_hybrid/mpas.hyb_coef_sta2.2018-04-15_00.00.00.nc 120km: bumpCovDir: /glade/campaign/mmm/parc/liuz/pandac_common/BUMP_files/20230522_yr5/120km.NICAS_00 bumpCovStdDevFile: /glade/campaign/mmm/parc/liuz/pandac_common/BUMP_files/20230522_yr5/120km.CMAT_00/mpas.stddev_0p33.2018-04-15_00.00.00.nc bumpCovVBalDir: /glade/campaign/mmm/parc/liuz/pandac_common/BUMP_files/20230522_yr5/120km.VBAL_00 - hybridCoefficientsDir: /glade/campaign/mmm/parc/liuz/pandac_hybrid/120km.allsky_hybrid + hybridEnsembleWeightFile: NotAvailable + hybridStaticWeightFile: NotAvailable # resource requirements job: @@ -232,8 +237,8 @@ variational: baseSeconds: 800 secondsPerEnVarMember: 24 3dhybrid: - nodes: 2 - PEPerNode: 128 + nodes: 4 + PEPerNode: 64 memory: 235GB baseSeconds: 500 secondsPerEnVarMember: 9 @@ -248,6 +253,83 @@ variational: PEPerNode: 128 memory: 235GB baseSeconds: 500 + 15-3km: + 30km: + 3denvar: + nodes: 16 + PEPerNode: 32 + memory: 235GB + secondsPerEnVarMember: 8 + 3dhybrid: + nodes: 16 + PEPerNode: 32 + memory: 235GB + secondsPerEnVarMember: 12 + 3dhybrid_v3: + nodes: 16 + PEPerNode: 32 + memory: 235GB + secondsPerEnVarMember: 12 + 3dvar: + nodes: 16 + PEPerNode: 32 + memory: 235GB + 4denvar: + nodes: 28 + PEPerNode: 128 + memory: 235GB + secondsPerEnVarMember: 6 + 15km: + 30km: + 3denvar: + nodes: 8 + PEPerNode: 64 + memory: 235GB + secondsPerEnVarMember: 5 + 3dhybrid: + nodes: 8 + PEPerNode: 64 + memory: 235GB + secondsPerEnVarMember: 5 + 3dvar: + nodes: 8 + PEPerNode: 64 + memory: 235GB + 4denvar: + nodes: 28 + PEPerNode: 128 + memory: 235GB + secondsPerEnVarMember: 8 + 4dhybrid: + nodes: 56 + PEPerNode: 64 + memory: 235GB + secondsPerEnVarMember: 8 + 60km: + 3denvar: + nodes: 4 + PEPerNode: 64 + memory: 235GB + secondsPerEnVarMember: 5 + 3dhybrid: + nodes: 4 + PEPerNode: 64 + memory: 235GB + secondsPerEnVarMember: 5 + 3dvar: + nodes: 4 + PEPerNode: 64 + memory: 235GB + 4denvar: + nodes: 14 + PEPerNode: 128 + memory: 235GB + secondsPerEnVarMember: 8 + 4dhybrid: + nodes: 28 + PEPerNode: 64 + memory: 235GB + secondsPerEnVarMember: 8 30km: # Assuming 120 total inner iterations 30km: @@ -255,6 +337,10 @@ variational: nodes: 4 PEPerNode: 64 memory: 235GB + 3dhybrid: + nodes: 4 + PEPerNode: 64 + memory: 235GB 4denvar: nodes: 28 PEPerNode: 128 diff --git a/scenarios/getkf_OIE60km_WarmStart.yaml b/scenarios/getkf_OIE60km_WarmStart.yaml index 81b6e04a..b37f20ce 100644 --- a/scenarios/getkf_OIE60km_WarmStart.yaml +++ b/scenarios/getkf_OIE60km_WarmStart.yaml @@ -9,7 +9,7 @@ externalanalyses: firstbackground: resource: "PANDAC.LaggedGEFS" forecast: - post: [verifyobs, verifymodel] + post: [verifymodel] #verifyobs hofx: retainObsFeedback: False members: diff --git a/scenarios/letkf2D_OIE60km_WarmStart.yaml b/scenarios/letkf2D_OIE60km_WarmStart.yaml index 508c2a02..70d932b8 100644 --- a/scenarios/letkf2D_OIE60km_WarmStart.yaml +++ b/scenarios/letkf2D_OIE60km_WarmStart.yaml @@ -9,7 +9,7 @@ externalanalyses: firstbackground: resource: "PANDAC.LaggedGEFS" forecast: - post: [verifyobs, verifymodel] + post: [verifymodel] #verifyobs members: n: 20 model: diff --git a/scenarios/letkf_OIE60km_WarmStart.yaml b/scenarios/letkf_OIE60km_WarmStart.yaml index eac8db39..bcff1ff9 100644 --- a/scenarios/letkf_OIE60km_WarmStart.yaml +++ b/scenarios/letkf_OIE60km_WarmStart.yaml @@ -9,7 +9,7 @@ externalanalyses: firstbackground: resource: "PANDAC.LaggedGEFS" forecast: - post: [verifyobs, verifymodel] + post: [verifymodel] #verifyobs hofx: retainObsFeedback: False members: diff --git a/test/testinput/3denvar_O30kmIE60km_WarmStart.yaml b/test/testinput/3denvar_O30kmIE60km_WarmStart.yaml index 62184555..1a567325 100644 --- a/test/testinput/3denvar_O30kmIE60km_WarmStart.yaml +++ b/test/testinput/3denvar_O30kmIE60km_WarmStart.yaml @@ -40,11 +40,6 @@ variational: ensemble: forecasts: resource: "PANDAC.EDA" - job: - 30km: - 60km: - 3denvar: - memory: 235GB post: [verifyobs] IRVISlandCoeff: IGBP hofx: diff --git a/test/testinput/3dvar_O30kmIE60km_ColdStart.yaml b/test/testinput/3dvar_O30kmIE60km_ColdStart.yaml index aac2e6b0..24aed9f6 100644 --- a/test/testinput/3dvar_O30kmIE60km_ColdStart.yaml +++ b/test/testinput/3dvar_O30kmIE60km_ColdStart.yaml @@ -3,12 +3,6 @@ externalanalyses: experiment: name: '3dvar_O30kmIE60km_ColdStart_TEST' forecast: - job: - 30km: - nodes: 8 - PEPerNode: 32 # the default is 36 now, but no partition file for 288 core in Duda's directory - baseSeconds: 60 - secondsPerForecastHR: 120 post: [verifyobs, verifymodel] hpc: CriticalQueue: economy @@ -33,11 +27,6 @@ variational: DAType: 3dvar nInnerIterations: [30,] biasCorrection: True - job: - 30km: - 60km: - 3dvar: - memory: 235GB post: [verifyobs] workflow: # test a recent date diff --git a/test/testinput/ForecastFromGFSAnalysesMPT.yaml b/test/testinput/ForecastFromGFSAnalysesMPT.yaml index 60d9c00d..067a7f71 100644 --- a/test/testinput/ForecastFromGFSAnalysesMPT.yaml +++ b/test/testinput/ForecastFromGFSAnalysesMPT.yaml @@ -18,24 +18,10 @@ extendedforecast: # optionally turn on extended forecast post post: [] -forecast: - job: - 30km: - # use 128 PE to match partition file in GraphInfoDir - nodes: 4 - PEPerNode: 32 - hpc: CriticalQueue: economy NonCriticalQueue: economy -initic: - job: - 30km: - # use 128 PE to match partition file in GraphInfoDir - nodes: 4 - PEPerNode: 32 - members: n: 1 diff --git a/tools/update_analysis_states.py b/tools/update_analysis_states.py new file mode 100644 index 00000000..5456b3ca --- /dev/null +++ b/tools/update_analysis_states.py @@ -0,0 +1,36 @@ +import argparse +import netCDF4 as nc + +def update_variables(file1_path, file2_path): + # Open the netCDF files + nc1 = nc.Dataset(file1_path, 'r') + nc2 = nc.Dataset(file2_path, 'a') + + # Get variables from both files + vars_file1 = list(nc1.variables.keys()) + vars_file2 = list(nc2.variables.keys()) + + # Loop through variables in the second file + for var_name in vars_file2: + # Check if the variable is present in the first file + if var_name in vars_file1: + print("processing variable:", var_name) + # Get the variable object from both files + var1 = nc1.variables[var_name] + var2 = nc2.variables[var_name] + + # Update values of the variable in the second file + var2[:] = var1[:] + + # Close the netCDF files + nc1.close() + nc2.close() + +if __name__ == "__main__": + + parser = argparse.ArgumentParser(description='update analysis variables in the background file from the analysis file', formatter_class=argparse.ArgumentDefaultsHelpFormatter) + parser.add_argument('-i', '--filein', help='analysis file', type=str, required=True) + parser.add_argument('-o', '--fileout', help='background file', type=str, required=True) + args = parser.parse_args() + + update_variables(args.filein, args.fileout)