diff --git a/parm/soca/obs/config/adt_j3.yaml b/parm/soca/obs/config/adt_j3.yaml index c16bf3c15..d897e6e86 100644 --- a/parm/soca/obs/config/adt_j3.yaml +++ b/parm/soca/obs/config/adt_j3.yaml @@ -3,11 +3,11 @@ obs space: obsdatain: engine: type: H5File - obsfile: !ENV ${DATA}/obs/${OPREFIX}adt_j3.${CDATE}.nc4 + obsfile: !ENV ${DATA}/obs/${OPREFIX}adt_j3.${PDY}${cyc}.nc4 obsdataout: engine: type: H5File - obsfile: !ENV ${DATA}/diags/adt_j3.${CDATE}.nc4 + obsfile: !ENV ${DATA}/diags/adt_j3.${PDY}${cyc}.nc4 simulated variables: [absolute_dynamic_topography] obs operator: name: ADT diff --git a/parm/soca/obs/config/icec_emc.yaml b/parm/soca/obs/config/icec_emc.yaml index a04b37328..e0e8f77b3 100644 --- a/parm/soca/obs/config/icec_emc.yaml +++ b/parm/soca/obs/config/icec_emc.yaml @@ -3,11 +3,11 @@ obs space: obsdatain: engine: type: H5File - obsfile: !ENV ${DATA}/obs/${OPREFIX}icec_emc.${CDATE}.nc4 + obsfile: !ENV ${DATA}/obs/${OPREFIX}icec_emc.${PDY}${cyc}.nc4 obsdataout: engine: type: H5File - obsfile: !ENV ${DATA}/diags/icec_emc.${CDATE}.nc4 + obsfile: !ENV ${DATA}/diags/icec_emc.${PDY}${cyc}.nc4 simulated variables: [sea_ice_area_fraction] obs operator: name: Identity diff --git a/parm/soca/obs/config/salt_profile_fnmoc.yaml b/parm/soca/obs/config/salt_profile_fnmoc.yaml index 8e0cab86d..460bc6d15 100644 --- a/parm/soca/obs/config/salt_profile_fnmoc.yaml +++ b/parm/soca/obs/config/salt_profile_fnmoc.yaml @@ -3,11 +3,11 @@ obs space: obsdatain: engine: type: H5File - obsfile: !ENV ${DATA}/obs/${OPREFIX}salt_profile_fnmoc.${CDATE}.nc4 + obsfile: !ENV ${DATA}/obs/${OPREFIX}salt_profile_fnmoc.${PDY}${cyc}.nc4 obsdataout: engine: type: H5File - obsfile: !ENV ${DATA}/diags/salt_profile_fnmoc.${CDATE}.nc4 + obsfile: !ENV ${DATA}/diags/salt_profile_fnmoc.${PDY}${cyc}.nc4 simulated variables: [sea_water_salinity] obs operator: name: Identity diff --git a/parm/soca/obs/config/sss_smap.yaml b/parm/soca/obs/config/sss_smap.yaml index 37fdcbfa8..f0f9c4612 100644 --- a/parm/soca/obs/config/sss_smap.yaml +++ b/parm/soca/obs/config/sss_smap.yaml @@ -3,11 +3,11 @@ obs space: obsdatain: engine: type: H5File - obsfile: !ENV ${DATA}/obs/${OPREFIX}sss_smap.${CDATE}.nc4 + obsfile: !ENV ${DATA}/obs/${OPREFIX}sss_smap.${PDY}${cyc}.nc4 obsdataout: engine: type: H5File - obsfile: !ENV ${DATA}/diags/sss_smap.${CDATE}.nc4 + obsfile: !ENV ${DATA}/diags/sss_smap.${PDY}${cyc}.nc4 simulated variables: [sea_surface_salinity] obs operator: name: Identity diff --git a/parm/soca/obs/config/sst_noaa19_l3u.yaml b/parm/soca/obs/config/sst_noaa19_l3u.yaml index c0906f02c..898e90b68 100644 --- a/parm/soca/obs/config/sst_noaa19_l3u.yaml +++ b/parm/soca/obs/config/sst_noaa19_l3u.yaml @@ -3,11 +3,11 @@ obs space: obsdatain: engine: type: H5File - obsfile: !ENV ${DATA}/obs/${OPREFIX}sst_noaa19_l3u.${CDATE}.nc4 + obsfile: !ENV ${DATA}/obs/${OPREFIX}sst_noaa19_l3u.${PDY}${cyc}.nc4 obsdataout: engine: type: H5File - obsfile: !ENV ${DATA}/diags/sst_noaa19_l3u.${CDATE}.nc4 + obsfile: !ENV ${DATA}/diags/sst_noaa19_l3u.${PDY}${cyc}.nc4 simulated variables: [sea_surface_temperature] obs operator: name: Identity diff --git a/parm/soca/obs/config/sst_noaa19_l3u_so025.yaml b/parm/soca/obs/config/sst_noaa19_l3u_so025.yaml index 3e76122e6..264acc504 100644 --- a/parm/soca/obs/config/sst_noaa19_l3u_so025.yaml +++ b/parm/soca/obs/config/sst_noaa19_l3u_so025.yaml @@ -3,11 +3,11 @@ obs space: obsdatain: engine: type: H5File - obsfile: !ENV ${DATA}/obs/${OPREFIX}sst_noaa19_l3u_so025.${CDATE}.nc4 + obsfile: !ENV ${DATA}/obs/${OPREFIX}sst_noaa19_l3u_so025.${PDY}${cyc}.nc4 obsdataout: engine: type: H5File - obsfile: !ENV ${DATA}/diags/sst_noaa19_l3u_so025.${CDATE}.nc4 + obsfile: !ENV ${DATA}/diags/sst_noaa19_l3u_so025.${PDY}${cyc}.nc4 simulated variables: [sea_surface_temperature] io pool: max pool size: 1 diff --git a/scripts/exgdas_global_marine_analysis_prep.py b/scripts/exgdas_global_marine_analysis_prep.py index f58f7c593..86894a80e 100755 --- a/scripts/exgdas_global_marine_analysis_prep.py +++ b/scripts/exgdas_global_marine_analysis_prep.py @@ -161,7 +161,7 @@ def gen_bkg_list(bkg_path, out_path, window_begin=' ', file_type='gdas.t*.ocnf00 ufsda.mkdir(bkg_dir) # create output directory for soca DA -anl_out = os.path.join(comout, 'ocnanal_'+os.getenv('CDATE'), 'Data') +anl_out = os.path.join(comout, 'ocnanal_' + os.getenv('cyc'), 'Data') ufsda.mkdir(anl_out) ufsda.symlink(anl_out, os.path.join(anl_dir, 'Data'), remove=False) @@ -280,7 +280,7 @@ def gen_bkg_list(bkg_path, out_path, window_begin=' ', file_type='gdas.t*.ocnf00 '3dvarfgat.yaml') half_assim_freq = timedelta(hours=int(os.getenv('assim_freq'))/2) -window_begin = datetime.strptime(os.getenv('CDATE'), '%Y%m%d%H') - half_assim_freq +window_begin = datetime.strptime(os.getenv('PDY')+os.getenv('cyc'), '%Y%m%d%H') - half_assim_freq gen_bkg_list(bkg_path=os.getenv('COMIN_GES'), out_path=bkg_dir, window_begin=window_begin, diff --git a/test/soca/CMakeLists.txt b/test/soca/CMakeLists.txt index fbb979427..2b38332c1 100644 --- a/test/soca/CMakeLists.txt +++ b/test/soca/CMakeLists.txt @@ -73,7 +73,7 @@ add_test(NAME test_gdasapp_soca_obsdb WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/soca/obs/) set_tests_properties(test_gdasapp_soca_obsdb PROPERTIES - ENVIRONMENT "PYTHONPATH=${PROJECT_BINARY_DIR}/ush:$ENV{PYTHONPATH};OBS_DIR=${OBS_DIR}") + ENVIRONMENT "PYTHONPATH=${PROJECT_BINARY_DIR}/ush:${PROJECT_SOURCE_DIR}/../../ush/python/pygw/src:$ENV{PYTHONPATH};OBS_DIR=${OBS_DIR}") # Test exgdas_global_marine_analysis_prep.py # ------------------------------------------ @@ -92,7 +92,7 @@ add_test(NAME test_gdasapp_soca_ana_prep # ----------------------------------------- add_test(NAME test_gdasapp_soca_ana_run COMMAND ${PROJECT_SOURCE_DIR}/test/soca/test_run.sh ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/soca/3dvar/ocnanal_2018041512) + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/soca/3dvar/ocnanal_12) set_tests_properties(test_gdasapp_soca_ana_run PROPERTIES DEPENDS "test_gdasapp_soca_ana_prep" diff --git a/test/soca/gw/config.base b/test/soca/gw/config.base index d055d9f29..6b194dafc 100644 --- a/test/soca/gw/config.base +++ b/test/soca/gw/config.base @@ -95,6 +95,7 @@ export BASE_ENV="$HOMEgfs/env" export BASE_JOB="$HOMEgfs/jobs/rocoto" # EXPERIMENT specific environment parameters +CDATE = ${PDY}${cyc} export SDATE=2021032318 export FDATE=@FDATE@ export EDATE=2021032418 diff --git a/test/soca/gw/runtime_vars.sh b/test/soca/gw/runtime_vars.sh index 5430eeccb..19f0cf375 100644 --- a/test/soca/gw/runtime_vars.sh +++ b/test/soca/gw/runtime_vars.sh @@ -7,7 +7,6 @@ export HOMEgfs export PDY=20180415 export cyc=12 export gcyc=06 -export CDATE=2018041512 export ROTDIR="${bindir}/test/soca/gw/testrun/ROTDIRS" export DATAROOT="${bindir}/test/soca/gw/testrun/RUNDIRS/gdas_test" export COMIN_GES="${bindir}/test/soca/bkg" diff --git a/test/soca/runtime_vars.sh b/test/soca/runtime_vars.sh index 843670022..b54bd853b 100644 --- a/test/soca/runtime_vars.sh +++ b/test/soca/runtime_vars.sh @@ -5,18 +5,16 @@ project_binary_dir=$1 project_source_dir=$2 # Prepare runtime environement -export CDATE=2018041512 # Center of current cycle date +export PDY=20180415 # Center of current cycle date +export cyc=12 # Center of current cycle date export GDATE=2018041506 # Center of previous cycle date export gcyc=$(echo $GDATE | cut -c9-10) export CDUMP=gdas export GDUMP=gdas export OPREFIX=${CDUMP}.t${cyc}z. -export PDY=20180415 -export cyc=12 -export OPREFIX=${CDUMP}.t${cyc}z. export assim_freq=6 # DA window export COMOUT=${project_binary_dir}/test/soca/3dvar -export DATA=${project_binary_dir}/test/soca/3dvar/ocnanal_${CDATE} +export DATA=${project_binary_dir}/test/soca/3dvar/ocnanal_${cyc} export COMIN_OBS=${project_binary_dir}/test/soca/obs/r2d2-shared export COMIN_GES=${project_binary_dir}/test/soca/bkg # Backgrounds from previous forecast export CASE_ANL="C48" # TODO: Replace with or add OCNRES diff --git a/test/soca/test_prep.sh b/test/soca/test_prep.sh index 763f5503b..64b99065b 100755 --- a/test/soca/test_prep.sh +++ b/test/soca/test_prep.sh @@ -7,7 +7,7 @@ project_source_dir=$2 source ${project_source_dir}/test/soca/test_utils.sh # Remove previously fetched obs -rm -f ${project_binary_dir}/test/soca/3dvar/ocnanal_2018041512/obs/gdas.t12z.{sst,adt,sss,salt,icec}*.nc4 +rm -f ${project_binary_dir}/test/soca/3dvar/ocnanal_12/obs/gdas.t12z.{sst,adt,sss,salt,icec}*.nc4 # Export runtime env. variables source ${project_source_dir}/test/soca/runtime_vars.sh $project_binary_dir $project_source_dir @@ -40,15 +40,15 @@ for o in $obslist; do continue ;; "ocn_filename:") - base=${project_binary_dir}/test/soca/3dvar/ocnanal_2018041512/bkg/ + base=${project_binary_dir}/test/soca/3dvar/ocnanal_12/bkg/ continue ;; "ice_filename:") - base=${project_binary_dir}/test/soca/3dvar/ocnanal_2018041512/bkg/ + base=${project_binary_dir}/test/soca/3dvar/ocnanal_12/bkg/ continue ;; "remap_filename:") - base=${project_binary_dir}/test/soca/3dvar/ocnanal_2018041512/ + base=${project_binary_dir}/test/soca/3dvar/ocnanal_12/ continue ;; esac diff --git a/ush/ufsda/misc_utils.py b/ush/ufsda/misc_utils.py index 6caa2fe0e..e9100bbd3 100644 --- a/ush/ufsda/misc_utils.py +++ b/ush/ufsda/misc_utils.py @@ -116,7 +116,8 @@ def get_env_config(component='atm'): # get config dict based on environment variables # TODO break this into component specific sections # datetime objects - valid_time = datetime_from_cdate(os.environ['CDATE']) + cdate = os.environ['PDY']+os.environ['cyc'] + valid_time = datetime_from_cdate(cdate) assim_freq = int(os.environ['assim_freq']) prev_cycle = valid_time - dt.timedelta(hours=assim_freq) window_begin = valid_time - dt.timedelta(hours=assim_freq/2) @@ -130,7 +131,8 @@ def get_env_config(component='atm'): 'ATM_WINDOW_LENGTH': f"PT{assim_freq}H", 'OBS_DIR': os.environ['COMOUT'], 'OBS_PREFIX': f"{os.environ['CDUMP']}.t{os.environ['cyc']}z.", - 'OBS_DATE': os.environ['CDATE'], + 'target_dir': os.environ['COMOUT'], + 'OBS_DATE': cdate, 'BIAS_IN_DIR': os.environ['COMOUT'], 'BIAS_PREFIX': f"{os.environ['GDUMP']}.t{os.environ['gcyc']}z.", 'BIAS_DATE': f"{os.environ['GDATE']}",