diff --git a/parm/ioda/bufr2ioda/bufr2ioda_insitu_profile_tropical.json b/parm/ioda/bufr2ioda/bufr2ioda_insitu_profile_tropical.json new file mode 100644 index 000000000..8bb4ebd47 --- /dev/null +++ b/parm/ioda/bufr2ioda/bufr2ioda_insitu_profile_tropical.json @@ -0,0 +1,12 @@ +{ + "data_format" : "dbuoy", + "subsets" : "DBUOY", + "source" : "NCEP data tank", + "data_type" : "dbuoy", + "cycle_type" : "{{ RUN }}", + "cycle_datetime" : "{{ current_cycle | to_YMDH }}", + "dump_directory" : "{{ DMPDIR }}", + "ioda_directory" : "{{ COM_OBS }}", + "data_description" : "6-hrly in situ drifting buoy (TAC:drifters, etc) profiles", + "data_provider" : "U.S. NOAA" +} diff --git a/parm/ioda/bufr2ioda/bufr2ioda_insitu_profile_tropical.yaml b/parm/ioda/bufr2ioda/bufr2ioda_insitu_profile_tropical.yaml new file mode 100644 index 000000000..a3a1fc68b --- /dev/null +++ b/parm/ioda/bufr2ioda/bufr2ioda_insitu_profile_tropical.yaml @@ -0,0 +1,11 @@ +cycle_datetime: '{{ current_cycle | to_YMDH }}' +cycle_type: '{{ RUN }}' +data_description: 6-hrly in situ drifting buoy (TAC:drifters, etc) profiles +data_format: dbuoy +data_provider: U.S. NOAA +data_type: dbuoy +dump_directory: '{{ DMPDIR }}' +ioda_directory: '{{ COM_OBS }}' +source: NCEP data tank +subsets: DBUOY +ocean_basin: '{{ OCEAN_BASIN_FILE }}' diff --git a/parm/ioda/bufr2ioda/bufr2ioda_insitu_surface_drifter.json b/parm/ioda/bufr2ioda/bufr2ioda_insitu_surface_drifter.json new file mode 100644 index 000000000..8bb4ebd47 --- /dev/null +++ b/parm/ioda/bufr2ioda/bufr2ioda_insitu_surface_drifter.json @@ -0,0 +1,12 @@ +{ + "data_format" : "dbuoy", + "subsets" : "DBUOY", + "source" : "NCEP data tank", + "data_type" : "dbuoy", + "cycle_type" : "{{ RUN }}", + "cycle_datetime" : "{{ current_cycle | to_YMDH }}", + "dump_directory" : "{{ DMPDIR }}", + "ioda_directory" : "{{ COM_OBS }}", + "data_description" : "6-hrly in situ drifting buoy (TAC:drifters, etc) profiles", + "data_provider" : "U.S. NOAA" +} diff --git a/parm/ioda/bufr2ioda/bufr2ioda_insitu_surface_drifter.yaml b/parm/ioda/bufr2ioda/bufr2ioda_insitu_surface_drifter.yaml new file mode 100644 index 000000000..a3a1fc68b --- /dev/null +++ b/parm/ioda/bufr2ioda/bufr2ioda_insitu_surface_drifter.yaml @@ -0,0 +1,11 @@ +cycle_datetime: '{{ current_cycle | to_YMDH }}' +cycle_type: '{{ RUN }}' +data_description: 6-hrly in situ drifting buoy (TAC:drifters, etc) profiles +data_format: dbuoy +data_provider: U.S. NOAA +data_type: dbuoy +dump_directory: '{{ DMPDIR }}' +ioda_directory: '{{ COM_OBS }}' +source: NCEP data tank +subsets: DBUOY +ocean_basin: '{{ OCEAN_BASIN_FILE }}' diff --git a/parm/soca/obs/config/insitu_profile_tropical.yaml b/parm/soca/obs/config/insitu_profile_tropical.yaml new file mode 100644 index 000000000..146a1fb8c --- /dev/null +++ b/parm/soca/obs/config/insitu_profile_tropical.yaml @@ -0,0 +1,41 @@ +obs space: + name: insitu_profile_tropical + obsdatain: + engine: + type: H5File + obsfile: ${DATA}/obs/${OPREFIX}insitu_profile_tropical.${PDY}${cyc}.nc4 + obsdataout: + engine: + type: H5File + obsfile: ${DATA}/diags/insitu_profile_tropical.${PDY}${cyc}.nc4 + simulated variables: [waterTemperature] + observed variables: [waterTemperature] + io pool: + max pool size: 1 +obs operator: + name: Composite + components: + - name: InsituTemperature + variables: + - name: waterTemperature +obs error: + covariance model: diagonal +obs filters: +- filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/waterTemperature + coefs: + - 1000.0 + +obs localizations: +- localization method: Rossby + base value: 100.0e3 + rossby mult: 1.0 + min grid mult: 2.0 + min value: 200.0e3 + max value: 900.0e3 diff --git a/parm/soca/obs/config/insitu_surface_drifter.yaml b/parm/soca/obs/config/insitu_surface_drifter.yaml new file mode 100644 index 000000000..ec11969e8 --- /dev/null +++ b/parm/soca/obs/config/insitu_surface_drifter.yaml @@ -0,0 +1,41 @@ +obs space: + name: insitu_surface_drifter + obsdatain: + engine: + type: H5File + obsfile: ${DATA}/obs/${OPREFIX}insitu_surface_drifter.${PDY}${cyc}.nc4 + obsdataout: + engine: + type: H5File + obsfile: ${DATA}/diags/insitu_surface_drifter.${PDY}${cyc}.nc4 + simulated variables: [waterTemperature] + observed variables: [waterTemperature] + io pool: + max pool size: 1 +obs operator: + name: Composite + components: + - name: InsituTemperature + variables: + - name: waterTemperature +obs error: + covariance model: diagonal +obs filters: +- filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/waterTemperature + coefs: + - 1000.0 + +obs localizations: +- localization method: Rossby + base value: 100.0e3 + rossby mult: 1.0 + min grid mult: 2.0 + min value: 200.0e3 + max value: 900.0e3 diff --git a/parm/soca/obs/config/sss_smap_l2.yaml b/parm/soca/obs/config/sss_smap_l2.yaml new file mode 100644 index 000000000..ab04a1f5d --- /dev/null +++ b/parm/soca/obs/config/sss_smap_l2.yaml @@ -0,0 +1,44 @@ +obs space: + name: sss_smap_l2 + obsdatain: + engine: + type: H5File + obsfile: !ENV ${DATA}/obs/${OPREFIX}sss_smap_l2.${PDY}${cyc}.nc4 + obsdataout: + engine: + type: H5File + obsfile: !ENV ${DATA}/diags/sss_smap_l2.${PDY}${cyc}.nc4 + simulated variables: [seaSurfaceSalinity] + io pool: + max pool size: 1 +get values: + time interpolation: linear +obs operator: + name: Identity + observation alias file: obsop_name_map.yaml +obs error: + covariance model: diagonal +obs filters: +- filter: Domain Check + where: + - variable: {name: GeoVaLs/sea_area_fraction} + minvalue: 0.9 +- filter: Bounds Check + minvalue: 0.1 + maxvalue: 40.0 +- filter: Background Check + threshold: 5.0 +- filter: Domain Check + action: + name: passivate + where: + - variable: {name: GeoVaLs/sea_surface_temperature} +# minvalue: 10.0 + maxvalue: -4.0 + ## Gaussian_Thinning is having problems with LETKF, try again later +# - filter: Gaussian_Thinning +# horizontal_mesh: 25.0 #km +- filter: Domain Check + where: + - variable: {name: GeoVaLs/distance_from_coast} + minvalue: 100e3 diff --git a/parm/soca/obs/config/sss_smos_l2.yaml b/parm/soca/obs/config/sss_smos_l2.yaml new file mode 100644 index 000000000..87e249792 --- /dev/null +++ b/parm/soca/obs/config/sss_smos_l2.yaml @@ -0,0 +1,44 @@ +obs space: + name: sss_smos_l2 + obsdatain: + engine: + type: H5File + obsfile: !ENV ${DATA}/obs/${OPREFIX}sss_smos_l2.${PDY}${cyc}.nc4 + obsdataout: + engine: + type: H5File + obsfile: !ENV ${DATA}/diags/sss_smos_l2.${PDY}${cyc}.nc4 + simulated variables: [seaSurfaceSalinity] + io pool: + max pool size: 1 +get values: + time interpolation: linear +obs operator: + name: Identity + observation alias file: obsop_name_map.yaml +obs error: + covariance model: diagonal +obs filters: +- filter: Domain Check + where: + - variable: {name: GeoVaLs/sea_area_fraction} + minvalue: 0.9 +- filter: Bounds Check + minvalue: 0.1 + maxvalue: 40.0 +- filter: Background Check + threshold: 5.0 +- filter: Domain Check + action: + name: passivate + where: + - variable: {name: GeoVaLs/sea_surface_temperature} +# minvalue: 10.0 + maxvalue: -4.0 +## Gaussian_Thinning is having problems with LETKF, try again later +# - filter: Gaussian_Thinning +# horizontal_mesh: 25.0 #km +- filter: Domain Check + where: + - variable: {name: GeoVaLs/distance_from_coast} + minvalue: 100e3 diff --git a/parm/soca/obs/obs_list.yaml b/parm/soca/obs/obs_list.yaml index c11dc1ace..84faedf7c 100644 --- a/parm/soca/obs/obs_list.yaml +++ b/parm/soca/obs/obs_list.yaml @@ -2,6 +2,10 @@ observers: # ADT - !INC ${MARINE_OBS_YAML_DIR}/adt_rads_all.yaml +#SSS +- !INC ${MARINE_OBS_YAML_DIR}/sss_smap_l2.yaml +- !INC ${MARINE_OBS_YAML_DIR}/sss_smos_l2.yaml + # SST - !INC ${MARINE_OBS_YAML_DIR}/sst_avhrr_ma_l3u.yaml - !INC ${MARINE_OBS_YAML_DIR}/sst_avhrr_mb_l3u.yaml @@ -41,3 +45,5 @@ observers: #- !INC ${MARINE_OBS_YAML_DIR}/insitu_profile_dbuoyb.yaml #- !INC ${MARINE_OBS_YAML_DIR}/insitu_profile_mbuoy.yaml #- !INC ${MARINE_OBS_YAML_DIR}/insitu_profile_mbuoyb.yaml +- !INC ${MARINE_OBS_YAML_DIR}/insitu_profile_tropical.yaml +- !INC ${MARINE_OBS_YAML_DIR}/insitu_surface_drifter.yaml diff --git a/parm/soca/obsprep/obsprep_config.yaml b/parm/soca/obsprep/obsprep_config.yaml index 02f4edb5d..59c84d552 100644 --- a/parm/soca/obsprep/obsprep_config.yaml +++ b/parm/soca/obsprep/obsprep_config.yaml @@ -1,7 +1,7 @@ observations: # SSS - obs space: - name: sss_smap + name: sss_smap_l2 dmpdir subdir: ocean/sss provider: SMAP type: nc @@ -9,7 +9,7 @@ observations: ocean basin: RECCAP2_region_masks_all_v20221025.nc - obs space: - name: sss_smos + name: sss_smos_l2 provider: SMOS dmpdir subdir: ocean/sss type: nc @@ -319,3 +319,17 @@ observations: dmpdir subdir: atmos type: bufr dmpdir regex: 'gdas.*.mbuoyb.*.bufr_d' + +- obs space: + name: insitu_profile_tropical + provider: GTS + dmpdir subdir: atmos + type: bufr + dmpdir regex: 'gdas.*.dbuoy.*.bufr_d' + +- obs space: + name: insitu_surface_drifter + provider: GTS + dmpdir subdir: atmos + type: bufr + dmpdir regex: 'gdas.*.dbuoy.*.bufr_d'