Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
obs space:
name: TC vital storm center pressure
obsdatain:
engine:
type: H5File
obsfile: '{{cycle_dir}}/tcp.{{window_begin}}.nc4'
obsdataout:
engine:
type: H5File
obsfile: '{{cycle_dir}}/{{experiment_id}}.tcp.{{window_begin}}.nc4'
simulated variables: [stationPressure]

obs operator:

# Surface pressure is handled using the correction scheme
name: SfcCorrected
variables:
- name: stationPressure
correction scheme to use: GSL
geovar_geomz: geopotential_height
geovar_sfc_geomz: height_above_mean_sea_level_at_surface
station_altitude: height

obs prior filters:

# Apply variable changes needed for rescaled height coordinate
# ------------------------------------------------------------
- filter: Variable Transforms
Transform: AdjustedHeightCoordinate
SkipWhenNoObs: False

# limit to obs with pressures in valid range
- filter: Domain Check
where:
- variable:
name: MetaData/pressure
minvalue: 85000
maxvalue: 102500

obs post filters:

#ps 180 1 1 3.0 0 0 0 4.0 3.0 1.0 4.0 0.000300 0 0. 0. 0 0. 0.
#tcp 112 0 1 3.0 0 0 0 75.0 5.0 1.0 75.0 0.000000 0 0. 0. 0 0. 0.

- filter: Perform Action
filter variables:
- name: stationPressure
action:
name: inflate error
inflation variable:
name: ObsFunction/ObsErrorFactorSfcPressure
options:
geovar_geomz: geopotential_height
geovar_sfc_geomz: height_above_mean_sea_level_at_surface
station_altitude: height
# assign TempObsErrorData/stationPressure <--- ObsErrorData before changing its Min and Max
- filter: Variable Assignment
assignments:
- name: TempObsErrorData/stationPressure
type: float
function:
name: ObsFunction/Arithmetic
options:
variables:
- name: ObsErrorData/stationPressure
defer to post: true
# set ObsErrorData 100 Pa if it < 100 Pa.
- filter: Perform Action
filter variables:
- name: stationPressure
action:
name: assign error
error parameter: 100
where:
- variable:
name: TempObsErrorData/stationPressure
maxvalue: 100
- variable:
name: TempObsErrorData/stationPressure
value: is_valid
defer to post: true
# set ObsErrorData 500 Pa if it > 500 Pa.
- filter: Perform Action
filter variables:
- name: stationPressure
action:
name: assign error
error parameter: 500
where:
- variable:
name: TempObsErrorData/stationPressure
minvalue: 500
- variable:
name: TempObsErrorData/stationPressure
value: is_valid
defer to post: true

# Background check
- filter: Background Check
filter variables:
- name: stationPressure
threshold: 75.0
action:
name: reject
defer to post: true

# Re-assign error ObsErrorData/stationPressure <--- TempObsErrorData/stationPressure
- filter: Perform Action
filter variables:
- name: stationPressure
action:
name: assign error
error function: TempObsErrorData/stationPressure
where:
- variable:
name: TempObsErrorData/stationPressure
value: is_valid
defer to post: true


Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ observations:
- sfcship
- sfc
- sondes
- tcp
- airs_aqua
- amsr2_gcom-w1
- amsua_aqua
Expand Down Expand Up @@ -275,6 +276,7 @@ observations:
- sfcship
- sfc
- sondes
- tcp
- airs_aqua
- amsr2_gcom-w1
- amsua_aqua
Expand Down
3 changes: 3 additions & 0 deletions src/swell/configuration/jedi/observation_ioda_names.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,9 @@ ioda instrument names:
full name: SSMIS (DMSP-F17)
provider : ncdiag
inst type: radiance
- ioda name: tcp
full name: Tropical Cyclone central pressure
inst type: conventional
- ioda name: vadwind
full name: Velocity Azimuth Display Wind Profile
provider : ncdiag
Expand Down
3 changes: 2 additions & 1 deletion src/swell/suites/3dfgat_atmos/suite_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ class SuiteConfig(QuestionContainer, Enum):
"sfcship",
"sfc",
"sondes",
"ssmis_f17"
"ssmis_f17",
"tcp"
]),
qd.gradient_norm_reduction("1e-3"),
qd.number_of_iterations([10]),
Expand Down
3 changes: 2 additions & 1 deletion src/swell/suites/3dvar_atmos/suite_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ class SuiteConfig(QuestionContainer, Enum):
"sfcship",
"sfc",
"sondes",
"ssmis_f17"
"ssmis_f17",
"tcp"
]),
qd.clean_patterns(['*.txt', '*.csv']),
]
Expand Down
3 changes: 2 additions & 1 deletion src/swell/suites/convert_ncdiags/suite_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ class SuiteConfig(QuestionContainer, Enum):
"sfcship",
"sfc",
"sondes",
"ssmis_f17"
"ssmis_f17",
"tcp"
]),
qd.path_to_gsi_nc_diags("/discover/nobackup/projects/gmao/advda/SwellTestData/"
"ufo_testing/ncdiagv2/%Y%m%d%H"),
Expand Down
3 changes: 2 additions & 1 deletion src/swell/suites/eva_capabilities/suite_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ class SuiteConfig(QuestionContainer, Enum):
"sfcship",
"sfc",
"sondes",
"ssmis_f17"
"ssmis_f17",
"tcp"
]),
qd.ncdiag_experiments(['x0050_fgat']),
qd.clean_patterns(['*.txt', '*.csv']),
Expand Down
3 changes: 2 additions & 1 deletion src/swell/suites/hofx/suite_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ class SuiteConfig(QuestionContainer, Enum):
"sfcship",
"sfc",
"sondes",
"ssmis_f17"
"ssmis_f17",
"tcp"
]),
qd.clean_patterns([]),
]
Expand Down
1 change: 1 addition & 0 deletions src/swell/suites/localensembleda/suite_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ class SuiteConfig(QuestionContainer, Enum):
"scatwind",
"sfcship",
"sfc",
"tcp",
"mhs_metop-b",
"mhs_metop-c",
"mhs_n19",
Expand Down
3 changes: 2 additions & 1 deletion src/swell/suites/ufo_testing/suite_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ class SuiteConfig(QuestionContainer, Enum):
"sfc",
"sfcship",
"sondes",
"ssmis_f17"
"ssmis_f17",
"tcp"
]),
qd.produce_geovals(False),
qd.clean_patterns([
Expand Down
6 changes: 3 additions & 3 deletions src/swell/tasks/get_obs_not_in_r2d2.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def execute(self) -> None:
# --------------------
cycle_date = self.__datetime__.string_directory()

# Get the path and pattern for the background files
# Get the path and pattern for the observation files
# -------------------------------------------------
existing_path = self.config.ioda_locations_not_in_r2d2()

Expand All @@ -50,8 +50,8 @@ def execute(self) -> None:

# Assert that some files were found
# ---------------------------------
self.logger.assert_abort(len(existing_path_files) > 0, f'No background '
'files matching cycle in background directory.')
self.logger.assert_abort(len(existing_path_files) > 0, f'No observation '
'files matching cycle in observation directory.')

# Loop over all the files
# -----------------------
Expand Down