From 4f48070cd2f6feabae24a095b4fbc1a4311704b0 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 24 Feb 2026 16:40:26 -0500 Subject: [PATCH 01/38] Add experiment ID for R2D2 --- .../prepare_config_and_suite.py | 51 ++++++++++++++++++- src/swell/suites/suite_questions.py | 3 +- src/swell/tasks/save_obs_diags.py | 2 +- src/swell/tasks/save_restart.py | 4 +- src/swell/utilities/question_defaults.py | 9 ++++ 5 files changed, 63 insertions(+), 6 deletions(-) diff --git a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py index 7ba60dd75..5d0542fae 100644 --- a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py +++ b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py @@ -1,5 +1,4 @@ -# (C) Copyright 2021- United States Government as represented by the Administrator of the -# National Aeronautics and Space Administration. All Rights Reserved. + # # 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. @@ -13,6 +12,7 @@ from ruamel.yaml import YAML from collections.abc import Mapping from typing import Union, Tuple, Optional +import random from swell.swell_path import get_swell_path from swell.deployment.prepare_config_and_suite.question_and_answer_cli import GetAnswerCli @@ -23,6 +23,7 @@ from swell.utilities.dictionary import update_dict from swell.tasks.task_questions import TaskQuestions as task_questions from swell.suites.all_suites import AllSuites +from swell.utilities.r2d2 import load_r2d2_credentials # -------------------------------------------------------------------------------------------------- @@ -326,6 +327,7 @@ def override_with_defaults(self) -> None: # Look for defer_to_code in the model_ind dictionary # -------------------------------------------------- for key, val in self.question_dictionary_model_ind.items(): + if key == 'model_components': if val['default_value'] == 'defer_to_code': val['default_value'] = self.possible_model_components @@ -335,6 +337,13 @@ def override_with_defaults(self) -> None: if key == 'experiment_id' and val['default_value'] == 'defer_to_code': val['default_value'] = f'swell-{self.suite}' + if key == 'r2d2_experiment_id' and val['default_value'] == 'defer_to_code': + swell_id = self.question_dictionary_model_ind['experiment_id']['default_value'] + if swell_id == 'defer_to_code': + swell_id = f'swell-{self.suite}' + self.question_dictionary_model_ind['experiment_id']['default_value'] = swell_id + val['default_value'] = self.create_r2d2_id(swell_id) + # ---------------------------------------------------------------------------------------------- def override_with_external(self) -> None: @@ -689,4 +698,42 @@ def get_dynamic_tasks(self, question_list: list) -> list: return tasks + # ---------------------------------------------------------------------------------------------- + + def random_hex_id(self, swell_id: str, length: int = 8): + return f"{swell_id}-{random.randrange(16**length):0{length}x}" + + # ---------------------------------------------------------------------------------------------- + + def create_r2d2_id(self, swell_id: str) -> str: + + # Load credentials to allow search + load_r2d2_credentials(self.logger, self.platform) + + import r2d2 + + self.logger.info('Generating Experiment ID for R2D2') + + # Only try this 10 times + for i in range(10): + temp_id = self.random_hex_id(swell_id, length=8) + try: + r2d2.get(item='experiment', name=temp_id) + except Exception as e: + + if '400 Client Error' in str(e): + user = r2d2.get_client_user() + host = r2d2.get_client_host() + compiler = r2d2.get_client_compiler() + + r2d2.register(item='experiment', + name=temp_id, + user=user, + compute_host=f'{host}-{compiler}', + lifetime='debug') + + return temp_id + + raise Exception('Could not find a valid experiment_id for R2D2') + # -------------------------------------------------------------------------------------------------- diff --git a/src/swell/suites/suite_questions.py b/src/swell/suites/suite_questions.py index 247bee869..a4da99431 100644 --- a/src/swell/suites/suite_questions.py +++ b/src/swell/suites/suite_questions.py @@ -40,7 +40,8 @@ class SuiteQuestions(QuestionContainer, Enum): qd.start_cycle_point(), qd.final_cycle_point(), qd.model_components(), - qd.runahead_limit() + qd.runahead_limit(), + qd.r2d2_experiment_id() ] ) diff --git a/src/swell/tasks/save_obs_diags.py b/src/swell/tasks/save_obs_diags.py index d03c6ba0c..0cd489434 100644 --- a/src/swell/tasks/save_obs_diags.py +++ b/src/swell/tasks/save_obs_diags.py @@ -81,7 +81,7 @@ def execute(self) -> None: try: r2d2.store( item='feedback', - experiment=self.experiment_id(), + experiment=self.config.r2d2_experiment_id(), observation_type=name, file_extension=obs_path_file.split('.')[-1], window_length='PT6H', diff --git a/src/swell/tasks/save_restart.py b/src/swell/tasks/save_restart.py index c251cebe1..91445adb6 100644 --- a/src/swell/tasks/save_restart.py +++ b/src/swell/tasks/save_restart.py @@ -68,7 +68,7 @@ def execute(self): step=window_length, resolution=self.config.horizontal_resolution(), type='fc', - experiment=self.experiment_id()) + experiment=self.config.r2d2_experiment_id()) # Loop over an for an in r2d2_dict['store']['an']: @@ -79,7 +79,7 @@ def execute(self): fc_date_rendering='analysis', resolution=self.config.horizontal_resolution(), type='an', - experiment=self.experiment_id()) + experiment=self.config.r2d2_experiment_id()) # Oceanstats needs special handling from the forecast folder. It is produced at the end of # the forecast and could be saved as a good metric. We are replicating the same structure as diff --git a/src/swell/utilities/question_defaults.py b/src/swell/utilities/question_defaults.py index bf11de750..a63faa2c6 100644 --- a/src/swell/utilities/question_defaults.py +++ b/src/swell/utilities/question_defaults.py @@ -152,6 +152,15 @@ class parser_options(SuiteQuestion): # -------------------------------------------------------------------------------------------------- + @dataclass + class r2d2_experiment_id(SuiteQuestion): + default_value: str = "defer_to_code" + question_name: str = "r2d2_experiment_id" + prompt: str = "What experiment_id should r2d2 reference for experiment?" + widget_type: WType = WType.STRING + + # -------------------------------------------------------------------------------------------------- + @dataclass class runahead_limit(SuiteQuestion): default_value: str = "P4" From d32c3b9133c1bdf7fdbcc6f2760ca027fddb1b20 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 24 Feb 2026 16:56:30 -0500 Subject: [PATCH 02/38] Change location that registry happens in --- src/swell/deployment/create_experiment.py | 19 +++++++++++++++++++ .../prepare_config_and_suite.py | 10 ---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index 1c2105e9f..c565c019a 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -237,6 +237,25 @@ def create_experiment_directory( with open(os.path.join(exp_suite_path, 'experiment.yaml'), 'w') as file: file.write(experiment_dict_str) + # Register the experiment in R2D2 + # ------------------------------- + + import r2d2 + from swell.utilities.r2d2 import load_r2d2_credentials + + r2d2_id = experiment_dict['r2d2_experiment_id'] + + load_r2d2_credentials(logger, platform) + user = r2d2.get_client_user() + host = r2d2.get_client_host() + compiler = r2d2.get_client_compiler() + + r2d2.register(item='experiment', + name=r2d2_id, + user=user, + compute_host=f'{host}-{compiler}', + lifetime='debug') + # At this point we need to write the complete suite file with all templates resolved. Call the # function to build the scheduling dictionary, combine with the experiment dictionary, # resolve the templates and write the suite file to the experiment suite directory. diff --git a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py index 5d0542fae..db5b0e870 100644 --- a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py +++ b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py @@ -722,16 +722,6 @@ def create_r2d2_id(self, swell_id: str) -> str: except Exception as e: if '400 Client Error' in str(e): - user = r2d2.get_client_user() - host = r2d2.get_client_host() - compiler = r2d2.get_client_compiler() - - r2d2.register(item='experiment', - name=temp_id, - user=user, - compute_host=f'{host}-{compiler}', - lifetime='debug') - return temp_id raise Exception('Could not find a valid experiment_id for R2D2') From 28be5ba804576df852637e76c600412fa2e45f26 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 24 Feb 2026 17:03:25 -0500 Subject: [PATCH 03/38] add key for experiment lifetime --- src/swell/deployment/create_experiment.py | 31 ++++++++++++----------- src/swell/suites/suite_questions.py | 3 ++- src/swell/utilities/question_defaults.py | 10 ++++++++ 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index c565c019a..14dede765 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -239,22 +239,23 @@ def create_experiment_directory( # Register the experiment in R2D2 # ------------------------------- - - import r2d2 - from swell.utilities.r2d2 import load_r2d2_credentials + if 'r2d2_experiment_id' in experiment_dict: + import r2d2 + from swell.utilities.r2d2 import load_r2d2_credentials - r2d2_id = experiment_dict['r2d2_experiment_id'] - - load_r2d2_credentials(logger, platform) - user = r2d2.get_client_user() - host = r2d2.get_client_host() - compiler = r2d2.get_client_compiler() - - r2d2.register(item='experiment', - name=r2d2_id, - user=user, - compute_host=f'{host}-{compiler}', - lifetime='debug') + r2d2_id = experiment_dict['r2d2_experiment_id'] + r2d2_lifetime = experiment_dict['r2d2_experiment_lifetime'] + + load_r2d2_credentials(logger, platform) + user = r2d2.get_client_user() + host = r2d2.get_client_host() + compiler = r2d2.get_client_compiler() + + r2d2.register(item='experiment', + name=r2d2_id, + user=user, + compute_host=f'{host}-{compiler}', + lifetime=r2d2_lifetime) # At this point we need to write the complete suite file with all templates resolved. Call the # function to build the scheduling dictionary, combine with the experiment dictionary, diff --git a/src/swell/suites/suite_questions.py b/src/swell/suites/suite_questions.py index a4da99431..2073e69b9 100644 --- a/src/swell/suites/suite_questions.py +++ b/src/swell/suites/suite_questions.py @@ -41,7 +41,8 @@ class SuiteQuestions(QuestionContainer, Enum): qd.final_cycle_point(), qd.model_components(), qd.runahead_limit(), - qd.r2d2_experiment_id() + qd.r2d2_experiment_id(), + qd.r2d2_experiment_lifetime() ] ) diff --git a/src/swell/utilities/question_defaults.py b/src/swell/utilities/question_defaults.py index a63faa2c6..521220ae5 100644 --- a/src/swell/utilities/question_defaults.py +++ b/src/swell/utilities/question_defaults.py @@ -161,6 +161,16 @@ class r2d2_experiment_id(SuiteQuestion): # -------------------------------------------------------------------------------------------------- + @dataclass + class r2d2_experiment_lifetime(SuiteQuestion): + default_value: str = "debug" + question_name: str = "r2d2_experiment_lifetime" + options: list = mutable_field(['debug', 'science', 'publication', 'release']) + prompt: str = "What lifetime should the experiment have in R2D2?" + widget_type: WType = WType.STRING + + # -------------------------------------------------------------------------------------------------- + @dataclass class runahead_limit(SuiteQuestion): default_value: str = "P4" From 3d571cf7bd5dc41ae07496d9f1ad4cc09659292e Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 24 Feb 2026 17:13:58 -0500 Subject: [PATCH 04/38] pycodestyle --- src/swell/deployment/create_experiment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index 14dede765..286d22939 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -242,7 +242,7 @@ def create_experiment_directory( if 'r2d2_experiment_id' in experiment_dict: import r2d2 from swell.utilities.r2d2 import load_r2d2_credentials - + r2d2_id = experiment_dict['r2d2_experiment_id'] r2d2_lifetime = experiment_dict['r2d2_experiment_lifetime'] From 1e65b35ff797cb4b6c2ff9804f435dc88c597087 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Wed, 25 Feb 2026 10:22:00 -0500 Subject: [PATCH 05/38] Refactor --- src/swell/deployment/create_experiment.py | 45 +++++++++-------- .../prepare_config_and_suite.py | 33 +------------ src/swell/utilities/r2d2.py | 48 ++++++++++++++++++- 3 files changed, 73 insertions(+), 53 deletions(-) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index 286d22939..b73ee23ca 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -163,6 +163,31 @@ def prepare_config( logger.abort(f'SLURM file contains invalid keys: {slurm_invalid_keys}') experiment_dict = {**experiment_dict, **slurm_dict} + # Register the experiment in R2D2 + # ------------------------------- + if 'r2d2_experiment_id' in experiment_dict: + + import r2d2 + from swell.utilities.r2d2 import load_r2d2_credentials, unique_r2d2_id + + r2d2_id = experiment_dict['r2d2_experiment_id'] + + unique_id = unique_r2d2_id(r2d2_id, platform) + experiment_dict['r2d2_experiment_id'] = unique_id + + r2d2_lifetime = experiment_dict['r2d2_experiment_lifetime'] + + load_r2d2_credentials(logger, platform) + user = r2d2.get_client_user() + host = r2d2.get_client_host() + compiler = r2d2.get_client_compiler() + + r2d2.register(item='experiment', + name=unique_id, + user=user, + compute_host=f'{host}-{compiler}', + lifetime=r2d2_lifetime) + # Expand all environment vars in the dictionary # --------------------------------------------- output = io.StringIO() @@ -237,26 +262,6 @@ def create_experiment_directory( with open(os.path.join(exp_suite_path, 'experiment.yaml'), 'w') as file: file.write(experiment_dict_str) - # Register the experiment in R2D2 - # ------------------------------- - if 'r2d2_experiment_id' in experiment_dict: - import r2d2 - from swell.utilities.r2d2 import load_r2d2_credentials - - r2d2_id = experiment_dict['r2d2_experiment_id'] - r2d2_lifetime = experiment_dict['r2d2_experiment_lifetime'] - - load_r2d2_credentials(logger, platform) - user = r2d2.get_client_user() - host = r2d2.get_client_host() - compiler = r2d2.get_client_compiler() - - r2d2.register(item='experiment', - name=r2d2_id, - user=user, - compute_host=f'{host}-{compiler}', - lifetime=r2d2_lifetime) - # At this point we need to write the complete suite file with all templates resolved. Call the # function to build the scheduling dictionary, combine with the experiment dictionary, # resolve the templates and write the suite file to the experiment suite directory. diff --git a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py index db5b0e870..e66f2110e 100644 --- a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py +++ b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py @@ -12,7 +12,6 @@ from ruamel.yaml import YAML from collections.abc import Mapping from typing import Union, Tuple, Optional -import random from swell.swell_path import get_swell_path from swell.deployment.prepare_config_and_suite.question_and_answer_cli import GetAnswerCli @@ -23,8 +22,6 @@ from swell.utilities.dictionary import update_dict from swell.tasks.task_questions import TaskQuestions as task_questions from swell.suites.all_suites import AllSuites -from swell.utilities.r2d2 import load_r2d2_credentials - # -------------------------------------------------------------------------------------------------- @@ -342,7 +339,7 @@ def override_with_defaults(self) -> None: if swell_id == 'defer_to_code': swell_id = f'swell-{self.suite}' self.question_dictionary_model_ind['experiment_id']['default_value'] = swell_id - val['default_value'] = self.create_r2d2_id(swell_id) + val['default_value'] = swell_id # ---------------------------------------------------------------------------------------------- @@ -698,32 +695,4 @@ def get_dynamic_tasks(self, question_list: list) -> list: return tasks - # ---------------------------------------------------------------------------------------------- - - def random_hex_id(self, swell_id: str, length: int = 8): - return f"{swell_id}-{random.randrange(16**length):0{length}x}" - - # ---------------------------------------------------------------------------------------------- - - def create_r2d2_id(self, swell_id: str) -> str: - - # Load credentials to allow search - load_r2d2_credentials(self.logger, self.platform) - - import r2d2 - - self.logger.info('Generating Experiment ID for R2D2') - - # Only try this 10 times - for i in range(10): - temp_id = self.random_hex_id(swell_id, length=8) - try: - r2d2.get(item='experiment', name=temp_id) - except Exception as e: - - if '400 Client Error' in str(e): - return temp_id - - raise Exception('Could not find a valid experiment_id for R2D2') - # -------------------------------------------------------------------------------------------------- diff --git a/src/swell/utilities/r2d2.py b/src/swell/utilities/r2d2.py index 5810f4b7f..963632a0d 100644 --- a/src/swell/utilities/r2d2.py +++ b/src/swell/utilities/r2d2.py @@ -9,10 +9,11 @@ import os from ruamel.yaml import YAML +import random from swell.swell_path import get_swell_path from swell.utilities.jinja2 import template_string_jinja2 -from swell.utilities.logger import Logger +from swell.utilities.logger import get_logger, Logger # -------------------------------------------------------------------------------------------------- @@ -59,6 +60,8 @@ def create_r2d2_config( with open(r2d2_config_file, 'w') as f: f.write(r2d2_config_file_template_str) +# -------------------------------------------------------------------------------------------------- + def _get_platform_r2d2_config(logger: Logger, platform: str = None) -> tuple: if not platform: @@ -95,6 +98,8 @@ def _get_platform_r2d2_config(logger: Logger, platform: str = None) -> tuple: logger.warning(f"Unknown platform '{platform}', cannot determine R2D2 host/compiler") return None, None +# -------------------------------------------------------------------------------------------------- + def load_r2d2_credentials( logger: Logger, @@ -161,5 +166,46 @@ def load_r2d2_credentials( logger.info("R2D2 v3 credentials loaded successfully") +# ---------------------------------------------------------------------------------------------- + + +def random_hex_id(swell_id: str, length: int = 8): + return f"{swell_id}-{random.randrange(16**length):0{length}x}" + +# ---------------------------------------------------------------------------------------------- + + +def experiment_exists(r2d2_id: str): + import r2d2 + + try: + r2d2.get(item='experiment', name=r2d2_id) + except Exception as e: + if '400 Client Error' in str(e): + return False + + return True # ---------------------------------------------------------------------------------------------- + + +def unique_r2d2_id(swell_id: str, platform: str) -> str: + logger = get_logger('CreateR2D2ID') + + # Load credentials to allow search + load_r2d2_credentials(logger, platform) + + # Just use the ID if it doesn't exist + if not experiment_exists(swell_id): + return swell_id + + # If not, append an unused hex id + # Only try this 10 times + for i in range(10): + temp_id = random_hex_id(swell_id, length=8) + if not experiment_exists(temp_id): + return temp_id + + raise Exception('Could not find a valid experiment_id for R2D2') + +# -------------------------------------------------------------------------------------------------- From f69dbe55feeebfc4a6e5eaa08732a50cc4b09e4a Mon Sep 17 00:00:00 2001 From: ftgoktas Date: Wed, 25 Feb 2026 12:44:51 -0500 Subject: [PATCH 06/38] Load r2d2 modules during experiment creation (#701). --- src/swell/deployment/create_experiment.py | 7 ++-- src/swell/swell.py | 6 ++++ src/swell/utilities/r2d2.py | 43 ++++++++++++++++++++++- 3 files changed, 53 insertions(+), 3 deletions(-) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index b73ee23ca..bf8196017 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -167,8 +167,12 @@ def prepare_config( # ------------------------------- if 'r2d2_experiment_id' in experiment_dict: + from swell.utilities.r2d2 import load_r2d2_credentials, load_r2d2_module, unique_r2d2_id + + load_r2d2_credentials(logger, platform) + load_r2d2_module(logger, platform) + import r2d2 - from swell.utilities.r2d2 import load_r2d2_credentials, unique_r2d2_id r2d2_id = experiment_dict['r2d2_experiment_id'] @@ -177,7 +181,6 @@ def prepare_config( r2d2_lifetime = experiment_dict['r2d2_experiment_lifetime'] - load_r2d2_credentials(logger, platform) user = r2d2.get_client_user() host = r2d2.get_client_host() compiler = r2d2.get_client_compiler() diff --git a/src/swell/swell.py b/src/swell/swell.py index 944a43779..923ab779b 100644 --- a/src/swell/swell.py +++ b/src/swell/swell.py @@ -112,6 +112,12 @@ def create( suite (str): Name of the suite you wish to run. \n """ + # Load R2D2 credentials + from swell.utilities.r2d2 import load_r2d2_credentials + from swell.utilities.logger import get_logger + logger = get_logger("Swell Create") + load_r2d2_credentials(logger, platform) + # Create the experiment directory create_experiment_directory(suite, input_method, platform, override, advanced, slurm) diff --git a/src/swell/utilities/r2d2.py b/src/swell/utilities/r2d2.py index 963632a0d..b3d60e558 100644 --- a/src/swell/utilities/r2d2.py +++ b/src/swell/utilities/r2d2.py @@ -16,7 +16,48 @@ from swell.utilities.logger import get_logger, Logger # -------------------------------------------------------------------------------------------------- - +import subprocess + +# Platform-specific R2D2 module config +_R2D2_MODULE_CONFIG = { + 'nccs_discover_sles15': { + 'module_path': '/discover/nobackup/projects/gmao/advda/JediOpt/modulefiles/core', + 'module_name': 'r2d2-client/112025', + }, + 'nccs_discover_cascade': { + 'module_path': '/discover/nobackup/projects/gmao/advda/JediOpt/modulefiles/core', + 'module_name': 'r2d2-client/112025', + }, +} + +def load_r2d2_module(logger: Logger, platform: str) -> None: + """Load R2D2 module via bash, capture env, apply to current process.""" + if platform not in _R2D2_MODULE_CONFIG: + return + config = _R2D2_MODULE_CONFIG[platform] + cmd = ( + f'source /usr/share/lmod/lmod/init/bash && ' + f'module use -a {config["module_path"]} && ' + f'module load {config["module_name"]} && env' + ) + try: + result = subprocess.run(['bash', '-c', cmd], capture_output=True, text=True, timeout=30) + if result.returncode != 0: + logger.warning(f'Failed to load R2D2 module: {result.stderr}') + return + for line in result.stdout.strip().split('\n'): + if '=' in line: + key, _, value = line.partition('=') + os.environ[key] = value + # PYTHONPATH needs to be added to sys.path for import to work + if key == 'PYTHONPATH': + import sys + for p in value.split(':'): + if p and p not in sys.path: + sys.path.insert(0, p) + logger.info(f'Loaded R2D2 module: {config["module_name"]}') + except Exception as e: + logger.warning(f'Could not load R2D2 module: {e}') def create_r2d2_config( logger: Logger, From 7041a44a3d729913f5aab597ba6dd840b25f9365 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Wed, 25 Feb 2026 15:33:21 -0500 Subject: [PATCH 07/38] few touches --- src/swell/swell.py | 5 ----- src/swell/utilities/r2d2.py | 8 +++++++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/swell/swell.py b/src/swell/swell.py index 923ab779b..94675da52 100644 --- a/src/swell/swell.py +++ b/src/swell/swell.py @@ -112,11 +112,6 @@ def create( suite (str): Name of the suite you wish to run. \n """ - # Load R2D2 credentials - from swell.utilities.r2d2 import load_r2d2_credentials - from swell.utilities.logger import get_logger - logger = get_logger("Swell Create") - load_r2d2_credentials(logger, platform) # Create the experiment directory create_experiment_directory(suite, input_method, platform, override, advanced, slurm) diff --git a/src/swell/utilities/r2d2.py b/src/swell/utilities/r2d2.py index b3d60e558..bc4f08c2d 100644 --- a/src/swell/utilities/r2d2.py +++ b/src/swell/utilities/r2d2.py @@ -10,13 +10,13 @@ import os from ruamel.yaml import YAML import random +import subprocess from swell.swell_path import get_swell_path from swell.utilities.jinja2 import template_string_jinja2 from swell.utilities.logger import get_logger, Logger # -------------------------------------------------------------------------------------------------- -import subprocess # Platform-specific R2D2 module config _R2D2_MODULE_CONFIG = { @@ -30,6 +30,9 @@ }, } +# -------------------------------------------------------------------------------------------------- + + def load_r2d2_module(logger: Logger, platform: str) -> None: """Load R2D2 module via bash, capture env, apply to current process.""" if platform not in _R2D2_MODULE_CONFIG: @@ -59,6 +62,9 @@ def load_r2d2_module(logger: Logger, platform: str) -> None: except Exception as e: logger.warning(f'Could not load R2D2 module: {e}') +# ---------------------------------------------------------------------------------------------- + + def create_r2d2_config( logger: Logger, platform: str, From 07714eab8bed721f83c78e1e9b055dab4152fe80 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Thu, 26 Feb 2026 13:02:22 -0500 Subject: [PATCH 08/38] fix mistake --- .../prepare_config_and_suite/prepare_config_and_suite.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py index e66f2110e..0b230f845 100644 --- a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py +++ b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py @@ -1,4 +1,5 @@ - +# (C) Copyright 2021- United States Government as represented by the Administrator of the +# National Aeronautics and Space Administration. All Rights Reserved. # # 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. From 07add942f54cd29d1a4146606706d2acb663bc3c Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Thu, 26 Feb 2026 13:10:34 -0500 Subject: [PATCH 09/38] Hard-code debug --- src/swell/deployment/create_experiment.py | 4 +--- src/swell/suites/suite_questions.py | 1 - src/swell/utilities/question_defaults.py | 10 ---------- 3 files changed, 1 insertion(+), 14 deletions(-) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index bf8196017..dc57f9dad 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -179,8 +179,6 @@ def prepare_config( unique_id = unique_r2d2_id(r2d2_id, platform) experiment_dict['r2d2_experiment_id'] = unique_id - r2d2_lifetime = experiment_dict['r2d2_experiment_lifetime'] - user = r2d2.get_client_user() host = r2d2.get_client_host() compiler = r2d2.get_client_compiler() @@ -189,7 +187,7 @@ def prepare_config( name=unique_id, user=user, compute_host=f'{host}-{compiler}', - lifetime=r2d2_lifetime) + lifetime='debug') # Expand all environment vars in the dictionary # --------------------------------------------- diff --git a/src/swell/suites/suite_questions.py b/src/swell/suites/suite_questions.py index 2073e69b9..cc2824591 100644 --- a/src/swell/suites/suite_questions.py +++ b/src/swell/suites/suite_questions.py @@ -42,7 +42,6 @@ class SuiteQuestions(QuestionContainer, Enum): qd.model_components(), qd.runahead_limit(), qd.r2d2_experiment_id(), - qd.r2d2_experiment_lifetime() ] ) diff --git a/src/swell/utilities/question_defaults.py b/src/swell/utilities/question_defaults.py index 521220ae5..a63faa2c6 100644 --- a/src/swell/utilities/question_defaults.py +++ b/src/swell/utilities/question_defaults.py @@ -161,16 +161,6 @@ class r2d2_experiment_id(SuiteQuestion): # -------------------------------------------------------------------------------------------------- - @dataclass - class r2d2_experiment_lifetime(SuiteQuestion): - default_value: str = "debug" - question_name: str = "r2d2_experiment_lifetime" - options: list = mutable_field(['debug', 'science', 'publication', 'release']) - prompt: str = "What lifetime should the experiment have in R2D2?" - widget_type: WType = WType.STRING - - # -------------------------------------------------------------------------------------------------- - @dataclass class runahead_limit(SuiteQuestion): default_value: str = "P4" From d3abccac6da703287588b7a9e15bcaf4ff6ad92a Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Thu, 26 Feb 2026 17:28:30 -0500 Subject: [PATCH 10/38] Add option to skip R2D2 --- src/swell/deployment/create_experiment.py | 36 +++++++++++-- .../prepare_config_and_suite.py | 50 +++++++------------ src/swell/suites/3dfgat_atmos/flow.cylc | 6 ++- src/swell/suites/3dfgat_cycle/flow.cylc | 6 ++- src/swell/suites/3dvar/flow.cylc | 8 +-- src/swell/suites/3dvar_atmos/flow.cylc | 7 +-- src/swell/suites/3dvar_cycle/flow.cylc | 7 +-- src/swell/suites/hofx/flow.cylc | 7 +-- src/swell/suites/hofx_cf/flow.cylc | 9 ++-- src/swell/suites/suite_questions.py | 1 + src/swell/swell.py | 8 ++- src/swell/utilities/question_defaults.py | 9 ++++ 12 files changed, 94 insertions(+), 60 deletions(-) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index dc57f9dad..23e883d14 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -31,6 +31,19 @@ # -------------------------------------------------------------------------------------------------- +def read_override_file(override_path: str | None) -> dict: + + yaml = YAML(typ='safe') + + if override_path is None: + return {} + else: + with open(override_path, 'r') as f: + return yaml.load(f) + +# -------------------------------------------------------------------------------------------------- + + def clone_config( configuration: str, experiment_id: str, @@ -74,9 +87,9 @@ def prepare_config( suite_config: str, method: str, platform: str, - override: Union[dict, str, None], + override: dict, advanced: bool, - slurm: str + slurm: str, ) -> str: # Create a logger @@ -165,7 +178,8 @@ def prepare_config( # Register the experiment in R2D2 # ------------------------------- - if 'r2d2_experiment_id' in experiment_dict: + if 'r2d2_experiment_id' in experiment_dict and 'skip_r2d2' in experiment_dict \ + and not experiment_dict['skip_r2d2']: from swell.utilities.r2d2 import load_r2d2_credentials, load_r2d2_module, unique_r2d2_id @@ -221,7 +235,8 @@ def create_experiment_directory( platform: str, override: str, advanced: bool, - slurm: Optional[str] + slurm: str | None, + skip_r2d2: bool ) -> None: # Get the base name of the suite @@ -232,10 +247,21 @@ def create_experiment_directory( # --------------- logger = get_logger('SwellCreateExperiment') + # Read override file + # ------------------ + override_dict = read_override_file(override) + + # Specify whether to skip registering and storing in R2D2 + # ------------------------------------------------------- + if skip_r2d2: + + # Only override this if it is true, otherwise let the suite decide + override_dict['skip_r2d2'] = skip_r2d2 + # Call the experiment config and suite generation # ------------------------------------------------ experiment_dict_str = prepare_config(suite, suite_config, method, platform, - override, advanced, slurm) + override_dict, advanced, slurm) # Load the string using yaml # -------------------------- diff --git a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py index 0b230f845..571a69484 100644 --- a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py +++ b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py @@ -58,7 +58,7 @@ def __init__( suite_config: str, platform: str, config_client: str, - override: Union[str, dict, None] + override: dict ) -> None: # Store local copy of the inputs @@ -346,40 +346,24 @@ def override_with_defaults(self) -> None: def override_with_external(self) -> None: - # Append with any user provide overrides - if self.override is not None: + # In this case the user is sending in a dictionary that looks like the experiment + # dictionary that they will ultimately be looking at. This means the dictionary does + # not contain default_value or options and the override cannot be performed. - # Create an override dictionary - override_dict = {} - - if isinstance(self.override, Mapping): - override_dict.update_dict(override_dict, self.override) + # Iterate over the model_ind dictionary and override + # -------------------------------------------------- + for key, val in self.question_dictionary_model_ind.items(): + if key in self.override: + val['default_value'] = self.override[key] - elif isinstance(self.override, str): - yaml = YAML(typ='safe') - with open(self.override, 'r') as ymlfile: - override_dict = update_dict(override_dict, yaml.load(ymlfile)) - else: - self.logger.abort(f'Override must be a dictionary or a path to a yaml file.') - - # In this case the user is sending in a dictionary that looks like the experiment - # dictionary that they will ultimately be looking at. This means the dictionary does - # not contain default_value or options and the override cannot be performed. - - # Iterate over the model_ind dictionary and override - # -------------------------------------------------- - for key, val in self.question_dictionary_model_ind.items(): - if key in override_dict: - val['default_value'] = override_dict[key] - - # Iterate over the model_dep dictionary and override - # -------------------------------------------------- - if self.suite_needs_model_components and 'models' in override_dict.keys(): - for model, model_dict in self.question_dictionary_model_dep.items(): - for key, val in model_dict.items(): - if model in override_dict['models']: - if key in override_dict['models'][model]: - val['default_value'] = override_dict['models'][model][key] + # Iterate over the model_dep dictionary and override + # -------------------------------------------------- + if self.suite_needs_model_components and 'models' in self.override.keys(): + for model, model_dict in self.question_dictionary_model_dep.items(): + for key, val in model_dict.items(): + if model in self.override['models']: + if key in self.override['models'][model]: + val['default_value'] = self.override['models'][model][key] # ---------------------------------------------------------------------------------------------- diff --git a/src/swell/suites/3dfgat_atmos/flow.cylc b/src/swell/suites/3dfgat_atmos/flow.cylc index 372a6faa2..73e4e89b0 100644 --- a/src/swell/suites/3dfgat_atmos/flow.cylc +++ b/src/swell/suites/3dfgat_atmos/flow.cylc @@ -89,12 +89,14 @@ # EvaIncrement RunJediVariationalExecutable-{{model_component}} => EvaIncrement-{{model_component}} + {% if not skip_r2d2 %} # Save observations RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} + SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} + {% endif %} # Clean up large files - EvaObservations-{{model_component}} & SaveObsDiags-{{model_component}} => - CleanCycle-{{model_component}} + EvaObservations-{{model_component}} => CleanCycle-{{model_component}} {% endif %} {% endfor %} diff --git a/src/swell/suites/3dfgat_cycle/flow.cylc b/src/swell/suites/3dfgat_cycle/flow.cylc index db6b339ba..86600410f 100644 --- a/src/swell/suites/3dfgat_cycle/flow.cylc +++ b/src/swell/suites/3dfgat_cycle/flow.cylc @@ -104,9 +104,11 @@ # Move restart to next cycle # SaveRestart-{{model_component}} => MoveDaRestart-{{model_component}} + {% if not save_r2d2 %} # Save analysis output # RunJediFgatExecutable-{{model_component}} => SaveAnalysis-{{model_component}} - RunJediFgatExecutable-{{model_component}} => SaveObsDiags-{{model_component}} + RunJediFgatExecutable-{{model_component}} => SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} + {% endif %} # Save model output # MoveBackground-{{model_component}} => StoreBackground-{{model_component}} @@ -116,7 +118,7 @@ MoveDaRestart-{{model_component}} => RemoveForecastDir # Clean up large files - EvaObservations-{{model_component}} & EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} & SaveObsDiags-{{model_component}} => + EvaObservations-{{model_component}} & EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} => CleanCycle-{{model_component}} {% endfor %} """ diff --git a/src/swell/suites/3dvar/flow.cylc b/src/swell/suites/3dvar/flow.cylc index 00e18ee8c..0bf10070c 100644 --- a/src/swell/suites/3dvar/flow.cylc +++ b/src/swell/suites/3dvar/flow.cylc @@ -71,13 +71,15 @@ # EvaIncrement RunJediVariationalExecutable-{{model_component}} => EvaIncrement-{{model_component}} - + + {% if not skip_r2d2 %} # Save observations RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} + SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} + {% endif %} # Clean up large files - EvaObservations-{{model_component}} & SaveObsDiags-{{model_component}} => - CleanCycle-{{model_component}} + EvaObservations-{{model_component}} => CleanCycle-{{model_component}} {% endif %} {% endfor %} diff --git a/src/swell/suites/3dvar_atmos/flow.cylc b/src/swell/suites/3dvar_atmos/flow.cylc index fab25dcfe..48c84f0fd 100644 --- a/src/swell/suites/3dvar_atmos/flow.cylc +++ b/src/swell/suites/3dvar_atmos/flow.cylc @@ -86,12 +86,13 @@ # EvaIncrement RunJediVariationalExecutable-{{model_component}} => EvaIncrement-{{model_component}} + {% if not save_r2d2 %} # Save observations - RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} + RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} + {% endif %} # Clean up large files - EvaObservations-{{model_component}} & SaveObsDiags-{{model_component}} => - CleanCycle-{{model_component}} + EvaObservations-{{model_component}} => CleanCycle-{{model_component}} {% endif %} {% endfor %} diff --git a/src/swell/suites/3dvar_cycle/flow.cylc b/src/swell/suites/3dvar_cycle/flow.cylc index 8db2144fd..9aadcb786 100644 --- a/src/swell/suites/3dvar_cycle/flow.cylc +++ b/src/swell/suites/3dvar_cycle/flow.cylc @@ -102,9 +102,11 @@ # Move restart to next cycle # SaveRestart-{{model_component}} => MoveDaRestart-{{model_component}} + {% if skip_r2d2 %} # Save analysis output # RunJediVariationalExecutable-{{model_component}} => SaveAnalysis-{{model_component}} - RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} + RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} + {% endif %} # Save model output # MoveBackground-{{model_component}} => StoreBackground-{{model_component}} @@ -115,8 +117,7 @@ # Clean up large files # EvaObservations-{{model_component}} & EvaJediLog-{{model_component}} & SaveObsDiags-{{model_component}} & RemoveForecastDir => - EvaObservations-{{model_component}} & EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} & SaveObsDiags-{{model_component}} => - CleanCycle-{{model_component}} + EvaObservations-{{model_component}} & EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} => CleanCycle-{{model_component}} {% endfor %} """ {% endfor %} diff --git a/src/swell/suites/hofx/flow.cylc b/src/swell/suites/hofx/flow.cylc index 666399b9d..b465c6fe1 100644 --- a/src/swell/suites/hofx/flow.cylc +++ b/src/swell/suites/hofx/flow.cylc @@ -72,12 +72,13 @@ # EvaObservations RunJediHofxExecutable-{{model_component}} => EvaObservations-{{model_component}} + {% if not skip_r2d2 %} # Save observations - RunJediHofxExecutable-{{model_component}} => SaveObsDiags-{{model_component}} + RunJediHofxExecutable-{{model_component}} => SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} + {% endif %} # Clean up large files - EvaObservations-{{model_component}} & SaveObsDiags-{{model_component}} => - CleanCycle-{{model_component}} + EvaObservations-{{model_component}} => CleanCycle-{{model_component}} {% endif %} {% endfor %} diff --git a/src/swell/suites/hofx_cf/flow.cylc b/src/swell/suites/hofx_cf/flow.cylc index 562482ecf..2129dafd0 100644 --- a/src/swell/suites/hofx_cf/flow.cylc +++ b/src/swell/suites/hofx_cf/flow.cylc @@ -65,12 +65,13 @@ # EvaObservations RunJediHofxExecutable-{{model_component}} => EvaObservations-{{model_component}} - # Save feedback - RunJediHofxExecutable-{{model_component}} => SaveObsDiags-{{model_component}} + {% if not skip_r2d2 %} + # Save observations + RunJediHofxExecutable-{{model_component}} => SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} + {% endif %} # Clean up large files - EvaObservations-{{model_component}} & SaveObsDiags-{{model_component}} => - CleanCycle-{{model_component}} + EvaObservations-{{model_component}} => CleanCycle-{{model_component}} {% endif %} {% endfor %} diff --git a/src/swell/suites/suite_questions.py b/src/swell/suites/suite_questions.py index cc2824591..ee08b6d08 100644 --- a/src/swell/suites/suite_questions.py +++ b/src/swell/suites/suite_questions.py @@ -42,6 +42,7 @@ class SuiteQuestions(QuestionContainer, Enum): qd.model_components(), qd.runahead_limit(), qd.r2d2_experiment_id(), + qd.skip_r2d2(), ] ) diff --git a/src/swell/swell.py b/src/swell/swell.py index 94675da52..9b6b6d12c 100644 --- a/src/swell/swell.py +++ b/src/swell/swell.py @@ -82,6 +82,8 @@ def swell_driver() -> None: or for task-model combinations. """ +skip_r2d2_help = """Skip registering this experiment and storing products in R2D2.""" + # -------------------------------------------------------------------------------------------------- @@ -95,13 +97,15 @@ def swell_driver() -> None: @click.option('-o', '--override', 'override', default=None, help=override_help) @click.option('-a', '--advanced', 'advanced', default=False, help=advanced_help) @click.option('-s', '--slurm', 'slurm', default=None, help=slurm_help) +@click.option('-k', '--skip-r2d2', 'skip_r2d2', is_flag=True, default=False, help=skip_r2d2_help) def create( suite: str, input_method: str, platform: str, override: Union[dict, str, None], advanced: bool, - slurm: str + slurm: str, + skip_r2d2: bool ) -> None: """ Create a new experiment @@ -114,7 +118,7 @@ def create( """ # Create the experiment directory - create_experiment_directory(suite, input_method, platform, override, advanced, slurm) + create_experiment_directory(suite, input_method, platform, override, advanced, slurm, skip_r2d2) # -------------------------------------------------------------------------------------------------- diff --git a/src/swell/utilities/question_defaults.py b/src/swell/utilities/question_defaults.py index a63faa2c6..ffcf0fa46 100644 --- a/src/swell/utilities/question_defaults.py +++ b/src/swell/utilities/question_defaults.py @@ -184,6 +184,15 @@ class skip_ensemble_hofx(SuiteQuestion): # -------------------------------------------------------------------------------------------------- + @dataclass + class skip_r2d2(SuiteQuestion): + default_value: bool = False + question_name: str = "skip_r2d2" + prompt: str = "Skip registering and storing results of this experiment in R2D2?" + widget_type: WType = WType.BOOLEAN + + # -------------------------------------------------------------------------------------------------- + @dataclass class start_cycle_point(SuiteQuestion): default_value: str = "2023-10-10T00:00:00Z" From 08e8674314c39e9bfb94f4a6c0f1d4708a0e8b9b Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 10 Mar 2026 13:54:55 -0400 Subject: [PATCH 11/38] Fixes --- src/swell/deployment/create_experiment.py | 5 +++-- .../prepare_config_and_suite/prepare_config_and_suite.py | 2 +- src/swell/suites/3dvar_marine/flow.cylc | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index e60515505..29050c7e6 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -15,7 +15,7 @@ import shutil import sys from ruamel.yaml import YAML -from typing import Union, Optional +from typing import Optional from swell.suites.all_suites import AllSuites from swell.deployment.prepare_config_and_suite.prepare_config_and_suite import \ @@ -178,7 +178,8 @@ def prepare_config( # Register the experiment in R2D2 # ------------------------------- - if 'r2d2_experiment_id' in experiment_dict: + if 'r2d2_experiment_id' in experiment_dict and 'skip_r2d2' in experiment_dict \ + and not experiment_dict['skip_r2d2']: from swell.utilities.r2d2 import load_r2d2_credentials, load_r2d2_module, unique_r2d2_id diff --git a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py index c260c0bde..69987bf5f 100644 --- a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py +++ b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py @@ -12,7 +12,7 @@ import os from ruamel.yaml import YAML from collections.abc import Mapping -from typing import Union, Tuple, Optional +from typing import Tuple, Optional from swell.swell_path import get_swell_path from swell.deployment.prepare_config_and_suite.question_and_answer_cli import GetAnswerCli diff --git a/src/swell/suites/3dvar_marine/flow.cylc b/src/swell/suites/3dvar_marine/flow.cylc index ef036e0be..7afdb11af 100644 --- a/src/swell/suites/3dvar_marine/flow.cylc +++ b/src/swell/suites/3dvar_marine/flow.cylc @@ -71,7 +71,7 @@ # EvaIncrement RunJediVariationalExecutable-{{model_component}} => EvaIncrement-{{model_component}} - + {% if not skip_r2d2 %} # Save observations RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} From e42e3b9297d225419f022bbb137d99cbde01fc4f Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 10 Mar 2026 14:37:35 -0400 Subject: [PATCH 12/38] remove comma --- src/swell/deployment/create_experiment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index 29050c7e6..0b7fa81e3 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -89,7 +89,7 @@ def prepare_config( platform: str, override: dict, advanced: bool, - slurm: str, + slurm: str ) -> str: # Create a logger From a97c229b7cca9fe5d7b719a371330485b9ac9816 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 10 Mar 2026 14:47:05 -0400 Subject: [PATCH 13/38] code_test fix --- src/swell/utilities/r2d2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/swell/utilities/r2d2.py b/src/swell/utilities/r2d2.py index b735dbc0c..2d96a82de 100644 --- a/src/swell/utilities/r2d2.py +++ b/src/swell/utilities/r2d2.py @@ -14,7 +14,7 @@ from swell.swell_path import get_swell_path from swell.utilities.jinja2 import template_string_jinja2 -from swell.utilities.logger import get_logger, Logger +from swell.utilities.logger import Logger # -------------------------------------------------------------------------------------------------- From 5f332cd8a8978a111363c1c7ebc240f9d2d478fe Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Thu, 19 Mar 2026 10:18:37 -0400 Subject: [PATCH 14/38] fix templating --- src/swell/suites/3dfgat_marine_cycle/flow.cylc | 2 +- src/swell/suites/3dvar_atmos/flow.cylc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/swell/suites/3dfgat_marine_cycle/flow.cylc b/src/swell/suites/3dfgat_marine_cycle/flow.cylc index 41dac74e9..438fb8186 100644 --- a/src/swell/suites/3dfgat_marine_cycle/flow.cylc +++ b/src/swell/suites/3dfgat_marine_cycle/flow.cylc @@ -102,7 +102,7 @@ # Move restart to next cycle and then erase current forecast folder SaveRestart-{{model_component}} => MoveDaRestart-{{model_component}} - {% if not save_r2d2 %} + {% if not skip_r2d2 %} # Save analysis output # RunJediFgatExecutable-{{model_component}} => SaveAnalysis-{{model_component}} RunJediFgatExecutable-{{model_component}} => SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} diff --git a/src/swell/suites/3dvar_atmos/flow.cylc b/src/swell/suites/3dvar_atmos/flow.cylc index 30bf4d0a0..5e400f6a9 100644 --- a/src/swell/suites/3dvar_atmos/flow.cylc +++ b/src/swell/suites/3dvar_atmos/flow.cylc @@ -86,7 +86,7 @@ # EvaIncrement RunJediVariationalExecutable-{{model_component}} => EvaIncrement-{{model_component}} - {% if not save_r2d2 %} + {% if not skip_r2d2 %} # Save observations RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} {% endif %} From 2a5a0f85189b2c765fc91a73ce375883af52a5af Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Thu, 19 Mar 2026 11:54:14 -0400 Subject: [PATCH 15/38] Clean cycle after move da restart --- src/swell/suites/3dfgat_marine_cycle/flow.cylc | 2 +- src/swell/suites/3dvar_marine_cycle/flow.cylc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/swell/suites/3dfgat_marine_cycle/flow.cylc b/src/swell/suites/3dfgat_marine_cycle/flow.cylc index 438fb8186..854ba71bb 100644 --- a/src/swell/suites/3dfgat_marine_cycle/flow.cylc +++ b/src/swell/suites/3dfgat_marine_cycle/flow.cylc @@ -100,7 +100,7 @@ {% endif %} # Move restart to next cycle and then erase current forecast folder - SaveRestart-{{model_component}} => MoveDaRestart-{{model_component}} + SaveRestart-{{model_component}} => MoveDaRestart-{{model_component}} => CleanCycle-{{model_component}} {% if not skip_r2d2 %} # Save analysis output diff --git a/src/swell/suites/3dvar_marine_cycle/flow.cylc b/src/swell/suites/3dvar_marine_cycle/flow.cylc index 8f9a9e8be..5792460d8 100644 --- a/src/swell/suites/3dvar_marine_cycle/flow.cylc +++ b/src/swell/suites/3dvar_marine_cycle/flow.cylc @@ -99,7 +99,7 @@ {% endif %} # Move restart to next cycle and then erase current forecast folder - SaveRestart-{{model_component}} => MoveDaRestart-{{model_component}} + SaveRestart-{{model_component}} => MoveDaRestart-{{model_component}} => CleanCycle-{{model_component}} {% if skip_r2d2 %} # Save analysis output From 987bbafb3f00272060f2d7d739452020b08b0b4a Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Thu, 19 Mar 2026 15:22:57 -0400 Subject: [PATCH 16/38] Fixes to workflows --- src/swell/suites/3dfgat_atmos/flow.cylc | 2 +- src/swell/suites/3dvar_atmos/flow.cylc | 2 +- src/swell/suites/3dvar_marine_cycle/flow.cylc | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/swell/suites/3dfgat_atmos/flow.cylc b/src/swell/suites/3dfgat_atmos/flow.cylc index 44cdcb696..878637314 100644 --- a/src/swell/suites/3dfgat_atmos/flow.cylc +++ b/src/swell/suites/3dfgat_atmos/flow.cylc @@ -97,7 +97,7 @@ # Clean up large files EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} & - EvaObservations-{{model_component}} & SaveObsDiags-{{model_component}} => + EvaObservations-{{model_component}} => CleanCycle-{{model_component}} {% endif %} diff --git a/src/swell/suites/3dvar_atmos/flow.cylc b/src/swell/suites/3dvar_atmos/flow.cylc index 5e400f6a9..b71bba42a 100644 --- a/src/swell/suites/3dvar_atmos/flow.cylc +++ b/src/swell/suites/3dvar_atmos/flow.cylc @@ -93,7 +93,7 @@ # Clean up large files EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} & - EvaObservations-{{model_component}} & SaveObsDiags-{{model_component}} => + EvaObservations-{{model_component}} => CleanCycle-{{model_component}} {% endif %} diff --git a/src/swell/suites/3dvar_marine_cycle/flow.cylc b/src/swell/suites/3dvar_marine_cycle/flow.cylc index 5792460d8..8b76edf85 100644 --- a/src/swell/suites/3dvar_marine_cycle/flow.cylc +++ b/src/swell/suites/3dvar_marine_cycle/flow.cylc @@ -101,7 +101,7 @@ # Move restart to next cycle and then erase current forecast folder SaveRestart-{{model_component}} => MoveDaRestart-{{model_component}} => CleanCycle-{{model_component}} - {% if skip_r2d2 %} + {% if not skip_r2d2 %} # Save analysis output # RunJediVariationalExecutable-{{model_component}} => SaveAnalysis-{{model_component}} RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} @@ -111,7 +111,7 @@ # MoveBackground-{{model_component}} => StoreBackground-{{model_component}} # Clean up large files - EvaObservations-{{model_component}} & EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} & SaveObsDiags-{{model_component}} => + EvaObservations-{{model_component}} & EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} => CleanCycle-{{model_component}} {% endfor %} """ From 9119709313a9bae2a9c9f56647834a6686472448 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Fri, 20 Mar 2026 16:24:53 -0400 Subject: [PATCH 17/38] Add suite creation test --- .../test/code_tests/suite_creation_test.py | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/swell/test/code_tests/suite_creation_test.py diff --git a/src/swell/test/code_tests/suite_creation_test.py b/src/swell/test/code_tests/suite_creation_test.py new file mode 100644 index 000000000..bceb07650 --- /dev/null +++ b/src/swell/test/code_tests/suite_creation_test.py @@ -0,0 +1,42 @@ +# (C) Copyright 2021- United States Government as represented by the Administrator of the +# National Aeronautics and Space Administration. All Rights Reserved. +# +# 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. + + +# -------------------------------------------------------------------------------------------------- + +import tempfile +import os +from ruamel.yaml import YAML + +from swell.deployment.create_experiment import create_experiment_directory + +# -------------------------------------------------------------------------------------------------- + +def suite_creation_test(suite: str) -> None: + + tempdir = tempfile.mkdtemp() + + override_dict = {} + + override_dict['experiment_root'] = tempdir + + create_experiment_directory(suite, 'defaults', 'nccs_discover_sles15', + override_dict, False, None) + + experiment_yaml = os.path.join(tempdir, f'swell-{suite}', f'swell-{suite}-suite', 'experiment.yaml') + + yaml = YAML(typ='safe') + + with open(experiment_yaml, 'r') as f: + experiment_yaml_str = yaml(f) + + assert 'defer_to_model' not in experiment_yaml_str + assert 'defer_to_platform' not in experiment_yaml_str + +# -------------------------------------------------------------------------------------------------- + +if __name__ == '__main__': + suite_creation_test('3dvar_marine') \ No newline at end of file From 4b1a98cc24d232b75aed547b08d5d72a5dbf4926 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Fri, 20 Mar 2026 16:36:58 -0400 Subject: [PATCH 18/38] Add to code tests --- src/swell/test/code_tests/code_tests.py | 4 ++ .../test/code_tests/suite_creation_test.py | 41 +++++++++++-------- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/src/swell/test/code_tests/code_tests.py b/src/swell/test/code_tests/code_tests.py index ff3e4e4c2..2832a937d 100644 --- a/src/swell/test/code_tests/code_tests.py +++ b/src/swell/test/code_tests/code_tests.py @@ -17,6 +17,7 @@ from swell.test.code_tests.unused_variables_test import UnusedVariablesTest from swell.test.code_tests.question_dictionary_comparison_test import QuestionDictionaryTest from swell.test.code_tests.test_generate_observing_system import GenerateObservingSystemTest +from swell.test.code_tests.suite_creation_test import SuiteCreationTest # -------------------------------------------------------------------------------------------------- @@ -52,6 +53,9 @@ def code_tests() -> None: # Load Pinned Versions Test test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(PinnedVersionsTest)) + # Load Suite Creation Test + test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(SuiteCreationTest)) + # Create a test runner test_runner = unittest.TextTestRunner() diff --git a/src/swell/test/code_tests/suite_creation_test.py b/src/swell/test/code_tests/suite_creation_test.py index bceb07650..adf5bae35 100644 --- a/src/swell/test/code_tests/suite_creation_test.py +++ b/src/swell/test/code_tests/suite_creation_test.py @@ -10,33 +10,42 @@ import tempfile import os from ruamel.yaml import YAML +import unittest +from swell.suites.all_suites import get_suites from swell.deployment.create_experiment import create_experiment_directory # -------------------------------------------------------------------------------------------------- -def suite_creation_test(suite: str) -> None: +class SuiteCreationTest(unittest.TestCase): - tempdir = tempfile.mkdtemp() + def run_suite_creation_test(self) -> None: - override_dict = {} + suites = get_suites() - override_dict['experiment_root'] = tempdir + for suite in suites: + self.suite_creation_test(suite) - create_experiment_directory(suite, 'defaults', 'nccs_discover_sles15', - override_dict, False, None) - - experiment_yaml = os.path.join(tempdir, f'swell-{suite}', f'swell-{suite}-suite', 'experiment.yaml') + def suite_creation_test(self, suite: str) -> None: - yaml = YAML(typ='safe') + tempdir = tempfile.mkdtemp() - with open(experiment_yaml, 'r') as f: - experiment_yaml_str = yaml(f) + override_dict = {} - assert 'defer_to_model' not in experiment_yaml_str - assert 'defer_to_platform' not in experiment_yaml_str + override_dict['experiment_root'] = tempdir + override_dict['skip_r2d2'] = True -# -------------------------------------------------------------------------------------------------- + create_experiment_directory(suite, 'defaults', 'nccs_discover_sles15', + override_dict, False, None) + + experiment_yaml = os.path.join(tempdir, f'swell-{suite}', f'swell-{suite}-suite', 'experiment.yaml') + + yaml = YAML(typ='safe') + + with open(experiment_yaml, 'r') as f: + experiment_yaml_str = yaml.load(f) + + assert 'defer_to_model' not in experiment_yaml_str + assert 'defer_to_platform' not in experiment_yaml_str -if __name__ == '__main__': - suite_creation_test('3dvar_marine') \ No newline at end of file +# -------------------------------------------------------------------------------------------------- \ No newline at end of file From eb58146a59fc53e50826b2e5f4ea44c01c769231 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Mon, 23 Mar 2026 10:57:12 -0400 Subject: [PATCH 19/38] Add jedi config comparison tests --- src/swell/test/code_tests/jedi_config_test.py | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/swell/test/code_tests/jedi_config_test.py diff --git a/src/swell/test/code_tests/jedi_config_test.py b/src/swell/test/code_tests/jedi_config_test.py new file mode 100644 index 000000000..ed7928076 --- /dev/null +++ b/src/swell/test/code_tests/jedi_config_test.py @@ -0,0 +1,66 @@ +# (C) Copyright 2021- United States Government as represented by the Administrator of the +# National Aeronautics and Space Administration. All Rights Reserved. +# +# 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. + + +# -------------------------------------------------------------------------------------------------- + +import os +import tempfile +from ruamel.yaml import YAML + +from swell.swell_path import get_swell_path +from swell.deployment.create_experiment import create_experiment_directory +from swell.tasks.base.task_base import task_wrapper + +# -------------------------------------------------------------------------------------------------- + +def test_jedi_config(suite: str, + model: str, + datetime: str, + executable_type: str) -> None: + + tempdir = tempfile.mkdtemp() + + override_dict = {'models': {}} + override_dict['experiment_root'] = tempdir + override_dict['models'][model] = {'check_for_obs': False, + 'generate_yaml_and_exit': True} + + create_experiment_directory(suite, 'defaults', 'nccs_discover_sles15', + override_dict, 'defaults', None) + + experiment_yaml = os.path.join(tempdir, f'swell-{suite}', + f'swell-{suite}-suite', 'experiment.yaml') + + task_wrapper('RenderJediObservations', experiment_yaml, datetime, + model, ensemblePacket=None) + + task_wrapper(f'RunJedi{executable_type.upper()}Executable', experiment_yaml, datetime, + model, ensemblePacket=None) + + cycle_dir = os.path.join(tempdir, f'swell-{suite}', 'run', datetime, model) + + config_file = os.path.join(cycle_dir, f'jedi_{executable_type}_config.yaml') + + yaml = YAML(typ='safe') + + with open(config_file, 'r') as f: + config_dict = yaml.load(f) + + comparison_config = os.path.join(get_swell_path(), 'test', f'jedi_config_{suite}.yaml') + + with open(comparison_config, 'r') as f: + comparison_dict = yaml.load(f) + + assert config_dict == comparison_dict + +# -------------------------------------------------------------------------------------------------- + + +if __name__ == '__main__': + test_jedi_config('3dvar_marine') + +# -------------------------------------------------------------------------------------------------- \ No newline at end of file From 912b3f07a2b03935d10183b81338b6a08bfdd417 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Mon, 23 Mar 2026 10:58:47 -0400 Subject: [PATCH 20/38] Change name of runTest --- src/swell/test/code_tests/suite_creation_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/swell/test/code_tests/suite_creation_test.py b/src/swell/test/code_tests/suite_creation_test.py index adf5bae35..dd9a22a3b 100644 --- a/src/swell/test/code_tests/suite_creation_test.py +++ b/src/swell/test/code_tests/suite_creation_test.py @@ -19,7 +19,7 @@ class SuiteCreationTest(unittest.TestCase): - def run_suite_creation_test(self) -> None: + def runTest(self) -> None: suites = get_suites() @@ -48,4 +48,4 @@ def suite_creation_test(self, suite: str) -> None: assert 'defer_to_model' not in experiment_yaml_str assert 'defer_to_platform' not in experiment_yaml_str -# -------------------------------------------------------------------------------------------------- \ No newline at end of file +# -------------------------------------------------------------------------------------------------- From 9c342ca85b3f85560fe0f01c5d00a2de4dee941e Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Mon, 23 Mar 2026 14:07:23 -0400 Subject: [PATCH 21/38] Separate into utility --- src/swell/test/code_tests/jedi_config_test.py | 34 +++-------- src/swell/utilities/render_jedi_config.py | 56 +++++++++++++++++++ 2 files changed, 63 insertions(+), 27 deletions(-) create mode 100644 src/swell/utilities/render_jedi_config.py diff --git a/src/swell/test/code_tests/jedi_config_test.py b/src/swell/test/code_tests/jedi_config_test.py index ed7928076..e8667b386 100644 --- a/src/swell/test/code_tests/jedi_config_test.py +++ b/src/swell/test/code_tests/jedi_config_test.py @@ -12,36 +12,16 @@ from ruamel.yaml import YAML from swell.swell_path import get_swell_path -from swell.deployment.create_experiment import create_experiment_directory -from swell.tasks.base.task_base import task_wrapper +from swell.utilities.render_jedi_config import render_jedi_config # -------------------------------------------------------------------------------------------------- -def test_jedi_config(suite: str, - model: str, - datetime: str, - executable_type: str) -> None: +def run_test(suite: str, + model: str, + datetime: str, + executable_type: str) -> None: - tempdir = tempfile.mkdtemp() - - override_dict = {'models': {}} - override_dict['experiment_root'] = tempdir - override_dict['models'][model] = {'check_for_obs': False, - 'generate_yaml_and_exit': True} - - create_experiment_directory(suite, 'defaults', 'nccs_discover_sles15', - override_dict, 'defaults', None) - - experiment_yaml = os.path.join(tempdir, f'swell-{suite}', - f'swell-{suite}-suite', 'experiment.yaml') - - task_wrapper('RenderJediObservations', experiment_yaml, datetime, - model, ensemblePacket=None) - - task_wrapper(f'RunJedi{executable_type.upper()}Executable', experiment_yaml, datetime, - model, ensemblePacket=None) - - cycle_dir = os.path.join(tempdir, f'swell-{suite}', 'run', datetime, model) + render_jedi_config(suite, model, datetime, executable_type) config_file = os.path.join(cycle_dir, f'jedi_{executable_type}_config.yaml') @@ -61,6 +41,6 @@ def test_jedi_config(suite: str, if __name__ == '__main__': - test_jedi_config('3dvar_marine') + run_test('3dvar_marine', 'geos_marine', '20210701T120000Z', 'variational') # -------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/src/swell/utilities/render_jedi_config.py b/src/swell/utilities/render_jedi_config.py new file mode 100644 index 000000000..dc673faa8 --- /dev/null +++ b/src/swell/utilities/render_jedi_config.py @@ -0,0 +1,56 @@ +# (C) Copyright 2021- United States Government as represented by the Administrator of the +# National Aeronautics and Space Administration. All Rights Reserved. +# +# 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. + + +# -------------------------------------------------------------------------------------------------- + +import os +import shutil +import tempfile + +from swell.tasks.base.task_base import task_wrapper +from swell.deployment.create_experiment import create_experiment_directory + +# -------------------------------------------------------------------------------------------------- + +def render_jedi_config(suite: str, + model: str, + datetime: str, + executable_type: str, + copy_to_wd: bool = False) -> str: + + tempdir = tempfile.mkdtemp() + + override_dict = {'models': {}} + override_dict['experiment_root'] = tempdir + override_dict['models'][model] = {'check_for_obs': False, + 'generate_yaml_and_exit': True} + + create_experiment_directory(suite, method='defaults', platform='nccs_discover_sles15', + override=override_dict, advanced=False, slurm=None) + + experiment_yaml = os.path.join(tempdir, f'swell-{suite}', + f'swell-{suite}-suite', 'experiment.yaml') + + task_wrapper('RenderJediObservations', experiment_yaml, datetime, + model, ensemblePacket=None) + + task_wrapper(f'RunJedi{executable_type.upper()}Executable', experiment_yaml, datetime, + model, ensemblePacket=None) + + cycle_dir = os.path.join(tempdir, f'swell-{suite}', 'run', datetime, model) + + filename = f'jedi_{executable_type}_config.yaml' + config_file = os.path.join(cycle_dir, filename) + + if copy_to_wd: + new_path = os.path.join(os.getcwd(), f'jedi_{suite}_config.yaml') + shutil.copy(config_file, new_path) + config_file = new_path + + return config_file + +# -------------------------------------------------------------------------------------------------- \ No newline at end of file From 13247a2ad88805d5c0996359c0e36eba5bfc1e7a Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Mon, 23 Mar 2026 14:54:56 -0400 Subject: [PATCH 22/38] Add 3dvar_cf --- src/swell/suites/3dvar_cf/flow.cylc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/swell/suites/3dvar_cf/flow.cylc b/src/swell/suites/3dvar_cf/flow.cylc index 8c618b5f6..22c014bfe 100644 --- a/src/swell/suites/3dvar_cf/flow.cylc +++ b/src/swell/suites/3dvar_cf/flow.cylc @@ -66,11 +66,14 @@ # EvaIncrement RunJediVariationalExecutable-{{model_component}} => EvaIncrement-{{model_component}} + {% if not skip_r2d2 %} # Save observations RunJediVariationalExecutable-{{model_component}} => SaveObsDiags-{{model_component}} + SaveObsDiags-{{model_component}} => CleanCycle-{{model_component}} + {% endif %} # Clean up large files - EvaObservations-{{model_component}} & EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} & SaveObsDiags-{{model_component}} => + EvaObservations-{{model_component}} & EvaJediLog-{{model_component}} & EvaIncrement-{{model_component}} => CleanCycle-{{model_component}} {% endif %} From a0a9d2867bc9edc76b7134b3bb554deaa16aead1 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Mon, 23 Mar 2026 14:55:49 -0400 Subject: [PATCH 23/38] Fix update_dict --- .../prepare_config_and_suite/prepare_config_and_suite.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py index 7cafb1033..c12fe1d47 100644 --- a/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py +++ b/src/swell/deployment/prepare_config_and_suite/prepare_config_and_suite.py @@ -360,7 +360,7 @@ def override_with_external(self) -> None: override_dict = {} if isinstance(self.override, Mapping): - override_dict.update_dict(override_dict, self.override) + override_dict = update_dict(override_dict, self.override) elif isinstance(self.override, str): yaml = YAML(typ='safe') From 05f8a7d828a11fdde2e585bacf45889563c8ca6a Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Mon, 23 Mar 2026 16:55:10 -0400 Subject: [PATCH 24/38] Add option to mock cycle dir --- src/swell/tasks/render_jedi_observations.py | 3 +++ src/swell/tasks/task_questions.py | 3 ++- src/swell/utilities/question_defaults.py | 13 +++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/swell/tasks/render_jedi_observations.py b/src/swell/tasks/render_jedi_observations.py index 834962cfe..471c3806b 100644 --- a/src/swell/tasks/render_jedi_observations.py +++ b/src/swell/tasks/render_jedi_observations.py @@ -51,6 +51,9 @@ def execute(self) -> None: cwd = os.getcwd() + if self.config.mock_cycle_dir(False): + self.jedi_rendering.add_key('cycle_dir', './') + observations = [] # Iterate through list diff --git a/src/swell/tasks/task_questions.py b/src/swell/tasks/task_questions.py index 8347850a7..0d8c82e0b 100644 --- a/src/swell/tasks/task_questions.py +++ b/src/swell/tasks/task_questions.py @@ -572,7 +572,8 @@ class TaskQuestions(QuestionContainer, Enum): qd.background_time_offset(), qd.observing_system_records_path(), qd.observations(), - qd.window_length() + qd.window_length(), + qd.mock_cycle_dir() ] ) diff --git a/src/swell/utilities/question_defaults.py b/src/swell/utilities/question_defaults.py index fe59001b9..da37ec096 100644 --- a/src/swell/utilities/question_defaults.py +++ b/src/swell/utilities/question_defaults.py @@ -809,6 +809,19 @@ class dry_run(TaskQuestion): # -------------------------------------------------------------------------------------------------- + @dataclass + class mock_cycle_dir(TaskQuestion): + default_value: bool = False + question_name: str = "mock_cycle_dir" + ask_question: bool = False + models: List[str] = mutable_field([ + "all_models" + ]) + prompt: str = "Dry-run option for comparing configs." + widget_type: WType = WType.BOOLEAN + + # -------------------------------------------------------------------------------------------------- + @dataclass class obs_to_ingest(TaskQuestion): default_value: list = mutable_field([]) From 1ff3b2433fa896827525290b7e897e29ebf25c23 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Mon, 23 Mar 2026 17:32:53 -0400 Subject: [PATCH 25/38] Fix dictionary --- src/swell/deployment/create_experiment.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index eb9a54682..c50e3451e 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -251,6 +251,8 @@ def create_experiment_directory( # ------------------ if isinstance(override, str): override_dict = read_override_file(override) + elif override is None: + override_dict = {} else: override_dict = override From d5602da4a5143246831cf93711e8c7cf370b6f54 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 24 Mar 2026 10:55:13 -0400 Subject: [PATCH 26/38] Working --- src/swell/tasks/render_jedi_observations.py | 6 ++++-- .../tasks/run_jedi_variational_executable.py | 5 +++++ src/swell/tasks/task_questions.py | 17 +++++++++++++---- src/swell/utilities/question_defaults.py | 4 ++-- src/swell/utilities/render_jedi_config.py | 3 ++- .../utilities/render_jedi_interface_files.py | 2 ++ 6 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/swell/tasks/render_jedi_observations.py b/src/swell/tasks/render_jedi_observations.py index 471c3806b..aa2f639e6 100644 --- a/src/swell/tasks/render_jedi_observations.py +++ b/src/swell/tasks/render_jedi_observations.py @@ -51,8 +51,10 @@ def execute(self) -> None: cwd = os.getcwd() - if self.config.mock_cycle_dir(False): - self.jedi_rendering.add_key('cycle_dir', './') + if self.config.mock_experiment_directory(False): + self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') + self.jedi_rendering.add_key('experiment_id', 'experiment_id') + self.jedi_rendering.add_key('experiment_root', 'experiment_root') observations = [] diff --git a/src/swell/tasks/run_jedi_variational_executable.py b/src/swell/tasks/run_jedi_variational_executable.py index 3c9e0b5a8..25b9dde76 100644 --- a/src/swell/tasks/run_jedi_variational_executable.py +++ b/src/swell/tasks/run_jedi_variational_executable.py @@ -96,6 +96,11 @@ def execute(self) -> None: self.jedi_rendering.add_key('crtm_coeff_dir', self.config.crtm_coeff_dir(None)) self.jedi_rendering.add_key('window_begin', window_begin) + if self.config.mock_experiment_directory(False): + self.jedi_rendering.add_key('experiment_root', 'experiment_root') + self.jedi_rendering.add_key('experiment_id', 'experiment_id') + self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') + # Atmosphere background error model # --------------------------------- if gsibec_configuration is not None: diff --git a/src/swell/tasks/task_questions.py b/src/swell/tasks/task_questions.py index 0d8c82e0b..09278f326 100644 --- a/src/swell/tasks/task_questions.py +++ b/src/swell/tasks/task_questions.py @@ -573,7 +573,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.observing_system_records_path(), qd.observations(), qd.window_length(), - qd.mock_cycle_dir() + qd.mock_experiment_directory() ] ) @@ -591,6 +591,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.window_length(), qd.window_type(), qd.comparison_log_type('convert_state_soca2cice'), + qd.mock_experiment_directory() ] ) @@ -608,6 +609,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.observations(), qd.observing_system_records_path(), qd.comparison_log_type('ensmeanvariance'), + qd.mock_experiment_directory() ] ) @@ -618,7 +620,8 @@ class TaskQuestions(QuestionContainer, Enum): questions=[ run_jedi_executable, qd.marine_models(), - qd.comparison_log_type('fgat') + qd.comparison_log_type('fgat'), + qd.mock_experiment_directory() ] ) @@ -637,7 +640,8 @@ class TaskQuestions(QuestionContainer, Enum): qd.generate_yaml_and_exit(), qd.jedi_forecast_model(), qd.total_processors(), - qd.comparison_log_type('hofx') + qd.comparison_log_type('hofx'), + qd.mock_experiment_directory() ] ) @@ -655,6 +659,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.save_geovals(), qd.total_processors(), qd.comparison_log_type('ensemblehofx'), + qd.mock_experiment_directory() ] ) @@ -695,6 +700,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.vertical_localization_method(), qd.perhost(), qd.comparison_log_type('localensembleda'), + qd.mock_experiment_directory() ] ) @@ -712,7 +718,8 @@ class TaskQuestions(QuestionContainer, Enum): qd.observing_system_records_path(), qd.total_processors(), qd.obs_thinning_rej_fraction(), - qd.comparison_log_type('obsfilters') + qd.comparison_log_type('obsfilters'), + qd.mock_experiment_directory() ] ) @@ -726,6 +733,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.single_observations(), qd.window_length(), qd.comparison_log_type('ufo_tests'), + qd.mock_experiment_directory() ] ) @@ -737,6 +745,7 @@ class TaskQuestions(QuestionContainer, Enum): run_jedi_executable, qd.perhost(), qd.comparison_log_type('variational'), + qd.mock_experiment_directory() ] ) diff --git a/src/swell/utilities/question_defaults.py b/src/swell/utilities/question_defaults.py index da37ec096..5b0257a4c 100644 --- a/src/swell/utilities/question_defaults.py +++ b/src/swell/utilities/question_defaults.py @@ -810,9 +810,9 @@ class dry_run(TaskQuestion): # -------------------------------------------------------------------------------------------------- @dataclass - class mock_cycle_dir(TaskQuestion): + class mock_experiment_directory(TaskQuestion): default_value: bool = False - question_name: str = "mock_cycle_dir" + question_name: str = "mock_experiment_directory" ask_question: bool = False models: List[str] = mutable_field([ "all_models" diff --git a/src/swell/utilities/render_jedi_config.py b/src/swell/utilities/render_jedi_config.py index 2aa748c49..ddfaeb9d9 100644 --- a/src/swell/utilities/render_jedi_config.py +++ b/src/swell/utilities/render_jedi_config.py @@ -27,7 +27,8 @@ def render_jedi_config(suite: str, override_dict = {'models': {}} override_dict['experiment_root'] = tempdir override_dict['generate_yaml_and_exit'] = True - override_dict['models'][model] = {'check_for_obs': False} + override_dict['models'][model] = {'check_for_obs': False, + 'mock_experiment_directory': True} create_experiment_directory(suite, method='defaults', platform='nccs_discover_sles15', override=override_dict, advanced=False, slurm=None, skip_r2d2=True) diff --git a/src/swell/utilities/render_jedi_interface_files.py b/src/swell/utilities/render_jedi_interface_files.py index 779a73fb1..491ceff14 100644 --- a/src/swell/utilities/render_jedi_interface_files.py +++ b/src/swell/utilities/render_jedi_interface_files.py @@ -83,6 +83,8 @@ def __init__( 'ensemble_num_members', 'ensmean_only', 'ensmeanvariance_only', + 'experiment_id', + 'experiment_root', 'final_cycle_point', 'gradient_norm_reduction', 'gsibec_configuration', From 8cc96f8b845565c3e58650f4730b3b61ec603246 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 24 Mar 2026 11:24:23 -0400 Subject: [PATCH 27/38] Refactor and add to other suites --- ...jedi_convert_state_soca2cice_executable.py | 7 +++++ .../tasks/run_jedi_ensemble_mean_variance.py | 7 +++++ src/swell/tasks/run_jedi_fgat_executable.py | 7 +++++ .../run_jedi_hofx_ensemble_executable.py | 7 +++++ src/swell/tasks/run_jedi_hofx_executable.py | 7 +++++ .../run_jedi_local_ensemble_da_executable.py | 7 +++++ .../tasks/run_jedi_obsfilters_executable.py | 7 +++++ .../tasks/run_jedi_ufo_tests_executable.py | 7 +++++ .../tasks/run_jedi_variational_executable.py | 4 ++- src/swell/tasks/task_questions.py | 18 ++++++------- src/swell/test/code_tests/jedi_config_test.py | 4 +-- ...der_jedi_config.py => mock_jedi_config.py} | 10 +++---- src/swell/utilities/question_defaults.py | 26 +++++++++---------- 13 files changed, 88 insertions(+), 30 deletions(-) rename src/swell/utilities/{render_jedi_config.py => mock_jedi_config.py} (90%) diff --git a/src/swell/tasks/run_jedi_convert_state_soca2cice_executable.py b/src/swell/tasks/run_jedi_convert_state_soca2cice_executable.py index 104a9a5dc..297f0bfb3 100644 --- a/src/swell/tasks/run_jedi_convert_state_soca2cice_executable.py +++ b/src/swell/tasks/run_jedi_convert_state_soca2cice_executable.py @@ -54,6 +54,13 @@ def execute(self) -> None: self.jedi_rendering.add_key('analysis_time', analysis_time) self.jedi_rendering.add_key('analysis_time_iso', analysis_time_iso) + # Add placeholder names if mock experiment + # ---------------------------------------- + if self.config.mock_experiment(False): + self.jedi_rendering.add_key('experiment_root', 'experiment_root') + self.jedi_rendering.add_key('experiment_id', 'experiment_id') + self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') + # Geometry # -------- self.jedi_rendering.add_key('total_processors', self.config.total_processors(None)) diff --git a/src/swell/tasks/run_jedi_ensemble_mean_variance.py b/src/swell/tasks/run_jedi_ensemble_mean_variance.py index 3a398b454..7d98c327c 100644 --- a/src/swell/tasks/run_jedi_ensemble_mean_variance.py +++ b/src/swell/tasks/run_jedi_ensemble_mean_variance.py @@ -71,6 +71,13 @@ def execute(self) -> None: # Ensemble self.jedi_rendering.add_key('ensemble_num_members', self.config.ensemble_num_members(None)) + # Add placeholder names if mock experiment + # ---------------------------------------- + if self.config.mock_experiment(False): + self.jedi_rendering.add_key('experiment_root', 'experiment_root') + self.jedi_rendering.add_key('experiment_id', 'experiment_id') + self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') + # Jedi configuration file # ----------------------- jedi_config_file = os.path.join(self.cycle_dir(), f'jedi_{jedi_application}_config.yaml') diff --git a/src/swell/tasks/run_jedi_fgat_executable.py b/src/swell/tasks/run_jedi_fgat_executable.py index f65297508..0c2eaed80 100644 --- a/src/swell/tasks/run_jedi_fgat_executable.py +++ b/src/swell/tasks/run_jedi_fgat_executable.py @@ -105,6 +105,13 @@ def execute(self) -> None: background_frequency = self.config.background_frequency() self.jedi_rendering.add_key('background_frequency', background_frequency) + # Add placeholder names if mock experiment + # ---------------------------------------- + if self.config.mock_experiment(False): + self.jedi_rendering.add_key('experiment_root', 'experiment_root') + self.jedi_rendering.add_key('experiment_id', 'experiment_id') + self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') + # Use GEOS utility to generate states # ----------------------------------- states = self.geos.states_generator(background_frequency, window_length, diff --git a/src/swell/tasks/run_jedi_hofx_ensemble_executable.py b/src/swell/tasks/run_jedi_hofx_ensemble_executable.py index 8e9aee39e..2a5be2c7a 100644 --- a/src/swell/tasks/run_jedi_hofx_ensemble_executable.py +++ b/src/swell/tasks/run_jedi_hofx_ensemble_executable.py @@ -107,6 +107,13 @@ def execute(self) -> None: self.jedi_rendering.add_key('ensemble_hofx_packets', ensemble_hofx_packets) self.jedi_rendering.add_key('packet_ensemble_members', packet_ensemble_members) + # Add placeholder names if mock experiment + # ---------------------------------------- + if self.config.mock_experiment(False): + self.jedi_rendering.add_key('experiment_root', 'experiment_root') + self.jedi_rendering.add_key('experiment_id', 'experiment_id') + self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') + # Jedi configuration file # ----------------------- jedi_config_file = os.path.join(self.cycle_dir(), diff --git a/src/swell/tasks/run_jedi_hofx_executable.py b/src/swell/tasks/run_jedi_hofx_executable.py index 6d63cf5fc..9fdee90e6 100644 --- a/src/swell/tasks/run_jedi_hofx_executable.py +++ b/src/swell/tasks/run_jedi_hofx_executable.py @@ -84,6 +84,13 @@ def execute(self, ensemble_members: Optional[list] = None) -> None: self.jedi_rendering.add_key('crtm_coeff_dir', self.config.crtm_coeff_dir(None)) self.jedi_rendering.add_key('window_begin', window_begin) + # Add placeholder names if mock experiment + # ---------------------------------------- + if self.config.mock_experiment(False): + self.jedi_rendering.add_key('experiment_root', 'experiment_root') + self.jedi_rendering.add_key('experiment_id', 'experiment_id') + self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') + # Model # ----- if window_type == '4D': diff --git a/src/swell/tasks/run_jedi_local_ensemble_da_executable.py b/src/swell/tasks/run_jedi_local_ensemble_da_executable.py index b0d67a5b8..30bc0db45 100644 --- a/src/swell/tasks/run_jedi_local_ensemble_da_executable.py +++ b/src/swell/tasks/run_jedi_local_ensemble_da_executable.py @@ -140,6 +140,13 @@ def execute(self) -> None: self.config.local_ensemble_use_linear_observer()) self.jedi_rendering.add_key('skip_ensemble_hofx', self.config.skip_ensemble_hofx()) + # Add placeholder names if mock experiment + # ---------------------------------------- + if self.config.mock_experiment(False): + self.jedi_rendering.add_key('experiment_root', 'experiment_root') + self.jedi_rendering.add_key('experiment_id', 'experiment_id') + self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') + # Prevent both 'local_ensemble_save_posterior_mean' and # 'local_ensemble_save_posterior_ensemble' from being true # -------------------------------------------------------- diff --git a/src/swell/tasks/run_jedi_obsfilters_executable.py b/src/swell/tasks/run_jedi_obsfilters_executable.py index 7af6e4867..a76f934ce 100644 --- a/src/swell/tasks/run_jedi_obsfilters_executable.py +++ b/src/swell/tasks/run_jedi_obsfilters_executable.py @@ -76,6 +76,13 @@ def execute(self, ensemble_members: Optional[list] = None) -> None: self.jedi_rendering.add_key('crtm_coeff_dir', self.config.crtm_coeff_dir(None)) self.jedi_rendering.add_key('window_begin', window_begin) + # Add placeholder names if mock experiment + # ---------------------------------------- + if self.config.mock_experiment(False): + self.jedi_rendering.add_key('experiment_root', 'experiment_root') + self.jedi_rendering.add_key('experiment_id', 'experiment_id') + self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') + # Model # ----- if window_type == '4D': diff --git a/src/swell/tasks/run_jedi_ufo_tests_executable.py b/src/swell/tasks/run_jedi_ufo_tests_executable.py index 0613c5990..308d5c8ee 100644 --- a/src/swell/tasks/run_jedi_ufo_tests_executable.py +++ b/src/swell/tasks/run_jedi_ufo_tests_executable.py @@ -57,6 +57,13 @@ def execute(self) -> None: self.jedi_rendering.add_key('crtm_coeff_dir', self.config.crtm_coeff_dir(None)) self.jedi_rendering.add_key('window_begin', window_begin) + # Add placeholder names if mock experiment + # ---------------------------------------- + if self.config.mock_experiment(False): + self.jedi_rendering.add_key('experiment_root', 'experiment_root') + self.jedi_rendering.add_key('experiment_id', 'experiment_id') + self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') + # Open the JEDI config file and fill templates # -------------------------------------------- jedi_config_dict = self.jedi_rendering.render_oops_file(f'{jedi_application}', '3D') diff --git a/src/swell/tasks/run_jedi_variational_executable.py b/src/swell/tasks/run_jedi_variational_executable.py index 25b9dde76..862cf5af5 100644 --- a/src/swell/tasks/run_jedi_variational_executable.py +++ b/src/swell/tasks/run_jedi_variational_executable.py @@ -96,7 +96,9 @@ def execute(self) -> None: self.jedi_rendering.add_key('crtm_coeff_dir', self.config.crtm_coeff_dir(None)) self.jedi_rendering.add_key('window_begin', window_begin) - if self.config.mock_experiment_directory(False): + # Add placeholder names if mock experiment + # ---------------------------------------- + if self.config.mock_experiment(False): self.jedi_rendering.add_key('experiment_root', 'experiment_root') self.jedi_rendering.add_key('experiment_id', 'experiment_id') self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') diff --git a/src/swell/tasks/task_questions.py b/src/swell/tasks/task_questions.py index 09278f326..8575c1f16 100644 --- a/src/swell/tasks/task_questions.py +++ b/src/swell/tasks/task_questions.py @@ -573,7 +573,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.observing_system_records_path(), qd.observations(), qd.window_length(), - qd.mock_experiment_directory() + qd.mock_experiment() ] ) @@ -591,7 +591,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.window_length(), qd.window_type(), qd.comparison_log_type('convert_state_soca2cice'), - qd.mock_experiment_directory() + qd.mock_experiment() ] ) @@ -609,7 +609,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.observations(), qd.observing_system_records_path(), qd.comparison_log_type('ensmeanvariance'), - qd.mock_experiment_directory() + qd.mock_experiment() ] ) @@ -621,7 +621,7 @@ class TaskQuestions(QuestionContainer, Enum): run_jedi_executable, qd.marine_models(), qd.comparison_log_type('fgat'), - qd.mock_experiment_directory() + qd.mock_experiment() ] ) @@ -641,7 +641,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.jedi_forecast_model(), qd.total_processors(), qd.comparison_log_type('hofx'), - qd.mock_experiment_directory() + qd.mock_experiment() ] ) @@ -659,7 +659,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.save_geovals(), qd.total_processors(), qd.comparison_log_type('ensemblehofx'), - qd.mock_experiment_directory() + qd.mock_experiment() ] ) @@ -719,7 +719,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.total_processors(), qd.obs_thinning_rej_fraction(), qd.comparison_log_type('obsfilters'), - qd.mock_experiment_directory() + qd.mock_experiment() ] ) @@ -733,7 +733,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.single_observations(), qd.window_length(), qd.comparison_log_type('ufo_tests'), - qd.mock_experiment_directory() + qd.mock_experiment() ] ) @@ -745,7 +745,7 @@ class TaskQuestions(QuestionContainer, Enum): run_jedi_executable, qd.perhost(), qd.comparison_log_type('variational'), - qd.mock_experiment_directory() + qd.mock_experiment() ] ) diff --git a/src/swell/test/code_tests/jedi_config_test.py b/src/swell/test/code_tests/jedi_config_test.py index 7dae4ecd1..f527465da 100644 --- a/src/swell/test/code_tests/jedi_config_test.py +++ b/src/swell/test/code_tests/jedi_config_test.py @@ -12,7 +12,7 @@ from ruamel.yaml import YAML from swell.swell_path import get_swell_path -from swell.utilities.render_jedi_config import render_jedi_config +from swell.utilities.mock_jedi_config import mock_jedi_config # -------------------------------------------------------------------------------------------------- @@ -21,7 +21,7 @@ def run_test(suite: str, datetime: str, executable_type: str) -> None: - config_file = render_jedi_config(suite, model, datetime, executable_type) + config_file = mock_jedi_config(suite, model, datetime, executable_type) yaml = YAML(typ='safe') diff --git a/src/swell/utilities/render_jedi_config.py b/src/swell/utilities/mock_jedi_config.py similarity index 90% rename from src/swell/utilities/render_jedi_config.py rename to src/swell/utilities/mock_jedi_config.py index ddfaeb9d9..57ea8c409 100644 --- a/src/swell/utilities/render_jedi_config.py +++ b/src/swell/utilities/mock_jedi_config.py @@ -16,11 +16,11 @@ # -------------------------------------------------------------------------------------------------- -def render_jedi_config(suite: str, - model: str, - datetime: str, - executable_type: str, - copy_to_wd: bool = False) -> str: +def mock_jedi_config(suite: str, + model: str, + datetime: str, + executable_type: str, + copy_to_wd: bool = False) -> str: tempdir = tempfile.mkdtemp() diff --git a/src/swell/utilities/question_defaults.py b/src/swell/utilities/question_defaults.py index 5b0257a4c..46419a783 100644 --- a/src/swell/utilities/question_defaults.py +++ b/src/swell/utilities/question_defaults.py @@ -130,6 +130,19 @@ class marine_models(SuiteQuestion): # -------------------------------------------------------------------------------------------------- + @dataclass + class mock_experiment(SuiteQuestion): + default_value: bool = False + question_name: str = "mock_experiment" + ask_question: bool = False + models: List[str] = mutable_field([ + "all_models" + ]) + prompt: str = "Dry-run option for comparing configs." + widget_type: WType = WType.BOOLEAN + + # -------------------------------------------------------------------------------------------------- + @dataclass class model_components(SuiteQuestion): default_value: str = "defer_to_code" @@ -809,19 +822,6 @@ class dry_run(TaskQuestion): # -------------------------------------------------------------------------------------------------- - @dataclass - class mock_experiment_directory(TaskQuestion): - default_value: bool = False - question_name: str = "mock_experiment_directory" - ask_question: bool = False - models: List[str] = mutable_field([ - "all_models" - ]) - prompt: str = "Dry-run option for comparing configs." - widget_type: WType = WType.BOOLEAN - - # -------------------------------------------------------------------------------------------------- - @dataclass class obs_to_ingest(TaskQuestion): default_value: list = mutable_field([]) From df0d9df55bdcba520ad5fba8c7213dcbd1c80e83 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 24 Mar 2026 11:25:11 -0400 Subject: [PATCH 28/38] add test --- src/swell/test/code_tests/jedi_config_test.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/swell/test/code_tests/jedi_config_test.py b/src/swell/test/code_tests/jedi_config_test.py index f527465da..42c8a758d 100644 --- a/src/swell/test/code_tests/jedi_config_test.py +++ b/src/swell/test/code_tests/jedi_config_test.py @@ -21,20 +21,25 @@ def run_test(suite: str, datetime: str, executable_type: str) -> None: + # Create the mock jedi config config_file = mock_jedi_config(suite, model, datetime, executable_type) + # Read the file yaml = YAML(typ='safe') - with open(config_file, 'r') as f: config_dict = yaml.load(f) + # Open the comparison yaml for the suite comparison_config = os.path.join(get_swell_path(), 'test', 'jedi_yamls', f'jedi_config_{suite}.yaml') - with open(comparison_config, 'r') as f: comparison_dict = yaml.load(f) - assert config_dict == comparison_dict + if config_dict != comparison_dict: + raise AssertionError(f'Rendered JEDI config for suite {suite}, {config_file} ' + f'did not match comparison version {comparison_config}. ' + 'Please check the file diff. If these differences are intentional, ' + 'create a mock file using `swell utility mock_jedi_config ') # -------------------------------------------------------------------------------------------------- From 3e9a44ffe303961c9602314e6643ec9dc8f02393 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 24 Mar 2026 17:34:31 -0400 Subject: [PATCH 29/38] staging --- src/swell/tasks/task_questions.py | 2 +- src/swell/utilities/mock_jedi_config.py | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/swell/tasks/task_questions.py b/src/swell/tasks/task_questions.py index 8575c1f16..e72de4f65 100644 --- a/src/swell/tasks/task_questions.py +++ b/src/swell/tasks/task_questions.py @@ -700,7 +700,7 @@ class TaskQuestions(QuestionContainer, Enum): qd.vertical_localization_method(), qd.perhost(), qd.comparison_log_type('localensembleda'), - qd.mock_experiment_directory() + qd.mock_experiment() ] ) diff --git a/src/swell/utilities/mock_jedi_config.py b/src/swell/utilities/mock_jedi_config.py index 57ea8c409..a9def2e31 100644 --- a/src/swell/utilities/mock_jedi_config.py +++ b/src/swell/utilities/mock_jedi_config.py @@ -16,6 +16,25 @@ # -------------------------------------------------------------------------------------------------- +defaults_dict = {} + +marine_default_datetime = '20210701T120000Z' +atmosphere_default_datetime = '20231010T000000Z' + +defaults_dict['3dvar_marine'] = {'datetime': marine_default_datetime, + 'model': 'geos_marine', + 'executable_type': 'variational'} + +defaults_dict['3dvar_marine_cycle'] = defaults_dict['3dvar_marine'].copy() + +defaults_dict['3dfgat_marine_cycle'] = {'datetime': marine_default_datetime, + 'model': 'geos_marine', + 'executable_type': 'fgat'} + +defaults_dict['3dvar_atmos'] = {'datetime' + +# -------------------------------------------------------------------------------------------------- + def mock_jedi_config(suite: str, model: str, datetime: str, @@ -27,8 +46,8 @@ def mock_jedi_config(suite: str, override_dict = {'models': {}} override_dict['experiment_root'] = tempdir override_dict['generate_yaml_and_exit'] = True - override_dict['models'][model] = {'check_for_obs': False, - 'mock_experiment_directory': True} + override_dict['mock_experiment_directory'] = True + override_dict['models'][model] = {'check_for_obs': False} create_experiment_directory(suite, method='defaults', platform='nccs_discover_sles15', override=override_dict, advanced=False, slurm=None, skip_r2d2=True) From 3d9a7f2276e5290280c3eb3b1bd740034008a934 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 24 Mar 2026 18:04:26 -0400 Subject: [PATCH 30/38] Add to utility scripts --- src/swell/utilities/mock_jedi_config.py | 19 ------ .../utilities/scripts/create_mock_files.py | 60 +++++++++++++++++++ 2 files changed, 60 insertions(+), 19 deletions(-) create mode 100644 src/swell/utilities/scripts/create_mock_files.py diff --git a/src/swell/utilities/mock_jedi_config.py b/src/swell/utilities/mock_jedi_config.py index a9def2e31..480514a72 100644 --- a/src/swell/utilities/mock_jedi_config.py +++ b/src/swell/utilities/mock_jedi_config.py @@ -16,25 +16,6 @@ # -------------------------------------------------------------------------------------------------- -defaults_dict = {} - -marine_default_datetime = '20210701T120000Z' -atmosphere_default_datetime = '20231010T000000Z' - -defaults_dict['3dvar_marine'] = {'datetime': marine_default_datetime, - 'model': 'geos_marine', - 'executable_type': 'variational'} - -defaults_dict['3dvar_marine_cycle'] = defaults_dict['3dvar_marine'].copy() - -defaults_dict['3dfgat_marine_cycle'] = {'datetime': marine_default_datetime, - 'model': 'geos_marine', - 'executable_type': 'fgat'} - -defaults_dict['3dvar_atmos'] = {'datetime' - -# -------------------------------------------------------------------------------------------------- - def mock_jedi_config(suite: str, model: str, datetime: str, diff --git a/src/swell/utilities/scripts/create_mock_files.py b/src/swell/utilities/scripts/create_mock_files.py new file mode 100644 index 000000000..f19342ac2 --- /dev/null +++ b/src/swell/utilities/scripts/create_mock_files.py @@ -0,0 +1,60 @@ +# (C) Copyright 2021- United States Government as represented by the Administrator of the +# National Aeronautics and Space Administration. All Rights Reserved. +# +# 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. + + +# -------------------------------------------------------------------------------------------------- + +from swell.utilities.mock_jedi_config import mock_jedi_config + +# -------------------------------------------------------------------------------------------------- + +defaults_dict = {} + +marine_default_datetime = '20210701T120000Z' +atmosphere_default_datetime = '20231010T000000Z' +compo_default_datetime = '20230805T1800Z' + +defaults_dict['3dvar_marine'] = {'datetime': marine_default_datetime, + 'model': 'geos_marine', + 'executable_type': 'variational'} + +defaults_dict['3dvar_marine_cycle'] = defaults_dict['3dvar_marine'].copy() + +defaults_dict['3dfgat_marine_cycle'] = {'datetime': marine_default_datetime, + 'model': 'geos_marine', + 'executable_type': 'fgat'} + +defaults_dict['3dvar_atmos'] = {'datetime': atmosphere_default_datetime, + 'model': 'geos_atmosphere', + 'executable_type': 'variational'} + +defaults_dict['3dfgat_atmos'] = {'datetime': atmosphere_default_datetime, + 'model': 'geos_atmosphere', + 'executable_type': 'variational'} + +defaults_dict['hofx'] = {'datetime': atmosphere_default_datetime, + 'model': 'geos_atmosphere', + 'executable_type': 'hofx'} + +defaults_dict['hofx_cf'] = {'datetime': compo_default_datetime, + 'model': 'geos_cf', + 'executable_type': 'hofx'} + +defaults_dict['localensembleda'] = {'datetime': atmosphere_default_datetime, + 'model': 'geos_atmosphere', + 'executable_type': 'localensembleda'} +# -------------------------------------------------------------------------------------------------- + +def create_mock_files() -> None: + for suite, defaults in defaults_dict.items(): + model = defaults['model'] + datetime = defaults['datetime'] + executable_type = defaults['executable_type'] + + mock_jedi_config(suite, model, datetime, executable_type, True) + + +# -------------------------------------------------------------------------------------------------- From b25a6dd1305bdffff6f7ae25b862733ad2d99c0e Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Wed, 25 Mar 2026 17:15:25 -0400 Subject: [PATCH 31/38] Functional --- docs/code_tests/code_tests.md | 8 + .../interfaces/geos_cf/task_questions.yaml | 3 + .../nccs_discover_sles15/task_questions.yaml | 6 +- src/swell/suites/geosadas/flow.cylc | 2 +- src/swell/tasks/render_jedi_observations.py | 2 +- src/swell/tasks/run_jedi_hofx_executable.py | 8 +- .../tasks/run_jedi_variational_executable.py | 1 + src/swell/test/code_tests/code_tests.py | 4 + src/swell/test/code_tests/jedi_config_test.py | 63 +- .../test/code_tests/suite_creation_test.py | 34 +- .../jedi_3dfgat_atmos_config.yaml | 19226 +++++++++++++++ .../jedi_3dfgat_marine_cycle_config.yaml | 959 + .../jedi_configs/jedi_3dvar_atmos_config.yaml | 19206 +++++++++++++++ .../jedi_configs/jedi_3dvar_cf_config.yaml | 179 + .../jedi_3dvar_marine_config.yaml | 694 + .../jedi_3dvar_marine_cycle_config.yaml | 694 + .../jedi_configs/jedi_hofx_cf_config.yaml | 111 + .../test/jedi_configs/jedi_hofx_config.yaml | 19233 ++++++++++++++++ .../jedi_localensembleda_config.yaml | 9498 ++++++++ src/swell/utilities/mock_jedi_config.py | 34 +- src/swell/utilities/question_defaults.py | 3 - .../utilities/scripts/create_mock_files.py | 60 - 22 files changed, 69919 insertions(+), 109 deletions(-) create mode 100644 src/swell/test/jedi_configs/jedi_3dfgat_atmos_config.yaml create mode 100644 src/swell/test/jedi_configs/jedi_3dfgat_marine_cycle_config.yaml create mode 100644 src/swell/test/jedi_configs/jedi_3dvar_atmos_config.yaml create mode 100644 src/swell/test/jedi_configs/jedi_3dvar_cf_config.yaml create mode 100644 src/swell/test/jedi_configs/jedi_3dvar_marine_config.yaml create mode 100644 src/swell/test/jedi_configs/jedi_3dvar_marine_cycle_config.yaml create mode 100644 src/swell/test/jedi_configs/jedi_hofx_cf_config.yaml create mode 100644 src/swell/test/jedi_configs/jedi_hofx_config.yaml create mode 100644 src/swell/test/jedi_configs/jedi_localensembleda_config.yaml delete mode 100644 src/swell/utilities/scripts/create_mock_files.py diff --git a/docs/code_tests/code_tests.md b/docs/code_tests/code_tests.md index 7d369d3da..2dbe279a4 100644 --- a/docs/code_tests/code_tests.md +++ b/docs/code_tests/code_tests.md @@ -17,3 +17,11 @@ By default, swell will create several directories in the working directory that ```yaml test_cache_location: /discover/nobackup//swell-test-cache ``` + +## Code tests + +### Suite creation test +The suite creation test attempts to construct experiments for all suites within swell in a temporary directory. If one fails, try creating the suite on its own to make sure it is configured properly. Ensure all values are valid and are not filled by the templates `defer_to_model` or `defer_to_platform`. + +### JEDI Config test +The JEDI config test generates mock configs for jedi executables in a dry-run mode, where obs will not be checked and placeholders will be used for experiment filepaths. These configs are compared against reference files located in `src/swell/test/jedi_configs/`, and named `jedi__config.yaml`. Any difference in values in these yamls will cause this test to fail, so ensure any differences created are intentional, then run `swell utility CreateMockConfigs` to automatically generate new reference files for all suites. These new files are placed in the `jedi_config` location in the source code. diff --git a/src/swell/configuration/jedi/interfaces/geos_cf/task_questions.yaml b/src/swell/configuration/jedi/interfaces/geos_cf/task_questions.yaml index 8db8f8996..43d6ef951 100644 --- a/src/swell/configuration/jedi/interfaces/geos_cf/task_questions.yaml +++ b/src/swell/configuration/jedi/interfaces/geos_cf/task_questions.yaml @@ -80,6 +80,9 @@ observations: - tropomi_s5p_no2_tropo - tempo_no2_total +obs_experiment: + default_value: None + observing_system_records_path: default_value: None diff --git a/src/swell/deployment/platforms/nccs_discover_sles15/task_questions.yaml b/src/swell/deployment/platforms/nccs_discover_sles15/task_questions.yaml index 28a448ff4..be2b5f33f 100644 --- a/src/swell/deployment/platforms/nccs_discover_sles15/task_questions.yaml +++ b/src/swell/deployment/platforms/nccs_discover_sles15/task_questions.yaml @@ -19,15 +19,15 @@ existing_jedi_source_directory: existing_jedi_source_directory_pinned: default_value: /discover/nobackup/projects/gmao/advda/jedi_bundles_sles15/current_pinned_jedi_bundle/source/ +existing_perllib_path: + default_value: /discover/nobackup/projects/gmao/advda/perllib_opt/GMAO_perllib/g1.0.1/ + geos_homdir: default_value: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/geos/homdirs/coupled_5deg initial_restarts_method: default_value: geos_expdir -gmao_perllib_path: - default_value: /discover/nobackup/projects/gmao/advda/perllib_opt/GMAO_perllib/g1.0.1/ - path_to_bufr: default_value: None diff --git a/src/swell/suites/geosadas/flow.cylc b/src/swell/suites/geosadas/flow.cylc index 9bd6b7936..1e514a2bb 100644 --- a/src/swell/suites/geosadas/flow.cylc +++ b/src/swell/suites/geosadas/flow.cylc @@ -107,7 +107,7 @@ [[ GetGeosAdasBackground ]] script = "swell task GetGeosAdasBackground $config -d $datetime -m geos_atmosphere" - [[RenderJediObservations-{{model_component}}]] + [[RenderJediObservations-geos_atmosphere]] script = "swell task RenderJediObservations $config -d $datetime -m geos_atmosphere" [[RunJediVariationalExecutable]] diff --git a/src/swell/tasks/render_jedi_observations.py b/src/swell/tasks/render_jedi_observations.py index aa2f639e6..a2c43f26a 100644 --- a/src/swell/tasks/render_jedi_observations.py +++ b/src/swell/tasks/render_jedi_observations.py @@ -51,7 +51,7 @@ def execute(self) -> None: cwd = os.getcwd() - if self.config.mock_experiment_directory(False): + if self.config.mock_experiment(False): self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') self.jedi_rendering.add_key('experiment_id', 'experiment_id') self.jedi_rendering.add_key('experiment_root', 'experiment_root') diff --git a/src/swell/tasks/run_jedi_hofx_executable.py b/src/swell/tasks/run_jedi_hofx_executable.py index 9fdee90e6..46e039811 100644 --- a/src/swell/tasks/run_jedi_hofx_executable.py +++ b/src/swell/tasks/run_jedi_hofx_executable.py @@ -164,6 +164,7 @@ def execute(self, ensemble_members: Optional[list] = None) -> None: jedi_config_file, output_log_file) else: self.logger.info('YAML generated, now exiting.') + return # If saving the geovals they need to be combined # ---------------------------------------------- @@ -269,6 +270,11 @@ def append_gomsaver( # Add mem to the filename if it is not None mem_str = f'_mem{mem}' if mem is not None else '' + if not self.config.mock_experiment(False): + cycle_dir = self.cycle_dir() + else: + cycle_dir = 'cycle_dir' + for observer in jedi_config_dict['observations']['observers']: observation = observer['observation_name'] @@ -276,7 +282,7 @@ def append_gomsaver( # Define the GeoVaLs saver dictionary gom_saver_dict = { 'filter': 'GOMsaver', - 'filename': os.path.join(self.cycle_dir(), + 'filename': os.path.join(cycle_dir, f'{observation}-geovals.{window_begin}{mem_str}.nc4') } diff --git a/src/swell/tasks/run_jedi_variational_executable.py b/src/swell/tasks/run_jedi_variational_executable.py index 862cf5af5..ba0c1c42d 100644 --- a/src/swell/tasks/run_jedi_variational_executable.py +++ b/src/swell/tasks/run_jedi_variational_executable.py @@ -99,6 +99,7 @@ def execute(self) -> None: # Add placeholder names if mock experiment # ---------------------------------------- if self.config.mock_experiment(False): + print('MOCK EXPERIMENT') self.jedi_rendering.add_key('experiment_root', 'experiment_root') self.jedi_rendering.add_key('experiment_id', 'experiment_id') self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') diff --git a/src/swell/test/code_tests/code_tests.py b/src/swell/test/code_tests/code_tests.py index 2832a937d..1b7b790f1 100644 --- a/src/swell/test/code_tests/code_tests.py +++ b/src/swell/test/code_tests/code_tests.py @@ -18,6 +18,7 @@ from swell.test.code_tests.question_dictionary_comparison_test import QuestionDictionaryTest from swell.test.code_tests.test_generate_observing_system import GenerateObservingSystemTest from swell.test.code_tests.suite_creation_test import SuiteCreationTest +from swell.test.code_tests.jedi_config_test import JEDIConfigTest # -------------------------------------------------------------------------------------------------- @@ -56,6 +57,9 @@ def code_tests() -> None: # Load Suite Creation Test test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(SuiteCreationTest)) + # Load Suite Creation Test + test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(JEDIConfigTest)) + # Create a test runner test_runner = unittest.TextTestRunner() diff --git a/src/swell/test/code_tests/jedi_config_test.py b/src/swell/test/code_tests/jedi_config_test.py index 42c8a758d..adb8f5dba 100644 --- a/src/swell/test/code_tests/jedi_config_test.py +++ b/src/swell/test/code_tests/jedi_config_test.py @@ -8,43 +8,58 @@ # -------------------------------------------------------------------------------------------------- import os -import tempfile from ruamel.yaml import YAML +import unittest from swell.swell_path import get_swell_path from swell.utilities.mock_jedi_config import mock_jedi_config +from swell.utilities.scripts.create_mock_configs import defaults_dict # -------------------------------------------------------------------------------------------------- -def run_test(suite: str, - model: str, - datetime: str, - executable_type: str) -> None: - # Create the mock jedi config - config_file = mock_jedi_config(suite, model, datetime, executable_type) +class JEDIConfigTest(unittest.TestCase): - # Read the file - yaml = YAML(typ='safe') - with open(config_file, 'r') as f: - config_dict = yaml.load(f) + def runTest(self) -> None: - # Open the comparison yaml for the suite - comparison_config = os.path.join(get_swell_path(), 'test', 'jedi_yamls', - f'jedi_config_{suite}.yaml') - with open(comparison_config, 'r') as f: - comparison_dict = yaml.load(f) + '''Generates new jedi config mocks for all suites and compares them to previous versions. - if config_dict != comparison_dict: - raise AssertionError(f'Rendered JEDI config for suite {suite}, {config_file} ' - f'did not match comparison version {comparison_config}. ' - 'Please check the file diff. If these differences are intentional, ' - 'create a mock file using `swell utility mock_jedi_config ') + Comparison mocks are located under `src/swell/test/jedi_configs`. The intention of this + test is to ensure changes to the jedi configs generated by swell are intentional. These + mock files are run in a 'dry' mode, in that they do not fetch or check observations, + and all filepaths are filled by placeholders. The JEDI configs can then be neatly checked + for equivalence. -# -------------------------------------------------------------------------------------------------- + It is expected that this test will fail when any change is made to JEDI, thus new mock + files will need to be generated when changes are made. New mock files can be generated + automatically by running `swell utility CreateMockConfigs`. + ''' + + for suite, defaults in defaults_dict.items(): + model = defaults['model'] + datetime = defaults['datetime'] + executable_type = defaults['executable_type'] + + # Create the mock jedi config + config_file = mock_jedi_config(suite, model, datetime, executable_type) + + # Read the file + yaml = YAML(typ='safe') + with open(config_file, 'r') as f: + config_dict = yaml.load(f) + # Open the comparison yaml for the suite + comparison_path = os.path.join(get_swell_path(), 'test', 'jedi_configs') + comparison_config = os.path.join(comparison_path, + f'jedi_{suite}_config.yaml') + with open(comparison_config, 'r') as f: + comparison_dict = yaml.load(f) -if __name__ == '__main__': - run_test('3dvar_marine', 'geos_marine', '20210701T120000Z', 'variational') + if config_dict != comparison_dict: + raise AssertionError(f'Rendered JEDI config for suite {suite}, {config_file} ' + f'did not match comparison version {comparison_config}. ' + 'Please check the file diffs. If these differences ' + 'are intentional, new mock test files can be generated using ' + '`swell utility MockJediConfigs`') # -------------------------------------------------------------------------------------------------- diff --git a/src/swell/test/code_tests/suite_creation_test.py b/src/swell/test/code_tests/suite_creation_test.py index dd9a22a3b..846e4b80c 100644 --- a/src/swell/test/code_tests/suite_creation_test.py +++ b/src/swell/test/code_tests/suite_creation_test.py @@ -9,22 +9,34 @@ import tempfile import os -from ruamel.yaml import YAML import unittest from swell.suites.all_suites import get_suites from swell.deployment.create_experiment import create_experiment_directory +from swell.utilities.logger import get_logger # -------------------------------------------------------------------------------------------------- + class SuiteCreationTest(unittest.TestCase): def runTest(self) -> None: + '''Test generating all suites to make sure they are configured correctly. + + Checks that templates `defer_to_model` and `defer_to_platform` are filled. + + ''' + suites = get_suites() + self.logger = get_logger('SuiteCreationTest') + for suite in suites: - self.suite_creation_test(suite) + try: + self.suite_creation_test(suite) + except Exception as e: + raise Exception(f'Error generating {suite} experiment: {e}') def suite_creation_test(self, suite: str) -> None: @@ -36,16 +48,20 @@ def suite_creation_test(self, suite: str) -> None: override_dict['skip_r2d2'] = True create_experiment_directory(suite, 'defaults', 'nccs_discover_sles15', - override_dict, False, None) - - experiment_yaml = os.path.join(tempdir, f'swell-{suite}', f'swell-{suite}-suite', 'experiment.yaml') + override_dict, advanced=False, slurm=None, skip_r2d2=True) - yaml = YAML(typ='safe') + experiment_yaml = os.path.join(tempdir, f'swell-{suite}', f'swell-{suite}-suite', + 'experiment.yaml') with open(experiment_yaml, 'r') as f: - experiment_yaml_str = yaml.load(f) + experiment_yaml_str = f.read() + + if 'defer_to_model' in experiment_yaml_str: + raise AssertionError(f'Improperly filled template, `defer_to_model`' + 'present in experiment yaml') - assert 'defer_to_model' not in experiment_yaml_str - assert 'defer_to_platform' not in experiment_yaml_str + if 'defer_to_platform' in experiment_yaml_str: + raise AssertionError(f'Improperly filled template, `defer_to_platform`' + 'present in experiment.yaml') # -------------------------------------------------------------------------------------------------- diff --git a/src/swell/test/jedi_configs/jedi_3dfgat_atmos_config.yaml b/src/swell/test/jedi_configs/jedi_3dfgat_atmos_config.yaml new file mode 100644 index 000000000..c6aa44731 --- /dev/null +++ b/src/swell/test/jedi_configs/jedi_3dfgat_atmos_config.yaml @@ -0,0 +1,19226 @@ +cost function: + cost type: 4D-Var + jb evaluation: false + time window: + begin: '2023-10-09T21:00:00Z' + length: PT6H + bound to include: begin + geometry: + fms initialization: + namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml + field table filename: ./fv3-jedi/fv3files/field_table_gmao + akbk: ./fv3-jedi/fv3files/akbk72.nc4 + layout: + - 4 + - 4 + npx: '91' + npy: '91' + npz: '72' + model: + name: PSEUDO + tstep: PT1H + filetype: cube sphere history + provider: geos + compute edge pressure from surface pressure: true + max allowable geometry difference: 0.001 + datapath: cycle_dir + filenames: + - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 + - fv3-jedi/bkg/geos.crtmsrf.91.nc4 + field io names: &id001 + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_at_surface: ps + air_pressure_levels: pe + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + initial_mass_fraction_of_large_scale_cloud_condensate: qls + initial_mass_fraction_of_convective_cloud_condensate: qcn + convective_cloud_area_fraction: cfcn + fraction_of_ocean: frocean + fraction_of_land: frland + isotropic_variance_of_filtered_topography: varflt + surface_velocity_scale: ustar + surface_buoyancy_scale: bstar + planetary_boundary_layer_height: zpbl + surface_exchange_coefficient_for_momentum: cm + surface_exchange_coefficient_for_heat: ct + surface_exchange_coefficient_for_moisture: cq + KCBL_before_moist: kcbl + surface_temp_before_moist: tsm + lower_index_where_Kh_greater_than_2: khl + upper_index_where_Kh_greater_than_2: khu + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts + eastward_wind_at_surface: u10m + northward_wind_at_surface: v10m + variable change: + variable change name: Analysis2Model + forecast length: PT6H + analysis variables: &id003 + - eastward_wind + - northward_wind + - air_temperature + - water_vapor_mixing_ratio_wrt_moist_air + - air_pressure_at_surface + - air_pressure_levels + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - fraction_of_ocean + - fraction_of_lake + - fraction_of_ice + - skin_temperature_at_surface + background: + datetime: '2023-10-09T21:00:00Z' + filetype: cube sphere history + provider: geos + compute edge pressure from surface pressure: true + max allowable geometry difference: 0.001 + datapath: cycle_dir + filenames: + - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 + - fv3-jedi/bkg/geos.crtmsrf.91.nc4 + state variables: + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_at_surface + - air_pressure_levels + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - initial_mass_fraction_of_large_scale_cloud_condensate + - initial_mass_fraction_of_convective_cloud_condensate + - convective_cloud_area_fraction + - fraction_of_ocean + - fraction_of_land + - isotropic_variance_of_filtered_topography + - surface_velocity_scale + - surface_buoyancy_scale + - planetary_boundary_layer_height + - surface_exchange_coefficient_for_momentum + - surface_exchange_coefficient_for_heat + - surface_exchange_coefficient_for_moisture + - KCBL_before_moist + - surface_temp_before_moist + - lower_index_where_Kh_greater_than_2 + - upper_index_where_Kh_greater_than_2 + - fraction_of_lake + - fraction_of_ice + - vtype + - stype + - vfrac + - sheleg + - skin_temperature_at_surface + - soilt + - soilm + - eastward_wind_at_surface + - northward_wind_at_surface + field io names: *id001 + background error: + covariance model: SABER + covariance type: gsi hybrid covariance + saber central block: + saber block name: gsi hybrid covariance + read: + gsi akbk: ./fv3-jedi/fv3files/akbk72.nc4 + gsi error covariance file: ./fv3-jedi/gsibec/gsi-coeffs-gmao-global-l72x144y91.nc4 + gsi berror namelist file: ./fv3-jedi/gsibec/cli_gsibec_configuration_l72x144y91.nml + processor layout x direction: 4 + processor layout y direction: 24 + debugging mode: false + saber outer blocks: + - saber block name: interpolation + inner geometry: + function space: StructuredColumns + custom grid matching gsi: + type: latlon + lats: 91 + lons: 144 + custom partitioner matching gsi: + bands: 24 + halo: 1 + forward interpolator: + local interpolator type: oops unstructured grid interpolator + inverse interpolator: + local interpolator type: oops unstructured grid interpolator + state variables to inverse: &id002 + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_at_surface + - air_pressure_levels + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - fraction_of_ocean + - fraction_of_lake + - fraction_of_ice + - geopotential_height_times_gravity_at_surface + - skin_temperature_at_surface + linear variable change: + linear variable change name: Control2Analysis + input variables: *id002 + output variables: *id003 + observations: + get values: + variable change: + variable change name: Model2GeoVaLs + hydrometeor effective radii method: gsi + tropopause pressure method: gsi + observers: + - obs space: + name: Aircraft Temperature + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/aircraft_temperature.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.aircraft_temperature.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - airTemperature + obs bias: + input file: cycle_dir/aircraft_temperature.20231009T150000Z.acftbias + output file: cycle_dir/aircraft_temperature.20231009T210000Z.acftbias + bc by record: true + variational bc: + predictors: + - name: constant + - name: obsMetadataPredictor + variable: instantaneousAltitudeRate + - name: obsMetadataPredictor + variable: instantaneousAltitudeRate + order: 2 + covariance: + minimal required obs number: 3 + variance range: + - 1e-06 + - 1.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/aircraft_temperature.20231009T150000Z.acftbias_cov + inflation: + ratio: 1.005 + ratio for small dataset: 2.0 + obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - airTemperature + linear obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - airTemperature + obs filters: + - filter: Variable Assignment + where: + - variable: + name: ObsType/airTemperature + is_in: 130 + assignments: + - name: MetaData/stationIdentification + value: 'KX130 ' + - filter: Variable Assignment + where: + - variable: + name: MetaData/instantaneousAltitudeRate + minvalue: 50.0 + assignments: + - name: MetaData/instantaneousAltitudeRate + value: 0.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 2.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 2.5 + - 2.3 + - 2.1 + - 1.9 + - 1.7 + where: + - variable: + name: ObsType/airTemperature + is_in: 130 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 1.4706 + - 1.3529 + - 1.2353 + - 1.1176 + - 1.0 + where: + - variable: + name: ObsType/airTemperature + is_in: 131,133 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + errors: + - 1.5 + - 1.3 + - 1.1 + - 0.9 + - 0.8 + - 0.8 + - 0.75 + - 0.7 + - 0.7 + - 0.75 + - 0.85 + - 1.3 + - 1.5 + - 1.5 + where: + - variable: + name: ObsType/airTemperature + is_in: 132 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 60000 + - 40000 + errors: + - 1.5 + - 1.35 + - 1.25 + - 1.1 + - 1.0 + - 1.3 + - 1.7 + where: + - variable: + name: ObsType/airTemperature + is_in: 134 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 1.4706 + - 1.3529 + - 1.2353 + - 1.1176 + - 1000000000.0 + where: + - variable: + name: ObsType/airTemperature + is_in: 135 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreQC/airTemperature + is_in: 4-15 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: + name: ObsType/airTemperature + is_in: 134, 135 + action: + name: passivate + defer to post: true + - filter: Perform Action + action: + name: inflate error + inflation factor: 10.0 + filter variables: + - name: airTemperature + where: + - variable: + name: MetaData/pressure + maxvalue: 110000 + minvalue: 50000 + - variable: + name: ObsType/airTemperature + is_in: 130 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + observation_name: aircraft_temperature + - obs space: + name: Aircraft Wind + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/aircraft_wind.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.aircraft_wind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + obs post filters: + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: PreQC/windEastward + is_in: 4-15 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: + name: ObsType/windEastward + is_in: 234, 235 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 80000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 1.4 + - 1.5 + - 1.6 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.3 + - 2.6 + - 2.8 + - 3.0 + - 3.2 + - 2.7 + - 2.4 + - 2.1 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.6 + where: + - variable: + name: ObsType/windEastward + is_in: 230 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.0 + where: + - variable: + name: ObsType/windEastward + is_in: 231 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 2.5 + where: + - variable: + name: ObsType/windEastward + is_in: 233 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.0 + where: + - variable: + name: ObsType/windEastward + is_in: 234, 235 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + errors: + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + where: + - variable: + name: ObsType/windEastward + is_in: 232 + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - windEastward + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - windNorthward + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + cgross: + - 6.0 + - 6.5 + - 7.0 + - 7.5 + - 7.5 + - 7.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + cgross: + - 6.0 + - 6.5 + - 7.0 + - 7.5 + - 7.5 + - 7.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + variable: windNorthward + action: + name: reject + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + defer to post: true + observation_name: aircraft_wind + - obs space: + name: AIRS AQUA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/airs_aqua.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.airs_aqua.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: airs_aqua + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/airs_aqua.20231009T150000Z.satbias.nc4 + output file: cycle_dir/airs_aqua.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/airs_aqua.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/airs_aqua.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/airs_aqua.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/airs_aqua.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/airs_aqua_119_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.2 + - 1.2 + - 1.3136 + - 1.4 + - 1.4 + - 1.2639 + - 1.4 + - 1.4 + - 1.1802 + - 1.2517 + - 1.1719 + - 1.2 + - 1.1728 + - 1.1442 + - 1.2 + - 1.2 + - 1.15 + - 1.0801 + - 1.15 + - 1.15 + - 1.0396 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 0.9946 + - 1.05 + - 0.9217 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 0.9591 + - 0.9465 + - 0.9593 + - 0.9337 + - 1.0 + - 0.9861 + - 1.0017 + - 1.1 + - 1.0083 + - 1.0024 + - 1.1 + - 0.9967 + - 1.0094 + - 0.9412 + - 1.1 + - 0.998 + - 0.9807 + - 0.857 + - 0.8727 + - 0.8114 + - 0.879 + - 0.871 + - 0.8853 + - 0.7937 + - 0.8243 + - 0.8 + - 0.8016 + - 0.8 + - 0.7781 + - 0.7475 + - 0.85 + - 0.7405 + - 0.715 + - 0.7416 + - 0.7465 + - 0.9 + - 0.7198 + - 0.7157 + - 0.9 + - 0.727 + - 0.7246 + - 0.704 + - 0.7039 + - 0.66 + - 0.6694 + - 0.6669 + - 0.7031 + - 0.6977 + - 0.6488 + - 0.6653 + - 0.9 + - 0.6265 + - 0.622 + - 0.6308 + - 0.6297 + - 0.621 + - 0.6225 + - 0.6229 + - 0.6234 + - 0.6238 + - 0.6332 + - 0.6425 + - 0.7028 + - 0.6152 + - 0.9 + - 0.7257 + - 0.7288 + - 1.15 + - 0.9 + - 0.6673 + - 0.7473 + - 0.6767 + - 0.7056 + - 0.9 + - 0.95 + - 0.7271 + - 0.95 + - 0.725 + - 0.7601 + - 0.6973 + - 0.7573 + - 0.6011 + - 0.606 + - 0.9 + - 0.6635 + - 0.586 + - 0.5766 + - 0.75 + - 2.0386 + - 0.75 + - 1.0 + - 0.9 + - 0.9 + - 0.9 + - 0.9 + - 0.9 + - 0.9 + - 1.0 + - 1.3386 + - 1.0 + - 1.0 + - 0.85 + - 0.95 + - 1.7386 + - 0.95 + - 0.9 + - 0.8 + - 1.7386 + - 0.75 + - 0.75 + - 0.75 + - 0.8 + - 0.75 + - 0.8 + - 0.9 + - 0.75 + - 0.8 + - 0.8 + - 1.1 + - 0.75 + - 1.1 + - 0.75 + - 0.5991 + - 0.5348 + - 0.6541 + - 0.7421 + - 0.6192 + - 0.8186 + - 1.0616 + - 0.8848 + - 1.024 + - 2.5 + - 1.0249 + - 1.0795 + - 1.2199 + - 2.5 + - 2.5 + - 1.3103 + - 1.3603 + - 2.5 + - 2.5 + - 2.5 + - 1.323 + - 2.5 + - 2.5 + - 2.5 + - 1.4406 + - 2.5 + - 2.5 + - 1.3965 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.6997 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.6264 + - 2.5 + - 2.5 + - 2.5 + - 1.3436 + - 2.5 + - 2.5 + - 0.5727 + - 0.6838 + - 0.5994 + - 0.5178 + - 0.5145 + - 0.547 + - 0.5572 + - 0.5002 + - 0.4974 + - 0.55 + - 0.4953 + - 0.4883 + - 0.4948 + - 0.5446 + - 0.5777 + - 1.5 + - 1.5 + - 3.0 + - 3.0 + - 2.5 + - 2.5 + - 2.0 + - 1.0 + - 1.5 + - 1.5 + - 1.8 + - 0.6 + - 0.7 + - 0.65 + - 0.675 + - 0.7 + - 0.75 + - 0.775 + - 0.8 + - 0.8 + - 0.85 + - 0.85 + - 0.85 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.725 + - 0.75 + - 0.775 + - 0.8 + - 0.825 + - 0.8 + - 0.8 + - 0.8 + - 0.75 + - 0.8 + - 0.8 + - 0.8 + - 0.8 + - 0.8 + - 0.85 + - 0.8 + - 0.8 + - 2.5 + - 0.75 + - 0.75 + - 0.75 + - 0.75 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 2122, 2123, 2128, 2134, 2141, 2145, 2149, 2153, 2164, 2189, 2197, + 2209, 2226, 2234, 2280, 2318, 2321, 2325, 2328, 2333, 2339, 2348, 2353, + 2355, 2357, 2363, 2370, 2371, 2377 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: airs_aqua + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: &id004 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 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.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: airs_aqua + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 1.7 + - 3.0 + - 1.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 1.25 + - 3.5 + - 3.5 + - 3.0 + - 3.0 + - 1.5 + - 3.0 + - 3.0 + - 3.0 + - 1.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id004 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: airs_aqua + - obs space: + name: AMSR2 GCOM-W1 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsr2_gcom-w1.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsr2_gcom-w1.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: amsr2_gcom-w1 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsr2_gcom-w1.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsr2_gcom-w1.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsr2_gcom-w1.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsr2_gcom-w1.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsr2_gcom-w1.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsr2_gcom-w1.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 340.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.999 + - variable: + name: GeoVaLs/skin_temperature_at_surface_where_sea + minvalue: 275 + - variable: + name: GeoVaLs/wind_speed_at_surface + maxvalue: 12 + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/TotalColumnVaporGuess + minvalue: 10.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SunGlintAngle + minvalue: 20.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: &id005 + - 0.48 + - 3.0737 + - 0.7433 + - 3.643 + - 3.5304 + - 4.427 + - 5.1448 + - 5.0785 + - 4.9763 + - 9.3215 + - 2.5789 + - 5.5274 + - 0.6641 + - 1.3674 + clwret_types: + - ObsValue + maxvalue: 1.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id005 + clwret_types: + - HofX + maxvalue: 1.0 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: None + value: + name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id005 + clwret_types: + - ObsValue + reference: + name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id005 + clwret_types: + - HofX + minvalue: -0.5 + maxvalue: 0.5 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id005 + clwret_types: + - ObsValue + - HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.1 + - 0.1 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 0.6 + - 0.6 + - 0.6 + - 0.6 + - 0.6 + - 0.5 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + err0: + - 0.8 + - 0.9 + - 0.8 + - 0.9 + - 1.0 + - 1.1 + - 2.0 + - 3.5 + - 3.0 + - 4.8 + - 5.0 + - 6.0 + - 4.5 + - 6.3 + err1: + - 5.0 + - 5.0 + - 5.0 + - 5.0 + - 5.0 + - 18.5 + - 20.0 + - 40.0 + - 20.0 + - 25.0 + - 30.0 + - 30.0 + - 30.0 + - 20.0 + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: None + threshold: 2.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 7-10 + absolute threshold: 30 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 11-14 + absolute threshold: 50 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: amsr2_gcom-w1 + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsr2_gcom-w1 + - obs space: + name: AMSU-A AQUA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_aqua.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_aqua.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_aqua + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_aqua.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_aqua.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_aqua.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_aqua.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_aqua.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_aqua.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id006 + - 2.5 + - 2.0 + - 2.0 + - 0.5 + - 0.4 + - 0.4 + - 0.5 + - 0.3 + - 0.35 + - 0.35 + - 0.45 + - 1.0 + - 1.5 + - 3.75 + - 6.3 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_aqua + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_aqua + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_aqua + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_aqua + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_aqua + error parameter vector: *id006 + obserr_bound_max: + - 4.5 + - 4.5 + - 4.5 + - 3.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 3.0 + - 3.5 + - 4.5 + - 4.5 + - 4.5 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_aqua + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_aqua + - obs space: + name: AMSU-A METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_metop-b.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id007 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_metop-b + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_metop-b + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_metop-b + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_metop-b + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_metop-b + error parameter vector: *id007 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_metop-b + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_metop-b + - obs space: + name: AMSU-A METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_metop-c.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_metop-c.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_metop-c.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_metop-c.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_metop-c.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_metop-c.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id008 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_metop-c + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_metop-c + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_metop-c + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_metop-c + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_metop-c + error parameter vector: *id008 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_metop-c + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_metop-c + - obs space: + name: AMSU-A NOAA-15 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n15.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n15.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n15 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n15.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_n15.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n15.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n15.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n15.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n15.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id009 + - 3.0 + - 2.0 + - 2.0 + - 0.6 + - 0.3 + - 0.23 + - 0.25 + - 0.275 + - 0.34 + - 0.4 + - 0.6 + - 1.0 + - 1.5 + - 5.0 + - 3.0 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n15 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n15 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n15 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n15 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n15 + error parameter vector: *id009 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n15 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n15 + - obs space: + name: AMSU-A NOAA-18 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n18.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n18.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n18 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n18.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_n18.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n18.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n18.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n18.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n18.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id010 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n18 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n18 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n18 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n18 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n18 + error parameter vector: *id010 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n18 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n18 + - obs space: + name: AMSU-A NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n19.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_n19.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n19.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n19.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n19.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n19.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id011 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n19 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n19 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n19 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n19 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n19 + error parameter vector: *id011 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n19 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n19 + - obs space: + name: ATMS NOAA-20 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/atms_n20.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.atms_n20.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: atms_n20 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/atms_n20.20231009T150000Z.satbias.nc4 + output file: cycle_dir/atms_n20.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: ATMS + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/atms_n20.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/atms_n20.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/atms_n20.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/atms_n20.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id012 + - 5.0 + - 5.0 + - 5.0 + - 3.0 + - 0.55 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 5.0 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-7,16-22 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-7,16 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: atms_n20 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: atms_n20 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + use_biasterm: true + test_biasterm: ObsBiasTerm + sensor: atms_n20 + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: atms_n20 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: atms_n20 + error parameter vector: *id012 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: atms_n20 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: atms_n20 + - obs space: + name: ATMS NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/atms_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.atms_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: atms_npp + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/atms_npp.20231009T150000Z.satbias.nc4 + output file: cycle_dir/atms_npp.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: ATMS + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/atms_npp.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/atms_npp.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/atms_npp.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/atms_npp.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id013 + - 5.0 + - 5.0 + - 5.0 + - 3.0 + - 0.55 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 5.0 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-7,16-22 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-7,16 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: atms_npp + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: atms_npp + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + use_biasterm: true + test_biasterm: ObsBiasTerm + sensor: atms_npp + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: atms_npp + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: atms_npp + error parameter vector: *id013 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: atms_npp + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: atms_npp + - obs space: + name: AVHRR-3 METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/avhrr3_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_metop-b.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_metop-b + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_metop-b + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_metop-b + - obs space: + name: AVHRR-3 NOAA-18 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_n18.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_n18.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_n18 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_n18.20231009T150000Z.satbias.nc4 + output file: cycle_dir/avhrr3_n18.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_n18.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_n18.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_n18.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_n18.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_n18 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_n18 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_n18 + - obs space: + name: AVHRR-3 NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_n19.20231009T150000Z.satbias.nc4 + output file: cycle_dir/avhrr3_n19.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_n19.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_n19.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_n19.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_n19.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_n19 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_n19 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_n19 + - obs space: + name: CRIS-FSR NOAA-20 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/cris-fsr_n20.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.cris-fsr_n20.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: cris-fsr_n20 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/cris-fsr_n20.20231009T150000Z.satbias.nc4 + output file: cycle_dir/cris-fsr_n20.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/cris-fsr_n20.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/cris-fsr_n20.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/cris-fsr_n20.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/cris-fsr_n20.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/cris-fsr_108_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 0.823 + - 0.76 + - 0.736 + - 0.743 + - 0.856 + - 1.079 + - 0.888 + - 0.778 + - 0.671 + - 0.65 + - 0.643 + - 0.629 + - 0.629 + - 0.618 + - 0.638 + - 0.619 + - 0.61 + - 0.627 + - 0.601 + - 0.617 + - 0.608 + - 0.498 + - 0.5112 + - 0.4922 + - 0.4959 + - 0.4954 + - 0.4836 + - 0.514 + - 0.5005 + - 0.4917 + - 0.4881 + - 0.4656 + - 0.4793 + - 0.4638 + - 0.4557 + - 0.4666 + - 0.4468 + - 0.4534 + - 0.4471 + - 0.4448 + - 0.4469 + - 0.536 + - 0.4426 + - 0.4388 + - 0.534 + - 0.4368 + - 0.438 + - 0.531 + - 0.4379 + - 0.535 + - 0.4404 + - 0.4405 + - 0.4409 + - 0.4472 + - 0.4555 + - 0.4433 + - 0.4437 + - 0.4454 + - 0.4448 + - 0.4465 + - 0.4499 + - 0.4488 + - 0.54 + - 0.4534 + - 0.4472 + - 0.455 + - 0.4562 + - 0.452 + - 0.4639 + - 0.538 + - 0.4573 + - 0.4604 + - 0.4533 + - 0.4692 + - 0.566 + - 0.4457 + - 0.4457 + - 0.5154 + - 0.5084 + - 0.528 + - 0.552 + - 0.56 + - 0.567 + - 0.546 + - 0.495 + - 0.4809 + - 0.4732 + - 0.4861 + - 0.4632 + - 0.529 + - 0.4748 + - 0.5007 + - 0.5711 + - 0.595 + - 0.5469 + - 0.626 + - 0.541 + - 0.543 + - 0.533 + - 0.541 + - 0.4695 + - 0.53 + - 0.539 + - 0.529 + - 0.542 + - 0.4681 + - 0.536 + - 0.542 + - 0.535 + - 0.563 + - 0.4805 + - 0.647 + - 0.609 + - 0.553 + - 0.583 + - 0.576 + - 0.6294 + - 0.5885 + - 0.556 + - 0.578 + - 0.566 + - 0.601 + - 0.5627 + - 0.5675 + - 0.592 + - 0.5166 + - 0.589 + - 0.5291 + - 0.5892 + - 0.5976 + - 0.5834 + - 0.6512 + - 0.6748 + - 0.6615 + - 0.6003 + - 0.5669 + - 0.5587 + - 0.5507 + - 0.5871 + - 0.616 + - 0.637 + - 0.633 + - 0.639 + - 0.655 + - 0.641 + - 0.664 + - 0.648 + - 0.656 + - 0.663 + - 0.652 + - 0.681 + - 0.662 + - 0.673 + - 0.672 + - 0.68 + - 0.735 + - 0.732 + - 0.715 + - 0.674 + - 0.687 + - 0.702 + - 0.705 + - 0.715 + - 0.725 + - 0.707 + - 0.74 + - 0.74 + - 0.874 + - 0.737 + - 0.819 + - 0.76 + - 0.869 + - 0.9 + - 0.698 + - 0.823 + - 0.676 + - 0.682 + - 0.766 + - 0.68 + - 0.685 + - 0.694 + - 0.695 + - 0.689 + - 0.727 + - 0.695 + - 0.688 + - 0.677 + - 0.736 + - 0.651 + - 0.661 + - 0.6199 + - 0.6223 + - 0.6036 + - 0.6003 + - 0.5991 + - 0.598 + - 0.591 + - 0.5764 + - 0.577 + - 0.5593 + - 0.597 + - 0.576 + - 0.574 + - 0.578 + - 0.579 + - 0.575 + - 0.576 + - 0.568 + - 0.575 + - 0.569 + - 0.559 + - 0.568 + - 0.5401 + - 0.55 + - 0.5575 + - 0.578 + - 0.5635 + - 0.5786 + - 0.5807 + - 0.581 + - 0.573 + - 0.569 + - 0.567 + - 0.552 + - 0.55 + - 0.558 + - 0.552 + - 0.562 + - 0.574 + - 0.575 + - 0.629 + - 0.682 + - 0.756 + - 1.05 + - 1.122 + - 1.1402 + - 1.154 + - 1.131 + - 1.123 + - 1.159 + - 1.106 + - 1.116 + - 1.069 + - 1.077 + - 1.155 + - 1.162 + - 1.1402 + - 0.644 + - 1.208 + - 1.1402 + - 1.295 + - 1.258 + - 1.1402 + - 0.606 + - 0.603 + - 0.563 + - 0.592 + - 0.607 + - 0.611 + - 0.612 + - 0.618 + - 0.626 + - 0.629 + - 0.583 + - 0.8646 + - 0.626 + - 0.639 + - 0.559 + - 0.827 + - 0.612 + - 0.576 + - 0.58 + - 0.575 + - 0.688 + - 0.697 + - 0.743 + - 0.681 + - 0.832 + - 0.719 + - 0.785 + - 0.878 + - 0.9402 + - 1.0054 + - 1.073 + - 1.129 + - 1.035 + - 1.027 + - 0.9703 + - 1.195 + - 0.9153 + - 1.266 + - 1.153 + - 1.348 + - 1.18 + - 1.269 + - 1.311 + - 0.9914 + - 1.359 + - 1.166 + - 1.139 + - 1.2817 + - 1.398 + - 1.542 + - 1.229 + - 1.377 + - 1.28 + - 1.245 + - 1.1188 + - 1.193 + - 1.293 + - 1.275 + - 1.331 + - 1.34 + - 1.099 + - 1.048 + - 1.124 + - 1.225 + - 1.183 + - 1.196 + - 1.4 + - 1.333 + - 1.417 + - 1.326 + - 1.305 + - 1.0638 + - 1.268 + - 1.217 + - 1.289 + - 1.395 + - 1.232 + - 1.435 + - 1.298 + - 1.328 + - 1.262 + - 1.199 + - 1.391 + - 1.233 + - 1.329 + - 1.664 + - 1.509 + - 1.349 + - 1.481 + - 1.595 + - 1.485 + - 1.532 + - 1.504 + - 1.584 + - 1.609 + - 1.516 + - 1.489 + - 1.502 + - 1.544 + - 1.611 + - 1.539 + - 1.296 + - 1.288 + - 1.241 + - 1.32 + - 1.313 + - 1.301 + - 1.843 + - 1.747 + - 1.711 + - 1.771 + - 1.937 + - 1.575 + - 1.573 + - 1.5 + - 1.459 + - 1.402 + - 1.363 + - 2.201 + - 2.127 + - 2.177 + - 2.157 + - 2.192 + - 2.146 + - 2.151 + - 2.071 + - 1.986 + - 1.845 + - 1.687 + - 1.505 + - 1.373 + - 1.229 + - 1.113 + - 1.004 + - 0.936 + - 0.895 + - 0.871 + - 0.841 + - 0.821 + - 0.805 + - 0.8 + - 0.792 + - 0.797 + - 0.791 + - 0.783 + - 0.777 + - 0.785 + - 0.787 + - 0.789 + - 0.793 + - 0.794 + - 0.745 + - 0.75 + - 0.748 + - 0.749 + - 0.744 + - 0.733 + - 0.733 + - 0.741 + - 0.746 + - 0.746 + - 0.738 + - 0.743 + - 0.745 + - 0.749 + - 0.75 + - 0.75 + - 0.884 + - 0.906 + - 0.917 + - 0.924 + - 0.922 + - 0.928 + - 0.921 + - 0.938 + - 0.931 + - 0.943 + - 0.946 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: cris-fsr_n20 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: &id014 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 31 + - 31 + - 30 + - 31 + - 30 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: cris-fsr_n20 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + 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 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id014 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: cris-fsr_n20 + - obs space: + name: CRIS-FSR NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/cris-fsr_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.cris-fsr_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: cris-fsr_npp + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/cris-fsr_npp.20231009T150000Z.satbias.nc4 + output file: cycle_dir/cris-fsr_npp.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/cris-fsr_npp.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/cris-fsr_npp.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/cris-fsr_npp.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/cris-fsr_npp.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/cris-fsr_108_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 0.823 + - 0.76 + - 0.736 + - 0.743 + - 0.856 + - 1.079 + - 0.888 + - 0.778 + - 0.671 + - 0.65 + - 0.643 + - 0.629 + - 0.629 + - 0.618 + - 0.638 + - 0.619 + - 0.61 + - 0.627 + - 0.601 + - 0.617 + - 0.608 + - 0.498 + - 0.5112 + - 0.4922 + - 0.4959 + - 0.4954 + - 0.4836 + - 0.514 + - 0.5005 + - 0.4917 + - 0.4881 + - 0.4656 + - 0.4793 + - 0.4638 + - 0.4557 + - 0.4666 + - 0.4468 + - 0.4534 + - 0.4471 + - 0.4448 + - 0.4469 + - 0.536 + - 0.4426 + - 0.4388 + - 0.534 + - 0.4368 + - 0.438 + - 0.531 + - 0.4379 + - 0.535 + - 0.4404 + - 0.4405 + - 0.4409 + - 0.4472 + - 0.4555 + - 0.4433 + - 0.4437 + - 0.4454 + - 0.4448 + - 0.4465 + - 0.4499 + - 0.4488 + - 0.54 + - 0.4534 + - 0.4472 + - 0.455 + - 0.4562 + - 0.452 + - 0.4639 + - 0.538 + - 0.4573 + - 0.4604 + - 0.4533 + - 0.4692 + - 0.566 + - 0.4457 + - 0.4457 + - 0.5154 + - 0.5084 + - 0.528 + - 0.552 + - 0.56 + - 0.567 + - 0.546 + - 0.495 + - 0.4809 + - 0.4732 + - 0.4861 + - 0.4632 + - 0.529 + - 0.4748 + - 0.5007 + - 0.5711 + - 0.595 + - 0.5469 + - 0.626 + - 0.541 + - 0.543 + - 0.533 + - 0.541 + - 0.4695 + - 0.53 + - 0.539 + - 0.529 + - 0.542 + - 0.4681 + - 0.536 + - 0.542 + - 0.535 + - 0.563 + - 0.4805 + - 0.647 + - 0.609 + - 0.553 + - 0.583 + - 0.576 + - 0.6294 + - 0.5885 + - 0.556 + - 0.578 + - 0.566 + - 0.601 + - 0.5627 + - 0.5675 + - 0.592 + - 0.5166 + - 0.589 + - 0.5291 + - 0.5892 + - 0.5976 + - 0.5834 + - 0.6512 + - 0.6748 + - 0.6615 + - 0.6003 + - 0.5669 + - 0.5587 + - 0.5507 + - 0.5871 + - 0.616 + - 0.637 + - 0.633 + - 0.639 + - 0.655 + - 0.641 + - 0.664 + - 0.648 + - 0.656 + - 0.663 + - 0.652 + - 0.681 + - 0.662 + - 0.673 + - 0.672 + - 0.68 + - 0.735 + - 0.732 + - 0.715 + - 0.674 + - 0.687 + - 0.702 + - 0.705 + - 0.715 + - 0.725 + - 0.707 + - 0.74 + - 0.74 + - 0.874 + - 0.737 + - 0.819 + - 0.76 + - 0.869 + - 0.9 + - 0.698 + - 0.823 + - 0.676 + - 0.682 + - 0.766 + - 0.68 + - 0.685 + - 0.694 + - 0.695 + - 0.689 + - 0.727 + - 0.695 + - 0.688 + - 0.677 + - 0.736 + - 0.651 + - 0.661 + - 0.6199 + - 0.6223 + - 0.6036 + - 0.6003 + - 0.5991 + - 0.598 + - 0.591 + - 0.5764 + - 0.577 + - 0.5593 + - 0.597 + - 0.576 + - 0.574 + - 0.578 + - 0.579 + - 0.575 + - 0.576 + - 0.568 + - 0.575 + - 0.569 + - 0.559 + - 0.568 + - 0.5401 + - 0.55 + - 0.5575 + - 0.578 + - 0.5635 + - 0.5786 + - 0.5807 + - 0.581 + - 0.573 + - 0.569 + - 0.567 + - 0.552 + - 0.55 + - 0.558 + - 0.552 + - 0.562 + - 0.574 + - 0.575 + - 0.629 + - 0.682 + - 0.756 + - 1.05 + - 1.122 + - 1.1402 + - 1.154 + - 1.131 + - 1.123 + - 1.159 + - 1.106 + - 1.116 + - 1.069 + - 1.077 + - 1.155 + - 1.162 + - 1.1402 + - 0.644 + - 1.208 + - 1.1402 + - 1.295 + - 1.258 + - 1.1402 + - 0.606 + - 0.603 + - 0.563 + - 0.592 + - 0.607 + - 0.611 + - 0.612 + - 0.618 + - 0.626 + - 0.629 + - 0.583 + - 0.8646 + - 0.626 + - 0.639 + - 0.559 + - 0.827 + - 0.612 + - 0.576 + - 0.58 + - 0.575 + - 0.688 + - 0.697 + - 0.743 + - 0.681 + - 0.832 + - 0.719 + - 0.785 + - 0.878 + - 0.9402 + - 1.0054 + - 1.073 + - 1.129 + - 1.035 + - 1.027 + - 0.9703 + - 1.195 + - 0.9153 + - 1.266 + - 1.153 + - 1.348 + - 1.18 + - 1.269 + - 1.311 + - 0.9914 + - 1.359 + - 1.166 + - 1.139 + - 1.2817 + - 1.398 + - 1.542 + - 1.229 + - 1.377 + - 1.28 + - 1.245 + - 1.1188 + - 1.193 + - 1.293 + - 1.275 + - 1.331 + - 1.34 + - 1.099 + - 1.048 + - 1.124 + - 1.225 + - 1.183 + - 1.196 + - 1.4 + - 1.333 + - 1.417 + - 1.326 + - 1.305 + - 1.0638 + - 1.268 + - 1.217 + - 1.289 + - 1.395 + - 1.232 + - 1.435 + - 1.298 + - 1.328 + - 1.262 + - 1.199 + - 1.391 + - 1.233 + - 1.329 + - 1.664 + - 1.509 + - 1.349 + - 1.481 + - 1.595 + - 1.485 + - 1.532 + - 1.504 + - 1.584 + - 1.609 + - 1.516 + - 1.489 + - 1.502 + - 1.544 + - 1.611 + - 1.539 + - 1.296 + - 1.288 + - 1.241 + - 1.32 + - 1.313 + - 1.301 + - 1.843 + - 1.747 + - 1.711 + - 1.771 + - 1.937 + - 1.575 + - 1.573 + - 1.5 + - 1.459 + - 1.402 + - 1.363 + - 2.201 + - 2.127 + - 2.177 + - 2.157 + - 2.192 + - 2.146 + - 2.151 + - 2.071 + - 1.986 + - 1.845 + - 1.687 + - 1.505 + - 1.373 + - 1.229 + - 1.113 + - 1.004 + - 0.936 + - 0.895 + - 0.871 + - 0.841 + - 0.821 + - 0.805 + - 0.8 + - 0.792 + - 0.797 + - 0.791 + - 0.783 + - 0.777 + - 0.785 + - 0.787 + - 0.789 + - 0.793 + - 0.794 + - 0.745 + - 0.75 + - 0.748 + - 0.749 + - 0.744 + - 0.733 + - 0.733 + - 0.741 + - 0.746 + - 0.746 + - 0.738 + - 0.743 + - 0.745 + - 0.749 + - 0.75 + - 0.75 + - 0.884 + - 0.906 + - 0.917 + - 0.924 + - 0.922 + - 0.928 + - 0.921 + - 0.938 + - 0.931 + - 0.943 + - 0.946 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: cris-fsr_npp + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: &id015 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 31 + - 31 + - 30 + - 31 + - 30 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: cris-fsr_npp + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + 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 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id015 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: cris-fsr_npp + - obs space: + name: GMI GPM + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/gmi_gpm.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.gmi_gpm.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: gmi_gpm + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/gmi_gpm.20231009T150000Z.satbias.nc4 + output file: cycle_dir/gmi_gpm.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: cloudWaterContent + sensor: GMI_GPM + ch37v: 6 + ch37h: 7 + order: 2 + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: cloudWaterContent + sensor: GMI_GPM + ch37v: 6 + ch37h: 7 + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/gmi_gpm.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/gmi_gpm.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-9 + minvalue: 50.0 + maxvalue: 320.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 10-13 + minvalue: 70.0 + maxvalue: 320.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 5 + maxvalue: 70 + - variable: + name: MetaData/latitude + minvalue: -55.0 + maxvalue: 55.0 + - variable: + name: MetaData/heightOfSurface + maxvalue: 2000 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + minvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/latitude + minvalue: -20.0 + maxvalue: 0.0 + - variable: + name: MetaData/longitude + minvalue: 25.0 + maxvalue: 40.0 + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/cloudWaterContent_obs + type: float + function: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + maxvalue: 900 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - HofX + maxvalue: 900 + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/cloudWaterContent_hofx + type: float + function: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - HofX + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + minvalue: 0.0 + maxvalue: 0.05 + - variable: + name: ObsFunction/Emissivity_Diff_GMI + options: + channel: 2 + regression_constant_1: 0.1329 + regression_constant_2: 0.42468 + regression_coeff_1: + - -0.00548 + - 0.00772 + - 0.0053 + - -0.00425 + - 0.00053 + - 8e-05 + - -3e-05 + - -0.00144 + - 0.00059 + - -0.00016 + - 3e-05 + - -0.00011 + - 0.00017 + regression_coeff_2: + - 0.00289 + - -0.00142 + minvalue: 0.01 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + minvalue: 0.0 + maxvalue: 0.05 + - variable: + name: ObsFunction/Emissivity_Diff_GMI + options: + channel: 4 + regression_constant_1: 0.15627 + regression_constant_2: 0.83807 + regression_coeff_1: + - -0.01084 + - 0.01194 + - 0.01111 + - -0.00784 + - 0.0006 + - 8e-05 + - -3e-05 + - -0.00248 + - 0.00105 + - -8e-05 + - 0.0 + - -0.00013 + - 0.00016 + regression_coeff_2: + - 0.00048 + - -0.00207 + minvalue: 0.035 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + minvalue: 0.0 + maxvalue: 0.05 + - variable: + name: ObsFunction/Emissivity_Diff_GMI + options: + channel: 7 + regression_constant_1: 0.30306 + regression_constant_2: 1.24071 + regression_coeff_1: + - -0.01793 + - 0.0173 + - 0.01784 + - -0.01199 + - 0.00067 + - 0.00013 + - -4e-05 + - -0.00365 + - 0.00154 + - -4e-05 + - -1e-05 + - -0.00015 + - 0.00017 + regression_coeff_2: + - 0.00068 + - -0.00342 + minvalue: 0.05 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + - HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.3 + - 0.2 + - 0.3 + - 0.3 + x2: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + err0: + - 2.7 + - 3.7 + - 3.5 + - 4.5 + - 4.0 + - 3.8 + - 300.0 + - 5.0 + - 11.5 + - 5.0 + - 5.0 + - 2.5 + - 3.0 + err1: + - 17.0 + - 23.0 + - 13.0 + - 25.0 + - 11.0 + - 13.0 + - 23.0 + - 10.0 + - 20.0 + - 15.0 + - 20.0 + - 8.0 + - 13.0 + err2: + - 25.0 + - 40.0 + - 40.0 + - 55.0 + - 35.0 + - 25.0 + - 500.0 + - 50.0 + - 50.0 + - 50.0 + - 50.0 + - 30.0 + - 40.0 + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 1,2,4,6 + threshold: 2.0 + absolute threshold: 30.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 9,10,11 + threshold: 2.0 + absolute threshold: 20.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 3,5,8 + threshold: 2.0 + absolute threshold: 15.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 12,13 + threshold: 2.0 + absolute threshold: 10.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 7 + threshold: 2.0 + absolute threshold: 5.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: gmi_gpm + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: gmi_gpm + - obs space: + name: gnssrobndnbam + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/gps.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - sequenceNumber + sort variable: impactHeightRO + sort order: ascending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.gps.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - bendingAngle + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + vertlayer: full + sr_steps: 2 + super_ref_qc: NBAM + obs filters: + - filter: BlackList + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 41,265,266,421,440,724,725,726,727,728,729 + - filter: Perform Action + filter variables: + - name: bendingAngle + where: + - variable: PreUseFlag/bendingAngle + minvalue: 1 + action: + name: reject + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266,267,268,269 + test variables: + - name: MetaData/impactHeightRO + maxvalue: 45000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 3-5 + test variables: + - name: MetaData/impactHeightRO + minvalue: 8000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 267,268,269 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 401 + test variables: + - name: MetaData/impactHeightRO + minvalue: 5000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 267,268,269 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 402-999 + test variables: + - name: MetaData/impactHeightRO + minvalue: 9000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 401 + test variables: + - name: MetaData/impactHeightRO + minvalue: 5000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 402-999 + test variables: + - name: MetaData/impactHeightRO + minvalue: 8000.1 + action: + name: reject + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: inflate error + inflation factor: 2.0 + where: + - variable: MetaData/satelliteIdentifier + is_in: 267,268,269 + - filter: Variable Assignment + assignments: + - name: JediAdjustObsError/bendingAngle + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/bendingAngle + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error parameter: 1.0 + where: + - variable: + name: JediAdjustObsError/bendingAngle + maxvalue: 1.0 + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + - variable: + name: MetaData/satelliteIdentifier + is_in: 3,5,41,42,43,44,267,268,269,440,421,724,725,726,727,728,729, 750,751,752,753,754,755,821,825 + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error parameter: 10.0 + where: + - variable: + name: JediAdjustObsError/bendingAngle + minvalue: 10.0 + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: bendingAngle + threshold: 5 + action: + name: reject + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error function: JediAdjustObsError/bendingAngle + where: + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + defer to post: true + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + defer to post: true + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate_GEOS + defer to post: true + observation_name: gps + - obs space: + name: IASI METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/iasi_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.iasi_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: iasi_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/iasi_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/iasi_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/iasi_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/iasi_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/iasi_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/iasi_metop-b.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/iasi_metop_141_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id016 + - 0.727 + - 0.81 + - 0.75 + - 0.79 + - 0.7055 + - 0.74 + - 0.68 + - 0.72 + - 0.6526 + - 0.65 + - 0.665 + - 0.69 + - 0.6394 + - 0.64 + - 0.6528 + - 0.6065 + - 0.6246 + - 0.61 + - 0.6423 + - 0.5995 + - 0.59 + - 0.6069 + - 0.6 + - 0.5965 + - 0.64 + - 0.62 + - 0.589 + - 0.5865 + - 0.65 + - 0.5861 + - 0.61 + - 0.5874 + - 0.68 + - 0.606 + - 0.68 + - 4.38 + - 3.05 + - 2.31 + - 1.56 + - 1.33 + - 1.58 + - 0.93 + - 0.5832 + - 0.5587 + - 0.5867 + - 0.58 + - 0.5655 + - 0.5522 + - 0.5864 + - 0.5475 + - 0.5854 + - 0.5455 + - 0.5811 + - 0.5376 + - 0.5452 + - 0.5686 + - 0.5329 + - 0.5655 + - 0.5302 + - 0.545 + - 0.5628 + - 0.59 + - 0.5262 + - 0.559 + - 0.5264 + - 0.5442 + - 0.51 + - 0.5513 + - 0.5224 + - 0.5523 + - 0.5188 + - 0.5487 + - 0.5245 + - 0.58 + - 0.5437 + - 0.5343 + - 0.5364 + - 0.64 + - 0.5338 + - 0.72 + - 0.537 + - 0.75 + - 0.51 + - 0.65 + - 0.5274 + - 0.529 + - 0.5187 + - 0.5228 + - 1.12 + - 0.5222 + - 0.5109 + - 0.67 + - 0.5133 + - 0.5179 + - 0.507 + - 0.67 + - 0.5091 + - 0.62 + - 0.5093 + - 0.69 + - 0.5048 + - 0.5024 + - 0.78 + - 0.497 + - 0.5337 + - 0.4865 + - 0.4915 + - 0.4835 + - 0.4869 + - 0.87 + - 0.4824 + - 0.4852 + - 0.84 + - 0.84 + - 0.84 + - 0.5318 + - 0.8 + - 0.4772 + - 0.98 + - 0.488 + - 0.4978 + - 0.5157 + - 0.61 + - 0.5213 + - 0.4884 + - 0.79 + - 0.62 + - 0.66 + - 0.4691 + - 0.65 + - 0.4809 + - 0.468 + - 0.62 + - 0.4679 + - 0.6913 + - 0.4705 + - 0.4785 + - 0.47 + - 0.4773 + - 0.4703 + - 0.98 + - 0.4697 + - 0.4662 + - 0.65 + - 0.467 + - 0.4883 + - 0.4684 + - 0.4684 + - 0.4947 + - 0.5393 + - 0.5024 + - 0.4715 + - 0.621 + - 0.6136 + - 0.5316 + - 1.78 + - 0.5099 + - 1.14 + - 0.539 + - 1.79 + - 0.508 + - 0.5723 + - 1.94 + - 2.01 + - 0.49 + - 0.5647 + - 0.5022 + - 1.47 + - 0.5815 + - 0.6782 + - 2.13 + - 0.5445 + - 1.52 + - 0.5555 + - 1.96 + - 2.31 + - 2.33 + - 2.32 + - 2.31 + - 0.6994 + - 0.7006 + - 0.706 + - 0.9785 + - 0.7023 + - 0.6991 + - 0.6946 + - 2.28 + - 2.26 + - 2.26 + - 2.26 + - 0.6608 + - 0.6835 + - 0.6822 + - 2.24 + - 2.26 + - 0.6735 + - 2.28 + - 0.667 + - 0.7732 + - 0.6642 + - 0.648 + - 0.6629 + - 2.29 + - 2.29 + - 0.6799 + - 0.623 + - 2.32 + - 0.603 + - 0.6224 + - 2.32 + - 0.6187 + - 2.31 + - 2.31 + - 2.28 + - 2.29 + - 2.28 + - 2.26 + - 1.966 + - 2.27 + - 2.26 + - 2.25 + - 2.27 + - 2.24 + - 2.21 + - 2.24 + - 2.17 + - 2.18 + - 2.17 + - 2.21 + - 1.4 + - 2.16 + - 2.2 + - 2.13 + - 2.12 + - 2.13 + - 2.1 + - 2.12 + - 2.11 + - 2.09 + - 2.09 + - 2.08 + - 2.09 + - 2.04 + - 2.04 + - 1.966 + - 2.01 + - 2.05 + - 2.03 + - 2.06 + - 1.98 + - 1.95 + - 1.94 + - 1.91 + - 1.857 + - 1.76 + - 1.748 + - 1.83 + - 2.04 + - 1.748 + - 1.99 + - 2.075 + - 2.07 + - 2.02 + - 2.04 + - 2.1 + - 1.966 + - 2.18 + - 2.21 + - 2.24 + - 2.23 + - 2.23 + - 1.98 + - 2.2 + - 2.18 + - 2.18 + - 2.21 + - 2.23 + - 2.24 + - 2.24 + - 2.25 + - 1.8 + - 2.24 + - 1.73 + - 1.73 + - 2.27 + - 1.67 + - 2.21 + - 1.72 + - 2.23 + - 2.23 + - 2.23 + - 2.24 + - 2.23 + - 2.12 + - 2.17 + - 1.74 + - 2.02 + - 1.88 + - 1.67 + - 1.73 + - 1.83 + - 1.82 + - 1.73 + - 1.83 + - 2.19 + - 1.84 + - 1.89 + - 1.6 + - 1.71 + - 1.86 + - 1.85 + - 1.84 + - 1.87 + - 1.91 + - 1.52 + - 1.95 + - 1.87 + - 1.89 + - 1.91 + - 1.91 + - 1.93 + - 1.9 + - 1.91 + - 1.9 + - 1.89 + - 1.89 + - 1.91 + - 1.9 + - 1.91 + - 1.91 + - 1.91 + - 1.93 + - 1.94 + - 1.91 + - 1.92 + - 1.77 + - 1.91 + - 1.95 + - 1.19 + - 1.96 + - 1.98 + - 1.94 + - 1.55 + - 1.91 + - 1.92 + - 1.92 + - 1.97 + - 1.93 + - 1.99 + - 1.86 + - 1.12 + - 1.93 + - 1.92 + - 1.95 + - 1.85 + - 1.84 + - 1.91 + - 1.12 + - 1.82 + - 1.82 + - 1.95 + - 1.24 + - 1.94 + - 1.96 + - 1.21 + - 1.83 + - 1.96 + - 1.36 + - 1.96 + - 1.82 + - 1.92 + - 1.68 + - 1.93 + - 1.23 + - 1.96 + - 1.93 + - 1.86 + - 1.41 + - 1.16 + - 1.6 + - 1.25 + - 1.2 + - 1.65 + - 1.66 + - 1.87 + - 1.94 + - 1.96 + - 1.91 + - 1.25 + - 1.93 + - 1.91 + - 1.7 + - 0.99 + - 1.81 + - 1.92 + - 1.95 + - 1.5 + - 1.47 + - 1.15 + - 1.58 + - 1.18 + - 1.82 + - 1.13 + - 1.83 + - 1.91 + - 1.26 + - 1.27 + - 1.91 + - 1.45 + - 1.6 + - 1.29 + - 1.94 + - 1.94 + - 1.23 + - 1.95 + - 1.21 + - 1.94 + - 1.86 + - 1.9 + - 1.33 + - 1.75 + - 2.02 + - 1.98 + - 2.03 + - 1.83 + - 1.5 + - 2.04 + - 2.02 + - 1.9 + - 2.0 + - 2.02 + - 1.95 + - 1.93 + - 1.95 + - 1.95 + - 1.99 + - 2.0 + - 1.94 + - 1.96 + - 1.86 + - 1.92 + - 1.88 + - 1.86 + - 1.84 + - 1.87 + - 1.77 + - 1.89 + - 1.89 + - 1.88 + - 1.94 + - 1.82 + - 1.79 + - 1.86 + - 2.06 + - 2.33 + - 1.88 + - 1.86 + - 1.81 + - 1.8 + - 1.8 + - 1.86 + - 1.9 + - 2.0 + - 2.06 + - 2.1 + - 2.2 + - 2.0 + - 2.16 + - 1.98 + - 1.8 + - 1.8 + - 1.85 + - 1.75 + - 2.04 + - 2.19 + - 2.14 + - 2.19 + - 1.86 + - 2.1 + - 2.11 + - 2.18 + - 2.03 + - 2.28 + - 2.19 + - 2.26 + - 2.26 + - 2.21 + - 2.21 + - 2.26 + - 2.33 + - 2.27 + - 2.21 + - 2.12 + - 2.23 + - 2.26 + - 2.25 + - 1.88 + - 2.26 + - 2.24 + - 2.36 + - 2.29 + - 2.35 + - 2.3 + - 2.27 + - 2.08 + - 2.05 + - 2.27 + - 2.28 + - 2.27 + - 2.28 + - 1.97 + - 2.25 + - 2.25 + - 2.25 + - 2.31 + - 2.28 + - 2.27 + - 2.13 + - 2.24 + - 2.28 + - 2.28 + - 2.41 + - 2.34 + - 9.32 + - 2.28 + - 2.38 + - 2.27 + - 2.27 + - 2.39 + - 2.11 + - 2.09 + - 2.1 + - 2.06 + - 2.12 + - 2.08 + - 2.0 + - 1.93 + - 2.02 + - 2.55 + - 1.54 + - 1.64 + - 1.51 + - 1.55 + - 2.82 + - 2.92 + - 2.55 + - 2.37 + - 1.85 + - 1.6 + - 1.72 + - 1.74 + - 1.79 + - 1.9 + - 1.94 + - 2.0 + - 2.04 + - 2.08 + - 2.12 + - 2.13 + - 2.16 + - 2.18 + - 2.18 + - 2.2 + - 2.2 + - 2.41 + - 2.39 + - 2.38 + - 2.4 + - 2.42 + - 2.41 + - 2.43 + - 2.45 + - 2.43 + - 2.45 + - 2.43 + - 2.4 + - 2.44 + - 2.4 + - 2.42 + - 2.43 + - 2.45 + - 2.45 + - 2.45 + - 2.46 + - 2.45 + - 2.45 + - 2.43 + - 2.51 + - 2.48 + - 2.48 + - 2.53 + - 2.46 + - 2.49 + - 2.5 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.54 + - 2.5 + - 2.48 + - 2.5 + - 2.55 + - 2.5 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.46 + - 2.53 + - 9.0 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: iasi_metop-b + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + error parameter vector: *id016 + use_flag: None + use_flag_clddet: &id017 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 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.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + error parameter vector: *id016 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: iasi_metop-b + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + error parameter vector: *id016 + 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 + - 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 + - 0.75 + - 2.0 + - 0.75 + - 2.0 + - 2.0 + - 2.0 + - 0.75 + - 0.75 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 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 + - 0.75 + - 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 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.4 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id017 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: iasi_metop-b + - obs space: + name: IASI METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/iasi_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.iasi_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: iasi_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/iasi_metop-c.20231009T150000Z.satbias.nc4 + output file: cycle_dir/iasi_metop-c.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/iasi_metop-c.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/iasi_metop-c.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/iasi_metop-c.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/iasi_metop-c.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/iasi_metop_141_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id018 + - 0.727 + - 0.81 + - 0.75 + - 0.79 + - 0.7055 + - 0.74 + - 0.68 + - 0.72 + - 0.6526 + - 0.65 + - 0.665 + - 0.69 + - 0.6394 + - 0.64 + - 0.6528 + - 0.6065 + - 0.6246 + - 0.61 + - 0.6423 + - 0.5995 + - 0.59 + - 0.6069 + - 0.6 + - 0.5965 + - 0.64 + - 0.62 + - 0.589 + - 0.5865 + - 0.65 + - 0.5861 + - 0.61 + - 0.5874 + - 0.68 + - 0.606 + - 0.68 + - 4.38 + - 3.05 + - 2.31 + - 1.56 + - 1.33 + - 1.58 + - 0.93 + - 0.5832 + - 0.5587 + - 0.5867 + - 0.58 + - 0.5655 + - 0.5522 + - 0.5864 + - 0.5475 + - 0.5854 + - 0.5455 + - 0.5811 + - 0.5376 + - 0.5452 + - 0.5686 + - 0.5329 + - 0.5655 + - 0.5302 + - 0.545 + - 0.5628 + - 0.59 + - 0.5262 + - 0.559 + - 0.5264 + - 0.5442 + - 0.51 + - 0.5513 + - 0.5224 + - 0.5523 + - 0.5188 + - 0.5487 + - 0.5245 + - 0.58 + - 0.5437 + - 0.5343 + - 0.5364 + - 0.64 + - 0.5338 + - 0.72 + - 0.537 + - 0.75 + - 0.51 + - 0.65 + - 0.5274 + - 0.529 + - 0.5187 + - 0.5228 + - 1.12 + - 0.5222 + - 0.5109 + - 0.67 + - 0.5133 + - 0.5179 + - 0.507 + - 0.67 + - 0.5091 + - 0.62 + - 0.5093 + - 0.69 + - 0.5048 + - 0.5024 + - 0.78 + - 0.497 + - 0.5337 + - 0.4865 + - 0.4915 + - 0.4835 + - 0.4869 + - 0.87 + - 0.4824 + - 0.4852 + - 0.84 + - 0.84 + - 0.84 + - 0.5318 + - 0.8 + - 0.4772 + - 0.98 + - 0.488 + - 0.4978 + - 0.5157 + - 0.61 + - 0.5213 + - 0.4884 + - 0.79 + - 0.62 + - 0.66 + - 0.4691 + - 0.65 + - 0.4809 + - 0.468 + - 0.62 + - 0.4679 + - 0.6913 + - 0.4705 + - 0.4785 + - 0.47 + - 0.4773 + - 0.4703 + - 0.98 + - 0.4697 + - 0.4662 + - 0.65 + - 0.467 + - 0.4883 + - 0.4684 + - 0.4684 + - 0.4947 + - 0.5393 + - 0.5024 + - 0.4715 + - 0.621 + - 0.6136 + - 0.5316 + - 1.78 + - 0.5099 + - 1.14 + - 0.539 + - 1.79 + - 0.508 + - 0.5723 + - 1.94 + - 2.01 + - 0.49 + - 0.5647 + - 0.5022 + - 1.47 + - 0.5815 + - 0.6782 + - 2.13 + - 0.5445 + - 1.52 + - 0.5555 + - 1.96 + - 2.31 + - 2.33 + - 2.32 + - 2.31 + - 0.6994 + - 0.7006 + - 0.706 + - 0.9785 + - 0.7023 + - 0.6991 + - 0.6946 + - 2.28 + - 2.26 + - 2.26 + - 2.26 + - 0.6608 + - 0.6835 + - 0.6822 + - 2.24 + - 2.26 + - 0.6735 + - 2.28 + - 0.667 + - 0.7732 + - 0.6642 + - 0.648 + - 0.6629 + - 2.29 + - 2.29 + - 0.6799 + - 0.623 + - 2.32 + - 0.603 + - 0.6224 + - 2.32 + - 0.6187 + - 2.31 + - 2.31 + - 2.28 + - 2.29 + - 2.28 + - 2.26 + - 1.966 + - 2.27 + - 2.26 + - 2.25 + - 2.27 + - 2.24 + - 2.21 + - 2.24 + - 2.17 + - 2.18 + - 2.17 + - 2.21 + - 1.4 + - 2.16 + - 2.2 + - 2.13 + - 2.12 + - 2.13 + - 2.1 + - 2.12 + - 2.11 + - 2.09 + - 2.09 + - 2.08 + - 2.09 + - 2.04 + - 2.04 + - 1.966 + - 2.01 + - 2.05 + - 2.03 + - 2.06 + - 1.98 + - 1.95 + - 1.94 + - 1.91 + - 1.857 + - 1.76 + - 1.748 + - 1.83 + - 2.04 + - 1.748 + - 1.99 + - 2.075 + - 2.07 + - 2.02 + - 2.04 + - 2.1 + - 1.966 + - 2.18 + - 2.21 + - 2.24 + - 2.23 + - 2.23 + - 1.98 + - 2.2 + - 2.18 + - 2.18 + - 2.21 + - 2.23 + - 2.24 + - 2.24 + - 2.25 + - 1.8 + - 2.24 + - 1.73 + - 1.73 + - 2.27 + - 1.67 + - 2.21 + - 1.72 + - 2.23 + - 2.23 + - 2.23 + - 2.24 + - 2.23 + - 2.12 + - 2.17 + - 1.74 + - 2.02 + - 1.88 + - 1.67 + - 1.73 + - 1.83 + - 1.82 + - 1.73 + - 1.83 + - 2.19 + - 1.84 + - 1.89 + - 1.6 + - 1.71 + - 1.86 + - 1.85 + - 1.84 + - 1.87 + - 1.91 + - 1.52 + - 1.95 + - 1.87 + - 1.89 + - 1.91 + - 1.91 + - 1.93 + - 1.9 + - 1.91 + - 1.9 + - 1.89 + - 1.89 + - 1.91 + - 1.9 + - 1.91 + - 1.91 + - 1.91 + - 1.93 + - 1.94 + - 1.91 + - 1.92 + - 1.77 + - 1.91 + - 1.95 + - 1.19 + - 1.96 + - 1.98 + - 1.94 + - 1.55 + - 1.91 + - 1.92 + - 1.92 + - 1.97 + - 1.93 + - 1.99 + - 1.86 + - 1.12 + - 1.93 + - 1.92 + - 1.95 + - 1.85 + - 1.84 + - 1.91 + - 1.12 + - 1.82 + - 1.82 + - 1.95 + - 1.24 + - 1.94 + - 1.96 + - 1.21 + - 1.83 + - 1.96 + - 1.36 + - 1.96 + - 1.82 + - 1.92 + - 1.68 + - 1.93 + - 1.23 + - 1.96 + - 1.93 + - 1.86 + - 1.41 + - 1.16 + - 1.6 + - 1.25 + - 1.2 + - 1.65 + - 1.66 + - 1.87 + - 1.94 + - 1.96 + - 1.91 + - 1.25 + - 1.93 + - 1.91 + - 1.7 + - 0.99 + - 1.81 + - 1.92 + - 1.95 + - 1.5 + - 1.47 + - 1.15 + - 1.58 + - 1.18 + - 1.82 + - 1.13 + - 1.83 + - 1.91 + - 1.26 + - 1.27 + - 1.91 + - 1.45 + - 1.6 + - 1.29 + - 1.94 + - 1.94 + - 1.23 + - 1.95 + - 1.21 + - 1.94 + - 1.86 + - 1.9 + - 1.33 + - 1.75 + - 2.02 + - 1.98 + - 2.03 + - 1.83 + - 1.5 + - 2.04 + - 2.02 + - 1.9 + - 2.0 + - 2.02 + - 1.95 + - 1.93 + - 1.95 + - 1.95 + - 1.99 + - 2.0 + - 1.94 + - 1.96 + - 1.86 + - 1.92 + - 1.88 + - 1.86 + - 1.84 + - 1.87 + - 1.77 + - 1.89 + - 1.89 + - 1.88 + - 1.94 + - 1.82 + - 1.79 + - 1.86 + - 2.06 + - 2.33 + - 1.88 + - 1.86 + - 1.81 + - 1.8 + - 1.8 + - 1.86 + - 1.9 + - 2.0 + - 2.06 + - 2.1 + - 2.2 + - 2.0 + - 2.16 + - 1.98 + - 1.8 + - 1.8 + - 1.85 + - 1.75 + - 2.04 + - 2.19 + - 2.14 + - 2.19 + - 1.86 + - 2.1 + - 2.11 + - 2.18 + - 2.03 + - 2.28 + - 2.19 + - 2.26 + - 2.26 + - 2.21 + - 2.21 + - 2.26 + - 2.33 + - 2.27 + - 2.21 + - 2.12 + - 2.23 + - 2.26 + - 2.25 + - 1.88 + - 2.26 + - 2.24 + - 2.36 + - 2.29 + - 2.35 + - 2.3 + - 2.27 + - 2.08 + - 2.05 + - 2.27 + - 2.28 + - 2.27 + - 2.28 + - 1.97 + - 2.25 + - 2.25 + - 2.25 + - 2.31 + - 2.28 + - 2.27 + - 2.13 + - 2.24 + - 2.28 + - 2.28 + - 2.41 + - 2.34 + - 9.32 + - 2.28 + - 2.38 + - 2.27 + - 2.27 + - 2.39 + - 2.11 + - 2.09 + - 2.1 + - 2.06 + - 2.12 + - 2.08 + - 2.0 + - 1.93 + - 2.02 + - 2.55 + - 1.54 + - 1.64 + - 1.51 + - 1.55 + - 2.82 + - 2.92 + - 2.55 + - 2.37 + - 1.85 + - 1.6 + - 1.72 + - 1.74 + - 1.79 + - 1.9 + - 1.94 + - 2.0 + - 2.04 + - 2.08 + - 2.12 + - 2.13 + - 2.16 + - 2.18 + - 2.18 + - 2.2 + - 2.2 + - 2.41 + - 2.39 + - 2.38 + - 2.4 + - 2.42 + - 2.41 + - 2.43 + - 2.45 + - 2.43 + - 2.45 + - 2.43 + - 2.4 + - 2.44 + - 2.4 + - 2.42 + - 2.43 + - 2.45 + - 2.45 + - 2.45 + - 2.46 + - 2.45 + - 2.45 + - 2.43 + - 2.51 + - 2.48 + - 2.48 + - 2.53 + - 2.46 + - 2.49 + - 2.5 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.54 + - 2.5 + - 2.48 + - 2.5 + - 2.55 + - 2.5 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.46 + - 2.53 + - 9.0 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: iasi_metop-c + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + error parameter vector: *id018 + use_flag: None + use_flag_clddet: &id019 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 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.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + error parameter vector: *id018 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: iasi_metop-c + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + error parameter vector: *id018 + 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 + - 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 + - 0.75 + - 2.0 + - 0.75 + - 2.0 + - 2.0 + - 2.0 + - 0.75 + - 0.75 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 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 + - 0.75 + - 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 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.4 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id019 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: iasi_metop-c + - obs space: + name: MHS METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/mhs_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_metop-b.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_metop-b + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_metop-b + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-b + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-b + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + observation_name: mhs_metop-b + - obs space: + name: MHS METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_metop-c.20231009T150000Z.satbias.nc4 + output file: cycle_dir/mhs_metop-c.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_metop-c.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_metop-c.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_metop-c.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_metop-c.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_metop-c + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_metop-c + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-c + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-c + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + observation_name: mhs_metop-c + - obs space: + name: MHS NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_n19.20231009T150000Z.satbias.nc4 + output file: cycle_dir/mhs_n19.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_n19.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_n19.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_n19.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_n19.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_n19 + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_n19 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_n19 + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_n19 + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + observation_name: mhs_n19 + - obs space: + name: MLS55 AURA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mls55_aura.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mls55_aura.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneProfile + obs operator: + name: VertInterp + vertical coordinate: air_pressure + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + obs filters: + - filter: Bounds Check + filter variables: + - name: ozoneProfile + minvalue: 0 + maxvalue: 10000 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneProfile + threshold: 5.0 + action: + name: reject + observation_name: mls55_aura + - obs space: + name: OMI AURA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/omi_aura.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.omi_aura.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneTotal + obs operator: + name: AtmVertInterpLay + geovals: + - mole_fraction_of_ozone_in_air + coefficients: + - 0.0078976797 + nlevels: + - 1 + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + obs filters: + - filter: Perform Action + filter variables: + - name: ozoneTotal + action: + name: assign error + error parameter: 5.0 + - filter: Bounds Check + filter variables: + - name: ozoneTotal + minvalue: 0 + maxvalue: 1000 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/solarZenithAngle + maxvalue: 84.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/sensorScanPosition + minvalue: 3 + maxvalue: 24 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneTotal + threshold: 5.0 + action: + name: reject + observation_name: omi_aura + - obs space: + name: OMPSNM NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/ompsnm_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.ompsnm_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneTotal + obs operator: + name: AtmVertInterpLay + geovals: + - mole_fraction_of_ozone_in_air + coefficients: + - 0.0078976797 + nlevels: + - 1 + obs filters: + - filter: Perform Action + filter variables: + - name: ozoneTotal + action: + name: assign error + error parameter: 5.216 + - filter: Bounds Check + filter variables: + - name: ozoneTotal + minvalue: 0 + maxvalue: 1000 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/solarZenithAngle + maxvalue: 84.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneTotal + threshold: 5.0 + action: + name: reject + observation_name: ompsnm_npp + - obs space: + name: Pilot Balloon + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/pibal.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.pibal.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + vertical coordinate backup: air_pressure + observation vertical coordinate group backup: MetaData + observation vertical coordinate backup: pressure + interpolation method backup: log-linear + hofx scaling field: SurfaceWindScalingCombined + hofx scaling field group: DerivedVariables + linear obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + vertical coordinate backup: air_pressure + observation vertical coordinate group backup: MetaData + observation vertical coordinate backup: pressure + interpolation method backup: log-linear + hofx scaling field: SurfaceWindScalingCombined + hofx scaling field group: DerivedVariables + obs pre filters: + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_not_in: 221 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: ObsType/windNorthward + is_not_in: 221 + action: + name: reject + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingCombined + SkipWhenNoObs: false + obs post filters: + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + - 3.3 + - 3.5 + - 3.7 + - 3.9 + - 4.1 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 221 + cgross: + - 8.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 221 + cgross: + - 8.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windNorthward + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + test variables: + - name: ObsErrorData/windEastward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windEastward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windEastward + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windNorthward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windNorthward + defer to post: true + - filter: Bounds Check + filter variables: + - name: windNorthward + test variables: + - name: ObsErrorData/windNorthward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 221 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 221 + defer to post: true + observation_name: pibal + - obs space: + name: Satellite Winds + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/satwind.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.satwind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + linear obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + obs post filters: + - filter: PreQC + maxvalue: 3 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 80000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - filter: BlackList + where: + - variable: + name: ObsType/windEastward + is_in: 240, 241, 248, 249, 251, 255, 256, 260 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.45 + - 5 + - 5 + - 5 + - 5.075 + - 5.175 + - 5.3 + - 5.675 + - 6.05 + - 6.25 + - 6.625 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 244 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.0 + - 4.1 + - 5 + - 6 + - 6.3 + - 6.6 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 245, 246 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.0 + - 4.1 + - 5 + - 6 + - 6.3 + - 6.6 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 242, 243, 247, 252, 253 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.5 + - 6.1 + - 6.0 + - 6.5 + - 7.3 + - 7.6 + - 7 + - 7.5 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 254 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.0 + - 4.1 + - 5.0 + - 7 + - 7.3 + - 7.6 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + where: + - variable: + name: ObsType/windEastward + is_in: 250 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.675 + - 5.45 + - 5.525 + - 5.8 + - 6.275 + - 6.575 + - 6.825 + - 7.05 + - 7.05 + - 7.05 + - 7.05 + where: + - variable: + name: ObsType/windEastward + is_in: 257 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 6.05 + - 5.625 + - 5.275 + - 5.375 + - 5.925 + - 6.475 + - 6.775 + - 7.05 + - 7.05 + - 7.05 + - 7.05 + where: + - variable: + name: ObsType/windEastward + is_in: 258 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6 + - 5.5 + - 5.5 + - 5.575 + - 6.025 + - 6.4 + - 6.775 + - 7.15 + - 7.15 + - 7.15 + - 7.15 + where: + - variable: + name: ObsType/windEastward + is_in: 259 + - filter: Difference Check + filter variables: + - name: windEastward + - name: windNorthward + reference: GeoVaLs/air_pressure_at_surface + value: MetaData/pressure + maxvalue: -11000 + where: + - variable: + name: ObsType/windEastward + is_in: 247 + - variable: + name: MetaData/surfaceQualifier + minvalue: 1 + - filter: Difference Check + filter variables: + - name: windEastward + - name: windNorthward + reference: GeoVaLs/air_pressure_at_surface + value: MetaData/pressure + maxvalue: -20000 + where: + - variable: + name: ObsType/windEastward + is_in: 244, 257, 258, 259, 260 + - variable: + name: MetaData/surfaceQualifier + minvalue: 1 + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/WindDirAngleDiff + maxvalue: 50.0 + where: + - variable: + name: ObsType/windEastward + is_in: 247 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/SatWindsLNVDCheck + maxvalue: 3 + where: + - variable: + name: ObsType/windEastward + is_in: 244, 247, 257-260 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 240-260 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 240-260 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 15.0 + - 15.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + cgross: + - 2.5 + - 2.5 + - 2.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.3 + - 2.5 + - 1.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + wndtype: + - 240 + - 241 + - 242 + - 243 + - 244 + - 245 + - 246 + - 247 + - 248 + - 249 + - 250 + - 251 + - 252 + - 253 + - 254 + - 256 + - 257 + - 258 + - 259 + - 260 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + cgross: + - 2.5 + - 2.5 + - 2.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.3 + - 2.5 + - 1.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 15.0 + - 15.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + wndtype: + - 240 + - 241 + - 242 + - 243 + - 244 + - 245 + - 246 + - 247 + - 248 + - 249 + - 250 + - 251 + - 252 + - 253 + - 254 + - 256 + - 257 + - 258 + - 259 + - 260 + variable: windNorthward + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 240-260 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 240-260 + defer to post: true + observation_name: satwind + - obs space: + name: Scatterometer Winds + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/scatwind.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.scatwind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + linear obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + obs post filters: + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 290 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 290 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/ScatWindsAmbiguityCheck + maxvalue: 1e-12 + where: + - variable: + name: ObsType/windEastward + is_in: 290 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/Arithmetic + options: + variables: + - name: ObsValue/windEastward + - name: HofX/windEastward + coefs: + - 1.0 + - -1.0 + minvalue: -5.0 + maxvalue: 5.0 + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/Arithmetic + options: + variables: + - name: ObsValue/windNorthward + - name: HofX/windNorthward + coefs: + - 1.0 + - -1.0 + minvalue: -5.0 + maxvalue: 5.0 + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 290 + cgross: + - 5.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 290 + cgross: + - 5.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windNorthward + action: + name: reject + defer to post: true + observation_name: scatwind + - obs space: + name: Surface Marine Stations + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sfcship.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sfcship.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - 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 + - name: Identity + variables: + - name: specificHumidity + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - name: Identity + variables: + - name: stationPressure + - name: specificHumidity + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + obs post filters: + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + errors: + - 100 + - 100 + - 110 + - 120 + - 120 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 0.7 + where: + - variable: ObsType/stationPressure + is_in: + - 180 + - variable: ObsSubType/stationPressure + is_in: + - 0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: 180,183 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: 180,183 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 1.75 + - 1.95 + - 2.25 + - 1.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/airTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: airTemperature + test variables: + - name: ObsErrorData/airTemperature + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 1.75 + - 1.95 + - 2.25 + - 1.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - virtualTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: GsiAdjustObsError/virtualTemperature + where: + - variable: + name: GsiAdjustObsError/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: virtualTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/virtualTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/virtualTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/virtualTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/virtualTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: PreUseFlag/virtualTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: TempObsErrorData/virtualTemperature + where: + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: virtualTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: virtualTemperature + test variables: + - name: ObsErrorData/virtualTemperature + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: PreUseFlag/specificHumidity + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorSatSpecHumidity + options: + variable: specificHumidity + input_error_name: GsiInputObsError + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: specificHumidity + inflation factor: 8 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: specificHumidity + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/specificHumidity + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: specificHumidity + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/specificHumidity + is_in: + - 3 + defer to post: true + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: + - 284 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: + - 284 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: ObsType/windEastward + is_in: + - 280 + action: + name: assign error + error parameter: 2.5 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: ObsType/windEastward + is_in: + - 282 + action: + name: assign error + error parameter: 2.2 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + minvalue: 1 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + threshold: 6.0 + action: + name: reject + where: + - variable: PreQC/windEastward + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + threshold: 4.2 + action: + name: reject + where: + - variable: PreQC/windEastward + is_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + threshold: 6.0 + action: + name: reject + where: + - variable: PreQC/windNorthward + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + threshold: 4.2 + action: + name: reject + where: + - variable: PreQC/windNorthward + is_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + satwndtype: + - 280 + - 282 + - 284 + error_min: + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + cgross: + - 6.0 + - 6.0 + - 6.0 + wndtype: + - 280 + - 282 + - 284 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + satwndtype: + - 280 + - 282 + - 284 + error_min: + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + cgross: + - 6.0 + - 6.0 + - 6.0 + wndtype: + - 280 + - 282 + - 284 + variable: windNorthward + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + defer to post: true + observation_name: sfcship + - obs space: + name: Surface Land Stations + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sfc.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sfc.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - 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 + - name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: specificHumidity + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: stationPressure + - name: specificHumidity + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + obs post filters: + - filter: Bounds Check + filter variables: + - name: stationPressure + minvalue: 49999 + action: + name: reject + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 181 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 70000 + - 65000 + - 60000 + - 55000 + errors: + - 100 + - 120 + - 120 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 187 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 100 + - 130 + - 160 + - 100000000000.0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: 187 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: 187 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 3.6 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: + - 181 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.52 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: + - 181 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Bounds Check + filter variables: + - name: stationPressure + test variables: + - name: ObsErrorData/stationPressure + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: 281,287 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: ObsType/windNorthward + is_in: 281,287 + action: + name: reject + observation_name: sfc + - obs space: + name: Radiosondes + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sondes.20231009T210000Z.nc4 + missing file action: error + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sondes.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + - name: VertInterp + variables: + - name: airTemperature + - name: virtualTemperature + - name: specificHumidity + - 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 + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + - name: VertInterp + variables: + - name: airTemperature + - name: virtualTemperature + - name: specificHumidity + - name: Identity + variables: + - name: stationPressure + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + obs post filters: + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 60000 + - 55000 + errors: + - 100 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: PreUseFlag/specificHumidity + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + action: + name: assign error + error function: + name: ObsFunction/ObsErrorSatSpecHumidity + options: + variable: specificHumidity + input_error_name: GsiInputObsError + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: specificHumidity + inflation factor: 8.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/specificHumidity + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 1.3 + - 1.1 + - 0.9 + - 0.7 + - 0.6 + - 0.6 + - 0.55 + - 0.5 + - 0.5 + - 0.55 + - 0.65 + - 1.1 + - 1.2 + - 1.2 + - 1.4 + - 1.6 + - 1.85 + - 2.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/airTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 1.3 + - 1.1 + - 0.9 + - 0.7 + - 0.6 + - 0.6 + - 0.55 + - 0.5 + - 0.5 + - 0.55 + - 0.65 + - 1.1 + - 1.2 + - 1.2 + - 1.4 + - 1.6 + - 1.85 + - 2.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - virtualTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: GsiAdjustObsError/virtualTemperature + where: + - variable: + name: GsiAdjustObsError/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: virtualTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/virtualTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/virtualTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/virtualTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/virtualTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: PreUseFlag/virtualTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: TempObsErrorData/virtualTemperature + where: + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: virtualTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + - 3.3 + - 3.5 + - 3.7 + - 3.9 + - 4.1 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 220,221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 220,221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 220 + - 221 + cgross: + - 8.0 + - 8.0 + error_min: + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 220 + - 221 + cgross: + - 8.0 + - 8.0 + error_min: + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + variable: windNorthward + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + test variables: + - name: ObsErrorData/windEastward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windEastward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windEastward + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windNorthward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windNorthward + defer to post: true + - filter: Bounds Check + filter variables: + - name: windNorthward + test variables: + - name: ObsErrorData/windNorthward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 220 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 220 + defer to post: true + observation_name: sondes + - obs space: + name: ssmis_f17 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/ssmis_f17.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.ssmis_f17.20231009T210000Z.nc4 + simulated variables: + - brightnessTemperature + channels: None + io pool: + max pool size: 6 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs options: + Sensor_ID: ssmis_f17 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + obs bias: + input file: cycle_dir/ssmis_f17.20231009T150000Z.satbias.nc4 + output file: cycle_dir/ssmis_f17.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/ssmis_f17.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/ssmis_f17.20231009T150000Z.tlapse.txt + - name: cosineOfLatitudeTimesOrbitNode + - name: sineOfLatitude + - name: emissivityJacobian + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/ssmis_f17.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/ssmis_f17.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 1.0 + - 1.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 2.4 + - 1.27 + - 1.44 + - 3.0 + - 1.34 + - 1.74 + - 3.75 + - 3.0 + - 3.0 + - 2.0 + - 6.4 + - 1.0 + - 1.0 + obs post filters: + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + absolute threshold: 3.5 + remove bias correction: true + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: reject + - filter: RejectList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/geopotential_height_at_surface + minvalue: 2000.0 + min_exclusive: true + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: RejectList + filter variables: + - name: brightnessTemperature + channels: 1-3,8-18 + where: + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/ice_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/surface_snow_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 1-2, 12-16 + reference: ObsValue/brightnessTemperature_2 + value: HofX/brightnessTemperature_2 + minvalue: -1.5 + maxvalue: 1.5 + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + absolute threshold: 3.5 + remove bias correction: true + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + action: + name: reject + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 9 + reference: ObsValue/brightnessTemperature_9 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.485934 + - 0.485934 + - 0.473806 + - -0.473806 + intercept: 271.252327 + maxvalue: 2 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 10 + reference: ObsValue/brightnessTemperature_10 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.413688 + - 0.413688 + - 0.361549 + - -0.361549 + intercept: 272.280341 + maxvalue: 2 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 11 + reference: ObsValue/brightnessTemperature_11 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.400882 + - 0.400882 + - 0.27051 + - -0.27051 + intercept: 278.824902 + maxvalue: 2 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: ssmis_f17 + obserr_demisf: + - 0.01 + - 0.01 + - 0.01 + - 0.01 + - 0.01 + obserr_dtempf: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor1 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_1 + coefs: + - 2.25 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_1 + threshold: DerivedMetaData/errorInflationFactor1 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor2 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_2 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_2 + threshold: DerivedMetaData/errorInflationFactor2 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor3 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_3 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_3 + threshold: DerivedMetaData/errorInflationFactor3 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor4 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_4 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_4 + threshold: DerivedMetaData/errorInflationFactor4 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor5 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_5 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_5 + threshold: DerivedMetaData/errorInflationFactor5 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor6 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_6 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_6 + threshold: DerivedMetaData/errorInflationFactor6 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor7 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_7 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_7 + threshold: DerivedMetaData/errorInflationFactor7 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor8 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_8 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_8 + threshold: DerivedMetaData/errorInflationFactor8 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor9 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_9 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_9 + threshold: DerivedMetaData/errorInflationFactor9 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor10 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_10 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_10 + threshold: DerivedMetaData/errorInflationFactor10 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor11 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_11 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_11 + threshold: DerivedMetaData/errorInflationFactor11 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor12 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_12 + coefs: + - 3.6 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_12 + threshold: DerivedMetaData/errorInflationFactor12 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor13 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_13 + coefs: + - 1.905 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_13 + threshold: DerivedMetaData/errorInflationFactor13 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor14 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_14 + coefs: + - 2.16 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_14 + threshold: DerivedMetaData/errorInflationFactor14 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor15 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_15 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_15 + threshold: DerivedMetaData/errorInflationFactor15 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor16 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_16 + coefs: + - 2.01 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_16 + threshold: DerivedMetaData/errorInflationFactor16 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor17 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_17 + coefs: + - 2.61 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_17 + threshold: DerivedMetaData/errorInflationFactor17 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor18 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_18 + coefs: + - 5.625 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_18 + threshold: DerivedMetaData/errorInflationFactor18 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor19 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_19 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_19 + threshold: DerivedMetaData/errorInflationFactor19 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor20 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_20 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_20 + threshold: DerivedMetaData/errorInflationFactor20 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor21 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_21 + coefs: + - 3.0 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_21 + threshold: DerivedMetaData/errorInflationFactor21 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor22 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_22 + coefs: + - 9.6 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_22 + threshold: DerivedMetaData/errorInflationFactor22 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor23 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_23 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_23 + threshold: DerivedMetaData/errorInflationFactor23 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor24 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_24 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_24 + threshold: DerivedMetaData/errorInflationFactor24 + absolute threshold: 6.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: ssmis_f17 +variational: + minimizer: + algorithm: DRPCG + iterations: + - geometry: + fms initialization: + namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml + field table filename: ./fv3-jedi/fv3files/field_table_gmao + akbk: ./fv3-jedi/fv3files/akbk72.nc4 + layout: + - 4 + - 4 + npx: 91 + npy: 91 + npz: 72 + gradient norm reduction: 0.001 + ninner: 10 + linear model: + name: Identity + increment variables: *id003 + variable change: Identity + tstep: PT1H + diagnostics: + departures: ombg + online diagnostics: + write increment: true + increment: + state component: + filetype: auxgrid + gridtype: latlon + datapath: ./ + filename: experiment_id.increment-iter1. + field io names: + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_levels: pe + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + skin_temperature_at_surface: ts + air_pressure_at_surface: ps +final: + diagnostics: + departures: oman + prints: + frequency: PT3H +output: + filetype: cube sphere history + provider: geos + datapath: cycle_dir + filename: experiment_id.analysis.%yyyy%mm%dd_%hh%MM%ssz.nc4 + first: PT0H + frequency: PT1H + field io names: *id001 diff --git a/src/swell/test/jedi_configs/jedi_3dfgat_marine_cycle_config.yaml b/src/swell/test/jedi_configs/jedi_3dfgat_marine_cycle_config.yaml new file mode 100644 index 000000000..b6e13450e --- /dev/null +++ b/src/swell/test/jedi_configs/jedi_3dfgat_marine_cycle_config.yaml @@ -0,0 +1,959 @@ +cost function: + cost type: 3D-FGAT + jb evaluation: false + time window: + begin: '2021-07-01T09:00:00Z' + end: '2021-07-01T15:00:00Z' + bound to include: begin + geometry: + mom6_input_nml: soca/input.nml + fields metadata: soca/fields_metadata.yaml + geom_grid_file: INPUT/soca_gridspec.nc + analysis variables: &id001 + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - sea_ice_area_fraction + - sea_ice_thickness + - sea_ice_snow_thickness + model: + name: PseudoModel + tstep: PT3H + states: + - date: '2021-07-01T12:00:00Z' + ocn_filename: ocn.fc.2021-07-01T09:00:00Z.PT3H.nc + ice_filename: ice.fc.2021-07-01T09:00:00Z.PT3H.nc + basename: ./ + read_from_file: 1 + - date: '2021-07-01T15:00:00Z' + ocn_filename: ocn.fc.2021-07-01T09:00:00Z.PT6H.nc + ice_filename: ice.fc.2021-07-01T09:00:00Z.PT6H.nc + basename: ./ + read_from_file: 1 + background: + date: '2021-07-01T09:00:00Z' + read_from_file: 1 + basename: ./ + ocn_filename: MOM6.res.20210701T090000Z.nc + ice_filename: cice.res.20210701T090000Z.nc + state variables: + - sea_ice_area_fraction + - sea_ice_thickness + - sea_ice_snow_thickness + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth + background error: + covariance model: SABER + saber central block: + saber block name: diffusion + active variables: + - sea_ice_area_fraction + - sea_ice_thickness + - sea_ice_snow_thickness + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid + read: + groups: + - variables: + - sea_water_potential_temperature + - sea_water_salinity + horizontal: + filepath: background_error_model/new_corr_1p0 + vertical: + levels: 50 + filepath: background_error_model/vt.20210701T090000Z + - variables: + - sea_surface_height_above_geoid + - sea_ice_area_fraction + - sea_ice_thickness + - sea_ice_snow_thickness + horizontal: + filepath: background_error_model/new_corr_1p5 + date: '2021-07-01T09:00:00Z' + saber outer blocks: + - saber block name: SOCABkgErrFilt + ocean_depth_min: 100 + rescale_bkgerr: 1.0 + efold_z: 2500.0 + - saber block name: SOCAParametricOceanStdDev + temperature: + sst: + filepath: cycle_dir/soca/godas_sst_bgerr.nc + variable: sst_bgerr + unbalanced salinity: {} + unbalanced ssh: {} + linear variable change: + input variables: *id001 + output variables: *id001 + linear variable changes: + - linear variable change name: BalanceSOCA + ksshts: + nlayers: 2 + observations: + observers: + - obs space: + name: adt_cryosat2n + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_cryosat2n.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_cryosat2n.20210701T090000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + maxvalue: 1e-05 + observation_name: adt_cryosat2n + - obs space: + name: adt_jason3 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_jason3.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_jason3.20210701T090000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + maxvalue: 1e-05 + observation_name: adt_jason3 + - obs space: + name: adt_saral + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_saral.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_saral.20210701T090000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + maxvalue: 1e-05 + observation_name: adt_saral + - obs space: + name: adt_sentinel3a + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_sentinel3a.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_sentinel3a.20210701T090000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + maxvalue: 1e-05 + observation_name: adt_sentinel3a + - obs space: + name: adt_sentinel3b + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_sentinel3b.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_sentinel3b.20210701T090000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + maxvalue: 1e-05 + observation_name: adt_sentinel3b + - obs space: + name: insitu_profile_argo + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/insitu_profile_argo.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.insitu_profile_argo.20210701T090000Z.nc4 + simulated variables: + - waterTemperature + - salinity + obs operator: + name: Composite + components: + - name: InsituTemperature + variables: + - name: waterTemperature + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/obsop_name_map.yaml + variables: + - name: salinity + vertical coordinate: sea_water_depth + observation vertical coordinate: depth + interpolation method: linear + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: ObsError/salinity + minvalue: 0.0001 + - filter: Bounds Check + where: + - variable: + name: ObsValue/salinity + minvalue: 1.0 + maxvalue: 40.0 + - filter: Background Check + threshold: 3.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 2.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: insitu_profile_argo + - obs space: + name: icec_amsr2_north + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/icec_amsr2_north.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.icec_amsr2_north.20210701T090000Z.nc4 + simulated variables: + - seaIceFraction + io pool: + max pool size: 1 + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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.0 + maxvalue: 1.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + maxvalue: 2.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + maxvalue: 0.0 + action: + name: inflate error + inflation factor: 2.0 + - filter: Gaussian Thinning + horizontal_mesh: 25 + use_reduced_horizontal_grid: true + select_median: true + action: + name: reduce obs space + observation_name: icec_amsr2_north + - obs space: + name: icec_amsr2_south + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/icec_amsr2_south.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.icec_amsr2_south.20210701T090000Z.nc4 + simulated variables: + - seaIceFraction + io pool: + max pool size: 1 + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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.0 + maxvalue: 1.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + maxvalue: 2.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + maxvalue: 0.0 + action: + name: inflate error + inflation factor: 2.0 + - filter: Gaussian Thinning + horizontal_mesh: 25 + use_reduced_horizontal_grid: true + select_median: true + action: + name: reduce obs space + observation_name: icec_amsr2_south + - obs space: + name: icec_nsidc_nh + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/icec_nsidc_nh.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.icec_nsidc_nh.20210701T090000Z.nc4 + simulated variables: + - seaIceFraction + io pool: + max pool size: 1 + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/obsop_name_map.yaml + obs error: + covariance model: diagonal + obs filters: + - filter: Bounds Check + minvalue: 0.0 + maxvalue: 1.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + maxvalue: 2.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + maxvalue: 0.0 + action: + name: inflate error + inflation factor: 2.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + minvalue: 1e-05 + observation_name: icec_nsidc_nh + - obs space: + name: icec_nsidc_sh + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/icec_nsidc_sh.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.icec_nsidc_sh.20210701T090000Z.nc4 + simulated variables: + - seaIceFraction + io pool: + max pool size: 1 + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/obsop_name_map.yaml + obs error: + covariance model: diagonal + obs filters: + - filter: Bounds Check + minvalue: 0.0 + maxvalue: 1.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + maxvalue: 2.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + maxvalue: 0.0 + action: + name: inflate error + inflation factor: 2.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + minvalue: 1e-05 + observation_name: icec_nsidc_sh + - obs space: + name: sst_ostia + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_ostia.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_ostia.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceTemperature + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -2.0 + maxvalue: 36.0 + - filter: Background Check + threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 0.001 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_area_fraction + maxvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + maxvalue: 1e-05 + observation_name: sst_ostia + - obs space: + name: sss_smos + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sss_smos.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sss_smos.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceSalinity + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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 + absolute threshold: 2.5 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 10.0 + - filter: Domain Check + action: + name: reject + where: + - variable: + name: ObsError/seaSurfaceSalinity + maxvalue: 0.87 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: sss_smos + - obs space: + name: sss_smapv5 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sss_smapv5.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sss_smapv5.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceSalinity + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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 + absolute threshold: 2.5 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 10.0 + - filter: Domain Check + action: + name: reject + where: + - variable: + name: ObsError/seaSurfaceSalinity + maxvalue: 0.87 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: sss_smapv5 + - obs space: + name: sst_abi_g16_l3c + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_abi_g16_l3c.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_abi_g16_l3c.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceTemperature + get values: + time interpolation: linear + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -1.0 + maxvalue: 40.0 + - filter: Background Check + absolute threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 1e-08 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/seaSurfaceTemperature + coefs: + - 1.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + maxvalue: 1e-05 + observation_name: sst_abi_g16_l3c + - obs space: + name: sst_gmi_l3u + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_gmi_l3u.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_gmi_l3u.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceTemperature + get values: + time interpolation: linear + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -1.0 + maxvalue: 40.0 + - filter: Background Check + absolute threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 1e-08 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/seaSurfaceTemperature + coefs: + - 1.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + maxvalue: 1e-05 + observation_name: sst_gmi_l3u + - obs space: + name: sst_viirs_n20_l3u + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_viirs_n20_l3u.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_viirs_n20_l3u.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceTemperature + get values: + time interpolation: linear + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -1.0 + maxvalue: 40.0 + - filter: Background Check + absolute threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 1e-08 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/seaSurfaceTemperature + coefs: + - 1.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_ice_area_fraction + maxvalue: 1e-05 + observation_name: sst_viirs_n20_l3u + - obs space: + name: temp_profile_xbt + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/temp_profile_xbt.20210701T090000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.temp_profile_xbt.20210701T090000Z.nc4 + simulated variables: + - waterTemperature + obs operator: + name: InsituTemperature + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: ObsError/waterTemperature + minvalue: 0.001 + - filter: Bounds Check + minvalue: -2.0 + maxvalue: 36.0 + - filter: Background Check + threshold: 3.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 3.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: temp_profile_xbt +variational: + minimizer: + algorithm: RPCG + iterations: + - geometry: + mom6_input_nml: soca/input.nml + fields metadata: soca/fields_metadata.yaml + geom_grid_file: INPUT/soca_gridspec.nc + gradient norm reduction: 1e-10 + ninner: 10 + diagnostics: + departures: ombg + online diagnostics: + write increment: true + increment: + state component: + datadir: ./ + date: '2021-07-01T09:00:00Z' + exp: experiment_id + type: incr +final: + diagnostics: + departures: oman + prints: + frequency: PT3H +output: + datadir: ./ + exp: experiment_id + type: an diff --git a/src/swell/test/jedi_configs/jedi_3dvar_atmos_config.yaml b/src/swell/test/jedi_configs/jedi_3dvar_atmos_config.yaml new file mode 100644 index 000000000..47475c2d4 --- /dev/null +++ b/src/swell/test/jedi_configs/jedi_3dvar_atmos_config.yaml @@ -0,0 +1,19206 @@ +cost function: + cost type: 3D-Var + jb evaluation: false + time window: + begin: '2023-10-09T21:00:00Z' + end: '2023-10-10T03:00:00Z' + bound to include: begin + geometry: + fms initialization: + namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml + field table filename: ./fv3-jedi/fv3files/field_table_gmao + akbk: ./fv3-jedi/fv3files/akbk72.nc4 + layout: + - 4 + - 4 + npx: '91' + npy: '91' + npz: '72' + analysis variables: &id002 + - eastward_wind + - northward_wind + - air_temperature + - water_vapor_mixing_ratio_wrt_moist_air + - air_pressure_at_surface + - air_pressure_levels + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - fraction_of_ocean + - fraction_of_lake + - fraction_of_ice + - skin_temperature_at_surface + background: + datetime: '2023-10-10T00:00:00Z' + filetype: cube sphere history + provider: geos + compute edge pressure from surface pressure: true + max allowable geometry difference: 0.001 + datapath: cycle_dir + filenames: + - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 + - fv3-jedi/bkg/geos.crtmsrf.91.nc4 + state variables: + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_at_surface + - air_pressure_levels + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - initial_mass_fraction_of_large_scale_cloud_condensate + - initial_mass_fraction_of_convective_cloud_condensate + - convective_cloud_area_fraction + - fraction_of_ocean + - fraction_of_land + - isotropic_variance_of_filtered_topography + - surface_velocity_scale + - surface_buoyancy_scale + - planetary_boundary_layer_height + - surface_exchange_coefficient_for_momentum + - surface_exchange_coefficient_for_heat + - surface_exchange_coefficient_for_moisture + - KCBL_before_moist + - surface_temp_before_moist + - lower_index_where_Kh_greater_than_2 + - upper_index_where_Kh_greater_than_2 + - fraction_of_lake + - fraction_of_ice + - vtype + - stype + - vfrac + - sheleg + - skin_temperature_at_surface + - soilt + - soilm + - eastward_wind_at_surface + - northward_wind_at_surface + field io names: &id019 + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_at_surface: ps + air_pressure_levels: pe + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + initial_mass_fraction_of_large_scale_cloud_condensate: qls + initial_mass_fraction_of_convective_cloud_condensate: qcn + convective_cloud_area_fraction: cfcn + fraction_of_ocean: frocean + fraction_of_land: frland + isotropic_variance_of_filtered_topography: varflt + surface_velocity_scale: ustar + surface_buoyancy_scale: bstar + planetary_boundary_layer_height: zpbl + surface_exchange_coefficient_for_momentum: cm + surface_exchange_coefficient_for_heat: ct + surface_exchange_coefficient_for_moisture: cq + KCBL_before_moist: kcbl + surface_temp_before_moist: tsm + lower_index_where_Kh_greater_than_2: khl + upper_index_where_Kh_greater_than_2: khu + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts + eastward_wind_at_surface: u10m + northward_wind_at_surface: v10m + background error: + covariance model: SABER + covariance type: gsi hybrid covariance + saber central block: + saber block name: gsi hybrid covariance + read: + gsi akbk: ./fv3-jedi/fv3files/akbk72.nc4 + gsi error covariance file: ./fv3-jedi/gsibec/gsi-coeffs-gmao-global-l72x144y91.nc4 + gsi berror namelist file: ./fv3-jedi/gsibec/cli_gsibec_configuration_l72x144y91.nml + processor layout x direction: 4 + processor layout y direction: 24 + debugging mode: false + saber outer blocks: + - saber block name: interpolation + inner geometry: + function space: StructuredColumns + custom grid matching gsi: + type: latlon + lats: 91 + lons: 144 + custom partitioner matching gsi: + bands: 24 + halo: 1 + forward interpolator: + local interpolator type: oops unstructured grid interpolator + inverse interpolator: + local interpolator type: oops unstructured grid interpolator + state variables to inverse: &id001 + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_at_surface + - air_pressure_levels + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - fraction_of_ocean + - fraction_of_lake + - fraction_of_ice + - geopotential_height_times_gravity_at_surface + - skin_temperature_at_surface + linear variable change: + linear variable change name: Control2Analysis + input variables: *id001 + output variables: *id002 + observations: + get values: + variable change: + variable change name: Model2GeoVaLs + hydrometeor effective radii method: gsi + tropopause pressure method: gsi + observers: + - obs space: + name: Aircraft Temperature + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/aircraft_temperature.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.aircraft_temperature.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - airTemperature + obs bias: + input file: cycle_dir/aircraft_temperature.20231009T150000Z.acftbias + output file: cycle_dir/aircraft_temperature.20231009T210000Z.acftbias + bc by record: true + variational bc: + predictors: + - name: constant + - name: obsMetadataPredictor + variable: instantaneousAltitudeRate + - name: obsMetadataPredictor + variable: instantaneousAltitudeRate + order: 2 + covariance: + minimal required obs number: 3 + variance range: + - 1e-06 + - 1.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/aircraft_temperature.20231009T150000Z.acftbias_cov + inflation: + ratio: 1.005 + ratio for small dataset: 2.0 + obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - airTemperature + linear obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - airTemperature + obs filters: + - filter: Variable Assignment + where: + - variable: + name: ObsType/airTemperature + is_in: 130 + assignments: + - name: MetaData/stationIdentification + value: 'KX130 ' + - filter: Variable Assignment + where: + - variable: + name: MetaData/instantaneousAltitudeRate + minvalue: 50.0 + assignments: + - name: MetaData/instantaneousAltitudeRate + value: 0.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 2.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 2.5 + - 2.3 + - 2.1 + - 1.9 + - 1.7 + where: + - variable: + name: ObsType/airTemperature + is_in: 130 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 1.4706 + - 1.3529 + - 1.2353 + - 1.1176 + - 1.0 + where: + - variable: + name: ObsType/airTemperature + is_in: 131,133 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + errors: + - 1.5 + - 1.3 + - 1.1 + - 0.9 + - 0.8 + - 0.8 + - 0.75 + - 0.7 + - 0.7 + - 0.75 + - 0.85 + - 1.3 + - 1.5 + - 1.5 + where: + - variable: + name: ObsType/airTemperature + is_in: 132 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 60000 + - 40000 + errors: + - 1.5 + - 1.35 + - 1.25 + - 1.1 + - 1.0 + - 1.3 + - 1.7 + where: + - variable: + name: ObsType/airTemperature + is_in: 134 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 1.4706 + - 1.3529 + - 1.2353 + - 1.1176 + - 1000000000.0 + where: + - variable: + name: ObsType/airTemperature + is_in: 135 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreQC/airTemperature + is_in: 4-15 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: + name: ObsType/airTemperature + is_in: 134, 135 + action: + name: passivate + defer to post: true + - filter: Perform Action + action: + name: inflate error + inflation factor: 10.0 + filter variables: + - name: airTemperature + where: + - variable: + name: MetaData/pressure + maxvalue: 110000 + minvalue: 50000 + - variable: + name: ObsType/airTemperature + is_in: 130 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + observation_name: aircraft_temperature + - obs space: + name: Aircraft Wind + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/aircraft_wind.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.aircraft_wind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + obs post filters: + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: PreQC/windEastward + is_in: 4-15 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: + name: ObsType/windEastward + is_in: 234, 235 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 80000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 1.4 + - 1.5 + - 1.6 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.3 + - 2.6 + - 2.8 + - 3.0 + - 3.2 + - 2.7 + - 2.4 + - 2.1 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.6 + where: + - variable: + name: ObsType/windEastward + is_in: 230 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.0 + where: + - variable: + name: ObsType/windEastward + is_in: 231 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 2.5 + where: + - variable: + name: ObsType/windEastward + is_in: 233 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.0 + where: + - variable: + name: ObsType/windEastward + is_in: 234, 235 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + errors: + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + where: + - variable: + name: ObsType/windEastward + is_in: 232 + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - windEastward + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - windNorthward + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + cgross: + - 6.0 + - 6.5 + - 7.0 + - 7.5 + - 7.5 + - 7.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + cgross: + - 6.0 + - 6.5 + - 7.0 + - 7.5 + - 7.5 + - 7.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + variable: windNorthward + action: + name: reject + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + defer to post: true + observation_name: aircraft_wind + - obs space: + name: AIRS AQUA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/airs_aqua.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.airs_aqua.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: airs_aqua + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/airs_aqua.20231009T150000Z.satbias.nc4 + output file: cycle_dir/airs_aqua.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/airs_aqua.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/airs_aqua.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/airs_aqua.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/airs_aqua.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/airs_aqua_119_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.2 + - 1.2 + - 1.3136 + - 1.4 + - 1.4 + - 1.2639 + - 1.4 + - 1.4 + - 1.1802 + - 1.2517 + - 1.1719 + - 1.2 + - 1.1728 + - 1.1442 + - 1.2 + - 1.2 + - 1.15 + - 1.0801 + - 1.15 + - 1.15 + - 1.0396 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 0.9946 + - 1.05 + - 0.9217 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 0.9591 + - 0.9465 + - 0.9593 + - 0.9337 + - 1.0 + - 0.9861 + - 1.0017 + - 1.1 + - 1.0083 + - 1.0024 + - 1.1 + - 0.9967 + - 1.0094 + - 0.9412 + - 1.1 + - 0.998 + - 0.9807 + - 0.857 + - 0.8727 + - 0.8114 + - 0.879 + - 0.871 + - 0.8853 + - 0.7937 + - 0.8243 + - 0.8 + - 0.8016 + - 0.8 + - 0.7781 + - 0.7475 + - 0.85 + - 0.7405 + - 0.715 + - 0.7416 + - 0.7465 + - 0.9 + - 0.7198 + - 0.7157 + - 0.9 + - 0.727 + - 0.7246 + - 0.704 + - 0.7039 + - 0.66 + - 0.6694 + - 0.6669 + - 0.7031 + - 0.6977 + - 0.6488 + - 0.6653 + - 0.9 + - 0.6265 + - 0.622 + - 0.6308 + - 0.6297 + - 0.621 + - 0.6225 + - 0.6229 + - 0.6234 + - 0.6238 + - 0.6332 + - 0.6425 + - 0.7028 + - 0.6152 + - 0.9 + - 0.7257 + - 0.7288 + - 1.15 + - 0.9 + - 0.6673 + - 0.7473 + - 0.6767 + - 0.7056 + - 0.9 + - 0.95 + - 0.7271 + - 0.95 + - 0.725 + - 0.7601 + - 0.6973 + - 0.7573 + - 0.6011 + - 0.606 + - 0.9 + - 0.6635 + - 0.586 + - 0.5766 + - 0.75 + - 2.0386 + - 0.75 + - 1.0 + - 0.9 + - 0.9 + - 0.9 + - 0.9 + - 0.9 + - 0.9 + - 1.0 + - 1.3386 + - 1.0 + - 1.0 + - 0.85 + - 0.95 + - 1.7386 + - 0.95 + - 0.9 + - 0.8 + - 1.7386 + - 0.75 + - 0.75 + - 0.75 + - 0.8 + - 0.75 + - 0.8 + - 0.9 + - 0.75 + - 0.8 + - 0.8 + - 1.1 + - 0.75 + - 1.1 + - 0.75 + - 0.5991 + - 0.5348 + - 0.6541 + - 0.7421 + - 0.6192 + - 0.8186 + - 1.0616 + - 0.8848 + - 1.024 + - 2.5 + - 1.0249 + - 1.0795 + - 1.2199 + - 2.5 + - 2.5 + - 1.3103 + - 1.3603 + - 2.5 + - 2.5 + - 2.5 + - 1.323 + - 2.5 + - 2.5 + - 2.5 + - 1.4406 + - 2.5 + - 2.5 + - 1.3965 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.6997 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.6264 + - 2.5 + - 2.5 + - 2.5 + - 1.3436 + - 2.5 + - 2.5 + - 0.5727 + - 0.6838 + - 0.5994 + - 0.5178 + - 0.5145 + - 0.547 + - 0.5572 + - 0.5002 + - 0.4974 + - 0.55 + - 0.4953 + - 0.4883 + - 0.4948 + - 0.5446 + - 0.5777 + - 1.5 + - 1.5 + - 3.0 + - 3.0 + - 2.5 + - 2.5 + - 2.0 + - 1.0 + - 1.5 + - 1.5 + - 1.8 + - 0.6 + - 0.7 + - 0.65 + - 0.675 + - 0.7 + - 0.75 + - 0.775 + - 0.8 + - 0.8 + - 0.85 + - 0.85 + - 0.85 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.725 + - 0.75 + - 0.775 + - 0.8 + - 0.825 + - 0.8 + - 0.8 + - 0.8 + - 0.75 + - 0.8 + - 0.8 + - 0.8 + - 0.8 + - 0.8 + - 0.85 + - 0.8 + - 0.8 + - 2.5 + - 0.75 + - 0.75 + - 0.75 + - 0.75 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 2122, 2123, 2128, 2134, 2141, 2145, 2149, 2153, 2164, 2189, 2197, + 2209, 2226, 2234, 2280, 2318, 2321, 2325, 2328, 2333, 2339, 2348, 2353, + 2355, 2357, 2363, 2370, 2371, 2377 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: airs_aqua + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: &id003 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 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.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: airs_aqua + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 1.7 + - 3.0 + - 1.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 1.25 + - 3.5 + - 3.5 + - 3.0 + - 3.0 + - 1.5 + - 3.0 + - 3.0 + - 3.0 + - 1.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id003 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: airs_aqua + - obs space: + name: AMSR2 GCOM-W1 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsr2_gcom-w1.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsr2_gcom-w1.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: amsr2_gcom-w1 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsr2_gcom-w1.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsr2_gcom-w1.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsr2_gcom-w1.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsr2_gcom-w1.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsr2_gcom-w1.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsr2_gcom-w1.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 340.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.999 + - variable: + name: GeoVaLs/skin_temperature_at_surface_where_sea + minvalue: 275 + - variable: + name: GeoVaLs/wind_speed_at_surface + maxvalue: 12 + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/TotalColumnVaporGuess + minvalue: 10.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SunGlintAngle + minvalue: 20.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: &id004 + - 0.48 + - 3.0737 + - 0.7433 + - 3.643 + - 3.5304 + - 4.427 + - 5.1448 + - 5.0785 + - 4.9763 + - 9.3215 + - 2.5789 + - 5.5274 + - 0.6641 + - 1.3674 + clwret_types: + - ObsValue + maxvalue: 1.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id004 + clwret_types: + - HofX + maxvalue: 1.0 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: None + value: + name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id004 + clwret_types: + - ObsValue + reference: + name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id004 + clwret_types: + - HofX + minvalue: -0.5 + maxvalue: 0.5 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id004 + clwret_types: + - ObsValue + - HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.1 + - 0.1 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 0.6 + - 0.6 + - 0.6 + - 0.6 + - 0.6 + - 0.5 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + err0: + - 0.8 + - 0.9 + - 0.8 + - 0.9 + - 1.0 + - 1.1 + - 2.0 + - 3.5 + - 3.0 + - 4.8 + - 5.0 + - 6.0 + - 4.5 + - 6.3 + err1: + - 5.0 + - 5.0 + - 5.0 + - 5.0 + - 5.0 + - 18.5 + - 20.0 + - 40.0 + - 20.0 + - 25.0 + - 30.0 + - 30.0 + - 30.0 + - 20.0 + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: None + threshold: 2.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 7-10 + absolute threshold: 30 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 11-14 + absolute threshold: 50 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: amsr2_gcom-w1 + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsr2_gcom-w1 + - obs space: + name: AMSU-A AQUA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_aqua.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_aqua.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_aqua + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_aqua.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_aqua.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_aqua.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_aqua.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_aqua.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_aqua.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id005 + - 2.5 + - 2.0 + - 2.0 + - 0.5 + - 0.4 + - 0.4 + - 0.5 + - 0.3 + - 0.35 + - 0.35 + - 0.45 + - 1.0 + - 1.5 + - 3.75 + - 6.3 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_aqua + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_aqua + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_aqua + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_aqua + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_aqua + error parameter vector: *id005 + obserr_bound_max: + - 4.5 + - 4.5 + - 4.5 + - 3.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 3.0 + - 3.5 + - 4.5 + - 4.5 + - 4.5 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_aqua + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_aqua + - obs space: + name: AMSU-A METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_metop-b.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id006 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_metop-b + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_metop-b + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_metop-b + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_metop-b + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_metop-b + error parameter vector: *id006 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_metop-b + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_metop-b + - obs space: + name: AMSU-A METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_metop-c.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_metop-c.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_metop-c.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_metop-c.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_metop-c.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_metop-c.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id007 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_metop-c + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_metop-c + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_metop-c + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_metop-c + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_metop-c + error parameter vector: *id007 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_metop-c + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_metop-c + - obs space: + name: AMSU-A NOAA-15 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n15.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n15.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n15 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n15.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_n15.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n15.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n15.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n15.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n15.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id008 + - 3.0 + - 2.0 + - 2.0 + - 0.6 + - 0.3 + - 0.23 + - 0.25 + - 0.275 + - 0.34 + - 0.4 + - 0.6 + - 1.0 + - 1.5 + - 5.0 + - 3.0 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n15 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n15 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n15 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n15 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n15 + error parameter vector: *id008 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n15 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n15 + - obs space: + name: AMSU-A NOAA-18 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n18.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n18.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n18 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n18.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_n18.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n18.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n18.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n18.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n18.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id009 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n18 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n18 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n18 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n18 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n18 + error parameter vector: *id009 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n18 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n18 + - obs space: + name: AMSU-A NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n19.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_n19.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n19.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n19.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n19.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n19.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id010 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n19 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n19 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n19 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n19 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n19 + error parameter vector: *id010 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n19 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n19 + - obs space: + name: ATMS NOAA-20 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/atms_n20.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.atms_n20.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: atms_n20 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/atms_n20.20231009T150000Z.satbias.nc4 + output file: cycle_dir/atms_n20.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: ATMS + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/atms_n20.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/atms_n20.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/atms_n20.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/atms_n20.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id011 + - 5.0 + - 5.0 + - 5.0 + - 3.0 + - 0.55 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 5.0 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-7,16-22 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-7,16 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: atms_n20 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: atms_n20 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + use_biasterm: true + test_biasterm: ObsBiasTerm + sensor: atms_n20 + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: atms_n20 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: atms_n20 + error parameter vector: *id011 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: atms_n20 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: atms_n20 + - obs space: + name: ATMS NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/atms_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.atms_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: atms_npp + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/atms_npp.20231009T150000Z.satbias.nc4 + output file: cycle_dir/atms_npp.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: ATMS + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/atms_npp.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/atms_npp.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/atms_npp.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/atms_npp.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id012 + - 5.0 + - 5.0 + - 5.0 + - 3.0 + - 0.55 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 5.0 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-7,16-22 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-7,16 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: atms_npp + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: atms_npp + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + use_biasterm: true + test_biasterm: ObsBiasTerm + sensor: atms_npp + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: atms_npp + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: atms_npp + error parameter vector: *id012 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: atms_npp + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: atms_npp + - obs space: + name: AVHRR-3 METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/avhrr3_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_metop-b.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_metop-b + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_metop-b + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_metop-b + - obs space: + name: AVHRR-3 NOAA-18 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_n18.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_n18.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_n18 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_n18.20231009T150000Z.satbias.nc4 + output file: cycle_dir/avhrr3_n18.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_n18.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_n18.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_n18.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_n18.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_n18 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_n18 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_n18 + - obs space: + name: AVHRR-3 NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_n19.20231009T150000Z.satbias.nc4 + output file: cycle_dir/avhrr3_n19.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_n19.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_n19.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_n19.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_n19.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_n19 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_n19 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_n19 + - obs space: + name: CRIS-FSR NOAA-20 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/cris-fsr_n20.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.cris-fsr_n20.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: cris-fsr_n20 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/cris-fsr_n20.20231009T150000Z.satbias.nc4 + output file: cycle_dir/cris-fsr_n20.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/cris-fsr_n20.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/cris-fsr_n20.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/cris-fsr_n20.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/cris-fsr_n20.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/cris-fsr_108_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 0.823 + - 0.76 + - 0.736 + - 0.743 + - 0.856 + - 1.079 + - 0.888 + - 0.778 + - 0.671 + - 0.65 + - 0.643 + - 0.629 + - 0.629 + - 0.618 + - 0.638 + - 0.619 + - 0.61 + - 0.627 + - 0.601 + - 0.617 + - 0.608 + - 0.498 + - 0.5112 + - 0.4922 + - 0.4959 + - 0.4954 + - 0.4836 + - 0.514 + - 0.5005 + - 0.4917 + - 0.4881 + - 0.4656 + - 0.4793 + - 0.4638 + - 0.4557 + - 0.4666 + - 0.4468 + - 0.4534 + - 0.4471 + - 0.4448 + - 0.4469 + - 0.536 + - 0.4426 + - 0.4388 + - 0.534 + - 0.4368 + - 0.438 + - 0.531 + - 0.4379 + - 0.535 + - 0.4404 + - 0.4405 + - 0.4409 + - 0.4472 + - 0.4555 + - 0.4433 + - 0.4437 + - 0.4454 + - 0.4448 + - 0.4465 + - 0.4499 + - 0.4488 + - 0.54 + - 0.4534 + - 0.4472 + - 0.455 + - 0.4562 + - 0.452 + - 0.4639 + - 0.538 + - 0.4573 + - 0.4604 + - 0.4533 + - 0.4692 + - 0.566 + - 0.4457 + - 0.4457 + - 0.5154 + - 0.5084 + - 0.528 + - 0.552 + - 0.56 + - 0.567 + - 0.546 + - 0.495 + - 0.4809 + - 0.4732 + - 0.4861 + - 0.4632 + - 0.529 + - 0.4748 + - 0.5007 + - 0.5711 + - 0.595 + - 0.5469 + - 0.626 + - 0.541 + - 0.543 + - 0.533 + - 0.541 + - 0.4695 + - 0.53 + - 0.539 + - 0.529 + - 0.542 + - 0.4681 + - 0.536 + - 0.542 + - 0.535 + - 0.563 + - 0.4805 + - 0.647 + - 0.609 + - 0.553 + - 0.583 + - 0.576 + - 0.6294 + - 0.5885 + - 0.556 + - 0.578 + - 0.566 + - 0.601 + - 0.5627 + - 0.5675 + - 0.592 + - 0.5166 + - 0.589 + - 0.5291 + - 0.5892 + - 0.5976 + - 0.5834 + - 0.6512 + - 0.6748 + - 0.6615 + - 0.6003 + - 0.5669 + - 0.5587 + - 0.5507 + - 0.5871 + - 0.616 + - 0.637 + - 0.633 + - 0.639 + - 0.655 + - 0.641 + - 0.664 + - 0.648 + - 0.656 + - 0.663 + - 0.652 + - 0.681 + - 0.662 + - 0.673 + - 0.672 + - 0.68 + - 0.735 + - 0.732 + - 0.715 + - 0.674 + - 0.687 + - 0.702 + - 0.705 + - 0.715 + - 0.725 + - 0.707 + - 0.74 + - 0.74 + - 0.874 + - 0.737 + - 0.819 + - 0.76 + - 0.869 + - 0.9 + - 0.698 + - 0.823 + - 0.676 + - 0.682 + - 0.766 + - 0.68 + - 0.685 + - 0.694 + - 0.695 + - 0.689 + - 0.727 + - 0.695 + - 0.688 + - 0.677 + - 0.736 + - 0.651 + - 0.661 + - 0.6199 + - 0.6223 + - 0.6036 + - 0.6003 + - 0.5991 + - 0.598 + - 0.591 + - 0.5764 + - 0.577 + - 0.5593 + - 0.597 + - 0.576 + - 0.574 + - 0.578 + - 0.579 + - 0.575 + - 0.576 + - 0.568 + - 0.575 + - 0.569 + - 0.559 + - 0.568 + - 0.5401 + - 0.55 + - 0.5575 + - 0.578 + - 0.5635 + - 0.5786 + - 0.5807 + - 0.581 + - 0.573 + - 0.569 + - 0.567 + - 0.552 + - 0.55 + - 0.558 + - 0.552 + - 0.562 + - 0.574 + - 0.575 + - 0.629 + - 0.682 + - 0.756 + - 1.05 + - 1.122 + - 1.1402 + - 1.154 + - 1.131 + - 1.123 + - 1.159 + - 1.106 + - 1.116 + - 1.069 + - 1.077 + - 1.155 + - 1.162 + - 1.1402 + - 0.644 + - 1.208 + - 1.1402 + - 1.295 + - 1.258 + - 1.1402 + - 0.606 + - 0.603 + - 0.563 + - 0.592 + - 0.607 + - 0.611 + - 0.612 + - 0.618 + - 0.626 + - 0.629 + - 0.583 + - 0.8646 + - 0.626 + - 0.639 + - 0.559 + - 0.827 + - 0.612 + - 0.576 + - 0.58 + - 0.575 + - 0.688 + - 0.697 + - 0.743 + - 0.681 + - 0.832 + - 0.719 + - 0.785 + - 0.878 + - 0.9402 + - 1.0054 + - 1.073 + - 1.129 + - 1.035 + - 1.027 + - 0.9703 + - 1.195 + - 0.9153 + - 1.266 + - 1.153 + - 1.348 + - 1.18 + - 1.269 + - 1.311 + - 0.9914 + - 1.359 + - 1.166 + - 1.139 + - 1.2817 + - 1.398 + - 1.542 + - 1.229 + - 1.377 + - 1.28 + - 1.245 + - 1.1188 + - 1.193 + - 1.293 + - 1.275 + - 1.331 + - 1.34 + - 1.099 + - 1.048 + - 1.124 + - 1.225 + - 1.183 + - 1.196 + - 1.4 + - 1.333 + - 1.417 + - 1.326 + - 1.305 + - 1.0638 + - 1.268 + - 1.217 + - 1.289 + - 1.395 + - 1.232 + - 1.435 + - 1.298 + - 1.328 + - 1.262 + - 1.199 + - 1.391 + - 1.233 + - 1.329 + - 1.664 + - 1.509 + - 1.349 + - 1.481 + - 1.595 + - 1.485 + - 1.532 + - 1.504 + - 1.584 + - 1.609 + - 1.516 + - 1.489 + - 1.502 + - 1.544 + - 1.611 + - 1.539 + - 1.296 + - 1.288 + - 1.241 + - 1.32 + - 1.313 + - 1.301 + - 1.843 + - 1.747 + - 1.711 + - 1.771 + - 1.937 + - 1.575 + - 1.573 + - 1.5 + - 1.459 + - 1.402 + - 1.363 + - 2.201 + - 2.127 + - 2.177 + - 2.157 + - 2.192 + - 2.146 + - 2.151 + - 2.071 + - 1.986 + - 1.845 + - 1.687 + - 1.505 + - 1.373 + - 1.229 + - 1.113 + - 1.004 + - 0.936 + - 0.895 + - 0.871 + - 0.841 + - 0.821 + - 0.805 + - 0.8 + - 0.792 + - 0.797 + - 0.791 + - 0.783 + - 0.777 + - 0.785 + - 0.787 + - 0.789 + - 0.793 + - 0.794 + - 0.745 + - 0.75 + - 0.748 + - 0.749 + - 0.744 + - 0.733 + - 0.733 + - 0.741 + - 0.746 + - 0.746 + - 0.738 + - 0.743 + - 0.745 + - 0.749 + - 0.75 + - 0.75 + - 0.884 + - 0.906 + - 0.917 + - 0.924 + - 0.922 + - 0.928 + - 0.921 + - 0.938 + - 0.931 + - 0.943 + - 0.946 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: cris-fsr_n20 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: &id013 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 31 + - 31 + - 30 + - 31 + - 30 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: cris-fsr_n20 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + 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 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id013 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: cris-fsr_n20 + - obs space: + name: CRIS-FSR NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/cris-fsr_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.cris-fsr_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: cris-fsr_npp + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/cris-fsr_npp.20231009T150000Z.satbias.nc4 + output file: cycle_dir/cris-fsr_npp.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/cris-fsr_npp.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/cris-fsr_npp.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/cris-fsr_npp.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/cris-fsr_npp.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/cris-fsr_108_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 0.823 + - 0.76 + - 0.736 + - 0.743 + - 0.856 + - 1.079 + - 0.888 + - 0.778 + - 0.671 + - 0.65 + - 0.643 + - 0.629 + - 0.629 + - 0.618 + - 0.638 + - 0.619 + - 0.61 + - 0.627 + - 0.601 + - 0.617 + - 0.608 + - 0.498 + - 0.5112 + - 0.4922 + - 0.4959 + - 0.4954 + - 0.4836 + - 0.514 + - 0.5005 + - 0.4917 + - 0.4881 + - 0.4656 + - 0.4793 + - 0.4638 + - 0.4557 + - 0.4666 + - 0.4468 + - 0.4534 + - 0.4471 + - 0.4448 + - 0.4469 + - 0.536 + - 0.4426 + - 0.4388 + - 0.534 + - 0.4368 + - 0.438 + - 0.531 + - 0.4379 + - 0.535 + - 0.4404 + - 0.4405 + - 0.4409 + - 0.4472 + - 0.4555 + - 0.4433 + - 0.4437 + - 0.4454 + - 0.4448 + - 0.4465 + - 0.4499 + - 0.4488 + - 0.54 + - 0.4534 + - 0.4472 + - 0.455 + - 0.4562 + - 0.452 + - 0.4639 + - 0.538 + - 0.4573 + - 0.4604 + - 0.4533 + - 0.4692 + - 0.566 + - 0.4457 + - 0.4457 + - 0.5154 + - 0.5084 + - 0.528 + - 0.552 + - 0.56 + - 0.567 + - 0.546 + - 0.495 + - 0.4809 + - 0.4732 + - 0.4861 + - 0.4632 + - 0.529 + - 0.4748 + - 0.5007 + - 0.5711 + - 0.595 + - 0.5469 + - 0.626 + - 0.541 + - 0.543 + - 0.533 + - 0.541 + - 0.4695 + - 0.53 + - 0.539 + - 0.529 + - 0.542 + - 0.4681 + - 0.536 + - 0.542 + - 0.535 + - 0.563 + - 0.4805 + - 0.647 + - 0.609 + - 0.553 + - 0.583 + - 0.576 + - 0.6294 + - 0.5885 + - 0.556 + - 0.578 + - 0.566 + - 0.601 + - 0.5627 + - 0.5675 + - 0.592 + - 0.5166 + - 0.589 + - 0.5291 + - 0.5892 + - 0.5976 + - 0.5834 + - 0.6512 + - 0.6748 + - 0.6615 + - 0.6003 + - 0.5669 + - 0.5587 + - 0.5507 + - 0.5871 + - 0.616 + - 0.637 + - 0.633 + - 0.639 + - 0.655 + - 0.641 + - 0.664 + - 0.648 + - 0.656 + - 0.663 + - 0.652 + - 0.681 + - 0.662 + - 0.673 + - 0.672 + - 0.68 + - 0.735 + - 0.732 + - 0.715 + - 0.674 + - 0.687 + - 0.702 + - 0.705 + - 0.715 + - 0.725 + - 0.707 + - 0.74 + - 0.74 + - 0.874 + - 0.737 + - 0.819 + - 0.76 + - 0.869 + - 0.9 + - 0.698 + - 0.823 + - 0.676 + - 0.682 + - 0.766 + - 0.68 + - 0.685 + - 0.694 + - 0.695 + - 0.689 + - 0.727 + - 0.695 + - 0.688 + - 0.677 + - 0.736 + - 0.651 + - 0.661 + - 0.6199 + - 0.6223 + - 0.6036 + - 0.6003 + - 0.5991 + - 0.598 + - 0.591 + - 0.5764 + - 0.577 + - 0.5593 + - 0.597 + - 0.576 + - 0.574 + - 0.578 + - 0.579 + - 0.575 + - 0.576 + - 0.568 + - 0.575 + - 0.569 + - 0.559 + - 0.568 + - 0.5401 + - 0.55 + - 0.5575 + - 0.578 + - 0.5635 + - 0.5786 + - 0.5807 + - 0.581 + - 0.573 + - 0.569 + - 0.567 + - 0.552 + - 0.55 + - 0.558 + - 0.552 + - 0.562 + - 0.574 + - 0.575 + - 0.629 + - 0.682 + - 0.756 + - 1.05 + - 1.122 + - 1.1402 + - 1.154 + - 1.131 + - 1.123 + - 1.159 + - 1.106 + - 1.116 + - 1.069 + - 1.077 + - 1.155 + - 1.162 + - 1.1402 + - 0.644 + - 1.208 + - 1.1402 + - 1.295 + - 1.258 + - 1.1402 + - 0.606 + - 0.603 + - 0.563 + - 0.592 + - 0.607 + - 0.611 + - 0.612 + - 0.618 + - 0.626 + - 0.629 + - 0.583 + - 0.8646 + - 0.626 + - 0.639 + - 0.559 + - 0.827 + - 0.612 + - 0.576 + - 0.58 + - 0.575 + - 0.688 + - 0.697 + - 0.743 + - 0.681 + - 0.832 + - 0.719 + - 0.785 + - 0.878 + - 0.9402 + - 1.0054 + - 1.073 + - 1.129 + - 1.035 + - 1.027 + - 0.9703 + - 1.195 + - 0.9153 + - 1.266 + - 1.153 + - 1.348 + - 1.18 + - 1.269 + - 1.311 + - 0.9914 + - 1.359 + - 1.166 + - 1.139 + - 1.2817 + - 1.398 + - 1.542 + - 1.229 + - 1.377 + - 1.28 + - 1.245 + - 1.1188 + - 1.193 + - 1.293 + - 1.275 + - 1.331 + - 1.34 + - 1.099 + - 1.048 + - 1.124 + - 1.225 + - 1.183 + - 1.196 + - 1.4 + - 1.333 + - 1.417 + - 1.326 + - 1.305 + - 1.0638 + - 1.268 + - 1.217 + - 1.289 + - 1.395 + - 1.232 + - 1.435 + - 1.298 + - 1.328 + - 1.262 + - 1.199 + - 1.391 + - 1.233 + - 1.329 + - 1.664 + - 1.509 + - 1.349 + - 1.481 + - 1.595 + - 1.485 + - 1.532 + - 1.504 + - 1.584 + - 1.609 + - 1.516 + - 1.489 + - 1.502 + - 1.544 + - 1.611 + - 1.539 + - 1.296 + - 1.288 + - 1.241 + - 1.32 + - 1.313 + - 1.301 + - 1.843 + - 1.747 + - 1.711 + - 1.771 + - 1.937 + - 1.575 + - 1.573 + - 1.5 + - 1.459 + - 1.402 + - 1.363 + - 2.201 + - 2.127 + - 2.177 + - 2.157 + - 2.192 + - 2.146 + - 2.151 + - 2.071 + - 1.986 + - 1.845 + - 1.687 + - 1.505 + - 1.373 + - 1.229 + - 1.113 + - 1.004 + - 0.936 + - 0.895 + - 0.871 + - 0.841 + - 0.821 + - 0.805 + - 0.8 + - 0.792 + - 0.797 + - 0.791 + - 0.783 + - 0.777 + - 0.785 + - 0.787 + - 0.789 + - 0.793 + - 0.794 + - 0.745 + - 0.75 + - 0.748 + - 0.749 + - 0.744 + - 0.733 + - 0.733 + - 0.741 + - 0.746 + - 0.746 + - 0.738 + - 0.743 + - 0.745 + - 0.749 + - 0.75 + - 0.75 + - 0.884 + - 0.906 + - 0.917 + - 0.924 + - 0.922 + - 0.928 + - 0.921 + - 0.938 + - 0.931 + - 0.943 + - 0.946 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: cris-fsr_npp + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: &id014 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 31 + - 31 + - 30 + - 31 + - 30 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: cris-fsr_npp + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + 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 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id014 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: cris-fsr_npp + - obs space: + name: GMI GPM + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/gmi_gpm.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.gmi_gpm.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: gmi_gpm + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/gmi_gpm.20231009T150000Z.satbias.nc4 + output file: cycle_dir/gmi_gpm.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: cloudWaterContent + sensor: GMI_GPM + ch37v: 6 + ch37h: 7 + order: 2 + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: cloudWaterContent + sensor: GMI_GPM + ch37v: 6 + ch37h: 7 + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/gmi_gpm.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/gmi_gpm.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-9 + minvalue: 50.0 + maxvalue: 320.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 10-13 + minvalue: 70.0 + maxvalue: 320.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 5 + maxvalue: 70 + - variable: + name: MetaData/latitude + minvalue: -55.0 + maxvalue: 55.0 + - variable: + name: MetaData/heightOfSurface + maxvalue: 2000 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + minvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/latitude + minvalue: -20.0 + maxvalue: 0.0 + - variable: + name: MetaData/longitude + minvalue: 25.0 + maxvalue: 40.0 + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/cloudWaterContent_obs + type: float + function: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + maxvalue: 900 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - HofX + maxvalue: 900 + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/cloudWaterContent_hofx + type: float + function: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - HofX + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + minvalue: 0.0 + maxvalue: 0.05 + - variable: + name: ObsFunction/Emissivity_Diff_GMI + options: + channel: 2 + regression_constant_1: 0.1329 + regression_constant_2: 0.42468 + regression_coeff_1: + - -0.00548 + - 0.00772 + - 0.0053 + - -0.00425 + - 0.00053 + - 8e-05 + - -3e-05 + - -0.00144 + - 0.00059 + - -0.00016 + - 3e-05 + - -0.00011 + - 0.00017 + regression_coeff_2: + - 0.00289 + - -0.00142 + minvalue: 0.01 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + minvalue: 0.0 + maxvalue: 0.05 + - variable: + name: ObsFunction/Emissivity_Diff_GMI + options: + channel: 4 + regression_constant_1: 0.15627 + regression_constant_2: 0.83807 + regression_coeff_1: + - -0.01084 + - 0.01194 + - 0.01111 + - -0.00784 + - 0.0006 + - 8e-05 + - -3e-05 + - -0.00248 + - 0.00105 + - -8e-05 + - 0.0 + - -0.00013 + - 0.00016 + regression_coeff_2: + - 0.00048 + - -0.00207 + minvalue: 0.035 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + minvalue: 0.0 + maxvalue: 0.05 + - variable: + name: ObsFunction/Emissivity_Diff_GMI + options: + channel: 7 + regression_constant_1: 0.30306 + regression_constant_2: 1.24071 + regression_coeff_1: + - -0.01793 + - 0.0173 + - 0.01784 + - -0.01199 + - 0.00067 + - 0.00013 + - -4e-05 + - -0.00365 + - 0.00154 + - -4e-05 + - -1e-05 + - -0.00015 + - 0.00017 + regression_coeff_2: + - 0.00068 + - -0.00342 + minvalue: 0.05 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + - HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.3 + - 0.2 + - 0.3 + - 0.3 + x2: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + err0: + - 2.7 + - 3.7 + - 3.5 + - 4.5 + - 4.0 + - 3.8 + - 300.0 + - 5.0 + - 11.5 + - 5.0 + - 5.0 + - 2.5 + - 3.0 + err1: + - 17.0 + - 23.0 + - 13.0 + - 25.0 + - 11.0 + - 13.0 + - 23.0 + - 10.0 + - 20.0 + - 15.0 + - 20.0 + - 8.0 + - 13.0 + err2: + - 25.0 + - 40.0 + - 40.0 + - 55.0 + - 35.0 + - 25.0 + - 500.0 + - 50.0 + - 50.0 + - 50.0 + - 50.0 + - 30.0 + - 40.0 + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 1,2,4,6 + threshold: 2.0 + absolute threshold: 30.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 9,10,11 + threshold: 2.0 + absolute threshold: 20.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 3,5,8 + threshold: 2.0 + absolute threshold: 15.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 12,13 + threshold: 2.0 + absolute threshold: 10.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 7 + threshold: 2.0 + absolute threshold: 5.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: gmi_gpm + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: gmi_gpm + - obs space: + name: gnssrobndnbam + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/gps.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - sequenceNumber + sort variable: impactHeightRO + sort order: ascending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.gps.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - bendingAngle + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + vertlayer: full + sr_steps: 2 + super_ref_qc: NBAM + obs filters: + - filter: BlackList + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 41,265,266,421,440,724,725,726,727,728,729 + - filter: Perform Action + filter variables: + - name: bendingAngle + where: + - variable: PreUseFlag/bendingAngle + minvalue: 1 + action: + name: reject + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266,267,268,269 + test variables: + - name: MetaData/impactHeightRO + maxvalue: 45000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 3-5 + test variables: + - name: MetaData/impactHeightRO + minvalue: 8000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 267,268,269 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 401 + test variables: + - name: MetaData/impactHeightRO + minvalue: 5000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 267,268,269 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 402-999 + test variables: + - name: MetaData/impactHeightRO + minvalue: 9000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 401 + test variables: + - name: MetaData/impactHeightRO + minvalue: 5000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 402-999 + test variables: + - name: MetaData/impactHeightRO + minvalue: 8000.1 + action: + name: reject + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: inflate error + inflation factor: 2.0 + where: + - variable: MetaData/satelliteIdentifier + is_in: 267,268,269 + - filter: Variable Assignment + assignments: + - name: JediAdjustObsError/bendingAngle + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/bendingAngle + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error parameter: 1.0 + where: + - variable: + name: JediAdjustObsError/bendingAngle + maxvalue: 1.0 + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + - variable: + name: MetaData/satelliteIdentifier + is_in: 3,5,41,42,43,44,267,268,269,440,421,724,725,726,727,728,729, 750,751,752,753,754,755,821,825 + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error parameter: 10.0 + where: + - variable: + name: JediAdjustObsError/bendingAngle + minvalue: 10.0 + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: bendingAngle + threshold: 5 + action: + name: reject + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error function: JediAdjustObsError/bendingAngle + where: + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + defer to post: true + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + defer to post: true + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate_GEOS + defer to post: true + observation_name: gps + - obs space: + name: IASI METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/iasi_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.iasi_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: iasi_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/iasi_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/iasi_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/iasi_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/iasi_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/iasi_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/iasi_metop-b.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/iasi_metop_141_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id015 + - 0.727 + - 0.81 + - 0.75 + - 0.79 + - 0.7055 + - 0.74 + - 0.68 + - 0.72 + - 0.6526 + - 0.65 + - 0.665 + - 0.69 + - 0.6394 + - 0.64 + - 0.6528 + - 0.6065 + - 0.6246 + - 0.61 + - 0.6423 + - 0.5995 + - 0.59 + - 0.6069 + - 0.6 + - 0.5965 + - 0.64 + - 0.62 + - 0.589 + - 0.5865 + - 0.65 + - 0.5861 + - 0.61 + - 0.5874 + - 0.68 + - 0.606 + - 0.68 + - 4.38 + - 3.05 + - 2.31 + - 1.56 + - 1.33 + - 1.58 + - 0.93 + - 0.5832 + - 0.5587 + - 0.5867 + - 0.58 + - 0.5655 + - 0.5522 + - 0.5864 + - 0.5475 + - 0.5854 + - 0.5455 + - 0.5811 + - 0.5376 + - 0.5452 + - 0.5686 + - 0.5329 + - 0.5655 + - 0.5302 + - 0.545 + - 0.5628 + - 0.59 + - 0.5262 + - 0.559 + - 0.5264 + - 0.5442 + - 0.51 + - 0.5513 + - 0.5224 + - 0.5523 + - 0.5188 + - 0.5487 + - 0.5245 + - 0.58 + - 0.5437 + - 0.5343 + - 0.5364 + - 0.64 + - 0.5338 + - 0.72 + - 0.537 + - 0.75 + - 0.51 + - 0.65 + - 0.5274 + - 0.529 + - 0.5187 + - 0.5228 + - 1.12 + - 0.5222 + - 0.5109 + - 0.67 + - 0.5133 + - 0.5179 + - 0.507 + - 0.67 + - 0.5091 + - 0.62 + - 0.5093 + - 0.69 + - 0.5048 + - 0.5024 + - 0.78 + - 0.497 + - 0.5337 + - 0.4865 + - 0.4915 + - 0.4835 + - 0.4869 + - 0.87 + - 0.4824 + - 0.4852 + - 0.84 + - 0.84 + - 0.84 + - 0.5318 + - 0.8 + - 0.4772 + - 0.98 + - 0.488 + - 0.4978 + - 0.5157 + - 0.61 + - 0.5213 + - 0.4884 + - 0.79 + - 0.62 + - 0.66 + - 0.4691 + - 0.65 + - 0.4809 + - 0.468 + - 0.62 + - 0.4679 + - 0.6913 + - 0.4705 + - 0.4785 + - 0.47 + - 0.4773 + - 0.4703 + - 0.98 + - 0.4697 + - 0.4662 + - 0.65 + - 0.467 + - 0.4883 + - 0.4684 + - 0.4684 + - 0.4947 + - 0.5393 + - 0.5024 + - 0.4715 + - 0.621 + - 0.6136 + - 0.5316 + - 1.78 + - 0.5099 + - 1.14 + - 0.539 + - 1.79 + - 0.508 + - 0.5723 + - 1.94 + - 2.01 + - 0.49 + - 0.5647 + - 0.5022 + - 1.47 + - 0.5815 + - 0.6782 + - 2.13 + - 0.5445 + - 1.52 + - 0.5555 + - 1.96 + - 2.31 + - 2.33 + - 2.32 + - 2.31 + - 0.6994 + - 0.7006 + - 0.706 + - 0.9785 + - 0.7023 + - 0.6991 + - 0.6946 + - 2.28 + - 2.26 + - 2.26 + - 2.26 + - 0.6608 + - 0.6835 + - 0.6822 + - 2.24 + - 2.26 + - 0.6735 + - 2.28 + - 0.667 + - 0.7732 + - 0.6642 + - 0.648 + - 0.6629 + - 2.29 + - 2.29 + - 0.6799 + - 0.623 + - 2.32 + - 0.603 + - 0.6224 + - 2.32 + - 0.6187 + - 2.31 + - 2.31 + - 2.28 + - 2.29 + - 2.28 + - 2.26 + - 1.966 + - 2.27 + - 2.26 + - 2.25 + - 2.27 + - 2.24 + - 2.21 + - 2.24 + - 2.17 + - 2.18 + - 2.17 + - 2.21 + - 1.4 + - 2.16 + - 2.2 + - 2.13 + - 2.12 + - 2.13 + - 2.1 + - 2.12 + - 2.11 + - 2.09 + - 2.09 + - 2.08 + - 2.09 + - 2.04 + - 2.04 + - 1.966 + - 2.01 + - 2.05 + - 2.03 + - 2.06 + - 1.98 + - 1.95 + - 1.94 + - 1.91 + - 1.857 + - 1.76 + - 1.748 + - 1.83 + - 2.04 + - 1.748 + - 1.99 + - 2.075 + - 2.07 + - 2.02 + - 2.04 + - 2.1 + - 1.966 + - 2.18 + - 2.21 + - 2.24 + - 2.23 + - 2.23 + - 1.98 + - 2.2 + - 2.18 + - 2.18 + - 2.21 + - 2.23 + - 2.24 + - 2.24 + - 2.25 + - 1.8 + - 2.24 + - 1.73 + - 1.73 + - 2.27 + - 1.67 + - 2.21 + - 1.72 + - 2.23 + - 2.23 + - 2.23 + - 2.24 + - 2.23 + - 2.12 + - 2.17 + - 1.74 + - 2.02 + - 1.88 + - 1.67 + - 1.73 + - 1.83 + - 1.82 + - 1.73 + - 1.83 + - 2.19 + - 1.84 + - 1.89 + - 1.6 + - 1.71 + - 1.86 + - 1.85 + - 1.84 + - 1.87 + - 1.91 + - 1.52 + - 1.95 + - 1.87 + - 1.89 + - 1.91 + - 1.91 + - 1.93 + - 1.9 + - 1.91 + - 1.9 + - 1.89 + - 1.89 + - 1.91 + - 1.9 + - 1.91 + - 1.91 + - 1.91 + - 1.93 + - 1.94 + - 1.91 + - 1.92 + - 1.77 + - 1.91 + - 1.95 + - 1.19 + - 1.96 + - 1.98 + - 1.94 + - 1.55 + - 1.91 + - 1.92 + - 1.92 + - 1.97 + - 1.93 + - 1.99 + - 1.86 + - 1.12 + - 1.93 + - 1.92 + - 1.95 + - 1.85 + - 1.84 + - 1.91 + - 1.12 + - 1.82 + - 1.82 + - 1.95 + - 1.24 + - 1.94 + - 1.96 + - 1.21 + - 1.83 + - 1.96 + - 1.36 + - 1.96 + - 1.82 + - 1.92 + - 1.68 + - 1.93 + - 1.23 + - 1.96 + - 1.93 + - 1.86 + - 1.41 + - 1.16 + - 1.6 + - 1.25 + - 1.2 + - 1.65 + - 1.66 + - 1.87 + - 1.94 + - 1.96 + - 1.91 + - 1.25 + - 1.93 + - 1.91 + - 1.7 + - 0.99 + - 1.81 + - 1.92 + - 1.95 + - 1.5 + - 1.47 + - 1.15 + - 1.58 + - 1.18 + - 1.82 + - 1.13 + - 1.83 + - 1.91 + - 1.26 + - 1.27 + - 1.91 + - 1.45 + - 1.6 + - 1.29 + - 1.94 + - 1.94 + - 1.23 + - 1.95 + - 1.21 + - 1.94 + - 1.86 + - 1.9 + - 1.33 + - 1.75 + - 2.02 + - 1.98 + - 2.03 + - 1.83 + - 1.5 + - 2.04 + - 2.02 + - 1.9 + - 2.0 + - 2.02 + - 1.95 + - 1.93 + - 1.95 + - 1.95 + - 1.99 + - 2.0 + - 1.94 + - 1.96 + - 1.86 + - 1.92 + - 1.88 + - 1.86 + - 1.84 + - 1.87 + - 1.77 + - 1.89 + - 1.89 + - 1.88 + - 1.94 + - 1.82 + - 1.79 + - 1.86 + - 2.06 + - 2.33 + - 1.88 + - 1.86 + - 1.81 + - 1.8 + - 1.8 + - 1.86 + - 1.9 + - 2.0 + - 2.06 + - 2.1 + - 2.2 + - 2.0 + - 2.16 + - 1.98 + - 1.8 + - 1.8 + - 1.85 + - 1.75 + - 2.04 + - 2.19 + - 2.14 + - 2.19 + - 1.86 + - 2.1 + - 2.11 + - 2.18 + - 2.03 + - 2.28 + - 2.19 + - 2.26 + - 2.26 + - 2.21 + - 2.21 + - 2.26 + - 2.33 + - 2.27 + - 2.21 + - 2.12 + - 2.23 + - 2.26 + - 2.25 + - 1.88 + - 2.26 + - 2.24 + - 2.36 + - 2.29 + - 2.35 + - 2.3 + - 2.27 + - 2.08 + - 2.05 + - 2.27 + - 2.28 + - 2.27 + - 2.28 + - 1.97 + - 2.25 + - 2.25 + - 2.25 + - 2.31 + - 2.28 + - 2.27 + - 2.13 + - 2.24 + - 2.28 + - 2.28 + - 2.41 + - 2.34 + - 9.32 + - 2.28 + - 2.38 + - 2.27 + - 2.27 + - 2.39 + - 2.11 + - 2.09 + - 2.1 + - 2.06 + - 2.12 + - 2.08 + - 2.0 + - 1.93 + - 2.02 + - 2.55 + - 1.54 + - 1.64 + - 1.51 + - 1.55 + - 2.82 + - 2.92 + - 2.55 + - 2.37 + - 1.85 + - 1.6 + - 1.72 + - 1.74 + - 1.79 + - 1.9 + - 1.94 + - 2.0 + - 2.04 + - 2.08 + - 2.12 + - 2.13 + - 2.16 + - 2.18 + - 2.18 + - 2.2 + - 2.2 + - 2.41 + - 2.39 + - 2.38 + - 2.4 + - 2.42 + - 2.41 + - 2.43 + - 2.45 + - 2.43 + - 2.45 + - 2.43 + - 2.4 + - 2.44 + - 2.4 + - 2.42 + - 2.43 + - 2.45 + - 2.45 + - 2.45 + - 2.46 + - 2.45 + - 2.45 + - 2.43 + - 2.51 + - 2.48 + - 2.48 + - 2.53 + - 2.46 + - 2.49 + - 2.5 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.54 + - 2.5 + - 2.48 + - 2.5 + - 2.55 + - 2.5 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.46 + - 2.53 + - 9.0 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: iasi_metop-b + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + error parameter vector: *id015 + use_flag: None + use_flag_clddet: &id016 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 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.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + error parameter vector: *id015 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: iasi_metop-b + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + error parameter vector: *id015 + 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 + - 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 + - 0.75 + - 2.0 + - 0.75 + - 2.0 + - 2.0 + - 2.0 + - 0.75 + - 0.75 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 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 + - 0.75 + - 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 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.4 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id016 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: iasi_metop-b + - obs space: + name: IASI METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/iasi_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.iasi_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: iasi_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/iasi_metop-c.20231009T150000Z.satbias.nc4 + output file: cycle_dir/iasi_metop-c.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/iasi_metop-c.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/iasi_metop-c.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/iasi_metop-c.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/iasi_metop-c.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/iasi_metop_141_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id017 + - 0.727 + - 0.81 + - 0.75 + - 0.79 + - 0.7055 + - 0.74 + - 0.68 + - 0.72 + - 0.6526 + - 0.65 + - 0.665 + - 0.69 + - 0.6394 + - 0.64 + - 0.6528 + - 0.6065 + - 0.6246 + - 0.61 + - 0.6423 + - 0.5995 + - 0.59 + - 0.6069 + - 0.6 + - 0.5965 + - 0.64 + - 0.62 + - 0.589 + - 0.5865 + - 0.65 + - 0.5861 + - 0.61 + - 0.5874 + - 0.68 + - 0.606 + - 0.68 + - 4.38 + - 3.05 + - 2.31 + - 1.56 + - 1.33 + - 1.58 + - 0.93 + - 0.5832 + - 0.5587 + - 0.5867 + - 0.58 + - 0.5655 + - 0.5522 + - 0.5864 + - 0.5475 + - 0.5854 + - 0.5455 + - 0.5811 + - 0.5376 + - 0.5452 + - 0.5686 + - 0.5329 + - 0.5655 + - 0.5302 + - 0.545 + - 0.5628 + - 0.59 + - 0.5262 + - 0.559 + - 0.5264 + - 0.5442 + - 0.51 + - 0.5513 + - 0.5224 + - 0.5523 + - 0.5188 + - 0.5487 + - 0.5245 + - 0.58 + - 0.5437 + - 0.5343 + - 0.5364 + - 0.64 + - 0.5338 + - 0.72 + - 0.537 + - 0.75 + - 0.51 + - 0.65 + - 0.5274 + - 0.529 + - 0.5187 + - 0.5228 + - 1.12 + - 0.5222 + - 0.5109 + - 0.67 + - 0.5133 + - 0.5179 + - 0.507 + - 0.67 + - 0.5091 + - 0.62 + - 0.5093 + - 0.69 + - 0.5048 + - 0.5024 + - 0.78 + - 0.497 + - 0.5337 + - 0.4865 + - 0.4915 + - 0.4835 + - 0.4869 + - 0.87 + - 0.4824 + - 0.4852 + - 0.84 + - 0.84 + - 0.84 + - 0.5318 + - 0.8 + - 0.4772 + - 0.98 + - 0.488 + - 0.4978 + - 0.5157 + - 0.61 + - 0.5213 + - 0.4884 + - 0.79 + - 0.62 + - 0.66 + - 0.4691 + - 0.65 + - 0.4809 + - 0.468 + - 0.62 + - 0.4679 + - 0.6913 + - 0.4705 + - 0.4785 + - 0.47 + - 0.4773 + - 0.4703 + - 0.98 + - 0.4697 + - 0.4662 + - 0.65 + - 0.467 + - 0.4883 + - 0.4684 + - 0.4684 + - 0.4947 + - 0.5393 + - 0.5024 + - 0.4715 + - 0.621 + - 0.6136 + - 0.5316 + - 1.78 + - 0.5099 + - 1.14 + - 0.539 + - 1.79 + - 0.508 + - 0.5723 + - 1.94 + - 2.01 + - 0.49 + - 0.5647 + - 0.5022 + - 1.47 + - 0.5815 + - 0.6782 + - 2.13 + - 0.5445 + - 1.52 + - 0.5555 + - 1.96 + - 2.31 + - 2.33 + - 2.32 + - 2.31 + - 0.6994 + - 0.7006 + - 0.706 + - 0.9785 + - 0.7023 + - 0.6991 + - 0.6946 + - 2.28 + - 2.26 + - 2.26 + - 2.26 + - 0.6608 + - 0.6835 + - 0.6822 + - 2.24 + - 2.26 + - 0.6735 + - 2.28 + - 0.667 + - 0.7732 + - 0.6642 + - 0.648 + - 0.6629 + - 2.29 + - 2.29 + - 0.6799 + - 0.623 + - 2.32 + - 0.603 + - 0.6224 + - 2.32 + - 0.6187 + - 2.31 + - 2.31 + - 2.28 + - 2.29 + - 2.28 + - 2.26 + - 1.966 + - 2.27 + - 2.26 + - 2.25 + - 2.27 + - 2.24 + - 2.21 + - 2.24 + - 2.17 + - 2.18 + - 2.17 + - 2.21 + - 1.4 + - 2.16 + - 2.2 + - 2.13 + - 2.12 + - 2.13 + - 2.1 + - 2.12 + - 2.11 + - 2.09 + - 2.09 + - 2.08 + - 2.09 + - 2.04 + - 2.04 + - 1.966 + - 2.01 + - 2.05 + - 2.03 + - 2.06 + - 1.98 + - 1.95 + - 1.94 + - 1.91 + - 1.857 + - 1.76 + - 1.748 + - 1.83 + - 2.04 + - 1.748 + - 1.99 + - 2.075 + - 2.07 + - 2.02 + - 2.04 + - 2.1 + - 1.966 + - 2.18 + - 2.21 + - 2.24 + - 2.23 + - 2.23 + - 1.98 + - 2.2 + - 2.18 + - 2.18 + - 2.21 + - 2.23 + - 2.24 + - 2.24 + - 2.25 + - 1.8 + - 2.24 + - 1.73 + - 1.73 + - 2.27 + - 1.67 + - 2.21 + - 1.72 + - 2.23 + - 2.23 + - 2.23 + - 2.24 + - 2.23 + - 2.12 + - 2.17 + - 1.74 + - 2.02 + - 1.88 + - 1.67 + - 1.73 + - 1.83 + - 1.82 + - 1.73 + - 1.83 + - 2.19 + - 1.84 + - 1.89 + - 1.6 + - 1.71 + - 1.86 + - 1.85 + - 1.84 + - 1.87 + - 1.91 + - 1.52 + - 1.95 + - 1.87 + - 1.89 + - 1.91 + - 1.91 + - 1.93 + - 1.9 + - 1.91 + - 1.9 + - 1.89 + - 1.89 + - 1.91 + - 1.9 + - 1.91 + - 1.91 + - 1.91 + - 1.93 + - 1.94 + - 1.91 + - 1.92 + - 1.77 + - 1.91 + - 1.95 + - 1.19 + - 1.96 + - 1.98 + - 1.94 + - 1.55 + - 1.91 + - 1.92 + - 1.92 + - 1.97 + - 1.93 + - 1.99 + - 1.86 + - 1.12 + - 1.93 + - 1.92 + - 1.95 + - 1.85 + - 1.84 + - 1.91 + - 1.12 + - 1.82 + - 1.82 + - 1.95 + - 1.24 + - 1.94 + - 1.96 + - 1.21 + - 1.83 + - 1.96 + - 1.36 + - 1.96 + - 1.82 + - 1.92 + - 1.68 + - 1.93 + - 1.23 + - 1.96 + - 1.93 + - 1.86 + - 1.41 + - 1.16 + - 1.6 + - 1.25 + - 1.2 + - 1.65 + - 1.66 + - 1.87 + - 1.94 + - 1.96 + - 1.91 + - 1.25 + - 1.93 + - 1.91 + - 1.7 + - 0.99 + - 1.81 + - 1.92 + - 1.95 + - 1.5 + - 1.47 + - 1.15 + - 1.58 + - 1.18 + - 1.82 + - 1.13 + - 1.83 + - 1.91 + - 1.26 + - 1.27 + - 1.91 + - 1.45 + - 1.6 + - 1.29 + - 1.94 + - 1.94 + - 1.23 + - 1.95 + - 1.21 + - 1.94 + - 1.86 + - 1.9 + - 1.33 + - 1.75 + - 2.02 + - 1.98 + - 2.03 + - 1.83 + - 1.5 + - 2.04 + - 2.02 + - 1.9 + - 2.0 + - 2.02 + - 1.95 + - 1.93 + - 1.95 + - 1.95 + - 1.99 + - 2.0 + - 1.94 + - 1.96 + - 1.86 + - 1.92 + - 1.88 + - 1.86 + - 1.84 + - 1.87 + - 1.77 + - 1.89 + - 1.89 + - 1.88 + - 1.94 + - 1.82 + - 1.79 + - 1.86 + - 2.06 + - 2.33 + - 1.88 + - 1.86 + - 1.81 + - 1.8 + - 1.8 + - 1.86 + - 1.9 + - 2.0 + - 2.06 + - 2.1 + - 2.2 + - 2.0 + - 2.16 + - 1.98 + - 1.8 + - 1.8 + - 1.85 + - 1.75 + - 2.04 + - 2.19 + - 2.14 + - 2.19 + - 1.86 + - 2.1 + - 2.11 + - 2.18 + - 2.03 + - 2.28 + - 2.19 + - 2.26 + - 2.26 + - 2.21 + - 2.21 + - 2.26 + - 2.33 + - 2.27 + - 2.21 + - 2.12 + - 2.23 + - 2.26 + - 2.25 + - 1.88 + - 2.26 + - 2.24 + - 2.36 + - 2.29 + - 2.35 + - 2.3 + - 2.27 + - 2.08 + - 2.05 + - 2.27 + - 2.28 + - 2.27 + - 2.28 + - 1.97 + - 2.25 + - 2.25 + - 2.25 + - 2.31 + - 2.28 + - 2.27 + - 2.13 + - 2.24 + - 2.28 + - 2.28 + - 2.41 + - 2.34 + - 9.32 + - 2.28 + - 2.38 + - 2.27 + - 2.27 + - 2.39 + - 2.11 + - 2.09 + - 2.1 + - 2.06 + - 2.12 + - 2.08 + - 2.0 + - 1.93 + - 2.02 + - 2.55 + - 1.54 + - 1.64 + - 1.51 + - 1.55 + - 2.82 + - 2.92 + - 2.55 + - 2.37 + - 1.85 + - 1.6 + - 1.72 + - 1.74 + - 1.79 + - 1.9 + - 1.94 + - 2.0 + - 2.04 + - 2.08 + - 2.12 + - 2.13 + - 2.16 + - 2.18 + - 2.18 + - 2.2 + - 2.2 + - 2.41 + - 2.39 + - 2.38 + - 2.4 + - 2.42 + - 2.41 + - 2.43 + - 2.45 + - 2.43 + - 2.45 + - 2.43 + - 2.4 + - 2.44 + - 2.4 + - 2.42 + - 2.43 + - 2.45 + - 2.45 + - 2.45 + - 2.46 + - 2.45 + - 2.45 + - 2.43 + - 2.51 + - 2.48 + - 2.48 + - 2.53 + - 2.46 + - 2.49 + - 2.5 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.54 + - 2.5 + - 2.48 + - 2.5 + - 2.55 + - 2.5 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.46 + - 2.53 + - 9.0 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: iasi_metop-c + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + error parameter vector: *id017 + use_flag: None + use_flag_clddet: &id018 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 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.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + error parameter vector: *id017 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: iasi_metop-c + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + error parameter vector: *id017 + 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 + - 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 + - 0.75 + - 2.0 + - 0.75 + - 2.0 + - 2.0 + - 2.0 + - 0.75 + - 0.75 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 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 + - 0.75 + - 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 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.4 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id018 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: iasi_metop-c + - obs space: + name: MHS METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/mhs_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_metop-b.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_metop-b + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_metop-b + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-b + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-b + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + observation_name: mhs_metop-b + - obs space: + name: MHS METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_metop-c.20231009T150000Z.satbias.nc4 + output file: cycle_dir/mhs_metop-c.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_metop-c.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_metop-c.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_metop-c.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_metop-c.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_metop-c + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_metop-c + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-c + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-c + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + observation_name: mhs_metop-c + - obs space: + name: MHS NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_n19.20231009T150000Z.satbias.nc4 + output file: cycle_dir/mhs_n19.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_n19.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_n19.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_n19.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_n19.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_n19 + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_n19 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_n19 + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_n19 + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + observation_name: mhs_n19 + - obs space: + name: MLS55 AURA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mls55_aura.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mls55_aura.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneProfile + obs operator: + name: VertInterp + vertical coordinate: air_pressure + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + obs filters: + - filter: Bounds Check + filter variables: + - name: ozoneProfile + minvalue: 0 + maxvalue: 10000 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneProfile + threshold: 5.0 + action: + name: reject + observation_name: mls55_aura + - obs space: + name: OMI AURA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/omi_aura.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.omi_aura.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneTotal + obs operator: + name: AtmVertInterpLay + geovals: + - mole_fraction_of_ozone_in_air + coefficients: + - 0.0078976797 + nlevels: + - 1 + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + obs filters: + - filter: Perform Action + filter variables: + - name: ozoneTotal + action: + name: assign error + error parameter: 5.0 + - filter: Bounds Check + filter variables: + - name: ozoneTotal + minvalue: 0 + maxvalue: 1000 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/solarZenithAngle + maxvalue: 84.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/sensorScanPosition + minvalue: 3 + maxvalue: 24 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneTotal + threshold: 5.0 + action: + name: reject + observation_name: omi_aura + - obs space: + name: OMPSNM NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/ompsnm_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.ompsnm_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneTotal + obs operator: + name: AtmVertInterpLay + geovals: + - mole_fraction_of_ozone_in_air + coefficients: + - 0.0078976797 + nlevels: + - 1 + obs filters: + - filter: Perform Action + filter variables: + - name: ozoneTotal + action: + name: assign error + error parameter: 5.216 + - filter: Bounds Check + filter variables: + - name: ozoneTotal + minvalue: 0 + maxvalue: 1000 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/solarZenithAngle + maxvalue: 84.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneTotal + threshold: 5.0 + action: + name: reject + observation_name: ompsnm_npp + - obs space: + name: Pilot Balloon + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/pibal.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.pibal.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + vertical coordinate backup: air_pressure + observation vertical coordinate group backup: MetaData + observation vertical coordinate backup: pressure + interpolation method backup: log-linear + hofx scaling field: SurfaceWindScalingCombined + hofx scaling field group: DerivedVariables + linear obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + vertical coordinate backup: air_pressure + observation vertical coordinate group backup: MetaData + observation vertical coordinate backup: pressure + interpolation method backup: log-linear + hofx scaling field: SurfaceWindScalingCombined + hofx scaling field group: DerivedVariables + obs pre filters: + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_not_in: 221 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: ObsType/windNorthward + is_not_in: 221 + action: + name: reject + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingCombined + SkipWhenNoObs: false + obs post filters: + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + - 3.3 + - 3.5 + - 3.7 + - 3.9 + - 4.1 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 221 + cgross: + - 8.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 221 + cgross: + - 8.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windNorthward + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + test variables: + - name: ObsErrorData/windEastward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windEastward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windEastward + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windNorthward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windNorthward + defer to post: true + - filter: Bounds Check + filter variables: + - name: windNorthward + test variables: + - name: ObsErrorData/windNorthward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 221 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 221 + defer to post: true + observation_name: pibal + - obs space: + name: Satellite Winds + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/satwind.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.satwind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + linear obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + obs post filters: + - filter: PreQC + maxvalue: 3 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 80000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - filter: BlackList + where: + - variable: + name: ObsType/windEastward + is_in: 240, 241, 248, 249, 251, 255, 256, 260 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.45 + - 5 + - 5 + - 5 + - 5.075 + - 5.175 + - 5.3 + - 5.675 + - 6.05 + - 6.25 + - 6.625 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 244 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.0 + - 4.1 + - 5 + - 6 + - 6.3 + - 6.6 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 245, 246 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.0 + - 4.1 + - 5 + - 6 + - 6.3 + - 6.6 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 242, 243, 247, 252, 253 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.5 + - 6.1 + - 6.0 + - 6.5 + - 7.3 + - 7.6 + - 7 + - 7.5 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 254 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.0 + - 4.1 + - 5.0 + - 7 + - 7.3 + - 7.6 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + where: + - variable: + name: ObsType/windEastward + is_in: 250 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.675 + - 5.45 + - 5.525 + - 5.8 + - 6.275 + - 6.575 + - 6.825 + - 7.05 + - 7.05 + - 7.05 + - 7.05 + where: + - variable: + name: ObsType/windEastward + is_in: 257 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 6.05 + - 5.625 + - 5.275 + - 5.375 + - 5.925 + - 6.475 + - 6.775 + - 7.05 + - 7.05 + - 7.05 + - 7.05 + where: + - variable: + name: ObsType/windEastward + is_in: 258 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6 + - 5.5 + - 5.5 + - 5.575 + - 6.025 + - 6.4 + - 6.775 + - 7.15 + - 7.15 + - 7.15 + - 7.15 + where: + - variable: + name: ObsType/windEastward + is_in: 259 + - filter: Difference Check + filter variables: + - name: windEastward + - name: windNorthward + reference: GeoVaLs/air_pressure_at_surface + value: MetaData/pressure + maxvalue: -11000 + where: + - variable: + name: ObsType/windEastward + is_in: 247 + - variable: + name: MetaData/surfaceQualifier + minvalue: 1 + - filter: Difference Check + filter variables: + - name: windEastward + - name: windNorthward + reference: GeoVaLs/air_pressure_at_surface + value: MetaData/pressure + maxvalue: -20000 + where: + - variable: + name: ObsType/windEastward + is_in: 244, 257, 258, 259, 260 + - variable: + name: MetaData/surfaceQualifier + minvalue: 1 + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/WindDirAngleDiff + maxvalue: 50.0 + where: + - variable: + name: ObsType/windEastward + is_in: 247 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/SatWindsLNVDCheck + maxvalue: 3 + where: + - variable: + name: ObsType/windEastward + is_in: 244, 247, 257-260 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 240-260 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 240-260 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 15.0 + - 15.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + cgross: + - 2.5 + - 2.5 + - 2.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.3 + - 2.5 + - 1.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + wndtype: + - 240 + - 241 + - 242 + - 243 + - 244 + - 245 + - 246 + - 247 + - 248 + - 249 + - 250 + - 251 + - 252 + - 253 + - 254 + - 256 + - 257 + - 258 + - 259 + - 260 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + cgross: + - 2.5 + - 2.5 + - 2.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.3 + - 2.5 + - 1.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 15.0 + - 15.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + wndtype: + - 240 + - 241 + - 242 + - 243 + - 244 + - 245 + - 246 + - 247 + - 248 + - 249 + - 250 + - 251 + - 252 + - 253 + - 254 + - 256 + - 257 + - 258 + - 259 + - 260 + variable: windNorthward + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 240-260 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 240-260 + defer to post: true + observation_name: satwind + - obs space: + name: Scatterometer Winds + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/scatwind.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.scatwind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + linear obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + obs post filters: + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 290 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 290 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/ScatWindsAmbiguityCheck + maxvalue: 1e-12 + where: + - variable: + name: ObsType/windEastward + is_in: 290 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/Arithmetic + options: + variables: + - name: ObsValue/windEastward + - name: HofX/windEastward + coefs: + - 1.0 + - -1.0 + minvalue: -5.0 + maxvalue: 5.0 + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/Arithmetic + options: + variables: + - name: ObsValue/windNorthward + - name: HofX/windNorthward + coefs: + - 1.0 + - -1.0 + minvalue: -5.0 + maxvalue: 5.0 + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 290 + cgross: + - 5.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 290 + cgross: + - 5.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windNorthward + action: + name: reject + defer to post: true + observation_name: scatwind + - obs space: + name: Surface Marine Stations + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sfcship.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sfcship.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - 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 + - name: Identity + variables: + - name: specificHumidity + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - name: Identity + variables: + - name: stationPressure + - name: specificHumidity + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + obs post filters: + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + errors: + - 100 + - 100 + - 110 + - 120 + - 120 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 0.7 + where: + - variable: ObsType/stationPressure + is_in: + - 180 + - variable: ObsSubType/stationPressure + is_in: + - 0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: 180,183 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: 180,183 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 1.75 + - 1.95 + - 2.25 + - 1.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/airTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: airTemperature + test variables: + - name: ObsErrorData/airTemperature + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 1.75 + - 1.95 + - 2.25 + - 1.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - virtualTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: GsiAdjustObsError/virtualTemperature + where: + - variable: + name: GsiAdjustObsError/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: virtualTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/virtualTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/virtualTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/virtualTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/virtualTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: PreUseFlag/virtualTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: TempObsErrorData/virtualTemperature + where: + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: virtualTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: virtualTemperature + test variables: + - name: ObsErrorData/virtualTemperature + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: PreUseFlag/specificHumidity + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorSatSpecHumidity + options: + variable: specificHumidity + input_error_name: GsiInputObsError + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: specificHumidity + inflation factor: 8 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: specificHumidity + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/specificHumidity + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: specificHumidity + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/specificHumidity + is_in: + - 3 + defer to post: true + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: + - 284 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: + - 284 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: ObsType/windEastward + is_in: + - 280 + action: + name: assign error + error parameter: 2.5 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: ObsType/windEastward + is_in: + - 282 + action: + name: assign error + error parameter: 2.2 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + minvalue: 1 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + threshold: 6.0 + action: + name: reject + where: + - variable: PreQC/windEastward + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + threshold: 4.2 + action: + name: reject + where: + - variable: PreQC/windEastward + is_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + threshold: 6.0 + action: + name: reject + where: + - variable: PreQC/windNorthward + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + threshold: 4.2 + action: + name: reject + where: + - variable: PreQC/windNorthward + is_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + satwndtype: + - 280 + - 282 + - 284 + error_min: + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + cgross: + - 6.0 + - 6.0 + - 6.0 + wndtype: + - 280 + - 282 + - 284 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + satwndtype: + - 280 + - 282 + - 284 + error_min: + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + cgross: + - 6.0 + - 6.0 + - 6.0 + wndtype: + - 280 + - 282 + - 284 + variable: windNorthward + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + defer to post: true + observation_name: sfcship + - obs space: + name: Surface Land Stations + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sfc.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sfc.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - 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 + - name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: specificHumidity + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: stationPressure + - name: specificHumidity + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + obs post filters: + - filter: Bounds Check + filter variables: + - name: stationPressure + minvalue: 49999 + action: + name: reject + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 181 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 70000 + - 65000 + - 60000 + - 55000 + errors: + - 100 + - 120 + - 120 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 187 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 100 + - 130 + - 160 + - 100000000000.0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: 187 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: 187 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 3.6 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: + - 181 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.52 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: + - 181 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Bounds Check + filter variables: + - name: stationPressure + test variables: + - name: ObsErrorData/stationPressure + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: 281,287 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: ObsType/windNorthward + is_in: 281,287 + action: + name: reject + observation_name: sfc + - obs space: + name: Radiosondes + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sondes.20231009T210000Z.nc4 + missing file action: error + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sondes.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + - name: VertInterp + variables: + - name: airTemperature + - name: virtualTemperature + - name: specificHumidity + - 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 + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + - name: VertInterp + variables: + - name: airTemperature + - name: virtualTemperature + - name: specificHumidity + - name: Identity + variables: + - name: stationPressure + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + obs post filters: + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 60000 + - 55000 + errors: + - 100 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: PreUseFlag/specificHumidity + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + action: + name: assign error + error function: + name: ObsFunction/ObsErrorSatSpecHumidity + options: + variable: specificHumidity + input_error_name: GsiInputObsError + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: specificHumidity + inflation factor: 8.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/specificHumidity + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 1.3 + - 1.1 + - 0.9 + - 0.7 + - 0.6 + - 0.6 + - 0.55 + - 0.5 + - 0.5 + - 0.55 + - 0.65 + - 1.1 + - 1.2 + - 1.2 + - 1.4 + - 1.6 + - 1.85 + - 2.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/airTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 1.3 + - 1.1 + - 0.9 + - 0.7 + - 0.6 + - 0.6 + - 0.55 + - 0.5 + - 0.5 + - 0.55 + - 0.65 + - 1.1 + - 1.2 + - 1.2 + - 1.4 + - 1.6 + - 1.85 + - 2.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - virtualTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: GsiAdjustObsError/virtualTemperature + where: + - variable: + name: GsiAdjustObsError/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: virtualTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/virtualTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/virtualTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/virtualTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/virtualTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: PreUseFlag/virtualTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: TempObsErrorData/virtualTemperature + where: + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: virtualTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + - 3.3 + - 3.5 + - 3.7 + - 3.9 + - 4.1 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 220,221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 220,221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 220 + - 221 + cgross: + - 8.0 + - 8.0 + error_min: + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 220 + - 221 + cgross: + - 8.0 + - 8.0 + error_min: + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + variable: windNorthward + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + test variables: + - name: ObsErrorData/windEastward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windEastward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windEastward + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windNorthward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windNorthward + defer to post: true + - filter: Bounds Check + filter variables: + - name: windNorthward + test variables: + - name: ObsErrorData/windNorthward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 220 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 220 + defer to post: true + observation_name: sondes + - obs space: + name: ssmis_f17 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/ssmis_f17.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.ssmis_f17.20231009T210000Z.nc4 + simulated variables: + - brightnessTemperature + channels: None + io pool: + max pool size: 6 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs options: + Sensor_ID: ssmis_f17 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + obs bias: + input file: cycle_dir/ssmis_f17.20231009T150000Z.satbias.nc4 + output file: cycle_dir/ssmis_f17.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/ssmis_f17.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/ssmis_f17.20231009T150000Z.tlapse.txt + - name: cosineOfLatitudeTimesOrbitNode + - name: sineOfLatitude + - name: emissivityJacobian + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/ssmis_f17.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/ssmis_f17.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 1.0 + - 1.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 2.4 + - 1.27 + - 1.44 + - 3.0 + - 1.34 + - 1.74 + - 3.75 + - 3.0 + - 3.0 + - 2.0 + - 6.4 + - 1.0 + - 1.0 + obs post filters: + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + absolute threshold: 3.5 + remove bias correction: true + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: reject + - filter: RejectList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/geopotential_height_at_surface + minvalue: 2000.0 + min_exclusive: true + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: RejectList + filter variables: + - name: brightnessTemperature + channels: 1-3,8-18 + where: + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/ice_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/surface_snow_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 1-2, 12-16 + reference: ObsValue/brightnessTemperature_2 + value: HofX/brightnessTemperature_2 + minvalue: -1.5 + maxvalue: 1.5 + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + absolute threshold: 3.5 + remove bias correction: true + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + action: + name: reject + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 9 + reference: ObsValue/brightnessTemperature_9 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.485934 + - 0.485934 + - 0.473806 + - -0.473806 + intercept: 271.252327 + maxvalue: 2 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 10 + reference: ObsValue/brightnessTemperature_10 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.413688 + - 0.413688 + - 0.361549 + - -0.361549 + intercept: 272.280341 + maxvalue: 2 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 11 + reference: ObsValue/brightnessTemperature_11 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.400882 + - 0.400882 + - 0.27051 + - -0.27051 + intercept: 278.824902 + maxvalue: 2 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: ssmis_f17 + obserr_demisf: + - 0.01 + - 0.01 + - 0.01 + - 0.01 + - 0.01 + obserr_dtempf: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor1 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_1 + coefs: + - 2.25 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_1 + threshold: DerivedMetaData/errorInflationFactor1 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor2 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_2 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_2 + threshold: DerivedMetaData/errorInflationFactor2 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor3 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_3 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_3 + threshold: DerivedMetaData/errorInflationFactor3 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor4 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_4 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_4 + threshold: DerivedMetaData/errorInflationFactor4 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor5 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_5 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_5 + threshold: DerivedMetaData/errorInflationFactor5 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor6 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_6 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_6 + threshold: DerivedMetaData/errorInflationFactor6 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor7 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_7 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_7 + threshold: DerivedMetaData/errorInflationFactor7 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor8 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_8 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_8 + threshold: DerivedMetaData/errorInflationFactor8 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor9 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_9 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_9 + threshold: DerivedMetaData/errorInflationFactor9 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor10 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_10 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_10 + threshold: DerivedMetaData/errorInflationFactor10 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor11 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_11 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_11 + threshold: DerivedMetaData/errorInflationFactor11 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor12 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_12 + coefs: + - 3.6 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_12 + threshold: DerivedMetaData/errorInflationFactor12 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor13 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_13 + coefs: + - 1.905 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_13 + threshold: DerivedMetaData/errorInflationFactor13 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor14 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_14 + coefs: + - 2.16 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_14 + threshold: DerivedMetaData/errorInflationFactor14 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor15 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_15 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_15 + threshold: DerivedMetaData/errorInflationFactor15 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor16 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_16 + coefs: + - 2.01 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_16 + threshold: DerivedMetaData/errorInflationFactor16 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor17 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_17 + coefs: + - 2.61 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_17 + threshold: DerivedMetaData/errorInflationFactor17 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor18 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_18 + coefs: + - 5.625 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_18 + threshold: DerivedMetaData/errorInflationFactor18 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor19 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_19 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_19 + threshold: DerivedMetaData/errorInflationFactor19 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor20 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_20 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_20 + threshold: DerivedMetaData/errorInflationFactor20 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor21 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_21 + coefs: + - 3.0 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_21 + threshold: DerivedMetaData/errorInflationFactor21 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor22 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_22 + coefs: + - 9.6 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_22 + threshold: DerivedMetaData/errorInflationFactor22 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor23 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_23 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_23 + threshold: DerivedMetaData/errorInflationFactor23 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor24 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_24 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_24 + threshold: DerivedMetaData/errorInflationFactor24 + absolute threshold: 6.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: ssmis_f17 +variational: + minimizer: + algorithm: DRPCG + iterations: + - geometry: + fms initialization: + namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml + field table filename: ./fv3-jedi/fv3files/field_table_gmao + akbk: ./fv3-jedi/fv3files/akbk72.nc4 + layout: + - 4 + - 4 + npx: 91 + npy: 91 + npz: 72 + gradient norm reduction: 0.0001 + ninner: 5 + diagnostics: + departures: ombg + online diagnostics: + write increment: true + increment: + state component: + filetype: auxgrid + gridtype: latlon + datapath: ./ + filename: experiment_id.increment-iter1. + field io names: + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_levels: pe + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + skin_temperature_at_surface: ts + air_pressure_at_surface: ps +final: + diagnostics: + departures: oman + prints: + frequency: PT3H +output: + filetype: cube sphere history + provider: geos + datapath: cycle_dir + filename: experiment_id.analysis.%yyyy%mm%dd_%hh%MM%ssz.nc4 + first: PT0H + frequency: PT1H + field io names: *id019 diff --git a/src/swell/test/jedi_configs/jedi_3dvar_cf_config.yaml b/src/swell/test/jedi_configs/jedi_3dvar_cf_config.yaml new file mode 100644 index 000000000..a319e2227 --- /dev/null +++ b/src/swell/test/jedi_configs/jedi_3dvar_cf_config.yaml @@ -0,0 +1,179 @@ +cost function: + cost type: 3D-Var + jb evaluation: false + time window: + begin: '2023-08-05T15:00:00Z' + end: '2023-08-05T21:00:00Z' + bound to include: begin + geometry: + fms initialization: + namelist filename: cycle_dir/fmsmpp.nml + field table filename: cycle_dir/field_table_gmao + akbk: cycle_dir/akbk72.nc4 + layout: + - 2 + - 2 + npx: 91 + npy: 91 + npz: 72 + analysis variables: + - volume_mixing_ratio_of_no2 + background: + datetime: '2023-08-05T18:00:00Z' + filetype: cube sphere history + provider: geos + max allowable geometry difference: 0.1 + datapath: cycle_dir + filename: bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 + state variables: + - air_pressure_thickness + - air_pressure_at_surface + - volume_mixing_ratio_of_no2 + - volume_mixing_ratio_of_no + - volume_mixing_ratio_of_o3 + - volume_mixing_ratio_of_co + field io names: &id001 + eastward_wind: ua + northward_wind: va + air_temperature: T + air_pressure_at_surface: PS + air_pressure_thickness: DELP + volume_mixing_ratio_of_no2: NO2 + volume_mixing_ratio_of_no: "NO" + volume_mixing_ratio_of_o3: O3 + volume_mixing_ratio_of_co: CO + background error: + covariance model: SABER + saber central block: + saber block name: ID + observations: + get values: + observers: + - obs space: + name: tempo_no2_tropo + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/tempo_no2_tropo.20230805T150000Z.nc4 + obsdataout: + engine: + type: H5File + allow overwrite: true + obsfile: cycle_dir/experiment_id.tempo_no2_tropo.20230805T150000Z.nc4 + simulated variables: + - nitrogendioxideColumn + observed variables: + - nitrogendioxideColumn + monitoring only: false + obs filters: + - filter: RejectList + where: + - variable: + name: MetaData/cloud_fraction + minvalue: 0.15 + - filter: RejectList + where: + - variable: + name: MetaData/solar_zenith_angle + minvalue: 70 + obs operator: + name: ColumnRetrieval + nlayers_retrieval: 72 + tracer variables: + - volume_mixing_ratio_of_no2 + isApriori: false + isAveragingKernel: true + stretchVertices: topbottom + observation_name: tempo_no2_tropo + - obs space: + name: tropomi_s5p_no2_tropo + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/tropomi_s5p_no2_tropo.20230805T150000Z.nc4 + obsdataout: + engine: + type: H5File + allow overwrite: true + obsfile: cycle_dir/experiment_id.tropomi_s5p_no2_tropo.20230805T150000Z.nc4 + simulated variables: + - nitrogendioxideColumn + observed variables: + - nitrogendioxideColumn + obs filters: + - filter: Domain Check + filter variables: + - name: nitrogendioxideColumn + where: + - variable: + name: MetaData/latitude + minvalue: -65 + maxvalue: 65 + obs operator: + name: ColumnRetrieval + nlayers_retrieval: 34 + tracer variables: + - volume_mixing_ratio_of_no2 + isApriori: false + isAveragingKernel: true + stretchVertices: topbottom + observation_name: tropomi_s5p_no2_tropo +variational: + minimizer: + algorithm: DRPCG + iterations: + - geometry: + fms initialization: + namelist filename: cycle_dir/fmsmpp.nml + field table filename: cycle_dir/field_table_gmao + akbk: cycle_dir/akbk72.nc4 + layout: + - 2 + - 2 + npx: 91 + npy: 91 + npz: 72 + gradient norm reduction: 1e-10 + ninner: 5 + diagnostics: + departures: ombg + online diagnostics: + write increment: true + increment: + state component: + filetype: auxgrid + gridtype: latlon + datapath: ./ + filename: experiment_id.increment-iter1. + field io names: *id001 +final: + diagnostics: + departures: oman + prints: + frequency: PT3H + increment: + geometry: + fms initialization: + namelist filename: cycle_dir/fmsmpp.nml + field table filename: cycle_dir/field_table_gmao + akbk: cycle_dir/akbk72.nc4 + layout: + - 2 + - 2 + npx: 91 + npy: 91 + npz: 72 + output: + state component: + states: + - filetype: cube sphere history + datapath: cycle_dir + filename: experiment_id.inc.%yyyy%mm%dd_%hh%MM%ssz.nc4 +output: + filetype: cube sphere history + provider: geos + datapath: cycle_dir + filename: experiment_id.analysis.%yyyy%mm%dd_%hh%MM%ssz.nc4 + first: PT0H + frequency: PT1H + field io names: *id001 diff --git a/src/swell/test/jedi_configs/jedi_3dvar_marine_config.yaml b/src/swell/test/jedi_configs/jedi_3dvar_marine_config.yaml new file mode 100644 index 000000000..3626dc230 --- /dev/null +++ b/src/swell/test/jedi_configs/jedi_3dvar_marine_config.yaml @@ -0,0 +1,694 @@ +cost function: + cost type: 3D-Var + jb evaluation: false + time window: + begin: '2021-07-01T00:00:00Z' + end: '2021-07-02T00:00:00Z' + bound to include: begin + geometry: + mom6_input_nml: soca/input.nml + fields metadata: soca/fields_metadata.yaml + geom_grid_file: INPUT/soca_gridspec.nc + analysis variables: &id001 + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + background: + date: '2021-07-01T12:00:00Z' + read_from_file: 1 + basename: ./ + ocn_filename: MOM6.res.20210701T120000Z.nc + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth + background error: + covariance model: SABER + saber central block: + saber block name: diffusion + active variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid + read: + groups: + - variables: + - sea_water_potential_temperature + - sea_water_salinity + horizontal: + filepath: background_error_model/new_corr_1p0 + vertical: + levels: 50 + filepath: background_error_model/vt.20210701T120000Z + - variables: + - sea_surface_height_above_geoid + horizontal: + filepath: background_error_model/new_corr_1p5 + date: '2021-07-01T12:00:00Z' + saber outer blocks: + - saber block name: SOCABkgErrFilt + ocean_depth_min: 100 + rescale_bkgerr: 1.0 + efold_z: 2500.0 + - saber block name: SOCAParametricOceanStdDev + temperature: + sst: + filepath: cycle_dir/soca/godas_sst_bgerr.nc + variable: sst_bgerr + unbalanced salinity: {} + unbalanced ssh: {} + linear variable change: + input variables: *id001 + output variables: *id001 + linear variable changes: + - linear variable change name: BalanceSOCA + ksshts: + nlayers: 2 + observations: + get values: + observers: + - obs space: + name: adt_cryosat2n + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_cryosat2n.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_cryosat2n.20210701T000000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: adt_cryosat2n + - obs space: + name: adt_jason3 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_jason3.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_jason3.20210701T000000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: adt_jason3 + - obs space: + name: adt_saral + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_saral.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_saral.20210701T000000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: adt_saral + - obs space: + name: adt_sentinel3a + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_sentinel3a.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_sentinel3a.20210701T000000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: adt_sentinel3a + - obs space: + name: adt_sentinel3b + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_sentinel3b.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_sentinel3b.20210701T000000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: adt_sentinel3b + - obs space: + name: insitu_profile_argo + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/insitu_profile_argo.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.insitu_profile_argo.20210701T000000Z.nc4 + simulated variables: + - waterTemperature + - salinity + obs operator: + name: Composite + components: + - name: InsituTemperature + variables: + - name: waterTemperature + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/obsop_name_map.yaml + variables: + - name: salinity + vertical coordinate: sea_water_depth + observation vertical coordinate: depth + interpolation method: linear + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: ObsError/salinity + minvalue: 0.0001 + - filter: Bounds Check + where: + - variable: + name: ObsValue/salinity + minvalue: 1.0 + maxvalue: 40.0 + - filter: Background Check + threshold: 3.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 2.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: insitu_profile_argo + - obs space: + name: sst_ostia + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_ostia.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_ostia.20210701T000000Z.nc4 + simulated variables: + - seaSurfaceTemperature + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -2.0 + maxvalue: 36.0 + - filter: Background Check + threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 0.001 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_area_fraction + maxvalue: 0.9 + observation_name: sst_ostia + - obs space: + name: sss_smos + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sss_smos.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sss_smos.20210701T000000Z.nc4 + simulated variables: + - seaSurfaceSalinity + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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 + absolute threshold: 2.5 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 10.0 + - filter: Domain Check + action: + name: reject + where: + - variable: + name: ObsError/seaSurfaceSalinity + maxvalue: 0.87 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: sss_smos + - obs space: + name: sss_smapv5 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sss_smapv5.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sss_smapv5.20210701T000000Z.nc4 + simulated variables: + - seaSurfaceSalinity + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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 + absolute threshold: 2.5 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 10.0 + - filter: Domain Check + action: + name: reject + where: + - variable: + name: ObsError/seaSurfaceSalinity + maxvalue: 0.87 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: sss_smapv5 + - obs space: + name: sst_abi_g16_l3c + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_abi_g16_l3c.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_abi_g16_l3c.20210701T000000Z.nc4 + simulated variables: + - seaSurfaceTemperature + get values: + time interpolation: linear + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -1.0 + maxvalue: 40.0 + - filter: Background Check + absolute threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 1e-08 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/seaSurfaceTemperature + coefs: + - 1.0 + observation_name: sst_abi_g16_l3c + - obs space: + name: sst_gmi_l3u + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_gmi_l3u.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_gmi_l3u.20210701T000000Z.nc4 + simulated variables: + - seaSurfaceTemperature + get values: + time interpolation: linear + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -1.0 + maxvalue: 40.0 + - filter: Background Check + absolute threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 1e-08 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/seaSurfaceTemperature + coefs: + - 1.0 + observation_name: sst_gmi_l3u + - obs space: + name: sst_viirs_n20_l3u + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_viirs_n20_l3u.20210701T000000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_viirs_n20_l3u.20210701T000000Z.nc4 + simulated variables: + - seaSurfaceTemperature + get values: + time interpolation: linear + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -1.0 + maxvalue: 40.0 + - filter: Background Check + absolute threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 1e-08 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/seaSurfaceTemperature + coefs: + - 1.0 + observation_name: sst_viirs_n20_l3u + - obs space: + name: temp_profile_xbt + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/temp_profile_xbt.20210701T000000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.temp_profile_xbt.20210701T000000Z.nc4 + simulated variables: + - waterTemperature + obs operator: + name: InsituTemperature + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: ObsError/waterTemperature + minvalue: 0.001 + - filter: Bounds Check + minvalue: -2.0 + maxvalue: 36.0 + - filter: Background Check + threshold: 3.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 3.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: temp_profile_xbt +variational: + minimizer: + algorithm: RPCG + iterations: + - geometry: + mom6_input_nml: soca/input.nml + fields metadata: soca/fields_metadata.yaml + geom_grid_file: INPUT/soca_gridspec.nc + gradient norm reduction: 1e-10 + ninner: 5 + diagnostics: + departures: ombg + online diagnostics: + write increment: true + increment: + state component: + datadir: ./ + date: '2021-07-01T00:00:00Z' + exp: experiment_id + type: incr +final: + diagnostics: + departures: oman + prints: + frequency: PT3H +output: + datadir: ./ + exp: experiment_id + type: an diff --git a/src/swell/test/jedi_configs/jedi_3dvar_marine_cycle_config.yaml b/src/swell/test/jedi_configs/jedi_3dvar_marine_cycle_config.yaml new file mode 100644 index 000000000..c2b9d4ba0 --- /dev/null +++ b/src/swell/test/jedi_configs/jedi_3dvar_marine_cycle_config.yaml @@ -0,0 +1,694 @@ +cost function: + cost type: 3D-Var + jb evaluation: false + time window: + begin: '2021-07-01T09:00:00Z' + end: '2021-07-01T15:00:00Z' + bound to include: begin + geometry: + mom6_input_nml: soca/input.nml + fields metadata: soca/fields_metadata.yaml + geom_grid_file: INPUT/soca_gridspec.nc + analysis variables: &id001 + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + background: + date: '2021-07-01T12:00:00Z' + read_from_file: 1 + basename: ./ + ocn_filename: MOM6.res.20210701T120000Z.nc + state variables: + - sea_water_salinity + - sea_water_potential_temperature + - sea_surface_height_above_geoid + - sea_water_cell_thickness + - ocean_mixed_layer_thickness + - sea_water_depth + background error: + covariance model: SABER + saber central block: + saber block name: diffusion + active variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid + read: + groups: + - variables: + - sea_water_potential_temperature + - sea_water_salinity + horizontal: + filepath: background_error_model/new_corr_1p0 + vertical: + levels: 50 + filepath: background_error_model/vt.20210701T120000Z + - variables: + - sea_surface_height_above_geoid + horizontal: + filepath: background_error_model/new_corr_1p5 + date: '2021-07-01T12:00:00Z' + saber outer blocks: + - saber block name: SOCABkgErrFilt + ocean_depth_min: 100 + rescale_bkgerr: 1.0 + efold_z: 2500.0 + - saber block name: SOCAParametricOceanStdDev + temperature: + sst: + filepath: cycle_dir/soca/godas_sst_bgerr.nc + variable: sst_bgerr + unbalanced salinity: {} + unbalanced ssh: {} + linear variable change: + input variables: *id001 + output variables: *id001 + linear variable changes: + - linear variable change name: BalanceSOCA + ksshts: + nlayers: 2 + observations: + get values: + observers: + - obs space: + name: adt_cryosat2n + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_cryosat2n.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_cryosat2n.20210701T090000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: adt_cryosat2n + - obs space: + name: adt_jason3 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_jason3.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_jason3.20210701T090000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: adt_jason3 + - obs space: + name: adt_saral + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_saral.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_saral.20210701T090000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: adt_saral + - obs space: + name: adt_sentinel3a + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_sentinel3a.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_sentinel3a.20210701T090000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: adt_sentinel3a + - obs space: + name: adt_sentinel3b + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/adt_sentinel3b.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.adt_sentinel3b.20210701T090000Z.nc4 + simulated variables: + - absoluteDynamicTopography + obs operator: + name: ADT + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 7.5 + - filter: Background Check + absolute threshold: 0.2 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_floor_depth_below_sea_surface + minvalue: 500 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: adt_sentinel3b + - obs space: + name: insitu_profile_argo + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/insitu_profile_argo.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.insitu_profile_argo.20210701T090000Z.nc4 + simulated variables: + - waterTemperature + - salinity + obs operator: + name: Composite + components: + - name: InsituTemperature + variables: + - name: waterTemperature + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/obsop_name_map.yaml + variables: + - name: salinity + vertical coordinate: sea_water_depth + observation vertical coordinate: depth + interpolation method: linear + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_area_fraction + minvalue: 0.9 + - filter: Domain Check + where: + - variable: + name: ObsError/salinity + minvalue: 0.0001 + - filter: Bounds Check + where: + - variable: + name: ObsValue/salinity + minvalue: 1.0 + maxvalue: 40.0 + - filter: Background Check + threshold: 3.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 2.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: insitu_profile_argo + - obs space: + name: sst_ostia + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_ostia.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_ostia.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceTemperature + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -2.0 + maxvalue: 36.0 + - filter: Background Check + threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 0.001 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_area_fraction + maxvalue: 0.9 + observation_name: sst_ostia + - obs space: + name: sss_smos + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sss_smos.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sss_smos.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceSalinity + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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 + absolute threshold: 2.5 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 10.0 + - filter: Domain Check + action: + name: reject + where: + - variable: + name: ObsError/seaSurfaceSalinity + maxvalue: 0.87 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: sss_smos + - obs space: + name: sss_smapv5 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sss_smapv5.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sss_smapv5.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceSalinity + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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 + absolute threshold: 2.5 + - filter: Domain Check + action: + name: passivate + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 10.0 + - filter: Domain Check + action: + name: reject + where: + - variable: + name: ObsError/seaSurfaceSalinity + maxvalue: 0.87 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: sss_smapv5 + - obs space: + name: sst_abi_g16_l3c + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_abi_g16_l3c.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_abi_g16_l3c.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceTemperature + get values: + time interpolation: linear + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -1.0 + maxvalue: 40.0 + - filter: Background Check + absolute threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 1e-08 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/seaSurfaceTemperature + coefs: + - 1.0 + observation_name: sst_abi_g16_l3c + - obs space: + name: sst_gmi_l3u + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_gmi_l3u.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_gmi_l3u.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceTemperature + get values: + time interpolation: linear + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -1.0 + maxvalue: 40.0 + - filter: Background Check + absolute threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 1e-08 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/seaSurfaceTemperature + coefs: + - 1.0 + observation_name: sst_gmi_l3u + - obs space: + name: sst_viirs_n20_l3u + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sst_viirs_n20_l3u.20210701T090000Z.nc4 + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sst_viirs_n20_l3u.20210701T090000Z.nc4 + simulated variables: + - seaSurfaceTemperature + get values: + time interpolation: linear + obs operator: + name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_marine/observations/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: -1.0 + maxvalue: 40.0 + - filter: Background Check + absolute threshold: 5.0 + - filter: Domain Check + where: + - variable: + name: ObsError/seaSurfaceTemperature + minvalue: 1e-08 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + - filter: Perform Action + action: + name: assign error + error function: + name: ObsFunction/LinearCombination + options: + variables: + - ObsError/seaSurfaceTemperature + coefs: + - 1.0 + observation_name: sst_viirs_n20_l3u + - obs space: + name: temp_profile_xbt + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/temp_profile_xbt.20210701T090000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.temp_profile_xbt.20210701T090000Z.nc4 + simulated variables: + - waterTemperature + obs operator: + name: InsituTemperature + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: + name: ObsError/waterTemperature + minvalue: 0.001 + - filter: Bounds Check + minvalue: -2.0 + maxvalue: 36.0 + - filter: Background Check + threshold: 3.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/sea_surface_temperature + minvalue: 3.0 + - filter: Domain Check + where: + - variable: + name: GeoVaLs/distance_from_coast + minvalue: 100000.0 + observation_name: temp_profile_xbt +variational: + minimizer: + algorithm: RPCG + iterations: + - geometry: + mom6_input_nml: soca/input.nml + fields metadata: soca/fields_metadata.yaml + geom_grid_file: INPUT/soca_gridspec.nc + gradient norm reduction: 1e-10 + ninner: 10 + diagnostics: + departures: ombg + online diagnostics: + write increment: true + increment: + state component: + datadir: ./ + date: '2021-07-01T09:00:00Z' + exp: experiment_id + type: incr +final: + diagnostics: + departures: oman + prints: + frequency: PT3H +output: + datadir: ./ + exp: experiment_id + type: an diff --git a/src/swell/test/jedi_configs/jedi_hofx_cf_config.yaml b/src/swell/test/jedi_configs/jedi_hofx_cf_config.yaml new file mode 100644 index 000000000..59b2f3dd7 --- /dev/null +++ b/src/swell/test/jedi_configs/jedi_hofx_cf_config.yaml @@ -0,0 +1,111 @@ +time window: + begin: '2023-08-05T15:00:00Z' + end: '2023-08-05T21:00:00Z' + bound to include: begin +geometry: + fms initialization: + namelist filename: cycle_dir/fmsmpp.nml + field table filename: cycle_dir/field_table_gmao + akbk: cycle_dir/akbk72.nc4 + layout: + - 2 + - 2 + npx: 91 + npy: 91 + npz: 72 +state: + datetime: '2023-08-05T18:00:00Z' + filetype: cube sphere history + provider: geos + max allowable geometry difference: 0.1 + datapath: cycle_dir + filename: bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 + state variables: + - air_pressure_thickness + - air_pressure_at_surface + - volume_mixing_ratio_of_no2 + - volume_mixing_ratio_of_no + - volume_mixing_ratio_of_o3 + - volume_mixing_ratio_of_co + field io names: + eastward_wind: ua + northward_wind: va + air_temperature: T + air_pressure_at_surface: PS + air_pressure_thickness: DELP + volume_mixing_ratio_of_no2: NO2 + volume_mixing_ratio_of_no: "NO" + volume_mixing_ratio_of_o3: O3 + volume_mixing_ratio_of_co: CO +observations: + get values: + observers: + - obs space: + name: tempo_no2_tropo + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/tempo_no2_tropo.20230805T150000Z.nc4 + obsdataout: + engine: + type: H5File + allow overwrite: true + obsfile: cycle_dir/experiment_id.tempo_no2_tropo.20230805T150000Z.nc4 + simulated variables: + - nitrogendioxideColumn + observed variables: + - nitrogendioxideColumn + monitoring only: false + obs filters: + - filter: RejectList + where: + - variable: + name: MetaData/cloud_fraction + minvalue: 0.15 + - filter: RejectList + where: + - variable: + name: MetaData/solar_zenith_angle + minvalue: 70 + obs operator: + name: ColumnRetrieval + nlayers_retrieval: 72 + tracer variables: + - volume_mixing_ratio_of_no2 + isApriori: false + isAveragingKernel: true + stretchVertices: topbottom + observation_name: tempo_no2_tropo + - obs space: + name: tropomi_s5p_no2_tropo + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/tropomi_s5p_no2_tropo.20230805T150000Z.nc4 + obsdataout: + engine: + type: H5File + allow overwrite: true + obsfile: cycle_dir/experiment_id.tropomi_s5p_no2_tropo.20230805T150000Z.nc4 + simulated variables: + - nitrogendioxideColumn + observed variables: + - nitrogendioxideColumn + obs filters: + - filter: Domain Check + filter variables: + - name: nitrogendioxideColumn + where: + - variable: + name: MetaData/latitude + minvalue: -65 + maxvalue: 65 + obs operator: + name: ColumnRetrieval + nlayers_retrieval: 34 + tracer variables: + - volume_mixing_ratio_of_no2 + isApriori: false + isAveragingKernel: true + stretchVertices: topbottom + observation_name: tropomi_s5p_no2_tropo diff --git a/src/swell/test/jedi_configs/jedi_hofx_config.yaml b/src/swell/test/jedi_configs/jedi_hofx_config.yaml new file mode 100644 index 000000000..be7a4c0f9 --- /dev/null +++ b/src/swell/test/jedi_configs/jedi_hofx_config.yaml @@ -0,0 +1,19233 @@ +time window: + begin: '2023-10-09T21:00:00Z' + end: '2023-10-10T03:00:00Z' + bound to include: begin +geometry: + fms initialization: + namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml + field table filename: ./fv3-jedi/fv3files/field_table_gmao + akbk: ./fv3-jedi/fv3files/akbk72.nc4 + layout: + - 2 + - 2 + npx: '91' + npy: '91' + npz: '72' +initial condition: + datetime: '2023-10-09T21:00:00Z' + filetype: cube sphere history + provider: geos + compute edge pressure from surface pressure: true + max allowable geometry difference: 0.001 + datapath: cycle_dir + filenames: + - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 + - fv3-jedi/bkg/geos.crtmsrf.91.nc4 + state variables: + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_at_surface + - air_pressure_levels + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - initial_mass_fraction_of_large_scale_cloud_condensate + - initial_mass_fraction_of_convective_cloud_condensate + - convective_cloud_area_fraction + - fraction_of_ocean + - fraction_of_land + - isotropic_variance_of_filtered_topography + - surface_velocity_scale + - surface_buoyancy_scale + - planetary_boundary_layer_height + - surface_exchange_coefficient_for_momentum + - surface_exchange_coefficient_for_heat + - surface_exchange_coefficient_for_moisture + - KCBL_before_moist + - surface_temp_before_moist + - lower_index_where_Kh_greater_than_2 + - upper_index_where_Kh_greater_than_2 + - fraction_of_lake + - fraction_of_ice + - vtype + - stype + - vfrac + - sheleg + - skin_temperature_at_surface + - soilt + - soilm + - eastward_wind_at_surface + - northward_wind_at_surface + field io names: &id017 + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_at_surface: ps + air_pressure_levels: pe + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + initial_mass_fraction_of_large_scale_cloud_condensate: qls + initial_mass_fraction_of_convective_cloud_condensate: qcn + convective_cloud_area_fraction: cfcn + fraction_of_ocean: frocean + fraction_of_land: frland + isotropic_variance_of_filtered_topography: varflt + surface_velocity_scale: ustar + surface_buoyancy_scale: bstar + planetary_boundary_layer_height: zpbl + surface_exchange_coefficient_for_momentum: cm + surface_exchange_coefficient_for_heat: ct + surface_exchange_coefficient_for_moisture: cq + KCBL_before_moist: kcbl + surface_temp_before_moist: tsm + lower_index_where_Kh_greater_than_2: khl + upper_index_where_Kh_greater_than_2: khu + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts + eastward_wind_at_surface: u10m + northward_wind_at_surface: v10m +observations: + get values: + variable change: + variable change name: Model2GeoVaLs + hydrometeor effective radii method: gsi + tropopause pressure method: gsi + observers: + - obs space: + name: Aircraft Temperature + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/aircraft_temperature.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.aircraft_temperature.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - airTemperature + obs bias: + input file: cycle_dir/aircraft_temperature.20231009T150000Z.acftbias + output file: cycle_dir/aircraft_temperature.20231009T210000Z.acftbias + bc by record: true + variational bc: + predictors: + - name: constant + - name: obsMetadataPredictor + variable: instantaneousAltitudeRate + - name: obsMetadataPredictor + variable: instantaneousAltitudeRate + order: 2 + covariance: + minimal required obs number: 3 + variance range: + - 1e-06 + - 1.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/aircraft_temperature.20231009T150000Z.acftbias_cov + inflation: + ratio: 1.005 + ratio for small dataset: 2.0 + obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - airTemperature + linear obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - airTemperature + obs filters: + - filter: Variable Assignment + where: + - variable: + name: ObsType/airTemperature + is_in: 130 + assignments: + - name: MetaData/stationIdentification + value: 'KX130 ' + - filter: Variable Assignment + where: + - variable: + name: MetaData/instantaneousAltitudeRate + minvalue: 50.0 + assignments: + - name: MetaData/instantaneousAltitudeRate + value: 0.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 2.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 2.5 + - 2.3 + - 2.1 + - 1.9 + - 1.7 + where: + - variable: + name: ObsType/airTemperature + is_in: 130 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 1.4706 + - 1.3529 + - 1.2353 + - 1.1176 + - 1.0 + where: + - variable: + name: ObsType/airTemperature + is_in: 131,133 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + errors: + - 1.5 + - 1.3 + - 1.1 + - 0.9 + - 0.8 + - 0.8 + - 0.75 + - 0.7 + - 0.7 + - 0.75 + - 0.85 + - 1.3 + - 1.5 + - 1.5 + where: + - variable: + name: ObsType/airTemperature + is_in: 132 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 60000 + - 40000 + errors: + - 1.5 + - 1.35 + - 1.25 + - 1.1 + - 1.0 + - 1.3 + - 1.7 + where: + - variable: + name: ObsType/airTemperature + is_in: 134 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 1.4706 + - 1.3529 + - 1.2353 + - 1.1176 + - 1000000000.0 + where: + - variable: + name: ObsType/airTemperature + is_in: 135 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreQC/airTemperature + is_in: 4-15 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: + name: ObsType/airTemperature + is_in: 134, 135 + action: + name: passivate + defer to post: true + - filter: Perform Action + action: + name: inflate error + inflation factor: 10.0 + filter variables: + - name: airTemperature + where: + - variable: + name: MetaData/pressure + maxvalue: 110000 + minvalue: 50000 + - variable: + name: ObsType/airTemperature + is_in: 130 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + - filter: GOMsaver + filename: cycle_dir/aircraft_temperature-geovals.20231009T210000Z.nc4 + observation_name: aircraft_temperature + get values: + time interpolation: linear + - obs space: + name: Aircraft Wind + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/aircraft_wind.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.aircraft_wind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + - filter: GOMsaver + filename: cycle_dir/aircraft_wind-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: PreQC/windEastward + is_in: 4-15 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: + name: ObsType/windEastward + is_in: 234, 235 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 80000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 1.4 + - 1.5 + - 1.6 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.3 + - 2.6 + - 2.8 + - 3.0 + - 3.2 + - 2.7 + - 2.4 + - 2.1 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.6 + where: + - variable: + name: ObsType/windEastward + is_in: 230 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.0 + where: + - variable: + name: ObsType/windEastward + is_in: 231 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 2.5 + where: + - variable: + name: ObsType/windEastward + is_in: 233 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.0 + where: + - variable: + name: ObsType/windEastward + is_in: 234, 235 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + errors: + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + where: + - variable: + name: ObsType/windEastward + is_in: 232 + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - windEastward + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - windNorthward + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + cgross: + - 6.0 + - 6.5 + - 7.0 + - 7.5 + - 7.5 + - 7.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + cgross: + - 6.0 + - 6.5 + - 7.0 + - 7.5 + - 7.5 + - 7.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + variable: windNorthward + action: + name: reject + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + defer to post: true + observation_name: aircraft_wind + get values: + time interpolation: linear + - obs space: + name: AIRS AQUA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/airs_aqua.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.airs_aqua.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: airs_aqua + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/airs_aqua.20231009T150000Z.satbias.nc4 + output file: cycle_dir/airs_aqua.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/airs_aqua.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/airs_aqua.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/airs_aqua.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/airs_aqua.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/airs_aqua_119_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.2 + - 1.2 + - 1.3136 + - 1.4 + - 1.4 + - 1.2639 + - 1.4 + - 1.4 + - 1.1802 + - 1.2517 + - 1.1719 + - 1.2 + - 1.1728 + - 1.1442 + - 1.2 + - 1.2 + - 1.15 + - 1.0801 + - 1.15 + - 1.15 + - 1.0396 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 1.15 + - 0.9946 + - 1.05 + - 0.9217 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 0.9591 + - 0.9465 + - 0.9593 + - 0.9337 + - 1.0 + - 0.9861 + - 1.0017 + - 1.1 + - 1.0083 + - 1.0024 + - 1.1 + - 0.9967 + - 1.0094 + - 0.9412 + - 1.1 + - 0.998 + - 0.9807 + - 0.857 + - 0.8727 + - 0.8114 + - 0.879 + - 0.871 + - 0.8853 + - 0.7937 + - 0.8243 + - 0.8 + - 0.8016 + - 0.8 + - 0.7781 + - 0.7475 + - 0.85 + - 0.7405 + - 0.715 + - 0.7416 + - 0.7465 + - 0.9 + - 0.7198 + - 0.7157 + - 0.9 + - 0.727 + - 0.7246 + - 0.704 + - 0.7039 + - 0.66 + - 0.6694 + - 0.6669 + - 0.7031 + - 0.6977 + - 0.6488 + - 0.6653 + - 0.9 + - 0.6265 + - 0.622 + - 0.6308 + - 0.6297 + - 0.621 + - 0.6225 + - 0.6229 + - 0.6234 + - 0.6238 + - 0.6332 + - 0.6425 + - 0.7028 + - 0.6152 + - 0.9 + - 0.7257 + - 0.7288 + - 1.15 + - 0.9 + - 0.6673 + - 0.7473 + - 0.6767 + - 0.7056 + - 0.9 + - 0.95 + - 0.7271 + - 0.95 + - 0.725 + - 0.7601 + - 0.6973 + - 0.7573 + - 0.6011 + - 0.606 + - 0.9 + - 0.6635 + - 0.586 + - 0.5766 + - 0.75 + - 2.0386 + - 0.75 + - 1.0 + - 0.9 + - 0.9 + - 0.9 + - 0.9 + - 0.9 + - 0.9 + - 1.0 + - 1.3386 + - 1.0 + - 1.0 + - 0.85 + - 0.95 + - 1.7386 + - 0.95 + - 0.9 + - 0.8 + - 1.7386 + - 0.75 + - 0.75 + - 0.75 + - 0.8 + - 0.75 + - 0.8 + - 0.9 + - 0.75 + - 0.8 + - 0.8 + - 1.1 + - 0.75 + - 1.1 + - 0.75 + - 0.5991 + - 0.5348 + - 0.6541 + - 0.7421 + - 0.6192 + - 0.8186 + - 1.0616 + - 0.8848 + - 1.024 + - 2.5 + - 1.0249 + - 1.0795 + - 1.2199 + - 2.5 + - 2.5 + - 1.3103 + - 1.3603 + - 2.5 + - 2.5 + - 2.5 + - 1.323 + - 2.5 + - 2.5 + - 2.5 + - 1.4406 + - 2.5 + - 2.5 + - 1.3965 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.6997 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.6264 + - 2.5 + - 2.5 + - 2.5 + - 1.3436 + - 2.5 + - 2.5 + - 0.5727 + - 0.6838 + - 0.5994 + - 0.5178 + - 0.5145 + - 0.547 + - 0.5572 + - 0.5002 + - 0.4974 + - 0.55 + - 0.4953 + - 0.4883 + - 0.4948 + - 0.5446 + - 0.5777 + - 1.5 + - 1.5 + - 3.0 + - 3.0 + - 2.5 + - 2.5 + - 2.0 + - 1.0 + - 1.5 + - 1.5 + - 1.8 + - 0.6 + - 0.7 + - 0.65 + - 0.675 + - 0.7 + - 0.75 + - 0.775 + - 0.8 + - 0.8 + - 0.85 + - 0.85 + - 0.85 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + - 0.725 + - 0.75 + - 0.775 + - 0.8 + - 0.825 + - 0.8 + - 0.8 + - 0.8 + - 0.75 + - 0.8 + - 0.8 + - 0.8 + - 0.8 + - 0.8 + - 0.85 + - 0.8 + - 0.8 + - 2.5 + - 0.75 + - 0.75 + - 0.75 + - 0.75 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + - filter: GOMsaver + filename: cycle_dir/airs_aqua-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 2122, 2123, 2128, 2134, 2141, 2145, 2149, 2153, 2164, 2189, 2197, + 2209, 2226, 2234, 2280, 2318, 2321, 2325, 2328, 2333, 2339, 2348, 2353, + 2355, 2357, 2363, 2370, 2371, 2377 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: airs_aqua + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: &id001 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 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.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: airs_aqua + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 3.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 1.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 1.7 + - 3.0 + - 1.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 1.25 + - 3.5 + - 3.5 + - 3.0 + - 3.0 + - 1.5 + - 3.0 + - 3.0 + - 3.0 + - 1.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.5 + - 3.0 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 4.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.5 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id001 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: airs_aqua + get values: + time interpolation: linear + - obs space: + name: AMSR2 GCOM-W1 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsr2_gcom-w1.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsr2_gcom-w1.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: amsr2_gcom-w1 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsr2_gcom-w1.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsr2_gcom-w1.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsr2_gcom-w1.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsr2_gcom-w1.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsr2_gcom-w1.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsr2_gcom-w1.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 340.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.999 + - variable: + name: GeoVaLs/skin_temperature_at_surface_where_sea + minvalue: 275 + - variable: + name: GeoVaLs/wind_speed_at_surface + maxvalue: 12 + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/TotalColumnVaporGuess + minvalue: 10.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SunGlintAngle + minvalue: 20.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: &id002 + - 0.48 + - 3.0737 + - 0.7433 + - 3.643 + - 3.5304 + - 4.427 + - 5.1448 + - 5.0785 + - 4.9763 + - 9.3215 + - 2.5789 + - 5.5274 + - 0.6641 + - 1.3674 + clwret_types: + - ObsValue + maxvalue: 1.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id002 + clwret_types: + - HofX + maxvalue: 1.0 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: None + value: + name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id002 + clwret_types: + - ObsValue + reference: + name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id002 + clwret_types: + - HofX + minvalue: -0.5 + maxvalue: 0.5 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id002 + clwret_types: + - ObsValue + - HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.1 + - 0.1 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 0.6 + - 0.6 + - 0.6 + - 0.6 + - 0.6 + - 0.5 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + err0: + - 0.8 + - 0.9 + - 0.8 + - 0.9 + - 1.0 + - 1.1 + - 2.0 + - 3.5 + - 3.0 + - 4.8 + - 5.0 + - 6.0 + - 4.5 + - 6.3 + err1: + - 5.0 + - 5.0 + - 5.0 + - 5.0 + - 5.0 + - 18.5 + - 20.0 + - 40.0 + - 20.0 + - 25.0 + - 30.0 + - 30.0 + - 30.0 + - 20.0 + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: None + threshold: 2.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 7-10 + absolute threshold: 30 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 11-14 + absolute threshold: 50 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: amsr2_gcom-w1 + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: GOMsaver + filename: cycle_dir/amsr2_gcom-w1-geovals.20231009T210000Z.nc4 + observation_name: amsr2_gcom-w1 + get values: + time interpolation: linear + - obs space: + name: AMSU-A AQUA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_aqua.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_aqua.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_aqua + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_aqua.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_aqua.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_aqua.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_aqua.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_aqua.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_aqua.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id003 + - 2.5 + - 2.0 + - 2.0 + - 0.5 + - 0.4 + - 0.4 + - 0.5 + - 0.3 + - 0.35 + - 0.35 + - 0.45 + - 1.0 + - 1.5 + - 3.75 + - 6.3 + - filter: GOMsaver + filename: cycle_dir/amsua_aqua-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_aqua + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_aqua + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_aqua + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_aqua + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_aqua + error parameter vector: *id003 + obserr_bound_max: + - 4.5 + - 4.5 + - 4.5 + - 3.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 3.0 + - 3.5 + - 4.5 + - 4.5 + - 4.5 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_aqua + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_aqua + get values: + time interpolation: linear + - obs space: + name: AMSU-A METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_metop-b.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id004 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + - filter: GOMsaver + filename: cycle_dir/amsua_metop-b-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_metop-b + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_metop-b + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_metop-b + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_metop-b + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_metop-b + error parameter vector: *id004 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_metop-b + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_metop-b + get values: + time interpolation: linear + - obs space: + name: AMSU-A METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_metop-c.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_metop-c.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_metop-c.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_metop-c.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_metop-c.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_metop-c.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id005 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + - filter: GOMsaver + filename: cycle_dir/amsua_metop-c-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_metop-c + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_metop-c + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_metop-c + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_metop-c + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_metop-c + error parameter vector: *id005 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_metop-c + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_metop-c + get values: + time interpolation: linear + - obs space: + name: AMSU-A NOAA-15 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n15.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n15.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n15 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n15.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_n15.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n15.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n15.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n15.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n15.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id006 + - 3.0 + - 2.0 + - 2.0 + - 0.6 + - 0.3 + - 0.23 + - 0.25 + - 0.275 + - 0.34 + - 0.4 + - 0.6 + - 1.0 + - 1.5 + - 5.0 + - 3.0 + - filter: GOMsaver + filename: cycle_dir/amsua_n15-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n15 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n15 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n15 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n15 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n15 + error parameter vector: *id006 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n15 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n15 + get values: + time interpolation: linear + - obs space: + name: AMSU-A NOAA-18 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n18.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n18.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n18 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n18.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_n18.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n18.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n18.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n18.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n18.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id007 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + - filter: GOMsaver + filename: cycle_dir/amsua_n18-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n18 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n18 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n18 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n18 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n18 + error parameter vector: *id007 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n18 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n18 + get values: + time interpolation: linear + - obs space: + name: AMSU-A NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n19.20231009T150000Z.satbias.nc4 + output file: cycle_dir/amsua_n19.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n19.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n19.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n19.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n19.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id008 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + - filter: GOMsaver + filename: cycle_dir/amsua_n19-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n19 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n19 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n19 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n19 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n19 + error parameter vector: *id008 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n19 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n19 + get values: + time interpolation: linear + - obs space: + name: ATMS NOAA-20 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/atms_n20.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.atms_n20.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: atms_n20 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/atms_n20.20231009T150000Z.satbias.nc4 + output file: cycle_dir/atms_n20.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: ATMS + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/atms_n20.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/atms_n20.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/atms_n20.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/atms_n20.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id009 + - 5.0 + - 5.0 + - 5.0 + - 3.0 + - 0.55 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 5.0 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - filter: GOMsaver + filename: cycle_dir/atms_n20-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-7,16-22 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-7,16 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: atms_n20 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: atms_n20 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + use_biasterm: true + test_biasterm: ObsBiasTerm + sensor: atms_n20 + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: atms_n20 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: atms_n20 + error parameter vector: *id009 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: atms_n20 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: atms_n20 + get values: + time interpolation: linear + - obs space: + name: ATMS NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/atms_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.atms_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: atms_npp + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/atms_npp.20231009T150000Z.satbias.nc4 + output file: cycle_dir/atms_npp.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: ATMS + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/atms_npp.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/atms_npp.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/atms_npp.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/atms_npp.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id010 + - 5.0 + - 5.0 + - 5.0 + - 3.0 + - 0.55 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 5.0 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - filter: GOMsaver + filename: cycle_dir/atms_npp-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-7,16-22 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-7,16 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: atms_npp + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: atms_npp + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + use_biasterm: true + test_biasterm: ObsBiasTerm + sensor: atms_npp + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: atms_npp + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: atms_npp + error parameter vector: *id010 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: atms_npp + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: atms_npp + get values: + time interpolation: linear + - obs space: + name: AVHRR-3 METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/avhrr3_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_metop-b.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + - filter: GOMsaver + filename: cycle_dir/avhrr3_metop-b-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_metop-b + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_metop-b + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_metop-b + get values: + time interpolation: linear + - obs space: + name: AVHRR-3 NOAA-18 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_n18.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_n18.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_n18 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_n18.20231009T150000Z.satbias.nc4 + output file: cycle_dir/avhrr3_n18.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_n18.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_n18.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_n18.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_n18.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + - filter: GOMsaver + filename: cycle_dir/avhrr3_n18-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_n18 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_n18 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_n18 + get values: + time interpolation: linear + - obs space: + name: AVHRR-3 NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_n19.20231009T150000Z.satbias.nc4 + output file: cycle_dir/avhrr3_n19.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_n19.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_n19.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_n19.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_n19.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + - filter: GOMsaver + filename: cycle_dir/avhrr3_n19-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_n19 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_n19 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_n19 + get values: + time interpolation: linear + - obs space: + name: CRIS-FSR NOAA-20 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/cris-fsr_n20.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.cris-fsr_n20.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: cris-fsr_n20 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/cris-fsr_n20.20231009T150000Z.satbias.nc4 + output file: cycle_dir/cris-fsr_n20.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/cris-fsr_n20.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/cris-fsr_n20.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/cris-fsr_n20.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/cris-fsr_n20.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/cris-fsr_108_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 0.823 + - 0.76 + - 0.736 + - 0.743 + - 0.856 + - 1.079 + - 0.888 + - 0.778 + - 0.671 + - 0.65 + - 0.643 + - 0.629 + - 0.629 + - 0.618 + - 0.638 + - 0.619 + - 0.61 + - 0.627 + - 0.601 + - 0.617 + - 0.608 + - 0.498 + - 0.5112 + - 0.4922 + - 0.4959 + - 0.4954 + - 0.4836 + - 0.514 + - 0.5005 + - 0.4917 + - 0.4881 + - 0.4656 + - 0.4793 + - 0.4638 + - 0.4557 + - 0.4666 + - 0.4468 + - 0.4534 + - 0.4471 + - 0.4448 + - 0.4469 + - 0.536 + - 0.4426 + - 0.4388 + - 0.534 + - 0.4368 + - 0.438 + - 0.531 + - 0.4379 + - 0.535 + - 0.4404 + - 0.4405 + - 0.4409 + - 0.4472 + - 0.4555 + - 0.4433 + - 0.4437 + - 0.4454 + - 0.4448 + - 0.4465 + - 0.4499 + - 0.4488 + - 0.54 + - 0.4534 + - 0.4472 + - 0.455 + - 0.4562 + - 0.452 + - 0.4639 + - 0.538 + - 0.4573 + - 0.4604 + - 0.4533 + - 0.4692 + - 0.566 + - 0.4457 + - 0.4457 + - 0.5154 + - 0.5084 + - 0.528 + - 0.552 + - 0.56 + - 0.567 + - 0.546 + - 0.495 + - 0.4809 + - 0.4732 + - 0.4861 + - 0.4632 + - 0.529 + - 0.4748 + - 0.5007 + - 0.5711 + - 0.595 + - 0.5469 + - 0.626 + - 0.541 + - 0.543 + - 0.533 + - 0.541 + - 0.4695 + - 0.53 + - 0.539 + - 0.529 + - 0.542 + - 0.4681 + - 0.536 + - 0.542 + - 0.535 + - 0.563 + - 0.4805 + - 0.647 + - 0.609 + - 0.553 + - 0.583 + - 0.576 + - 0.6294 + - 0.5885 + - 0.556 + - 0.578 + - 0.566 + - 0.601 + - 0.5627 + - 0.5675 + - 0.592 + - 0.5166 + - 0.589 + - 0.5291 + - 0.5892 + - 0.5976 + - 0.5834 + - 0.6512 + - 0.6748 + - 0.6615 + - 0.6003 + - 0.5669 + - 0.5587 + - 0.5507 + - 0.5871 + - 0.616 + - 0.637 + - 0.633 + - 0.639 + - 0.655 + - 0.641 + - 0.664 + - 0.648 + - 0.656 + - 0.663 + - 0.652 + - 0.681 + - 0.662 + - 0.673 + - 0.672 + - 0.68 + - 0.735 + - 0.732 + - 0.715 + - 0.674 + - 0.687 + - 0.702 + - 0.705 + - 0.715 + - 0.725 + - 0.707 + - 0.74 + - 0.74 + - 0.874 + - 0.737 + - 0.819 + - 0.76 + - 0.869 + - 0.9 + - 0.698 + - 0.823 + - 0.676 + - 0.682 + - 0.766 + - 0.68 + - 0.685 + - 0.694 + - 0.695 + - 0.689 + - 0.727 + - 0.695 + - 0.688 + - 0.677 + - 0.736 + - 0.651 + - 0.661 + - 0.6199 + - 0.6223 + - 0.6036 + - 0.6003 + - 0.5991 + - 0.598 + - 0.591 + - 0.5764 + - 0.577 + - 0.5593 + - 0.597 + - 0.576 + - 0.574 + - 0.578 + - 0.579 + - 0.575 + - 0.576 + - 0.568 + - 0.575 + - 0.569 + - 0.559 + - 0.568 + - 0.5401 + - 0.55 + - 0.5575 + - 0.578 + - 0.5635 + - 0.5786 + - 0.5807 + - 0.581 + - 0.573 + - 0.569 + - 0.567 + - 0.552 + - 0.55 + - 0.558 + - 0.552 + - 0.562 + - 0.574 + - 0.575 + - 0.629 + - 0.682 + - 0.756 + - 1.05 + - 1.122 + - 1.1402 + - 1.154 + - 1.131 + - 1.123 + - 1.159 + - 1.106 + - 1.116 + - 1.069 + - 1.077 + - 1.155 + - 1.162 + - 1.1402 + - 0.644 + - 1.208 + - 1.1402 + - 1.295 + - 1.258 + - 1.1402 + - 0.606 + - 0.603 + - 0.563 + - 0.592 + - 0.607 + - 0.611 + - 0.612 + - 0.618 + - 0.626 + - 0.629 + - 0.583 + - 0.8646 + - 0.626 + - 0.639 + - 0.559 + - 0.827 + - 0.612 + - 0.576 + - 0.58 + - 0.575 + - 0.688 + - 0.697 + - 0.743 + - 0.681 + - 0.832 + - 0.719 + - 0.785 + - 0.878 + - 0.9402 + - 1.0054 + - 1.073 + - 1.129 + - 1.035 + - 1.027 + - 0.9703 + - 1.195 + - 0.9153 + - 1.266 + - 1.153 + - 1.348 + - 1.18 + - 1.269 + - 1.311 + - 0.9914 + - 1.359 + - 1.166 + - 1.139 + - 1.2817 + - 1.398 + - 1.542 + - 1.229 + - 1.377 + - 1.28 + - 1.245 + - 1.1188 + - 1.193 + - 1.293 + - 1.275 + - 1.331 + - 1.34 + - 1.099 + - 1.048 + - 1.124 + - 1.225 + - 1.183 + - 1.196 + - 1.4 + - 1.333 + - 1.417 + - 1.326 + - 1.305 + - 1.0638 + - 1.268 + - 1.217 + - 1.289 + - 1.395 + - 1.232 + - 1.435 + - 1.298 + - 1.328 + - 1.262 + - 1.199 + - 1.391 + - 1.233 + - 1.329 + - 1.664 + - 1.509 + - 1.349 + - 1.481 + - 1.595 + - 1.485 + - 1.532 + - 1.504 + - 1.584 + - 1.609 + - 1.516 + - 1.489 + - 1.502 + - 1.544 + - 1.611 + - 1.539 + - 1.296 + - 1.288 + - 1.241 + - 1.32 + - 1.313 + - 1.301 + - 1.843 + - 1.747 + - 1.711 + - 1.771 + - 1.937 + - 1.575 + - 1.573 + - 1.5 + - 1.459 + - 1.402 + - 1.363 + - 2.201 + - 2.127 + - 2.177 + - 2.157 + - 2.192 + - 2.146 + - 2.151 + - 2.071 + - 1.986 + - 1.845 + - 1.687 + - 1.505 + - 1.373 + - 1.229 + - 1.113 + - 1.004 + - 0.936 + - 0.895 + - 0.871 + - 0.841 + - 0.821 + - 0.805 + - 0.8 + - 0.792 + - 0.797 + - 0.791 + - 0.783 + - 0.777 + - 0.785 + - 0.787 + - 0.789 + - 0.793 + - 0.794 + - 0.745 + - 0.75 + - 0.748 + - 0.749 + - 0.744 + - 0.733 + - 0.733 + - 0.741 + - 0.746 + - 0.746 + - 0.738 + - 0.743 + - 0.745 + - 0.749 + - 0.75 + - 0.75 + - 0.884 + - 0.906 + - 0.917 + - 0.924 + - 0.922 + - 0.928 + - 0.921 + - 0.938 + - 0.931 + - 0.943 + - 0.946 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + - filter: GOMsaver + filename: cycle_dir/cris-fsr_n20-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: cris-fsr_n20 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: &id011 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 31 + - 31 + - 30 + - 31 + - 30 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: cris-fsr_n20 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + 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 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id011 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: cris-fsr_n20 + get values: + time interpolation: linear + - obs space: + name: CRIS-FSR NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/cris-fsr_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.cris-fsr_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: cris-fsr_npp + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/cris-fsr_npp.20231009T150000Z.satbias.nc4 + output file: cycle_dir/cris-fsr_npp.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/cris-fsr_npp.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/cris-fsr_npp.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/cris-fsr_npp.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/cris-fsr_npp.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/cris-fsr_108_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 0.823 + - 0.76 + - 0.736 + - 0.743 + - 0.856 + - 1.079 + - 0.888 + - 0.778 + - 0.671 + - 0.65 + - 0.643 + - 0.629 + - 0.629 + - 0.618 + - 0.638 + - 0.619 + - 0.61 + - 0.627 + - 0.601 + - 0.617 + - 0.608 + - 0.498 + - 0.5112 + - 0.4922 + - 0.4959 + - 0.4954 + - 0.4836 + - 0.514 + - 0.5005 + - 0.4917 + - 0.4881 + - 0.4656 + - 0.4793 + - 0.4638 + - 0.4557 + - 0.4666 + - 0.4468 + - 0.4534 + - 0.4471 + - 0.4448 + - 0.4469 + - 0.536 + - 0.4426 + - 0.4388 + - 0.534 + - 0.4368 + - 0.438 + - 0.531 + - 0.4379 + - 0.535 + - 0.4404 + - 0.4405 + - 0.4409 + - 0.4472 + - 0.4555 + - 0.4433 + - 0.4437 + - 0.4454 + - 0.4448 + - 0.4465 + - 0.4499 + - 0.4488 + - 0.54 + - 0.4534 + - 0.4472 + - 0.455 + - 0.4562 + - 0.452 + - 0.4639 + - 0.538 + - 0.4573 + - 0.4604 + - 0.4533 + - 0.4692 + - 0.566 + - 0.4457 + - 0.4457 + - 0.5154 + - 0.5084 + - 0.528 + - 0.552 + - 0.56 + - 0.567 + - 0.546 + - 0.495 + - 0.4809 + - 0.4732 + - 0.4861 + - 0.4632 + - 0.529 + - 0.4748 + - 0.5007 + - 0.5711 + - 0.595 + - 0.5469 + - 0.626 + - 0.541 + - 0.543 + - 0.533 + - 0.541 + - 0.4695 + - 0.53 + - 0.539 + - 0.529 + - 0.542 + - 0.4681 + - 0.536 + - 0.542 + - 0.535 + - 0.563 + - 0.4805 + - 0.647 + - 0.609 + - 0.553 + - 0.583 + - 0.576 + - 0.6294 + - 0.5885 + - 0.556 + - 0.578 + - 0.566 + - 0.601 + - 0.5627 + - 0.5675 + - 0.592 + - 0.5166 + - 0.589 + - 0.5291 + - 0.5892 + - 0.5976 + - 0.5834 + - 0.6512 + - 0.6748 + - 0.6615 + - 0.6003 + - 0.5669 + - 0.5587 + - 0.5507 + - 0.5871 + - 0.616 + - 0.637 + - 0.633 + - 0.639 + - 0.655 + - 0.641 + - 0.664 + - 0.648 + - 0.656 + - 0.663 + - 0.652 + - 0.681 + - 0.662 + - 0.673 + - 0.672 + - 0.68 + - 0.735 + - 0.732 + - 0.715 + - 0.674 + - 0.687 + - 0.702 + - 0.705 + - 0.715 + - 0.725 + - 0.707 + - 0.74 + - 0.74 + - 0.874 + - 0.737 + - 0.819 + - 0.76 + - 0.869 + - 0.9 + - 0.698 + - 0.823 + - 0.676 + - 0.682 + - 0.766 + - 0.68 + - 0.685 + - 0.694 + - 0.695 + - 0.689 + - 0.727 + - 0.695 + - 0.688 + - 0.677 + - 0.736 + - 0.651 + - 0.661 + - 0.6199 + - 0.6223 + - 0.6036 + - 0.6003 + - 0.5991 + - 0.598 + - 0.591 + - 0.5764 + - 0.577 + - 0.5593 + - 0.597 + - 0.576 + - 0.574 + - 0.578 + - 0.579 + - 0.575 + - 0.576 + - 0.568 + - 0.575 + - 0.569 + - 0.559 + - 0.568 + - 0.5401 + - 0.55 + - 0.5575 + - 0.578 + - 0.5635 + - 0.5786 + - 0.5807 + - 0.581 + - 0.573 + - 0.569 + - 0.567 + - 0.552 + - 0.55 + - 0.558 + - 0.552 + - 0.562 + - 0.574 + - 0.575 + - 0.629 + - 0.682 + - 0.756 + - 1.05 + - 1.122 + - 1.1402 + - 1.154 + - 1.131 + - 1.123 + - 1.159 + - 1.106 + - 1.116 + - 1.069 + - 1.077 + - 1.155 + - 1.162 + - 1.1402 + - 0.644 + - 1.208 + - 1.1402 + - 1.295 + - 1.258 + - 1.1402 + - 0.606 + - 0.603 + - 0.563 + - 0.592 + - 0.607 + - 0.611 + - 0.612 + - 0.618 + - 0.626 + - 0.629 + - 0.583 + - 0.8646 + - 0.626 + - 0.639 + - 0.559 + - 0.827 + - 0.612 + - 0.576 + - 0.58 + - 0.575 + - 0.688 + - 0.697 + - 0.743 + - 0.681 + - 0.832 + - 0.719 + - 0.785 + - 0.878 + - 0.9402 + - 1.0054 + - 1.073 + - 1.129 + - 1.035 + - 1.027 + - 0.9703 + - 1.195 + - 0.9153 + - 1.266 + - 1.153 + - 1.348 + - 1.18 + - 1.269 + - 1.311 + - 0.9914 + - 1.359 + - 1.166 + - 1.139 + - 1.2817 + - 1.398 + - 1.542 + - 1.229 + - 1.377 + - 1.28 + - 1.245 + - 1.1188 + - 1.193 + - 1.293 + - 1.275 + - 1.331 + - 1.34 + - 1.099 + - 1.048 + - 1.124 + - 1.225 + - 1.183 + - 1.196 + - 1.4 + - 1.333 + - 1.417 + - 1.326 + - 1.305 + - 1.0638 + - 1.268 + - 1.217 + - 1.289 + - 1.395 + - 1.232 + - 1.435 + - 1.298 + - 1.328 + - 1.262 + - 1.199 + - 1.391 + - 1.233 + - 1.329 + - 1.664 + - 1.509 + - 1.349 + - 1.481 + - 1.595 + - 1.485 + - 1.532 + - 1.504 + - 1.584 + - 1.609 + - 1.516 + - 1.489 + - 1.502 + - 1.544 + - 1.611 + - 1.539 + - 1.296 + - 1.288 + - 1.241 + - 1.32 + - 1.313 + - 1.301 + - 1.843 + - 1.747 + - 1.711 + - 1.771 + - 1.937 + - 1.575 + - 1.573 + - 1.5 + - 1.459 + - 1.402 + - 1.363 + - 2.201 + - 2.127 + - 2.177 + - 2.157 + - 2.192 + - 2.146 + - 2.151 + - 2.071 + - 1.986 + - 1.845 + - 1.687 + - 1.505 + - 1.373 + - 1.229 + - 1.113 + - 1.004 + - 0.936 + - 0.895 + - 0.871 + - 0.841 + - 0.821 + - 0.805 + - 0.8 + - 0.792 + - 0.797 + - 0.791 + - 0.783 + - 0.777 + - 0.785 + - 0.787 + - 0.789 + - 0.793 + - 0.794 + - 0.745 + - 0.75 + - 0.748 + - 0.749 + - 0.744 + - 0.733 + - 0.733 + - 0.741 + - 0.746 + - 0.746 + - 0.738 + - 0.743 + - 0.745 + - 0.749 + - 0.75 + - 0.75 + - 0.884 + - 0.906 + - 0.917 + - 0.924 + - 0.922 + - 0.928 + - 0.921 + - 0.938 + - 0.931 + - 0.943 + - 0.946 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + - filter: GOMsaver + filename: cycle_dir/cris-fsr_npp-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: cris-fsr_npp + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: &id012 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 31 + - 31 + - 30 + - 31 + - 30 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 31 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 31 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + - 30 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: cris-fsr_npp + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + 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 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 0.4 + - 0.4 + - 0.4 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 1.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id012 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: cris-fsr_npp + get values: + time interpolation: linear + - obs space: + name: GMI GPM + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/gmi_gpm.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.gmi_gpm.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: gmi_gpm + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/gmi_gpm.20231009T150000Z.satbias.nc4 + output file: cycle_dir/gmi_gpm.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: cloudWaterContent + sensor: GMI_GPM + ch37v: 6 + ch37h: 7 + order: 2 + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: cloudWaterContent + sensor: GMI_GPM + ch37v: 6 + ch37h: 7 + tlapse: cycle_dir/gmi_gpm.20231009T150000Z.tlapse.txt + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/gmi_gpm.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/gmi_gpm.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-9 + minvalue: 50.0 + maxvalue: 320.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 10-13 + minvalue: 70.0 + maxvalue: 320.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 5 + maxvalue: 70 + - variable: + name: MetaData/latitude + minvalue: -55.0 + maxvalue: 55.0 + - variable: + name: MetaData/heightOfSurface + maxvalue: 2000 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + minvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/latitude + minvalue: -20.0 + maxvalue: 0.0 + - variable: + name: MetaData/longitude + minvalue: 25.0 + maxvalue: 40.0 + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/cloudWaterContent_obs + type: float + function: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + maxvalue: 900 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - HofX + maxvalue: 900 + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/cloudWaterContent_hofx + type: float + function: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - HofX + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + minvalue: 0.0 + maxvalue: 0.05 + - variable: + name: ObsFunction/Emissivity_Diff_GMI + options: + channel: 2 + regression_constant_1: 0.1329 + regression_constant_2: 0.42468 + regression_coeff_1: + - -0.00548 + - 0.00772 + - 0.0053 + - -0.00425 + - 0.00053 + - 8e-05 + - -3e-05 + - -0.00144 + - 0.00059 + - -0.00016 + - 3e-05 + - -0.00011 + - 0.00017 + regression_coeff_2: + - 0.00289 + - -0.00142 + minvalue: 0.01 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + minvalue: 0.0 + maxvalue: 0.05 + - variable: + name: ObsFunction/Emissivity_Diff_GMI + options: + channel: 4 + regression_constant_1: 0.15627 + regression_constant_2: 0.83807 + regression_coeff_1: + - -0.01084 + - 0.01194 + - 0.01111 + - -0.00784 + - 0.0006 + - 8e-05 + - -3e-05 + - -0.00248 + - 0.00105 + - -8e-05 + - 0.0 + - -0.00013 + - 0.00016 + regression_coeff_2: + - 0.00048 + - -0.00207 + minvalue: 0.035 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: ObsFunction/CLWRetMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + minvalue: 0.0 + maxvalue: 0.05 + - variable: + name: ObsFunction/Emissivity_Diff_GMI + options: + channel: 7 + regression_constant_1: 0.30306 + regression_constant_2: 1.24071 + regression_coeff_1: + - -0.01793 + - 0.0173 + - 0.01784 + - -0.01199 + - 0.00067 + - 0.00013 + - -4e-05 + - -0.00365 + - 0.00154 + - -4e-05 + - -1e-05 + - -0.00015 + - 0.00017 + regression_coeff_2: + - 0.00068 + - -0.00342 + minvalue: 0.05 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch37v: 6 + clwret_ch37h: 7 + clwret_types: + - ObsValue + - HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.2 + - 0.3 + - 0.2 + - 0.3 + - 0.3 + x2: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + err0: + - 2.7 + - 3.7 + - 3.5 + - 4.5 + - 4.0 + - 3.8 + - 300.0 + - 5.0 + - 11.5 + - 5.0 + - 5.0 + - 2.5 + - 3.0 + err1: + - 17.0 + - 23.0 + - 13.0 + - 25.0 + - 11.0 + - 13.0 + - 23.0 + - 10.0 + - 20.0 + - 15.0 + - 20.0 + - 8.0 + - 13.0 + err2: + - 25.0 + - 40.0 + - 40.0 + - 55.0 + - 35.0 + - 25.0 + - 500.0 + - 50.0 + - 50.0 + - 50.0 + - 50.0 + - 30.0 + - 40.0 + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 1,2,4,6 + threshold: 2.0 + absolute threshold: 30.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 9,10,11 + threshold: 2.0 + absolute threshold: 20.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 3,5,8 + threshold: 2.0 + absolute threshold: 15.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 12,13 + threshold: 2.0 + absolute threshold: 10.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 7 + threshold: 2.0 + absolute threshold: 5.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: gmi_gpm + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: GOMsaver + filename: cycle_dir/gmi_gpm-geovals.20231009T210000Z.nc4 + observation_name: gmi_gpm + get values: + time interpolation: linear + - obs space: + name: gnssrobndnbam + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/gps.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - sequenceNumber + sort variable: impactHeightRO + sort order: ascending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.gps.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - bendingAngle + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + vertlayer: full + sr_steps: 2 + super_ref_qc: NBAM + obs filters: + - filter: BlackList + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 41,265,266,421,440,724,725,726,727,728,729 + - filter: Perform Action + filter variables: + - name: bendingAngle + where: + - variable: PreUseFlag/bendingAngle + minvalue: 1 + action: + name: reject + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266,267,268,269 + test variables: + - name: MetaData/impactHeightRO + maxvalue: 45000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 3-5 + test variables: + - name: MetaData/impactHeightRO + minvalue: 8000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 267,268,269 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 401 + test variables: + - name: MetaData/impactHeightRO + minvalue: 5000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 267,268,269 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 402-999 + test variables: + - name: MetaData/impactHeightRO + minvalue: 9000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 401 + test variables: + - name: MetaData/impactHeightRO + minvalue: 5000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 402-999 + test variables: + - name: MetaData/impactHeightRO + minvalue: 8000.1 + action: + name: reject + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: inflate error + inflation factor: 2.0 + where: + - variable: MetaData/satelliteIdentifier + is_in: 267,268,269 + - filter: Variable Assignment + assignments: + - name: JediAdjustObsError/bendingAngle + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/bendingAngle + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error parameter: 1.0 + where: + - variable: + name: JediAdjustObsError/bendingAngle + maxvalue: 1.0 + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + - variable: + name: MetaData/satelliteIdentifier + is_in: 3,5,41,42,43,44,267,268,269,440,421,724,725,726,727,728,729, 750,751,752,753,754,755,821,825 + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error parameter: 10.0 + where: + - variable: + name: JediAdjustObsError/bendingAngle + minvalue: 10.0 + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: bendingAngle + threshold: 5 + action: + name: reject + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error function: JediAdjustObsError/bendingAngle + where: + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + defer to post: true + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + defer to post: true + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate_GEOS + defer to post: true + - filter: GOMsaver + filename: cycle_dir/gps-geovals.20231009T210000Z.nc4 + observation_name: gps + get values: + time interpolation: linear + - obs space: + name: IASI METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/iasi_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.iasi_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: iasi_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/iasi_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/iasi_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/iasi_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/iasi_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/iasi_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/iasi_metop-b.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/iasi_metop_141_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id013 + - 0.727 + - 0.81 + - 0.75 + - 0.79 + - 0.7055 + - 0.74 + - 0.68 + - 0.72 + - 0.6526 + - 0.65 + - 0.665 + - 0.69 + - 0.6394 + - 0.64 + - 0.6528 + - 0.6065 + - 0.6246 + - 0.61 + - 0.6423 + - 0.5995 + - 0.59 + - 0.6069 + - 0.6 + - 0.5965 + - 0.64 + - 0.62 + - 0.589 + - 0.5865 + - 0.65 + - 0.5861 + - 0.61 + - 0.5874 + - 0.68 + - 0.606 + - 0.68 + - 4.38 + - 3.05 + - 2.31 + - 1.56 + - 1.33 + - 1.58 + - 0.93 + - 0.5832 + - 0.5587 + - 0.5867 + - 0.58 + - 0.5655 + - 0.5522 + - 0.5864 + - 0.5475 + - 0.5854 + - 0.5455 + - 0.5811 + - 0.5376 + - 0.5452 + - 0.5686 + - 0.5329 + - 0.5655 + - 0.5302 + - 0.545 + - 0.5628 + - 0.59 + - 0.5262 + - 0.559 + - 0.5264 + - 0.5442 + - 0.51 + - 0.5513 + - 0.5224 + - 0.5523 + - 0.5188 + - 0.5487 + - 0.5245 + - 0.58 + - 0.5437 + - 0.5343 + - 0.5364 + - 0.64 + - 0.5338 + - 0.72 + - 0.537 + - 0.75 + - 0.51 + - 0.65 + - 0.5274 + - 0.529 + - 0.5187 + - 0.5228 + - 1.12 + - 0.5222 + - 0.5109 + - 0.67 + - 0.5133 + - 0.5179 + - 0.507 + - 0.67 + - 0.5091 + - 0.62 + - 0.5093 + - 0.69 + - 0.5048 + - 0.5024 + - 0.78 + - 0.497 + - 0.5337 + - 0.4865 + - 0.4915 + - 0.4835 + - 0.4869 + - 0.87 + - 0.4824 + - 0.4852 + - 0.84 + - 0.84 + - 0.84 + - 0.5318 + - 0.8 + - 0.4772 + - 0.98 + - 0.488 + - 0.4978 + - 0.5157 + - 0.61 + - 0.5213 + - 0.4884 + - 0.79 + - 0.62 + - 0.66 + - 0.4691 + - 0.65 + - 0.4809 + - 0.468 + - 0.62 + - 0.4679 + - 0.6913 + - 0.4705 + - 0.4785 + - 0.47 + - 0.4773 + - 0.4703 + - 0.98 + - 0.4697 + - 0.4662 + - 0.65 + - 0.467 + - 0.4883 + - 0.4684 + - 0.4684 + - 0.4947 + - 0.5393 + - 0.5024 + - 0.4715 + - 0.621 + - 0.6136 + - 0.5316 + - 1.78 + - 0.5099 + - 1.14 + - 0.539 + - 1.79 + - 0.508 + - 0.5723 + - 1.94 + - 2.01 + - 0.49 + - 0.5647 + - 0.5022 + - 1.47 + - 0.5815 + - 0.6782 + - 2.13 + - 0.5445 + - 1.52 + - 0.5555 + - 1.96 + - 2.31 + - 2.33 + - 2.32 + - 2.31 + - 0.6994 + - 0.7006 + - 0.706 + - 0.9785 + - 0.7023 + - 0.6991 + - 0.6946 + - 2.28 + - 2.26 + - 2.26 + - 2.26 + - 0.6608 + - 0.6835 + - 0.6822 + - 2.24 + - 2.26 + - 0.6735 + - 2.28 + - 0.667 + - 0.7732 + - 0.6642 + - 0.648 + - 0.6629 + - 2.29 + - 2.29 + - 0.6799 + - 0.623 + - 2.32 + - 0.603 + - 0.6224 + - 2.32 + - 0.6187 + - 2.31 + - 2.31 + - 2.28 + - 2.29 + - 2.28 + - 2.26 + - 1.966 + - 2.27 + - 2.26 + - 2.25 + - 2.27 + - 2.24 + - 2.21 + - 2.24 + - 2.17 + - 2.18 + - 2.17 + - 2.21 + - 1.4 + - 2.16 + - 2.2 + - 2.13 + - 2.12 + - 2.13 + - 2.1 + - 2.12 + - 2.11 + - 2.09 + - 2.09 + - 2.08 + - 2.09 + - 2.04 + - 2.04 + - 1.966 + - 2.01 + - 2.05 + - 2.03 + - 2.06 + - 1.98 + - 1.95 + - 1.94 + - 1.91 + - 1.857 + - 1.76 + - 1.748 + - 1.83 + - 2.04 + - 1.748 + - 1.99 + - 2.075 + - 2.07 + - 2.02 + - 2.04 + - 2.1 + - 1.966 + - 2.18 + - 2.21 + - 2.24 + - 2.23 + - 2.23 + - 1.98 + - 2.2 + - 2.18 + - 2.18 + - 2.21 + - 2.23 + - 2.24 + - 2.24 + - 2.25 + - 1.8 + - 2.24 + - 1.73 + - 1.73 + - 2.27 + - 1.67 + - 2.21 + - 1.72 + - 2.23 + - 2.23 + - 2.23 + - 2.24 + - 2.23 + - 2.12 + - 2.17 + - 1.74 + - 2.02 + - 1.88 + - 1.67 + - 1.73 + - 1.83 + - 1.82 + - 1.73 + - 1.83 + - 2.19 + - 1.84 + - 1.89 + - 1.6 + - 1.71 + - 1.86 + - 1.85 + - 1.84 + - 1.87 + - 1.91 + - 1.52 + - 1.95 + - 1.87 + - 1.89 + - 1.91 + - 1.91 + - 1.93 + - 1.9 + - 1.91 + - 1.9 + - 1.89 + - 1.89 + - 1.91 + - 1.9 + - 1.91 + - 1.91 + - 1.91 + - 1.93 + - 1.94 + - 1.91 + - 1.92 + - 1.77 + - 1.91 + - 1.95 + - 1.19 + - 1.96 + - 1.98 + - 1.94 + - 1.55 + - 1.91 + - 1.92 + - 1.92 + - 1.97 + - 1.93 + - 1.99 + - 1.86 + - 1.12 + - 1.93 + - 1.92 + - 1.95 + - 1.85 + - 1.84 + - 1.91 + - 1.12 + - 1.82 + - 1.82 + - 1.95 + - 1.24 + - 1.94 + - 1.96 + - 1.21 + - 1.83 + - 1.96 + - 1.36 + - 1.96 + - 1.82 + - 1.92 + - 1.68 + - 1.93 + - 1.23 + - 1.96 + - 1.93 + - 1.86 + - 1.41 + - 1.16 + - 1.6 + - 1.25 + - 1.2 + - 1.65 + - 1.66 + - 1.87 + - 1.94 + - 1.96 + - 1.91 + - 1.25 + - 1.93 + - 1.91 + - 1.7 + - 0.99 + - 1.81 + - 1.92 + - 1.95 + - 1.5 + - 1.47 + - 1.15 + - 1.58 + - 1.18 + - 1.82 + - 1.13 + - 1.83 + - 1.91 + - 1.26 + - 1.27 + - 1.91 + - 1.45 + - 1.6 + - 1.29 + - 1.94 + - 1.94 + - 1.23 + - 1.95 + - 1.21 + - 1.94 + - 1.86 + - 1.9 + - 1.33 + - 1.75 + - 2.02 + - 1.98 + - 2.03 + - 1.83 + - 1.5 + - 2.04 + - 2.02 + - 1.9 + - 2.0 + - 2.02 + - 1.95 + - 1.93 + - 1.95 + - 1.95 + - 1.99 + - 2.0 + - 1.94 + - 1.96 + - 1.86 + - 1.92 + - 1.88 + - 1.86 + - 1.84 + - 1.87 + - 1.77 + - 1.89 + - 1.89 + - 1.88 + - 1.94 + - 1.82 + - 1.79 + - 1.86 + - 2.06 + - 2.33 + - 1.88 + - 1.86 + - 1.81 + - 1.8 + - 1.8 + - 1.86 + - 1.9 + - 2.0 + - 2.06 + - 2.1 + - 2.2 + - 2.0 + - 2.16 + - 1.98 + - 1.8 + - 1.8 + - 1.85 + - 1.75 + - 2.04 + - 2.19 + - 2.14 + - 2.19 + - 1.86 + - 2.1 + - 2.11 + - 2.18 + - 2.03 + - 2.28 + - 2.19 + - 2.26 + - 2.26 + - 2.21 + - 2.21 + - 2.26 + - 2.33 + - 2.27 + - 2.21 + - 2.12 + - 2.23 + - 2.26 + - 2.25 + - 1.88 + - 2.26 + - 2.24 + - 2.36 + - 2.29 + - 2.35 + - 2.3 + - 2.27 + - 2.08 + - 2.05 + - 2.27 + - 2.28 + - 2.27 + - 2.28 + - 1.97 + - 2.25 + - 2.25 + - 2.25 + - 2.31 + - 2.28 + - 2.27 + - 2.13 + - 2.24 + - 2.28 + - 2.28 + - 2.41 + - 2.34 + - 9.32 + - 2.28 + - 2.38 + - 2.27 + - 2.27 + - 2.39 + - 2.11 + - 2.09 + - 2.1 + - 2.06 + - 2.12 + - 2.08 + - 2.0 + - 1.93 + - 2.02 + - 2.55 + - 1.54 + - 1.64 + - 1.51 + - 1.55 + - 2.82 + - 2.92 + - 2.55 + - 2.37 + - 1.85 + - 1.6 + - 1.72 + - 1.74 + - 1.79 + - 1.9 + - 1.94 + - 2.0 + - 2.04 + - 2.08 + - 2.12 + - 2.13 + - 2.16 + - 2.18 + - 2.18 + - 2.2 + - 2.2 + - 2.41 + - 2.39 + - 2.38 + - 2.4 + - 2.42 + - 2.41 + - 2.43 + - 2.45 + - 2.43 + - 2.45 + - 2.43 + - 2.4 + - 2.44 + - 2.4 + - 2.42 + - 2.43 + - 2.45 + - 2.45 + - 2.45 + - 2.46 + - 2.45 + - 2.45 + - 2.43 + - 2.51 + - 2.48 + - 2.48 + - 2.53 + - 2.46 + - 2.49 + - 2.5 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.54 + - 2.5 + - 2.48 + - 2.5 + - 2.55 + - 2.5 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.46 + - 2.53 + - 9.0 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + - filter: GOMsaver + filename: cycle_dir/iasi_metop-b-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: iasi_metop-b + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + error parameter vector: *id013 + use_flag: None + use_flag_clddet: &id014 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 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.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + error parameter vector: *id013 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: iasi_metop-b + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + error parameter vector: *id013 + 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 + - 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 + - 0.75 + - 2.0 + - 0.75 + - 2.0 + - 2.0 + - 2.0 + - 0.75 + - 0.75 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 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 + - 0.75 + - 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 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.4 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id014 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: iasi_metop-b + get values: + time interpolation: linear + - obs space: + name: IASI METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/iasi_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.iasi_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: iasi_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/iasi_metop-c.20231009T150000Z.satbias.nc4 + output file: cycle_dir/iasi_metop-c.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/iasi_metop-c.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/iasi_metop-c.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/iasi_metop-c.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/iasi_metop-c.20231009T210000Z.satbias_cov.nc4 + obs error: + covariance model: cross variable covariances + input file: fv3-jedi/rcov/iasi_metop_141_jedi_rcov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id015 + - 0.727 + - 0.81 + - 0.75 + - 0.79 + - 0.7055 + - 0.74 + - 0.68 + - 0.72 + - 0.6526 + - 0.65 + - 0.665 + - 0.69 + - 0.6394 + - 0.64 + - 0.6528 + - 0.6065 + - 0.6246 + - 0.61 + - 0.6423 + - 0.5995 + - 0.59 + - 0.6069 + - 0.6 + - 0.5965 + - 0.64 + - 0.62 + - 0.589 + - 0.5865 + - 0.65 + - 0.5861 + - 0.61 + - 0.5874 + - 0.68 + - 0.606 + - 0.68 + - 4.38 + - 3.05 + - 2.31 + - 1.56 + - 1.33 + - 1.58 + - 0.93 + - 0.5832 + - 0.5587 + - 0.5867 + - 0.58 + - 0.5655 + - 0.5522 + - 0.5864 + - 0.5475 + - 0.5854 + - 0.5455 + - 0.5811 + - 0.5376 + - 0.5452 + - 0.5686 + - 0.5329 + - 0.5655 + - 0.5302 + - 0.545 + - 0.5628 + - 0.59 + - 0.5262 + - 0.559 + - 0.5264 + - 0.5442 + - 0.51 + - 0.5513 + - 0.5224 + - 0.5523 + - 0.5188 + - 0.5487 + - 0.5245 + - 0.58 + - 0.5437 + - 0.5343 + - 0.5364 + - 0.64 + - 0.5338 + - 0.72 + - 0.537 + - 0.75 + - 0.51 + - 0.65 + - 0.5274 + - 0.529 + - 0.5187 + - 0.5228 + - 1.12 + - 0.5222 + - 0.5109 + - 0.67 + - 0.5133 + - 0.5179 + - 0.507 + - 0.67 + - 0.5091 + - 0.62 + - 0.5093 + - 0.69 + - 0.5048 + - 0.5024 + - 0.78 + - 0.497 + - 0.5337 + - 0.4865 + - 0.4915 + - 0.4835 + - 0.4869 + - 0.87 + - 0.4824 + - 0.4852 + - 0.84 + - 0.84 + - 0.84 + - 0.5318 + - 0.8 + - 0.4772 + - 0.98 + - 0.488 + - 0.4978 + - 0.5157 + - 0.61 + - 0.5213 + - 0.4884 + - 0.79 + - 0.62 + - 0.66 + - 0.4691 + - 0.65 + - 0.4809 + - 0.468 + - 0.62 + - 0.4679 + - 0.6913 + - 0.4705 + - 0.4785 + - 0.47 + - 0.4773 + - 0.4703 + - 0.98 + - 0.4697 + - 0.4662 + - 0.65 + - 0.467 + - 0.4883 + - 0.4684 + - 0.4684 + - 0.4947 + - 0.5393 + - 0.5024 + - 0.4715 + - 0.621 + - 0.6136 + - 0.5316 + - 1.78 + - 0.5099 + - 1.14 + - 0.539 + - 1.79 + - 0.508 + - 0.5723 + - 1.94 + - 2.01 + - 0.49 + - 0.5647 + - 0.5022 + - 1.47 + - 0.5815 + - 0.6782 + - 2.13 + - 0.5445 + - 1.52 + - 0.5555 + - 1.96 + - 2.31 + - 2.33 + - 2.32 + - 2.31 + - 0.6994 + - 0.7006 + - 0.706 + - 0.9785 + - 0.7023 + - 0.6991 + - 0.6946 + - 2.28 + - 2.26 + - 2.26 + - 2.26 + - 0.6608 + - 0.6835 + - 0.6822 + - 2.24 + - 2.26 + - 0.6735 + - 2.28 + - 0.667 + - 0.7732 + - 0.6642 + - 0.648 + - 0.6629 + - 2.29 + - 2.29 + - 0.6799 + - 0.623 + - 2.32 + - 0.603 + - 0.6224 + - 2.32 + - 0.6187 + - 2.31 + - 2.31 + - 2.28 + - 2.29 + - 2.28 + - 2.26 + - 1.966 + - 2.27 + - 2.26 + - 2.25 + - 2.27 + - 2.24 + - 2.21 + - 2.24 + - 2.17 + - 2.18 + - 2.17 + - 2.21 + - 1.4 + - 2.16 + - 2.2 + - 2.13 + - 2.12 + - 2.13 + - 2.1 + - 2.12 + - 2.11 + - 2.09 + - 2.09 + - 2.08 + - 2.09 + - 2.04 + - 2.04 + - 1.966 + - 2.01 + - 2.05 + - 2.03 + - 2.06 + - 1.98 + - 1.95 + - 1.94 + - 1.91 + - 1.857 + - 1.76 + - 1.748 + - 1.83 + - 2.04 + - 1.748 + - 1.99 + - 2.075 + - 2.07 + - 2.02 + - 2.04 + - 2.1 + - 1.966 + - 2.18 + - 2.21 + - 2.24 + - 2.23 + - 2.23 + - 1.98 + - 2.2 + - 2.18 + - 2.18 + - 2.21 + - 2.23 + - 2.24 + - 2.24 + - 2.25 + - 1.8 + - 2.24 + - 1.73 + - 1.73 + - 2.27 + - 1.67 + - 2.21 + - 1.72 + - 2.23 + - 2.23 + - 2.23 + - 2.24 + - 2.23 + - 2.12 + - 2.17 + - 1.74 + - 2.02 + - 1.88 + - 1.67 + - 1.73 + - 1.83 + - 1.82 + - 1.73 + - 1.83 + - 2.19 + - 1.84 + - 1.89 + - 1.6 + - 1.71 + - 1.86 + - 1.85 + - 1.84 + - 1.87 + - 1.91 + - 1.52 + - 1.95 + - 1.87 + - 1.89 + - 1.91 + - 1.91 + - 1.93 + - 1.9 + - 1.91 + - 1.9 + - 1.89 + - 1.89 + - 1.91 + - 1.9 + - 1.91 + - 1.91 + - 1.91 + - 1.93 + - 1.94 + - 1.91 + - 1.92 + - 1.77 + - 1.91 + - 1.95 + - 1.19 + - 1.96 + - 1.98 + - 1.94 + - 1.55 + - 1.91 + - 1.92 + - 1.92 + - 1.97 + - 1.93 + - 1.99 + - 1.86 + - 1.12 + - 1.93 + - 1.92 + - 1.95 + - 1.85 + - 1.84 + - 1.91 + - 1.12 + - 1.82 + - 1.82 + - 1.95 + - 1.24 + - 1.94 + - 1.96 + - 1.21 + - 1.83 + - 1.96 + - 1.36 + - 1.96 + - 1.82 + - 1.92 + - 1.68 + - 1.93 + - 1.23 + - 1.96 + - 1.93 + - 1.86 + - 1.41 + - 1.16 + - 1.6 + - 1.25 + - 1.2 + - 1.65 + - 1.66 + - 1.87 + - 1.94 + - 1.96 + - 1.91 + - 1.25 + - 1.93 + - 1.91 + - 1.7 + - 0.99 + - 1.81 + - 1.92 + - 1.95 + - 1.5 + - 1.47 + - 1.15 + - 1.58 + - 1.18 + - 1.82 + - 1.13 + - 1.83 + - 1.91 + - 1.26 + - 1.27 + - 1.91 + - 1.45 + - 1.6 + - 1.29 + - 1.94 + - 1.94 + - 1.23 + - 1.95 + - 1.21 + - 1.94 + - 1.86 + - 1.9 + - 1.33 + - 1.75 + - 2.02 + - 1.98 + - 2.03 + - 1.83 + - 1.5 + - 2.04 + - 2.02 + - 1.9 + - 2.0 + - 2.02 + - 1.95 + - 1.93 + - 1.95 + - 1.95 + - 1.99 + - 2.0 + - 1.94 + - 1.96 + - 1.86 + - 1.92 + - 1.88 + - 1.86 + - 1.84 + - 1.87 + - 1.77 + - 1.89 + - 1.89 + - 1.88 + - 1.94 + - 1.82 + - 1.79 + - 1.86 + - 2.06 + - 2.33 + - 1.88 + - 1.86 + - 1.81 + - 1.8 + - 1.8 + - 1.86 + - 1.9 + - 2.0 + - 2.06 + - 2.1 + - 2.2 + - 2.0 + - 2.16 + - 1.98 + - 1.8 + - 1.8 + - 1.85 + - 1.75 + - 2.04 + - 2.19 + - 2.14 + - 2.19 + - 1.86 + - 2.1 + - 2.11 + - 2.18 + - 2.03 + - 2.28 + - 2.19 + - 2.26 + - 2.26 + - 2.21 + - 2.21 + - 2.26 + - 2.33 + - 2.27 + - 2.21 + - 2.12 + - 2.23 + - 2.26 + - 2.25 + - 1.88 + - 2.26 + - 2.24 + - 2.36 + - 2.29 + - 2.35 + - 2.3 + - 2.27 + - 2.08 + - 2.05 + - 2.27 + - 2.28 + - 2.27 + - 2.28 + - 1.97 + - 2.25 + - 2.25 + - 2.25 + - 2.31 + - 2.28 + - 2.27 + - 2.13 + - 2.24 + - 2.28 + - 2.28 + - 2.41 + - 2.34 + - 9.32 + - 2.28 + - 2.38 + - 2.27 + - 2.27 + - 2.39 + - 2.11 + - 2.09 + - 2.1 + - 2.06 + - 2.12 + - 2.08 + - 2.0 + - 1.93 + - 2.02 + - 2.55 + - 1.54 + - 1.64 + - 1.51 + - 1.55 + - 2.82 + - 2.92 + - 2.55 + - 2.37 + - 1.85 + - 1.6 + - 1.72 + - 1.74 + - 1.79 + - 1.9 + - 1.94 + - 2.0 + - 2.04 + - 2.08 + - 2.12 + - 2.13 + - 2.16 + - 2.18 + - 2.18 + - 2.2 + - 2.2 + - 2.41 + - 2.39 + - 2.38 + - 2.4 + - 2.42 + - 2.41 + - 2.43 + - 2.45 + - 2.43 + - 2.45 + - 2.43 + - 2.4 + - 2.44 + - 2.4 + - 2.42 + - 2.43 + - 2.45 + - 2.45 + - 2.45 + - 2.46 + - 2.45 + - 2.45 + - 2.43 + - 2.51 + - 2.48 + - 2.48 + - 2.53 + - 2.46 + - 2.49 + - 2.5 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.54 + - 2.5 + - 2.48 + - 2.5 + - 2.55 + - 2.5 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.52 + - 2.48 + - 2.5 + - 2.5 + - 2.52 + - 2.46 + - 2.53 + - 9.0 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + - filter: GOMsaver + filename: cycle_dir/iasi_metop-c-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: BlackList + 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: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.00001 + maxvalue: 549.99999 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: iasi_metop-c + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualIR + channels: None + options: + channels: None + error parameter vector: *id015 + use_flag: None + use_flag_clddet: &id016 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 31 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 31 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 1 + - 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.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + error parameter vector: *id015 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: iasi_metop-c + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + error parameter vector: *id015 + 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 + - 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 + - 0.75 + - 2.0 + - 0.75 + - 2.0 + - 2.0 + - 2.0 + - 0.75 + - 0.75 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 2.0 + - 0.75 + - 0.75 + - 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 + - 0.75 + - 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 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.25 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.4 + - 6.0 + - 6.0 + - 1.4 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 1.5 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 6.0 + - 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SurfTypeCheckRad + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: *id016 + maxvalue: 1e-12 + defer to post: true + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: iasi_metop-c + get values: + time interpolation: linear + - obs space: + name: MHS METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_metop-b.20231009T150000Z.satbias.nc4 + output file: cycle_dir/mhs_metop-b.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_metop-b.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_metop-b.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_metop-b.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_metop-b.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_metop-b + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_metop-b + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-b + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-b + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: GOMsaver + filename: cycle_dir/mhs_metop-b-geovals.20231009T210000Z.nc4 + observation_name: mhs_metop-b + get values: + time interpolation: linear + - obs space: + name: MHS METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_metop-c.20231009T150000Z.satbias.nc4 + output file: cycle_dir/mhs_metop-c.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_metop-c.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_metop-c.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_metop-c.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_metop-c.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_metop-c + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_metop-c + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-c + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-c + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: GOMsaver + filename: cycle_dir/mhs_metop-c-geovals.20231009T210000Z.nc4 + observation_name: mhs_metop-c + get values: + time interpolation: linear + - obs space: + name: MHS NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_n19.20231009T150000Z.satbias.nc4 + output file: cycle_dir/mhs_n19.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_n19.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_n19.20231009T150000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_n19.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_n19.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_n19 + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_n19 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_n19 + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_n19 + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: GOMsaver + filename: cycle_dir/mhs_n19-geovals.20231009T210000Z.nc4 + observation_name: mhs_n19 + get values: + time interpolation: linear + - obs space: + name: MLS55 AURA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mls55_aura.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mls55_aura.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneProfile + obs operator: + name: VertInterp + vertical coordinate: air_pressure + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + obs filters: + - filter: Bounds Check + filter variables: + - name: ozoneProfile + minvalue: 0 + maxvalue: 10000 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneProfile + threshold: 5.0 + action: + name: reject + - filter: GOMsaver + filename: cycle_dir/mls55_aura-geovals.20231009T210000Z.nc4 + observation_name: mls55_aura + get values: + time interpolation: linear + - obs space: + name: OMI AURA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/omi_aura.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.omi_aura.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneTotal + obs operator: + name: AtmVertInterpLay + geovals: + - mole_fraction_of_ozone_in_air + coefficients: + - 0.0078976797 + nlevels: + - 1 + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + obs filters: + - filter: Perform Action + filter variables: + - name: ozoneTotal + action: + name: assign error + error parameter: 5.0 + - filter: Bounds Check + filter variables: + - name: ozoneTotal + minvalue: 0 + maxvalue: 1000 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/solarZenithAngle + maxvalue: 84.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/sensorScanPosition + minvalue: 3 + maxvalue: 24 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneTotal + threshold: 5.0 + action: + name: reject + - filter: GOMsaver + filename: cycle_dir/omi_aura-geovals.20231009T210000Z.nc4 + observation_name: omi_aura + get values: + time interpolation: linear + - obs space: + name: OMPSNM NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/ompsnm_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.ompsnm_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneTotal + obs operator: + name: AtmVertInterpLay + geovals: + - mole_fraction_of_ozone_in_air + coefficients: + - 0.0078976797 + nlevels: + - 1 + obs filters: + - filter: Perform Action + filter variables: + - name: ozoneTotal + action: + name: assign error + error parameter: 5.216 + - filter: Bounds Check + filter variables: + - name: ozoneTotal + minvalue: 0 + maxvalue: 1000 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/solarZenithAngle + maxvalue: 84.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneTotal + threshold: 5.0 + action: + name: reject + - filter: GOMsaver + filename: cycle_dir/ompsnm_npp-geovals.20231009T210000Z.nc4 + observation_name: ompsnm_npp + get values: + time interpolation: linear + - obs space: + name: Pilot Balloon + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/pibal.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.pibal.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + vertical coordinate backup: air_pressure + observation vertical coordinate group backup: MetaData + observation vertical coordinate backup: pressure + interpolation method backup: log-linear + hofx scaling field: SurfaceWindScalingCombined + hofx scaling field group: DerivedVariables + linear obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + vertical coordinate backup: air_pressure + observation vertical coordinate group backup: MetaData + observation vertical coordinate backup: pressure + interpolation method backup: log-linear + hofx scaling field: SurfaceWindScalingCombined + hofx scaling field group: DerivedVariables + obs pre filters: + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_not_in: 221 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: ObsType/windNorthward + is_not_in: 221 + action: + name: reject + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingCombined + SkipWhenNoObs: false + - filter: GOMsaver + filename: cycle_dir/pibal-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + - 3.3 + - 3.5 + - 3.7 + - 3.9 + - 4.1 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 221 + cgross: + - 8.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 221 + cgross: + - 8.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windNorthward + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + test variables: + - name: ObsErrorData/windEastward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windEastward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windEastward + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windNorthward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windNorthward + defer to post: true + - filter: Bounds Check + filter variables: + - name: windNorthward + test variables: + - name: ObsErrorData/windNorthward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 221 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 221 + defer to post: true + observation_name: pibal + get values: + time interpolation: linear + - obs space: + name: Satellite Winds + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/satwind.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.satwind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + linear obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + - filter: GOMsaver + filename: cycle_dir/satwind-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: PreQC + maxvalue: 3 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 80000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - filter: BlackList + where: + - variable: + name: ObsType/windEastward + is_in: 240, 241, 248, 249, 251, 255, 256, 260 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.45 + - 5 + - 5 + - 5 + - 5.075 + - 5.175 + - 5.3 + - 5.675 + - 6.05 + - 6.25 + - 6.625 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 244 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.0 + - 4.1 + - 5 + - 6 + - 6.3 + - 6.6 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 245, 246 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.0 + - 4.1 + - 5 + - 6 + - 6.3 + - 6.6 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 242, 243, 247, 252, 253 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.5 + - 6.1 + - 6.0 + - 6.5 + - 7.3 + - 7.6 + - 7 + - 7.5 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + - 7 + where: + - variable: + name: ObsType/windEastward + is_in: 254 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.8 + - 3.9 + - 3.9 + - 4.0 + - 4.0 + - 4.1 + - 5.0 + - 7 + - 7.3 + - 7.6 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + where: + - variable: + name: ObsType/windEastward + is_in: 250 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.9 + - 5.675 + - 5.45 + - 5.525 + - 5.8 + - 6.275 + - 6.575 + - 6.825 + - 7.05 + - 7.05 + - 7.05 + - 7.05 + where: + - variable: + name: ObsType/windEastward + is_in: 257 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 6.05 + - 5.625 + - 5.275 + - 5.375 + - 5.925 + - 6.475 + - 6.775 + - 7.05 + - 7.05 + - 7.05 + - 7.05 + where: + - variable: + name: ObsType/windEastward + is_in: 258 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6.5 + - 6 + - 5.5 + - 5.5 + - 5.575 + - 6.025 + - 6.4 + - 6.775 + - 7.15 + - 7.15 + - 7.15 + - 7.15 + where: + - variable: + name: ObsType/windEastward + is_in: 259 + - filter: Difference Check + filter variables: + - name: windEastward + - name: windNorthward + reference: GeoVaLs/air_pressure_at_surface + value: MetaData/pressure + maxvalue: -11000 + where: + - variable: + name: ObsType/windEastward + is_in: 247 + - variable: + name: MetaData/surfaceQualifier + minvalue: 1 + - filter: Difference Check + filter variables: + - name: windEastward + - name: windNorthward + reference: GeoVaLs/air_pressure_at_surface + value: MetaData/pressure + maxvalue: -20000 + where: + - variable: + name: ObsType/windEastward + is_in: 244, 257, 258, 259, 260 + - variable: + name: MetaData/surfaceQualifier + minvalue: 1 + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/WindDirAngleDiff + maxvalue: 50.0 + where: + - variable: + name: ObsType/windEastward + is_in: 247 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/SatWindsLNVDCheck + maxvalue: 3 + where: + - variable: + name: ObsType/windEastward + is_in: 244, 247, 257-260 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 240-260 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 240-260 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 15.0 + - 15.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + cgross: + - 2.5 + - 2.5 + - 2.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.3 + - 2.5 + - 1.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + wndtype: + - 240 + - 241 + - 242 + - 243 + - 244 + - 245 + - 246 + - 247 + - 248 + - 249 + - 250 + - 251 + - 252 + - 253 + - 254 + - 256 + - 257 + - 258 + - 259 + - 260 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + cgross: + - 2.5 + - 2.5 + - 2.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 1.3 + - 2.5 + - 1.5 + - 1.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 15.0 + - 15.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.0 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + - 20.1 + wndtype: + - 240 + - 241 + - 242 + - 243 + - 244 + - 245 + - 246 + - 247 + - 248 + - 249 + - 250 + - 251 + - 252 + - 253 + - 254 + - 256 + - 257 + - 258 + - 259 + - 260 + variable: windNorthward + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 240-260 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 240-260 + defer to post: true + observation_name: satwind + get values: + time interpolation: linear + - obs space: + name: Scatterometer Winds + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/scatwind.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.scatwind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + linear obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + - filter: GOMsaver + filename: cycle_dir/scatwind-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 290 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 290 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/ScatWindsAmbiguityCheck + maxvalue: 1e-12 + where: + - variable: + name: ObsType/windEastward + is_in: 290 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/Arithmetic + options: + variables: + - name: ObsValue/windEastward + - name: HofX/windEastward + coefs: + - 1.0 + - -1.0 + minvalue: -5.0 + maxvalue: 5.0 + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/Arithmetic + options: + variables: + - name: ObsValue/windNorthward + - name: HofX/windNorthward + coefs: + - 1.0 + - -1.0 + minvalue: -5.0 + maxvalue: 5.0 + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 290 + cgross: + - 5.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 290 + cgross: + - 5.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windNorthward + action: + name: reject + defer to post: true + observation_name: scatwind + get values: + time interpolation: linear + - obs space: + name: Surface Marine Stations + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sfcship.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sfcship.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - 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 + - name: Identity + variables: + - name: specificHumidity + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - name: Identity + variables: + - name: stationPressure + - name: specificHumidity + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + - filter: GOMsaver + filename: cycle_dir/sfcship-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + errors: + - 100 + - 100 + - 110 + - 120 + - 120 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 0.7 + where: + - variable: ObsType/stationPressure + is_in: + - 180 + - variable: ObsSubType/stationPressure + is_in: + - 0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: 180,183 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: 180,183 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 1.75 + - 1.95 + - 2.25 + - 1.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/airTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: airTemperature + test variables: + - name: ObsErrorData/airTemperature + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 1.75 + - 1.95 + - 2.25 + - 1.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - virtualTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: GsiAdjustObsError/virtualTemperature + where: + - variable: + name: GsiAdjustObsError/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: virtualTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/virtualTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/virtualTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/virtualTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/virtualTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: PreUseFlag/virtualTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: TempObsErrorData/virtualTemperature + where: + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: virtualTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: virtualTemperature + test variables: + - name: ObsErrorData/virtualTemperature + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: PreUseFlag/specificHumidity + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorSatSpecHumidity + options: + variable: specificHumidity + input_error_name: GsiInputObsError + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: specificHumidity + inflation factor: 8 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: specificHumidity + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/specificHumidity + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: specificHumidity + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/specificHumidity + is_in: + - 3 + defer to post: true + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: + - 284 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: + - 284 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: ObsType/windEastward + is_in: + - 280 + action: + name: assign error + error parameter: 2.5 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: ObsType/windEastward + is_in: + - 282 + action: + name: assign error + error parameter: 2.2 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + minvalue: 1 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + threshold: 6.0 + action: + name: reject + where: + - variable: PreQC/windEastward + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + threshold: 4.2 + action: + name: reject + where: + - variable: PreQC/windEastward + is_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + threshold: 6.0 + action: + name: reject + where: + - variable: PreQC/windNorthward + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + threshold: 4.2 + action: + name: reject + where: + - variable: PreQC/windNorthward + is_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + satwndtype: + - 280 + - 282 + - 284 + error_min: + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + cgross: + - 6.0 + - 6.0 + - 6.0 + wndtype: + - 280 + - 282 + - 284 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + satwndtype: + - 280 + - 282 + - 284 + error_min: + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + cgross: + - 6.0 + - 6.0 + - 6.0 + wndtype: + - 280 + - 282 + - 284 + variable: windNorthward + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + defer to post: true + observation_name: sfcship + get values: + time interpolation: linear + - obs space: + name: Surface Land Stations + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sfc.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sfc.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - 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 + - name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: specificHumidity + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: stationPressure + - name: specificHumidity + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + - filter: GOMsaver + filename: cycle_dir/sfc-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Bounds Check + filter variables: + - name: stationPressure + minvalue: 49999 + action: + name: reject + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 181 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 70000 + - 65000 + - 60000 + - 55000 + errors: + - 100 + - 120 + - 120 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 187 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 100 + - 130 + - 160 + - 100000000000.0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: 187 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: 187 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 3.6 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: + - 181 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.52 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: + - 181 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Bounds Check + filter variables: + - name: stationPressure + test variables: + - name: ObsErrorData/stationPressure + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: 281,287 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: ObsType/windNorthward + is_in: 281,287 + action: + name: reject + observation_name: sfc + get values: + time interpolation: linear + - obs space: + name: Radiosondes + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sondes.20231009T210000Z.nc4 + missing file action: error + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sondes.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + - name: VertInterp + variables: + - name: airTemperature + - name: virtualTemperature + - name: specificHumidity + - 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 + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + - name: VertInterp + variables: + - name: airTemperature + - name: virtualTemperature + - name: specificHumidity + - name: Identity + variables: + - name: stationPressure + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + - filter: GOMsaver + filename: cycle_dir/sondes-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 60000 + - 55000 + errors: + - 100 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: PreUseFlag/specificHumidity + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + action: + name: assign error + error function: + name: ObsFunction/ObsErrorSatSpecHumidity + options: + variable: specificHumidity + input_error_name: GsiInputObsError + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: specificHumidity + inflation factor: 8.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/specificHumidity + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 1.3 + - 1.1 + - 0.9 + - 0.7 + - 0.6 + - 0.6 + - 0.55 + - 0.5 + - 0.5 + - 0.55 + - 0.65 + - 1.1 + - 1.2 + - 1.2 + - 1.4 + - 1.6 + - 1.85 + - 2.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/airTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 1.3 + - 1.1 + - 0.9 + - 0.7 + - 0.6 + - 0.6 + - 0.55 + - 0.5 + - 0.5 + - 0.55 + - 0.65 + - 1.1 + - 1.2 + - 1.2 + - 1.4 + - 1.6 + - 1.85 + - 2.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - virtualTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: GsiAdjustObsError/virtualTemperature + where: + - variable: + name: GsiAdjustObsError/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: virtualTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/virtualTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/virtualTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/virtualTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/virtualTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: PreUseFlag/virtualTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: TempObsErrorData/virtualTemperature + where: + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: virtualTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + - 3.3 + - 3.5 + - 3.7 + - 3.9 + - 4.1 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 220,221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 220,221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 220 + - 221 + cgross: + - 8.0 + - 8.0 + error_min: + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 220 + - 221 + cgross: + - 8.0 + - 8.0 + error_min: + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + variable: windNorthward + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + test variables: + - name: ObsErrorData/windEastward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windEastward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windEastward + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windNorthward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windNorthward + defer to post: true + - filter: Bounds Check + filter variables: + - name: windNorthward + test variables: + - name: ObsErrorData/windNorthward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 220 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 220 + defer to post: true + observation_name: sondes + get values: + time interpolation: linear + - obs space: + name: ssmis_f17 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/ssmis_f17.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.ssmis_f17.20231009T210000Z.nc4 + simulated variables: + - brightnessTemperature + channels: None + io pool: + max pool size: 6 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs options: + Sensor_ID: ssmis_f17 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + obs bias: + input file: cycle_dir/ssmis_f17.20231009T150000Z.satbias.nc4 + output file: cycle_dir/ssmis_f17.20231009T210000Z.satbias.nc4 + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/ssmis_f17.20231009T150000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/ssmis_f17.20231009T150000Z.tlapse.txt + - name: cosineOfLatitudeTimesOrbitNode + - name: sineOfLatitude + - name: emissivityJacobian + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/ssmis_f17.20231009T150000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/ssmis_f17.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 1.0 + - 1.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 2.4 + - 1.27 + - 1.44 + - 3.0 + - 1.34 + - 1.74 + - 3.75 + - 3.0 + - 3.0 + - 2.0 + - 6.4 + - 1.0 + - 1.0 + - filter: GOMsaver + filename: cycle_dir/ssmis_f17-geovals.20231009T210000Z.nc4 + obs post filters: + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + absolute threshold: 3.5 + remove bias correction: true + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: reject + - filter: RejectList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/geopotential_height_at_surface + minvalue: 2000.0 + min_exclusive: true + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: RejectList + filter variables: + - name: brightnessTemperature + channels: 1-3,8-18 + where: + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/ice_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/surface_snow_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 1-2, 12-16 + reference: ObsValue/brightnessTemperature_2 + value: HofX/brightnessTemperature_2 + minvalue: -1.5 + maxvalue: 1.5 + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + absolute threshold: 3.5 + remove bias correction: true + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + action: + name: reject + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 9 + reference: ObsValue/brightnessTemperature_9 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.485934 + - 0.485934 + - 0.473806 + - -0.473806 + intercept: 271.252327 + maxvalue: 2 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 10 + reference: ObsValue/brightnessTemperature_10 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.413688 + - 0.413688 + - 0.361549 + - -0.361549 + intercept: 272.280341 + maxvalue: 2 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 11 + reference: ObsValue/brightnessTemperature_11 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.400882 + - 0.400882 + - 0.27051 + - -0.27051 + intercept: 278.824902 + maxvalue: 2 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: ssmis_f17 + obserr_demisf: + - 0.01 + - 0.01 + - 0.01 + - 0.01 + - 0.01 + obserr_dtempf: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor1 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_1 + coefs: + - 2.25 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_1 + threshold: DerivedMetaData/errorInflationFactor1 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor2 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_2 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_2 + threshold: DerivedMetaData/errorInflationFactor2 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor3 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_3 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_3 + threshold: DerivedMetaData/errorInflationFactor3 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor4 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_4 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_4 + threshold: DerivedMetaData/errorInflationFactor4 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor5 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_5 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_5 + threshold: DerivedMetaData/errorInflationFactor5 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor6 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_6 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_6 + threshold: DerivedMetaData/errorInflationFactor6 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor7 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_7 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_7 + threshold: DerivedMetaData/errorInflationFactor7 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor8 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_8 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_8 + threshold: DerivedMetaData/errorInflationFactor8 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor9 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_9 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_9 + threshold: DerivedMetaData/errorInflationFactor9 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor10 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_10 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_10 + threshold: DerivedMetaData/errorInflationFactor10 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor11 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_11 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_11 + threshold: DerivedMetaData/errorInflationFactor11 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor12 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_12 + coefs: + - 3.6 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_12 + threshold: DerivedMetaData/errorInflationFactor12 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor13 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_13 + coefs: + - 1.905 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_13 + threshold: DerivedMetaData/errorInflationFactor13 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor14 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_14 + coefs: + - 2.16 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_14 + threshold: DerivedMetaData/errorInflationFactor14 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor15 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_15 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_15 + threshold: DerivedMetaData/errorInflationFactor15 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor16 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_16 + coefs: + - 2.01 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_16 + threshold: DerivedMetaData/errorInflationFactor16 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor17 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_17 + coefs: + - 2.61 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_17 + threshold: DerivedMetaData/errorInflationFactor17 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor18 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_18 + coefs: + - 5.625 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_18 + threshold: DerivedMetaData/errorInflationFactor18 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor19 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_19 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_19 + threshold: DerivedMetaData/errorInflationFactor19 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor20 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_20 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_20 + threshold: DerivedMetaData/errorInflationFactor20 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor21 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_21 + coefs: + - 3.0 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_21 + threshold: DerivedMetaData/errorInflationFactor21 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor22 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_22 + coefs: + - 9.6 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_22 + threshold: DerivedMetaData/errorInflationFactor22 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor23 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_23 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_23 + threshold: DerivedMetaData/errorInflationFactor23 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor24 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_24 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_24 + threshold: DerivedMetaData/errorInflationFactor24 + absolute threshold: 6.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: ssmis_f17 + get values: + time interpolation: linear +model: + name: PSEUDO + tstep: PT1H + filetype: cube sphere history + provider: geos + compute edge pressure from surface pressure: true + max allowable geometry difference: 0.001 + datapath: cycle_dir + filenames: + - bkg.%yyyy%mm%ddT%hh%MM%ssZ.nc4 + - fv3-jedi/bkg/geos.crtmsrf.91.nc4 + field io names: *id017 +forecast length: PT6H diff --git a/src/swell/test/jedi_configs/jedi_localensembleda_config.yaml b/src/swell/test/jedi_configs/jedi_localensembleda_config.yaml new file mode 100644 index 000000000..92964d5b5 --- /dev/null +++ b/src/swell/test/jedi_configs/jedi_localensembleda_config.yaml @@ -0,0 +1,9498 @@ +geometry: + fms initialization: + namelist filename: ./fv3-jedi/fv3files/fmsmpp.nml + field table filename: ./fv3-jedi/fv3files/field_table_gmao + akbk: ./fv3-jedi/fv3files/akbk72.nc4 + layout: + - 4 + - 4 + npx: '91' + npy: '91' + npz: '72' +time window: + begin: '2023-10-09T21:00:00Z' + end: '2023-10-10T03:00:00Z' + bound to include: begin +increment variables: +- eastward_wind +- northward_wind +- air_temperature +- air_pressure_at_surface +- air_pressure_levels +- water_vapor_mixing_ratio_wrt_moist_air +- cloud_liquid_ice +- cloud_liquid_water +- mole_fraction_of_ozone_in_air +background: + date: '2023-10-09T21:00:00Z' + members from template: + template: + datetime: '2023-10-10T00:00:00Z' + filetype: cube sphere history + provider: geos + compute edge pressure from surface pressure: true + max allowable geometry difference: 0.001 + datapath: . + filenames: + - ebkg/mem%mem%/geos.mem%mem%.%yyyy%mm%dd_%hh%MM%ssz.nc4 + - fv3-jedi/bkg/geos.crtmsrf.91.nc4 + state variables: + - eastward_wind + - northward_wind + - air_temperature + - air_pressure_at_surface + - air_pressure_levels + - water_vapor_mixing_ratio_wrt_moist_air + - cloud_liquid_ice + - cloud_liquid_water + - rain_water + - snow_water + - mole_fraction_of_ozone_in_air + - geopotential_height_times_gravity_at_surface + - initial_mass_fraction_of_large_scale_cloud_condensate + - initial_mass_fraction_of_convective_cloud_condensate + - convective_cloud_area_fraction + - fraction_of_ocean + - fraction_of_land + - isotropic_variance_of_filtered_topography + - surface_velocity_scale + - surface_buoyancy_scale + - planetary_boundary_layer_height + - surface_exchange_coefficient_for_momentum + - surface_exchange_coefficient_for_heat + - surface_exchange_coefficient_for_moisture + - KCBL_before_moist + - surface_temp_before_moist + - lower_index_where_Kh_greater_than_2 + - upper_index_where_Kh_greater_than_2 + - fraction_of_lake + - fraction_of_ice + - vtype + - stype + - vfrac + - sheleg + - skin_temperature_at_surface + - soilt + - soilm + - eastward_wind_at_surface + - northward_wind_at_surface + field io names: + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_at_surface: ps + air_pressure_levels: pe + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + rain_water: qr + snow_water: qs + mole_fraction_of_ozone_in_air: o3ppmv + geopotential_height_times_gravity_at_surface: phis + initial_mass_fraction_of_large_scale_cloud_condensate: qls + initial_mass_fraction_of_convective_cloud_condensate: qcn + convective_cloud_area_fraction: cfcn + fraction_of_ocean: frocean + fraction_of_land: frland + isotropic_variance_of_filtered_topography: varflt + surface_velocity_scale: ustar + surface_buoyancy_scale: bstar + planetary_boundary_layer_height: zpbl + surface_exchange_coefficient_for_momentum: cm + surface_exchange_coefficient_for_heat: ct + surface_exchange_coefficient_for_moisture: cq + KCBL_before_moist: kcbl + surface_temp_before_moist: tsm + lower_index_where_Kh_greater_than_2: khl + upper_index_where_Kh_greater_than_2: khu + fraction_of_lake: frlake + fraction_of_ice: frseaice + skin_temperature_at_surface: ts + eastward_wind_at_surface: u10m + northward_wind_at_surface: v10m + pattern: '%mem%' + nmembers: 16 + zero padding: 3 +observations: + get values: + variable change: + variable change name: Model2GeoVaLs + hydrometeor effective radii method: gsi + tropopause pressure method: gsi + observers: + - obs space: + name: Aircraft Temperature + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/aircraft_temperature.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.aircraft_temperature.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - airTemperature + distribution: + name: Halo + halo size: 5000000.0 + obs bias: + input file: cycle_dir/aircraft_temperature.20231009T210000Z.acftbias + output file: cycle_dir/aircraft_temperature.20231009T210000Z.acftbias + bc by record: true + static bc: + predictors: + - name: constant + - name: obsMetadataPredictor + variable: instantaneousAltitudeRate + - name: obsMetadataPredictor + variable: instantaneousAltitudeRate + order: 2 + covariance: + minimal required obs number: 3 + variance range: + - 1e-06 + - 1.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/aircraft_temperature.20231009T210000Z.acftbias_cov + inflation: + ratio: 1.005 + ratio for small dataset: 2.0 + obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - airTemperature + linear obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - airTemperature + obs filters: + - filter: Variable Assignment + where: + - variable: + name: ObsType/airTemperature + is_in: 130 + assignments: + - name: MetaData/stationIdentification + value: 'KX130 ' + - filter: Variable Assignment + where: + - variable: + name: MetaData/instantaneousAltitudeRate + minvalue: 50.0 + assignments: + - name: MetaData/instantaneousAltitudeRate + value: 0.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 2.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 2.5 + - 2.3 + - 2.1 + - 1.9 + - 1.7 + where: + - variable: + name: ObsType/airTemperature + is_in: 130 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 1.4706 + - 1.3529 + - 1.2353 + - 1.1176 + - 1.0 + where: + - variable: + name: ObsType/airTemperature + is_in: 131,133 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + errors: + - 1.5 + - 1.3 + - 1.1 + - 0.9 + - 0.8 + - 0.8 + - 0.75 + - 0.7 + - 0.7 + - 0.75 + - 0.85 + - 1.3 + - 1.5 + - 1.5 + where: + - variable: + name: ObsType/airTemperature + is_in: 132 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 60000 + - 40000 + errors: + - 1.5 + - 1.35 + - 1.25 + - 1.1 + - 1.0 + - 1.3 + - 1.7 + where: + - variable: + name: ObsType/airTemperature + is_in: 134 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + errors: + - 1.4706 + - 1.3529 + - 1.2353 + - 1.1176 + - 1000000000.0 + where: + - variable: + name: ObsType/airTemperature + is_in: 135 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreQC/airTemperature + is_in: 4-15 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: + name: ObsType/airTemperature + is_in: 134, 135 + action: + name: passivate + defer to post: true + - filter: Perform Action + action: + name: inflate error + inflation factor: 10.0 + filter variables: + - name: airTemperature + where: + - variable: + name: MetaData/pressure + maxvalue: 110000 + minvalue: 50000 + - variable: + name: ObsType/airTemperature + is_in: 130 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + observation_name: aircraft_temperature + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: Aircraft Wind + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/aircraft_wind.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.aircraft_wind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + obs post filters: + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: PreQC/windEastward + is_in: 4-15 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: + name: ObsType/windEastward + is_in: 234, 235 + action: + name: passivate + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 100000 + - 95000 + - 80000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + errors: + - 1.4 + - 1.5 + - 1.6 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.3 + - 2.6 + - 2.8 + - 3.0 + - 3.2 + - 2.7 + - 2.4 + - 2.1 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.6 + where: + - variable: + name: ObsType/windEastward + is_in: 230 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.0 + where: + - variable: + name: ObsType/windEastward + is_in: 231 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 2.5 + where: + - variable: + name: ObsType/windEastward + is_in: 233 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error parameter: 3.0 + where: + - variable: + name: ObsType/windEastward + is_in: 234, 235 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + errors: + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + where: + - variable: + name: ObsType/windEastward + is_in: 232 + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - windEastward + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + inflate variables: + - windNorthward + pressure: MetaData/pressure + distance threshold: 60000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + surface_obs: false + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + cgross: + - 6.0 + - 6.5 + - 7.0 + - 7.5 + - 7.5 + - 7.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + cgross: + - 6.0 + - 6.5 + - 7.0 + - 7.5 + - 7.5 + - 7.5 + error_min: + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + - 6.1 + variable: windNorthward + action: + name: reject + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + defer to post: true + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + defer to post: true + observation_name: aircraft_wind + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: Radiosondes + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sondes.20231009T210000Z.nc4 + missing file action: error + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sondes.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + - name: VertInterp + variables: + - name: airTemperature + - name: virtualTemperature + - name: specificHumidity + - 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 + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + hofx scaling field: SurfaceWindScalingPressure + hofx scaling field group: DerivedVariables + - name: VertInterp + variables: + - name: airTemperature + - name: virtualTemperature + - name: specificHumidity + - name: Identity + variables: + - name: stationPressure + obs prior filters: + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + obs post filters: + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 60000 + - 55000 + errors: + - 100 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: PreUseFlag/specificHumidity + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + action: + name: assign error + error function: + name: ObsFunction/ObsErrorSatSpecHumidity + options: + variable: specificHumidity + input_error_name: GsiInputObsError + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: specificHumidity + inflation factor: 8.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/specificHumidity + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 1.3 + - 1.1 + - 0.9 + - 0.7 + - 0.6 + - 0.6 + - 0.55 + - 0.5 + - 0.5 + - 0.55 + - 0.65 + - 1.1 + - 1.2 + - 1.2 + - 1.4 + - 1.6 + - 1.85 + - 2.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/airTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 70000 + - 65000 + - 60000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 1.3 + - 1.1 + - 0.9 + - 0.7 + - 0.6 + - 0.6 + - 0.55 + - 0.5 + - 0.5 + - 0.55 + - 0.65 + - 1.1 + - 1.2 + - 1.2 + - 1.4 + - 1.6 + - 1.85 + - 2.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - virtualTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: GsiAdjustObsError/virtualTemperature + where: + - variable: + name: GsiAdjustObsError/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: virtualTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/virtualTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/virtualTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/virtualTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/virtualTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: PreUseFlag/virtualTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: TempObsErrorData/virtualTemperature + where: + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: virtualTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + - 3.3 + - 3.5 + - 3.7 + - 3.9 + - 4.1 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 220,221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 220,221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 220 + - 221 + cgross: + - 8.0 + - 8.0 + error_min: + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 220 + - 221 + cgross: + - 8.0 + - 8.0 + error_min: + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + variable: windNorthward + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + test variables: + - name: ObsErrorData/windEastward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windEastward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windEastward + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windNorthward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windNorthward + defer to post: true + - filter: Bounds Check + filter variables: + - name: windNorthward + test variables: + - name: ObsErrorData/windNorthward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 220 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 220 + defer to post: true + observation_name: sondes + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: gnssrobndnbam + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/gps.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - sequenceNumber + sort variable: impactHeightRO + sort order: ascending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.gps.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - bendingAngle + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + vertlayer: full + sr_steps: 2 + super_ref_qc: NBAM + obs filters: + - filter: BlackList + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 41,265,266,421,440,724,725,726,727,728,729 + - filter: Perform Action + filter variables: + - name: bendingAngle + where: + - variable: PreUseFlag/bendingAngle + minvalue: 1 + action: + name: reject + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266,267,268,269 + test variables: + - name: MetaData/impactHeightRO + maxvalue: 45000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 3-5 + test variables: + - name: MetaData/impactHeightRO + minvalue: 8000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 267,268,269 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 401 + test variables: + - name: MetaData/impactHeightRO + minvalue: 5000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 267,268,269 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 402-999 + test variables: + - name: MetaData/impactHeightRO + minvalue: 9000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 401 + test variables: + - name: MetaData/impactHeightRO + minvalue: 5000.1 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266 + - variable: + name: MetaData/satelliteConstellationRO + is_in: 402-999 + test variables: + - name: MetaData/impactHeightRO + minvalue: 8000.1 + action: + name: reject + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: inflate error + inflation factor: 2.0 + where: + - variable: MetaData/satelliteIdentifier + is_in: 267,268,269 + - filter: Variable Assignment + assignments: + - name: JediAdjustObsError/bendingAngle + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/bendingAngle + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error parameter: 1.0 + where: + - variable: + name: JediAdjustObsError/bendingAngle + maxvalue: 1.0 + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + - variable: + name: MetaData/satelliteIdentifier + is_in: 3,5,41,42,43,44,267,268,269,440,421,724,725,726,727,728,729, 750,751,752,753,754,755,821,825 + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error parameter: 10.0 + where: + - variable: + name: JediAdjustObsError/bendingAngle + minvalue: 10.0 + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: bendingAngle + threshold: 5 + action: + name: reject + defer to post: true + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: assign error + error function: JediAdjustObsError/bendingAngle + where: + - variable: + name: JediAdjustObsError/bendingAngle + value: is_valid + defer to post: true + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + defer to post: true + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate_GEOS + defer to post: true + observation_name: gps + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: AMSU-A AQUA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_aqua.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_aqua.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_aqua + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_aqua.20231009T210000Z.satbias.nc4 + output file: cycle_dir/amsua_aqua.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_aqua.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_aqua.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_aqua.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_aqua.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id001 + - 2.5 + - 2.0 + - 2.0 + - 0.5 + - 0.4 + - 0.4 + - 0.5 + - 0.3 + - 0.35 + - 0.35 + - 0.45 + - 1.0 + - 1.5 + - 3.75 + - 6.3 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_aqua + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_aqua + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_aqua + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_aqua + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_aqua + error parameter vector: *id001 + obserr_bound_max: + - 4.5 + - 4.5 + - 4.5 + - 3.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 3.0 + - 3.5 + - 4.5 + - 4.5 + - 4.5 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_aqua + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_aqua + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: AMSU-A NOAA-15 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n15.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n15.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n15 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n15.20231009T210000Z.satbias.nc4 + output file: cycle_dir/amsua_n15.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n15.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n15.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n15.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n15.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id002 + - 3.0 + - 2.0 + - 2.0 + - 0.6 + - 0.3 + - 0.23 + - 0.25 + - 0.275 + - 0.34 + - 0.4 + - 0.6 + - 1.0 + - 1.5 + - 5.0 + - 3.0 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n15 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n15 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n15 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n15 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n15 + error parameter vector: *id002 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n15 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n15 + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: AMSU-A NOAA-18 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n18.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n18.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n18 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n18.20231009T210000Z.satbias.nc4 + output file: cycle_dir/amsua_n18.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n18.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n18.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n18.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n18.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id003 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n18 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n18 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n18 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n18 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n18 + error parameter vector: *id003 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n18 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n18 + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: AMSU-A NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_n19.20231009T210000Z.satbias.nc4 + output file: cycle_dir/amsua_n19.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_n19.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_n19.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_n19.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_n19.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id004 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_n19 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_n19 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_n19 + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_n19 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_n19 + error parameter vector: *id004 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_n19 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_n19 + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: AMSR2 GCOM-W1 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsr2_gcom-w1.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsr2_gcom-w1.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: amsr2_gcom-w1 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsr2_gcom-w1.20231009T210000Z.satbias.nc4 + output file: cycle_dir/amsr2_gcom-w1.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsr2_gcom-w1.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsr2_gcom-w1.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsr2_gcom-w1.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsr2_gcom-w1.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 340.0 + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.999 + - variable: + name: GeoVaLs/skin_temperature_at_surface_where_sea + minvalue: 275 + - variable: + name: GeoVaLs/wind_speed_at_surface + maxvalue: 12 + - variable: + name: MetaData/latitude + minvalue: -60.0 + maxvalue: 60.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/TotalColumnVaporGuess + minvalue: 10.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/SunGlintAngle + minvalue: 20.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: &id005 + - 0.48 + - 3.0737 + - 0.7433 + - 3.643 + - 3.5304 + - 4.427 + - 5.1448 + - 5.0785 + - 4.9763 + - 9.3215 + - 2.5789 + - 5.5274 + - 0.6641 + - 1.3674 + clwret_types: + - ObsValue + maxvalue: 1.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id005 + clwret_types: + - HofX + maxvalue: 1.0 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: None + value: + name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id005 + clwret_types: + - ObsValue + reference: + name: ObsFunction/CLWRetMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id005 + clwret_types: + - HofX + minvalue: -0.5 + maxvalue: 0.5 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch18v: 7 + clwret_ch18h: 8 + clwret_ch36v: 11 + clwret_ch36h: 12 + sys_bias: *id005 + clwret_types: + - ObsValue + - HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.1 + - 0.1 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 0.6 + - 0.6 + - 0.6 + - 0.6 + - 0.6 + - 0.5 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + err0: + - 0.8 + - 0.9 + - 0.8 + - 0.9 + - 1.0 + - 1.1 + - 2.0 + - 3.5 + - 3.0 + - 4.8 + - 5.0 + - 6.0 + - 4.5 + - 6.3 + err1: + - 5.0 + - 5.0 + - 5.0 + - 5.0 + - 5.0 + - 18.5 + - 20.0 + - 40.0 + - 20.0 + - 25.0 + - 30.0 + - 30.0 + - 30.0 + - 20.0 + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: None + threshold: 2.0 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 7-10 + absolute threshold: 30 + action: + name: reject + - filter: Background Check + apply at iterations: 0, 1 + filter variables: + - name: brightnessTemperature + channels: 11-14 + absolute threshold: 50 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: amsr2_gcom-w1 + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsr2_gcom-w1 + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: ATMS NOAA-20 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/atms_n20.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.atms_n20.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: atms_n20 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/atms_n20.20231009T210000Z.satbias.nc4 + output file: cycle_dir/atms_n20.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: ATMS + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/atms_n20.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/atms_n20.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/atms_n20.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/atms_n20.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id006 + - 5.0 + - 5.0 + - 5.0 + - 3.0 + - 0.55 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 5.0 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-7,16-22 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-7,16 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: atms_n20 + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: atms_n20 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + use_biasterm: true + test_biasterm: ObsBiasTerm + sensor: atms_n20 + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: atms_n20 + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: atms_n20 + error parameter vector: *id006 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: atms_n20 + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: atms_n20 + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: ATMS NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/atms_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.atms_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: atms_npp + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/atms_npp.20231009T210000Z.satbias.nc4 + output file: cycle_dir/atms_npp.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: ATMS + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/atms_npp.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/atms_npp.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/atms_npp.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/atms_npp.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id007 + - 5.0 + - 5.0 + - 5.0 + - 3.0 + - 0.55 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.3 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 5.0 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-7,16-22 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-7,16 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: atms_npp + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: atms_npp + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + use_biasterm: true + test_biasterm: ObsBiasTerm + sensor: atms_npp + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: atms_npp + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: atms_npp + error parameter vector: *id007 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: atms_npp + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: atms_npp + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: AVHRR-3 METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_metop-b.20231009T210000Z.satbias.nc4 + output file: cycle_dir/avhrr3_metop-b.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_metop-b.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_metop-b.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_metop-b.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_metop-b.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_metop-b + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_metop-b + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_metop-b + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: AVHRR-3 NOAA-18 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_n18.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_n18.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_n18 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_n18.20231009T210000Z.satbias.nc4 + output file: cycle_dir/avhrr3_n18.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_n18.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_n18.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_n18.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_n18.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_n18 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_n18 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_n18 + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: AVHRR-3 NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/avhrr3_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.avhrr3_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: avhrr3_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/avhrr3_n19.20231009T210000Z.satbias.nc4 + output file: cycle_dir/avhrr3_n19.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/avhrr3_n19.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/avhrr3_n19.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/avhrr3_n19.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/avhrr3_n19.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.0 + - 1.08 + - 1.12 + - filter: Variable Assignment + assignments: + - name: ObsError/brightnessTemperature + channels: None + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature + channels: None + obs post filters: + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 3 + where: + - variable: + name: MetaData/solarZenithAngle + maxvalue: 88.9999 + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorWavenumIR + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 1e-05 + maxvalue: 1000.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: avhrr3_n19 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/CloudDetectMinResidualAVHRR + channels: None + options: + channels: None + use_flag: None + use_flag_clddet: + - 1 + - 1 + - 1 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + cloud detection criteria: + - 0.6 + - 0.68 + - 0.72 + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: avhrr3_n19 + obserr_demisf: + - 0.01 + - 0.02 + - 0.03 + - 0.02 + - 0.03 + obserr_dtempf: + - 0.5 + - 2.0 + - 4.0 + - 2.0 + - 4.0 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: None + options: + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.5 + - 0.04 + - 1.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_max: + - 3.0 + - 3.0 + - 3.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: avhrr3_n19 + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: Scatterometer Winds + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/scatwind.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.scatwind.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + linear obs operator: + name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + obs post filters: + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + errors: + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 290 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 290 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/ScatWindsAmbiguityCheck + maxvalue: 1e-12 + where: + - variable: + name: ObsType/windEastward + is_in: 290 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/Arithmetic + options: + variables: + - name: ObsValue/windEastward + - name: HofX/windEastward + coefs: + - 1.0 + - -1.0 + minvalue: -5.0 + maxvalue: 5.0 + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + test variables: + - name: ObsFunction/Arithmetic + options: + variables: + - name: ObsValue/windNorthward + - name: HofX/windNorthward + coefs: + - 1.0 + - -1.0 + minvalue: -5.0 + maxvalue: 5.0 + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 290 + cgross: + - 5.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 290 + cgross: + - 5.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windNorthward + action: + name: reject + defer to post: true + observation_name: scatwind + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: Surface Marine Stations + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sfcship.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sfcship.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - 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 + - name: Identity + variables: + - name: specificHumidity + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - name: Identity + variables: + - name: stationPressure + - name: specificHumidity + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + obs post filters: + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + errors: + - 100 + - 100 + - 110 + - 120 + - 120 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 0.7 + where: + - variable: ObsType/stationPressure + is_in: + - 180 + - variable: ObsSubType/stationPressure + is_in: + - 0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: 180,183 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: 180,183 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 1.75 + - 1.95 + - 2.25 + - 1.0 + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - airTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/airTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: GsiAdjustObsError/airTemperature + where: + - variable: + name: GsiAdjustObsError/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: airTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/airTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/airTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/airTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/airTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: PreUseFlag/airTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: airTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/airTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: assign error + error function: TempObsErrorData/airTemperature + where: + - variable: + name: TempObsErrorData/airTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: airTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: airTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: airTemperature + test variables: + - name: ObsErrorData/airTemperature + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 1.75 + - 1.95 + - 2.25 + - 1.0 + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorConventional + options: + test QCflag: PreQC + test QCthreshold: 3 + inflate variables: + - virtualTemperature + pressure: MetaData/pressure + distance threshold: -1.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 7 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: MetaData/pressure + minvalue: 0 + maxvalue: 9999 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: GsiAdjustObsError/virtualTemperature + where: + - variable: + name: GsiAdjustObsError/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: virtualTemperature + inflation factor: 8.0 + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/virtualTemperature + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/virtualTemperature + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 1.3 + where: + - variable: + name: TempObsErrorData/virtualTemperature + maxvalue: 1.3 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error parameter: 5.6 + where: + - variable: + name: TempObsErrorData/virtualTemperature + minvalue: 5.6 + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: PreUseFlag/virtualTemperature + minvalue: 1 + action: + name: reject + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 7.0 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: virtualTemperature + threshold: 4.9 + action: + name: reject + where: + - variable: PreQC/virtualTemperature + is_in: + - 3 + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: assign error + error function: TempObsErrorData/virtualTemperature + where: + - variable: + name: TempObsErrorData/virtualTemperature + value: is_valid + defer to post: true + - filter: Perform Action + filter variables: + - name: virtualTemperature + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: virtualTemperature + defer to post: true + - filter: Bounds Check + filter variables: + - name: virtualTemperature + test variables: + - name: ObsErrorData/virtualTemperature + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: PreUseFlag/specificHumidity + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 183 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 183 + action: + name: reject + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: + - 180 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorSatSpecHumidity + options: + variable: specificHumidity + input_error_name: GsiInputObsError + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: specificHumidity + inflation factor: 8 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: specificHumidity + threshold: 8.0 + action: + name: reject + where: + - variable: PreQC/specificHumidity + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: specificHumidity + threshold: 5.6 + action: + name: reject + where: + - variable: PreQC/specificHumidity + is_in: + - 3 + defer to post: true + - filter: BlackList + filter variables: + - name: specificHumidity + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: specificHumidity + defer to post: true + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: + - 284 + action: + name: assign error + error parameter: 100000000000.0 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: + - 284 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: ObsType/windEastward + is_in: + - 280 + action: + name: assign error + error parameter: 2.5 + - filter: Perform Action + filter variables: + - name: windEastward + - name: windNorthward + where: + - variable: ObsType/windEastward + is_in: + - 282 + action: + name: assign error + error parameter: 2.2 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + minvalue: 1 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + minvalue: 1 + action: + name: reject + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + threshold: 6.0 + action: + name: reject + where: + - variable: PreQC/windEastward + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + threshold: 4.2 + action: + name: reject + where: + - variable: PreQC/windEastward + is_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + threshold: 6.0 + action: + name: reject + where: + - variable: PreQC/windNorthward + is_not_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + threshold: 4.2 + action: + name: reject + where: + - variable: PreQC/windNorthward + is_in: + - 3 + defer to post: true + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + satwndtype: + - 280 + - 282 + - 284 + error_min: + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + cgross: + - 6.0 + - 6.0 + - 6.0 + wndtype: + - 280 + - 282 + - 284 + variable: windEastward + action: + name: reject + defer to post: true + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + satwndtype: + - 280 + - 282 + - 284 + error_min: + - 1.4 + - 1.4 + - 1.4 + error_max: + - 6.1 + - 6.1 + - 6.1 + cgross: + - 6.0 + - 6.0 + - 6.0 + wndtype: + - 280 + - 282 + - 284 + variable: windNorthward + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + defer to post: true + observation_name: sfcship + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: Surface Land Stations + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/sfc.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.sfc.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + - virtualTemperature + - airTemperature + - specificHumidity + - stationPressure + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - 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 + - name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: specificHumidity + linear obs operator: + name: Composite + components: + - name: VertInterp + variables: + - name: windEastward + - name: windNorthward + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + hofx scaling field: SurfaceWindScalingHeight + hofx scaling field group: DerivedVariables + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: airTemperature + - name: virtualTemperature + - name: Identity + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + variables: + - name: stationPressure + - name: specificHumidity + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + obs post filters: + - filter: Bounds Check + filter variables: + - name: stationPressure + minvalue: 49999 + action: + name: reject + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: PreUseFlag/stationPressure + minvalue: 1 + action: + name: reject + - filter: RejectList + where: + - variable: + name: PreQC/stationPressure + is_in: 4-15 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 181 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 70000 + - 65000 + - 60000 + - 55000 + errors: + - 100 + - 120 + - 120 + - 100000000000.0 + - filter: Perform Action + filter variables: + - name: stationPressure + where: + - variable: ObsType/stationPressure + is_in: + - 187 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: ObsValue/stationPressure + xvals: + - 80000 + - 75000 + - 70000 + - 65000 + errors: + - 100 + - 130 + - 160 + - 100000000000.0 + - filter: Perform Action + action: + name: inflate error + inflation factor: 1.2 + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - 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 + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/stationPressure + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/stationPressure + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: assign error + error parameter: 300 + where: + - variable: + name: TempObsErrorData/stationPressure + minvalue: 300 + - variable: + name: TempObsErrorData/stationPressure + value: is_valid + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 4.0 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: 187 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.8 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: 187 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 3.6 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_not_in: + - 3 + - variable: ObsType/stationPressure + is_in: + - 181 + defer to post: true + - filter: Background Check + filter variables: + - name: stationPressure + threshold: 2.52 + action: + name: reject + where: + - variable: PreQC/stationPressure + is_in: + - 3 + - variable: ObsType/stationPressure + is_in: + - 181 + defer to post: true + - 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 + - filter: Perform Action + filter variables: + - name: stationPressure + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: false + variable: stationPressure + defer to post: true + - filter: Bounds Check + filter variables: + - name: stationPressure + test variables: + - name: ObsErrorData/stationPressure + maxvalue: 100000.0 + defer to post: true + - filter: Perform Action + filter variables: + - name: specificHumidity + where: + - variable: ObsType/specificHumidity + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: airTemperature + where: + - variable: ObsType/airTemperature + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: virtualTemperature + where: + - variable: ObsType/virtualTemperature + is_in: 181,187 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_in: 281,287 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: ObsType/windNorthward + is_in: 281,287 + action: + name: reject + observation_name: sfc + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: MHS METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_metop-b.20231009T210000Z.satbias.nc4 + output file: cycle_dir/mhs_metop-b.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_metop-b.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_metop-b.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_metop-b.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_metop-b.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_metop-b + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_metop-b + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-b + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-b + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-b + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + observation_name: mhs_metop-b + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: MHS METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_metop-c.20231009T210000Z.satbias.nc4 + output file: cycle_dir/mhs_metop-c.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_metop-c.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_metop-c.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_metop-c.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_metop-c.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_metop-c + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_metop-c + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-c + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_metop-c + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_metop-c + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + observation_name: mhs_metop-c + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: MHS NOAA-19 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mhs_n19.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mhs_n19.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + Clouds: + - Water + - Ice + - Rain + - Snow + Cloud_Fraction: 1.0 + Cloud_Seeding: true + obs options: + Sensor_ID: mhs_n19 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Clouds: + - Water + - Ice + - Rain + - Snow + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/mhs_n19.20231009T210000Z.satbias.nc4 + output file: cycle_dir/mhs_n19.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/mhs_n19.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/mhs_n19.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/mhs_n19.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/mhs_n19.20231009T210000Z.satbias_cov.nc4 + obs filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 50.0 + maxvalue: 550.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + sensor: mhs_n19 + use_flag: None + minvalue: 1e-12 + action: + name: reject + - filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: MetaData/sensorScanPosition + minvalue: 10 + maxvalue: 81 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 1-3 + where: + - variable: + name: MetaData/latitude + minvalue: -25.0 + maxvalue: -10.0 + - variable: + name: MetaData/longitude + minvalue: 260.0 + maxvalue: 300.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.01 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + - variable: + name: GeoVaLs/average_surface_temperature_within_field_of_view + maxvalue: 275 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + test_bias: ObsBiasData + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: mhs_n19 + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_n19 + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 700.0 + - 700.0 + - 30.0 + - 50.0 + - 60.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: mhs_n19 + channels: None + threshold: 2.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: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: mhs_n19 + obserr_function: + name: ObsFunction/ObsErrorModelRamp + channels: None + options: + channels: None + xvar: + name: ObsFunction/CLWRetSymmetricMW + options: + clwret_ch89v: 1 + clwret_ch166v: 2 + clwret_types: + - ObsValue + - HofX + bias_application: HofX + x0: + - 0.05 + - 0.05 + - 0.05 + - 0.05 + - 0.05 + x1: + - 25.0 + - 25.0 + - 25.0 + - 25.0 + - 25.0 + err0: + - 300.0 + - 300.0 + - 2.5 + - 2.0 + - 2.0 + err1: + - 350.0 + - 350.0 + - 15.0 + - 25.0 + - 30.0 + obserr_bound_max: + - 5.0 + - 5.0 + - 10.0 + - 10.0 + - 10.0 + action: + name: reject + observation_name: mhs_n19 + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: MLS55 AURA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/mls55_aura.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.mls55_aura.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneProfile + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: VertInterp + vertical coordinate: air_pressure + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + obs filters: + - filter: Bounds Check + filter variables: + - name: ozoneProfile + minvalue: 0 + maxvalue: 10000 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneProfile + threshold: 5.0 + action: + name: reject + observation_name: mls55_aura + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: OMI AURA + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/omi_aura.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.omi_aura.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneTotal + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: AtmVertInterpLay + geovals: + - mole_fraction_of_ozone_in_air + coefficients: + - 0.0078976797 + nlevels: + - 1 + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + obs filters: + - filter: Perform Action + filter variables: + - name: ozoneTotal + action: + name: assign error + error parameter: 5.0 + - filter: Bounds Check + filter variables: + - name: ozoneTotal + minvalue: 0 + maxvalue: 1000 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/solarZenithAngle + maxvalue: 84.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/sensorScanPosition + minvalue: 3 + maxvalue: 24 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneTotal + threshold: 5.0 + action: + name: reject + observation_name: omi_aura + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: OMPSNM NPP + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/ompsnm_npp.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.ompsnm_npp.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - ozoneTotal + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: AtmVertInterpLay + geovals: + - mole_fraction_of_ozone_in_air + coefficients: + - 0.0078976797 + nlevels: + - 1 + obs filters: + - filter: Perform Action + filter variables: + - name: ozoneTotal + action: + name: assign error + error parameter: 5.216 + - filter: Bounds Check + filter variables: + - name: ozoneTotal + minvalue: 0 + maxvalue: 1000 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: ozoneTotal + test variables: + - name: MetaData/solarZenithAngle + maxvalue: 84.0 + action: + name: reject + - filter: Background Check + filter variables: + - name: ozoneTotal + threshold: 5.0 + action: + name: reject + observation_name: ompsnm_npp + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: Pilot Balloon + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/pibal.20231009T210000Z.nc4 + missing file action: warn + obsgrouping: + group variables: + - stationIdentification + - releaseTime + sort variable: pressure + sort order: descending + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.pibal.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - windEastward + - windNorthward + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + vertical coordinate backup: air_pressure + observation vertical coordinate group backup: MetaData + observation vertical coordinate backup: pressure + interpolation method backup: log-linear + hofx scaling field: SurfaceWindScalingCombined + hofx scaling field group: DerivedVariables + linear obs operator: + name: Composite + components: + - name: VertInterp + observation alias file: experiment_root/experiment_id/configuration/jedi/interfaces/geos_atmosphere/observations/obsop_name_map.yaml + vertical coordinate: geopotential_height + observation vertical coordinate group: DerivedVariables + observation vertical coordinate: adjustedHeight + interpolation method: linear + vertical coordinate backup: air_pressure + observation vertical coordinate group backup: MetaData + observation vertical coordinate backup: pressure + interpolation method backup: log-linear + hofx scaling field: SurfaceWindScalingCombined + hofx scaling field group: DerivedVariables + obs pre filters: + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: ObsType/windEastward + is_not_in: 221 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: ObsType/windNorthward + is_not_in: 221 + action: + name: reject + obs prior filters: + - filter: Variable Transforms + Transform: AdjustedHeightCoordinate + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingHeight + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingPressure + SkipWhenNoObs: false + - filter: Variable Transforms + Transform: SurfaceWindScalingCombined + SkipWhenNoObs: false + obs post filters: + - filter: Bounds Check + filter variables: + - name: windEastward + - name: windNorthward + minvalue: -135 + maxvalue: 135 + action: + name: assign error + error function: + name: ObsFunction/ObsErrorModelStepwiseLinear + options: + xvar: + name: MetaData/pressure + xvals: + - 110000 + - 105000 + - 100000 + - 95000 + - 90000 + - 85000 + - 80000 + - 75000 + - 70000 + - 65000 + - 60000 + - 55000 + - 50000 + - 45000 + - 40000 + - 35000 + - 30000 + - 25000 + - 20000 + - 15000 + - 10000 + - 7500 + - 5000 + - 4000 + - 3000 + - 2000 + - 1000 + - 500 + - 400 + - 300 + - 200 + - 100 + - 0 + errors: + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.5 + - 1.6 + - 1.7 + - 1.8 + - 1.9 + - 2.0 + - 2.1 + - 2.2 + - 2.2 + - 2.3 + - 2.3 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.4 + - 2.5 + - 2.7 + - 2.9 + - 3.1 + - 3.3 + - 3.5 + - 3.7 + - 3.9 + - 4.1 + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: PreUseFlag/windEastward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: PreUseFlag/windNorthward + is_in: 100 + action: + name: reject + - filter: Perform Action + filter variables: + - name: windEastward + action: + name: assign error + error function: GsiAdjustObsError/windEastward + where: + - variable: + name: GsiAdjustObsError/windEastward + value: is_valid + - filter: Perform Action + filter variables: + - name: windNorthward + action: + name: assign error + error function: GsiAdjustObsError/windNorthward + where: + - variable: + name: GsiAdjustObsError/windNorthward + value: is_valid + - filter: Perform Action + filter variables: + - name: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windEastward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Perform Action + filter variables: + - name: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 221 + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorPressureCheck + options: + variable: windNorthward + inflation factor: 4.0 + adjusted_error_name: GsiAdjustObsError + geovar_sfc_geomz: height_above_mean_sea_level_at_surface + - filter: Background Check + filter variables: + - name: windEastward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 221 + cgross: + - 8.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windEastward + action: + name: reject + - filter: Background Check + filter variables: + - name: windNorthward + function absolute threshold: + - name: ObsFunction/WindsSPDBCheck + options: + wndtype: + - 221 + cgross: + - 8.0 + error_min: + - 1.4 + error_max: + - 6.1 + variable: windNorthward + action: + name: reject + - filter: Bounds Check + filter variables: + - name: windEastward + test variables: + - name: ObsErrorData/windEastward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windEastward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windEastward + defer to post: true + - filter: Variable Assignment + assignments: + - name: TempObsErrorData/windNorthward + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/windNorthward + defer to post: true + - filter: Bounds Check + filter variables: + - name: windNorthward + test variables: + - name: ObsErrorData/windNorthward + maxvalue: 100.0 + action: + name: reject + defer to post: true + - filter: BlackList + filter variables: + - name: windEastward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windEastward + where: + - variable: + name: ObsType/windEastward + is_in: 221 + defer to post: true + - filter: BlackList + filter variables: + - name: windNorthward + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorDuplicateCheck + options: + use_air_pressure: true + variable: windNorthward + where: + - variable: + name: ObsType/windNorthward + is_in: 221 + defer to post: true + observation_name: pibal + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: ssmis_f17 + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/ssmis_f17.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.ssmis_f17.20231009T210000Z.nc4 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + io pool: + max pool size: 6 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs options: + Sensor_ID: ssmis_f17 + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + obs bias: + input file: cycle_dir/ssmis_f17.20231009T210000Z.satbias.nc4 + output file: cycle_dir/ssmis_f17.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: cycle_dir/ssmis_f17.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/ssmis_f17.20231009T210000Z.tlapse.txt + - name: cosineOfLatitudeTimesOrbitNode + - name: sineOfLatitude + - name: emissivityJacobian + - name: sensorScanAngle + var_name: sensorScanPosition + order: 4 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 3 + - name: sensorScanAngle + var_name: sensorScanPosition + order: 2 + - name: sensorScanAngle + var_name: sensorScanPosition + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/ssmis_f17.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/ssmis_f17.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: + - 1.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 1.0 + - 1.0 + - 3.0 + - 3.0 + - 3.0 + - 3.0 + - 2.4 + - 1.27 + - 1.44 + - 3.0 + - 1.34 + - 1.74 + - 3.75 + - 3.0 + - 3.0 + - 2.0 + - 6.4 + - 1.0 + - 1.0 + obs post filters: + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + absolute threshold: 3.5 + remove bias correction: true + where: + - variable: + name: GeoVaLs/water_area_fraction + minvalue: 0.99 + action: + name: reject + - filter: RejectList + filter variables: + - name: brightnessTemperature + channels: None + where: + - variable: + name: GeoVaLs/geopotential_height_at_surface + minvalue: 2000.0 + min_exclusive: true + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: RejectList + filter variables: + - name: brightnessTemperature + channels: 1-3,8-18 + where: + - variable: + name: GeoVaLs/land_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/ice_area_fraction + maxvalue: 0.99 + max_exclusive: true + - variable: + name: GeoVaLs/surface_snow_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 1-2, 12-16 + reference: ObsValue/brightnessTemperature_2 + value: HofX/brightnessTemperature_2 + minvalue: -1.5 + maxvalue: 1.5 + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + absolute threshold: 3.5 + remove bias correction: true + where: + - variable: + name: GeoVaLs/water_area_fraction + maxvalue: 0.99 + max_exclusive: true + action: + name: reject + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 9 + reference: ObsValue/brightnessTemperature_9 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.485934 + - 0.485934 + - 0.473806 + - -0.473806 + intercept: 271.252327 + maxvalue: 2 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 10 + reference: ObsValue/brightnessTemperature_10 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.413688 + - 0.413688 + - 0.361549 + - -0.361549 + intercept: 272.280341 + maxvalue: 2 + - filter: Difference Check + filter variables: + - name: brightnessTemperature + channels: 11 + reference: ObsValue/brightnessTemperature_11 + value: + name: ObsFunction/Arithmetic + options: + variables: + - name: HofX/brightnessTemperature_17 + - name: ObsBiasData/brightnessTemperature_17 + - name: HofX/brightnessTemperature_8 + - name: ObsBiasData/brightnessTemperature_8 + coefs: + - -0.400882 + - 0.400882 + - 0.27051 + - -0.27051 + intercept: 278.824902 + maxvalue: 2 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: None + options: + channels: None + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: ssmis_f17 + obserr_demisf: + - 0.01 + - 0.01 + - 0.01 + - 0.01 + - 0.01 + obserr_dtempf: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor1 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_1 + coefs: + - 2.25 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_1 + threshold: DerivedMetaData/errorInflationFactor1 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor2 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_2 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_2 + threshold: DerivedMetaData/errorInflationFactor2 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor3 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_3 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_3 + threshold: DerivedMetaData/errorInflationFactor3 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor4 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_4 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_4 + threshold: DerivedMetaData/errorInflationFactor4 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor5 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_5 + coefs: + - 0.75 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_5 + threshold: DerivedMetaData/errorInflationFactor5 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor6 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_6 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_6 + threshold: DerivedMetaData/errorInflationFactor6 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor7 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_7 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_7 + threshold: DerivedMetaData/errorInflationFactor7 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor8 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_8 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_8 + threshold: DerivedMetaData/errorInflationFactor8 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor9 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_9 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_9 + threshold: DerivedMetaData/errorInflationFactor9 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor10 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_10 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_10 + threshold: DerivedMetaData/errorInflationFactor10 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor11 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_11 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_11 + threshold: DerivedMetaData/errorInflationFactor11 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor12 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_12 + coefs: + - 3.6 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_12 + threshold: DerivedMetaData/errorInflationFactor12 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor13 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_13 + coefs: + - 1.905 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_13 + threshold: DerivedMetaData/errorInflationFactor13 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor14 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_14 + coefs: + - 2.16 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_14 + threshold: DerivedMetaData/errorInflationFactor14 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor15 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_15 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_15 + threshold: DerivedMetaData/errorInflationFactor15 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor16 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_16 + coefs: + - 2.01 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_16 + threshold: DerivedMetaData/errorInflationFactor16 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor17 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_17 + coefs: + - 2.61 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_17 + threshold: DerivedMetaData/errorInflationFactor17 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor18 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_18 + coefs: + - 5.625 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_18 + threshold: DerivedMetaData/errorInflationFactor18 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor19 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_19 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_19 + threshold: DerivedMetaData/errorInflationFactor19 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor20 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_20 + coefs: + - 4.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_20 + threshold: DerivedMetaData/errorInflationFactor20 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor21 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_21 + coefs: + - 3.0 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_21 + threshold: DerivedMetaData/errorInflationFactor21 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor22 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_22 + coefs: + - 9.6 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_22 + threshold: DerivedMetaData/errorInflationFactor22 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor23 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_23 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_23 + threshold: DerivedMetaData/errorInflationFactor23 + absolute threshold: 6.0 + action: + name: reject + - filter: Variable Assignment + assignments: + - name: DerivedMetaData/errorInflationFactor24 + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsErrorData/brightnessTemperature_24 + coefs: + - 1.5 + exponents: + - -1 + - filter: Background Check + filter variables: + - name: brightnessTemperature_24 + threshold: DerivedMetaData/errorInflationFactor24 + absolute threshold: 6.0 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: ssmis_f17 + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: AMSU-A METOP-B + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_metop-b.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_metop-b.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_metop-b + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_metop-b.20231009T210000Z.satbias.nc4 + output file: cycle_dir/amsua_metop-b.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_metop-b.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_metop-b.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_metop-b.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_metop-b.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id008 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_metop-b + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_metop-b + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_metop-b + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_metop-b + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_metop-b + error parameter vector: *id008 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_metop-b + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_metop-b + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 + - obs space: + name: AMSU-A METOP-C + obsdatain: + engine: + type: H5File + obsfile: cycle_dir/amsua_metop-c.20231009T210000Z.nc4 + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: cycle_dir/experiment_id.amsua_metop-c.20231009T210000Z.nc4 + io pool: + max pool size: 6 + simulated variables: + - brightnessTemperature + channels: None + distribution: + name: Halo + halo size: 5000000.0 + obs operator: + name: CRTM + Absorbers: + - H2O + - O3 + - CO2 + obs options: + Sensor_ID: amsua_metop-c + EndianType: little_endian + CoefficientPath: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1// + linear obs operator: + Absorbers: + - H2O + - O3 + Surfaces: + - Water_Temperature + - Land_Temperature + - Ice_Temperature + - Snow_Temperature + obs bias: + input file: cycle_dir/amsua_metop-c.20231009T210000Z.satbias.nc4 + output file: cycle_dir/amsua_metop-c.20231009T210000Z.satbias.nc4 + static bc: + predictors: + - name: constant + - name: cloudWaterContent + sensor: AMSUA + clwdif_ch238: 1 + clwdif_ch314: 2 + - name: lapseRate + order: 2 + tlapse: cycle_dir/amsua_metop-c.20231009T210000Z.tlapse.txt + - name: lapseRate + tlapse: cycle_dir/amsua_metop-c.20231009T210000Z.tlapse.txt + - name: emissivityJacobian + - name: sensorScanAngle + order: 4 + - name: sensorScanAngle + order: 3 + - name: sensorScanAngle + order: 2 + - name: sensorScanAngle + covariance: + minimal required obs number: 20 + variance range: + - 1e-06 + - 10.0 + step size: 0.0001 + largest analysis variance: 10000.0 + prior: + input file: cycle_dir/amsua_metop-c.20231009T210000Z.satbias_cov.nc4 + inflation: + ratio: 1.1 + ratio for small dataset: 2.0 + output file: cycle_dir/amsua_metop-c.20231009T210000Z.satbias_cov.nc4 + obs prior filters: + - filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: None + action: + name: assign error + error parameter vector: &id009 + - 2.5 + - 2.0 + - 2.0 + - 0.55 + - 0.3 + - 0.23 + - 0.23 + - 0.25 + - 0.25 + - 0.35 + - 0.4 + - 0.55 + - 0.8 + - 5.0 + - 2.5 + obs post filters: + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: 1-6,15 + test variables: + - name: ObsValue/brightnessTemperature + channels: 1-6,15 + treat missing as out of bounds: true + minvalue: 100.0 + maxvalue: 500.0 + flag all filter variables if any test variable is out of bounds: true + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + minvalue: 100.0 + maxvalue: 500.0 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/HydrometeorCheckAMSUAclr + channels: None + options: + sensor: amsua_metop-c + channels: None + test_biaspredictor: cloudWaterContentPredictor + maxvalue: 0.0 + action: + name: reject + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + sensor: amsua_metop-c + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + - filter: BlackList + filter variables: + - name: brightnessTemperature + channels: None + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: None + options: + channels: None + sensor: amsua_metop-c + use_biasterm: true + test_biasterm: ObsBiasTerm + obserr_demisf: + - 0.01 + - 0.02 + - 0.015 + - 0.02 + - 0.2 + obserr_dtempf: + - 0.5 + - 2.0 + - 1.0 + - 2.0 + - 4.5 + - filter: Background Check + filter variables: + - name: brightnessTemperature + channels: None + function absolute threshold: + - name: ObsFunction/ObsErrorBoundMW + channels: None + options: + sensor: amsua_metop-c + channels: None + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: + - 25.0 + - 0.25 + - 0.04 + - 3.0 + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: None + options: + channels: None + obserr_bound_topo: + name: ObsFunction/ObsErrorFactorTopoRad + channels: None + options: + channels: None + sensor: amsua_metop-c + error parameter vector: *id009 + 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 + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/InterChannelConsistencyCheck + channels: None + options: + channels: None + use passive_bc: true + sensor: amsua_metop-c + use_flag: None + maxvalue: 1e-12 + action: + name: reject + - filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: None + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: None + options: + channels: None + use_flag: None + minvalue: 1e-12 + action: + name: reject + observation_name: amsua_metop-c + obs localizations: + - localization method: Horizontal Gaspari-Cohn + lengthscale: 1500000.0 + max nobs: 10000 +local ensemble DA: + solver: Deterministic GETKF + use linear observer: true + vertical localization: + fraction of retained variance: 0.5 + lengthscale: 1.5 + lengthscale units: logp + inflation: + rtps: 0.5 + rtpp: 0.6 + mult: 1.1 +driver: + save posterior mean: true + save posterior ensemble: false + save posterior mean increment: true + save posterior ensemble increments: false +output: + filetype: auxgrid + gridtype: latlon + filename: cycle_dir/geos.analysis.mean. + field io names: + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_levels: pe + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + mole_fraction_of_ozone_in_air: o3ppmv +output increment: + filetype: auxgrid + gridtype: latlon + filename: cycle_dir/geos.mean-inc. + field io names: + eastward_wind: ua + northward_wind: va + air_temperature: t + air_pressure_at_surface: ps + air_pressure_levels: pe + water_vapor_mixing_ratio_wrt_moist_air: q + cloud_liquid_ice: qi + cloud_liquid_water: ql + mole_fraction_of_ozone_in_air: o3ppmv diff --git a/src/swell/utilities/mock_jedi_config.py b/src/swell/utilities/mock_jedi_config.py index 480514a72..6fa7bdae1 100644 --- a/src/swell/utilities/mock_jedi_config.py +++ b/src/swell/utilities/mock_jedi_config.py @@ -16,20 +16,35 @@ # -------------------------------------------------------------------------------------------------- + def mock_jedi_config(suite: str, model: str, datetime: str, executable_type: str, - copy_to_wd: bool = False) -> str: - + copy_dir: str | None = None) -> str: + + '''Generate a mock jedi config using the settings for a particular suite. Configs are generated + in a 'dry-run' mode, without checking for existence of observations. Filepaths are replaced + with placeholders + + Parameters: + suite: String of suite within swell + model: Name of model component for the suite to run (e.g. geos_marine) + datetime: Cycle that is config is generated for (e.g. 20210701T120000Z) + executable_type: JEDI executable type (e.g. variational, hofx, fgat) + copy_dir: Directory to copy rendered file to + + Rendered file is placed under a temporary experiment directory + ''' + tempdir = tempfile.mkdtemp() override_dict = {'models': {}} override_dict['experiment_root'] = tempdir override_dict['generate_yaml_and_exit'] = True - override_dict['mock_experiment_directory'] = True + override_dict['mock_experiment'] = True override_dict['models'][model] = {'check_for_obs': False} - + create_experiment_directory(suite, method='defaults', platform='nccs_discover_sles15', override=override_dict, advanced=False, slurm=None, skip_r2d2=True) @@ -39,7 +54,12 @@ def mock_jedi_config(suite: str, task_wrapper('RenderJediObservations', experiment_yaml, datetime, model, ensemblePacket=None) - task_wrapper(f'RunJedi{executable_type.capitalize()}Executable', experiment_yaml, datetime, + if executable_type == 'localensembleda': + executable_name = 'LocalEnsembleDa' + else: + executable_name = executable_type.capitalize() + + task_wrapper(f'RunJedi{executable_name}Executable', experiment_yaml, datetime, model, ensemblePacket=None) cycle_dir = os.path.join(tempdir, f'swell-{suite}', 'run', datetime, model) @@ -47,8 +67,8 @@ def mock_jedi_config(suite: str, filename = f'jedi_{executable_type}_config.yaml' config_file = os.path.join(cycle_dir, filename) - if copy_to_wd: - new_path = os.path.join(os.getcwd(), f'jedi_{suite}_config.yaml') + if copy_dir is not None: + new_path = os.path.join(copy_dir, f'jedi_{suite}_config.yaml') shutil.copy(config_file, new_path) config_file = new_path diff --git a/src/swell/utilities/question_defaults.py b/src/swell/utilities/question_defaults.py index 46419a783..946cdc41b 100644 --- a/src/swell/utilities/question_defaults.py +++ b/src/swell/utilities/question_defaults.py @@ -135,9 +135,6 @@ class mock_experiment(SuiteQuestion): default_value: bool = False question_name: str = "mock_experiment" ask_question: bool = False - models: List[str] = mutable_field([ - "all_models" - ]) prompt: str = "Dry-run option for comparing configs." widget_type: WType = WType.BOOLEAN diff --git a/src/swell/utilities/scripts/create_mock_files.py b/src/swell/utilities/scripts/create_mock_files.py deleted file mode 100644 index f19342ac2..000000000 --- a/src/swell/utilities/scripts/create_mock_files.py +++ /dev/null @@ -1,60 +0,0 @@ -# (C) Copyright 2021- United States Government as represented by the Administrator of the -# National Aeronautics and Space Administration. All Rights Reserved. -# -# 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. - - -# -------------------------------------------------------------------------------------------------- - -from swell.utilities.mock_jedi_config import mock_jedi_config - -# -------------------------------------------------------------------------------------------------- - -defaults_dict = {} - -marine_default_datetime = '20210701T120000Z' -atmosphere_default_datetime = '20231010T000000Z' -compo_default_datetime = '20230805T1800Z' - -defaults_dict['3dvar_marine'] = {'datetime': marine_default_datetime, - 'model': 'geos_marine', - 'executable_type': 'variational'} - -defaults_dict['3dvar_marine_cycle'] = defaults_dict['3dvar_marine'].copy() - -defaults_dict['3dfgat_marine_cycle'] = {'datetime': marine_default_datetime, - 'model': 'geos_marine', - 'executable_type': 'fgat'} - -defaults_dict['3dvar_atmos'] = {'datetime': atmosphere_default_datetime, - 'model': 'geos_atmosphere', - 'executable_type': 'variational'} - -defaults_dict['3dfgat_atmos'] = {'datetime': atmosphere_default_datetime, - 'model': 'geos_atmosphere', - 'executable_type': 'variational'} - -defaults_dict['hofx'] = {'datetime': atmosphere_default_datetime, - 'model': 'geos_atmosphere', - 'executable_type': 'hofx'} - -defaults_dict['hofx_cf'] = {'datetime': compo_default_datetime, - 'model': 'geos_cf', - 'executable_type': 'hofx'} - -defaults_dict['localensembleda'] = {'datetime': atmosphere_default_datetime, - 'model': 'geos_atmosphere', - 'executable_type': 'localensembleda'} -# -------------------------------------------------------------------------------------------------- - -def create_mock_files() -> None: - for suite, defaults in defaults_dict.items(): - model = defaults['model'] - datetime = defaults['datetime'] - executable_type = defaults['executable_type'] - - mock_jedi_config(suite, model, datetime, executable_type, True) - - -# -------------------------------------------------------------------------------------------------- From 7a20636e8da061f3d550cbca55d154f8cb529d52 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Thu, 26 Mar 2026 09:18:39 -0400 Subject: [PATCH 32/38] Add script --- .../utilities/scripts/create_mock_configs.py | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/swell/utilities/scripts/create_mock_configs.py diff --git a/src/swell/utilities/scripts/create_mock_configs.py b/src/swell/utilities/scripts/create_mock_configs.py new file mode 100644 index 000000000..04d05340b --- /dev/null +++ b/src/swell/utilities/scripts/create_mock_configs.py @@ -0,0 +1,71 @@ +# (C) Copyright 2021- United States Government as represented by the Administrator of the +# National Aeronautics and Space Administration. All Rights Reserved. +# +# 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. + + +# -------------------------------------------------------------------------------------------------- + +import os + +from swell.swell_path import get_swell_path +from swell.utilities.mock_jedi_config import mock_jedi_config + +# -------------------------------------------------------------------------------------------------- + +defaults_dict = {} + +marine_default_datetime = '20210701T120000Z' +atmosphere_default_datetime = '20231010T000000Z' +compo_default_datetime = '20230805T1800Z' + +defaults_dict['3dvar_marine'] = {'datetime': marine_default_datetime, + 'model': 'geos_marine', + 'executable_type': 'variational'} + +defaults_dict['3dvar_marine_cycle'] = defaults_dict['3dvar_marine'].copy() + +defaults_dict['3dfgat_marine_cycle'] = {'datetime': marine_default_datetime, + 'model': 'geos_marine', + 'executable_type': 'fgat'} + +defaults_dict['3dvar_atmos'] = {'datetime': atmosphere_default_datetime, + 'model': 'geos_atmosphere', + 'executable_type': 'variational'} + +defaults_dict['3dfgat_atmos'] = {'datetime': atmosphere_default_datetime, + 'model': 'geos_atmosphere', + 'executable_type': 'variational'} + +defaults_dict['hofx'] = {'datetime': atmosphere_default_datetime, + 'model': 'geos_atmosphere', + 'executable_type': 'hofx'} + +defaults_dict['hofx_cf'] = {'datetime': '20230805T180000Z', + 'model': 'geos_cf', + 'executable_type': 'hofx'} + +defaults_dict['3dvar_cf'] = {'datetime': '20230805T180000Z', + 'model': 'geos_cf', + 'executable_type': 'variational'} + +defaults_dict['localensembleda'] = {'datetime': atmosphere_default_datetime, + 'model': 'geos_atmosphere', + 'executable_type': 'localensembleda'} + +# -------------------------------------------------------------------------------------------------- + + +def main() -> None: + for suite, defaults in defaults_dict.items(): + model = defaults['model'] + datetime = defaults['datetime'] + executable_type = defaults['executable_type'] + + copy_dir = os.path.join(get_swell_path(), 'test', 'jedi_configs') + + mock_jedi_config(suite, model, datetime, executable_type, copy_dir) + + +# -------------------------------------------------------------------------------------------------- From e6a8e05d03e9e86f8a045314798a4b94c4376ef3 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Thu, 26 Mar 2026 10:15:47 -0400 Subject: [PATCH 33/38] add to package data --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index a2c9b528a..415e71a29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -74,6 +74,7 @@ swell = [ 'deployment/platforms/*/*.yaml', 'suites/**', 'test/suite_tests/*.yaml', + 'test/jedi_configs/*.yaml', 'configuration/**', 'utilities/pinned_versions/*.yaml' ] From 9edbcffe6eb276085bff53a8b5d6f9b16f2e55ff Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Thu, 26 Mar 2026 14:15:34 -0400 Subject: [PATCH 34/38] Add xarray to requirements --- pyproject.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 415e71a29..759952ddc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,8 @@ dependencies = [ "h5py>=3.7.0", "flake8==6.1.0", "netCDF4", - "ruamel.yaml==0.17.16" + "ruamel.yaml==0.17.16", + "xarray==2024.7.0" ] [project.optional-dependencies] @@ -58,7 +59,7 @@ github = [ "isodate==0.6.1", "f90nml==1.4.4", "questionary==1.10.0", - "netCDF4==1.6.5", + "netCDF4==1.6.5" ] [project.urls] From 5b7bed361d091a0005f58b6989e08329cd0cc552 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Thu, 26 Mar 2026 15:50:45 -0400 Subject: [PATCH 35/38] Update mock configs --- .../jedi_configs/jedi_localensembleda_config.yaml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/swell/test/jedi_configs/jedi_localensembleda_config.yaml b/src/swell/test/jedi_configs/jedi_localensembleda_config.yaml index 92964d5b5..f68ae102a 100644 --- a/src/swell/test/jedi_configs/jedi_localensembleda_config.yaml +++ b/src/swell/test/jedi_configs/jedi_localensembleda_config.yaml @@ -9473,10 +9473,11 @@ output: filetype: auxgrid gridtype: latlon filename: cycle_dir/geos.analysis.mean. - field io names: + field io names: &id010 eastward_wind: ua northward_wind: va air_temperature: t + air_pressure_at_surface: ps air_pressure_levels: pe water_vapor_mixing_ratio_wrt_moist_air: q cloud_liquid_ice: qi @@ -9486,13 +9487,4 @@ output increment: filetype: auxgrid gridtype: latlon filename: cycle_dir/geos.mean-inc. - field io names: - eastward_wind: ua - northward_wind: va - air_temperature: t - air_pressure_at_surface: ps - air_pressure_levels: pe - water_vapor_mixing_ratio_wrt_moist_air: q - cloud_liquid_ice: qi - cloud_liquid_water: ql - mole_fraction_of_ozone_in_air: o3ppmv + field io names: *id010 From 6ffd59be038c5bcaea5bba5e4d929cbc74803295 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Mon, 30 Mar 2026 14:28:55 -0400 Subject: [PATCH 36/38] Remove print statement --- src/swell/tasks/run_jedi_variational_executable.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/swell/tasks/run_jedi_variational_executable.py b/src/swell/tasks/run_jedi_variational_executable.py index ba0c1c42d..862cf5af5 100644 --- a/src/swell/tasks/run_jedi_variational_executable.py +++ b/src/swell/tasks/run_jedi_variational_executable.py @@ -99,7 +99,6 @@ def execute(self) -> None: # Add placeholder names if mock experiment # ---------------------------------------- if self.config.mock_experiment(False): - print('MOCK EXPERIMENT') self.jedi_rendering.add_key('experiment_root', 'experiment_root') self.jedi_rendering.add_key('experiment_id', 'experiment_id') self.jedi_rendering.add_key('cycle_dir', 'cycle_dir') From 63dac865822b930b245b304aab1d13cdfd975b6c Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Mon, 30 Mar 2026 15:05:07 -0400 Subject: [PATCH 37/38] Move override file read --- src/swell/deployment/create_experiment.py | 28 +++-------------------- src/swell/swell.py | 7 +++++- src/swell/utilities/suite_utils.py | 12 ++++++++++ 3 files changed, 21 insertions(+), 26 deletions(-) diff --git a/src/swell/deployment/create_experiment.py b/src/swell/deployment/create_experiment.py index c50e3451e..f89fd3649 100644 --- a/src/swell/deployment/create_experiment.py +++ b/src/swell/deployment/create_experiment.py @@ -31,19 +31,6 @@ # -------------------------------------------------------------------------------------------------- -def read_override_file(override_path: str | None) -> dict: - - yaml = YAML(typ='safe') - - if override_path is None: - return {} - else: - with open(override_path, 'r') as f: - return yaml.load(f) - -# -------------------------------------------------------------------------------------------------- - - def clone_config( configuration: str, experiment_id: str, @@ -233,7 +220,7 @@ def create_experiment_directory( suite_config: str, method: str, platform: str, - override: str | dict, + override: dict, advanced: bool, slurm: str | None, skip_r2d2: bool @@ -247,26 +234,17 @@ def create_experiment_directory( # --------------- logger = get_logger('SwellCreateExperiment') - # Read override file - # ------------------ - if isinstance(override, str): - override_dict = read_override_file(override) - elif override is None: - override_dict = {} - else: - override_dict = override - # Specify whether to skip registering and storing in R2D2 # ------------------------------------------------------- if skip_r2d2: # Only override this if it is true, otherwise let the suite decide - override_dict['skip_r2d2'] = skip_r2d2 + override['skip_r2d2'] = skip_r2d2 # Call the experiment config and suite generation # ------------------------------------------------ experiment_dict_str = prepare_config(suite, suite_config, method, platform, - override_dict, advanced, slurm) + override, advanced, slurm) # Load the string using yaml # -------------------------- diff --git a/src/swell/swell.py b/src/swell/swell.py index 89f55a3ad..025327a8c 100644 --- a/src/swell/swell.py +++ b/src/swell/swell.py @@ -20,6 +20,7 @@ from swell.suites.all_suites import AllSuites from swell.utilities.welcome_message import write_welcome_message from swell.utilities.scripts.utility_driver import get_utilities, utility_wrapper +from swell.utilities.suite_utils import read_override_file # -------------------------------------------------------------------------------------------------- @@ -117,8 +118,12 @@ def create( """ + # Read override file + override_dict = read_override_file(override) + # Create the experiment directory - create_experiment_directory(suite, input_method, platform, override, advanced, slurm, skip_r2d2) + create_experiment_directory(suite, input_method, platform, override_dict, + advanced, slurm, skip_r2d2) # -------------------------------------------------------------------------------------------------- diff --git a/src/swell/utilities/suite_utils.py b/src/swell/utilities/suite_utils.py index 4e9c8a144..1060a8b32 100644 --- a/src/swell/utilities/suite_utils.py +++ b/src/swell/utilities/suite_utils.py @@ -11,6 +11,7 @@ import glob import os import importlib +from ruamel.yaml import YAML from swell.swell_path import get_swell_path @@ -77,3 +78,14 @@ def get_suite_tests() -> list: # -------------------------------------------------------------------------------------------------- + +def read_override_file(override_path: str | None) -> dict: + + if override_path is None: + return {} + else: + yaml = YAML(typ='safe') + with open(override_path, 'r') as f: + return yaml.load(f) + +# -------------------------------------------------------------------------------------------------- From 9a5b9959432ff9c84c99a13d33b644b50b80e612 Mon Sep 17 00:00:00 2001 From: Michael Anstett Date: Tue, 31 Mar 2026 14:40:42 -0400 Subject: [PATCH 38/38] PR review --- docs/code_tests/code_tests.md | 2 +- src/swell/test/code_tests/code_tests.py | 2 +- src/swell/test/code_tests/jedi_config_test.py | 7 +++++-- src/swell/utilities/mock_jedi_config.py | 6 +++++- src/swell/utilities/scripts/create_mock_configs.py | 4 +++- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/docs/code_tests/code_tests.md b/docs/code_tests/code_tests.md index 2dbe279a4..43e904bb2 100644 --- a/docs/code_tests/code_tests.md +++ b/docs/code_tests/code_tests.md @@ -24,4 +24,4 @@ test_cache_location: /discover/nobackup//swell-test-cache The suite creation test attempts to construct experiments for all suites within swell in a temporary directory. If one fails, try creating the suite on its own to make sure it is configured properly. Ensure all values are valid and are not filled by the templates `defer_to_model` or `defer_to_platform`. ### JEDI Config test -The JEDI config test generates mock configs for jedi executables in a dry-run mode, where obs will not be checked and placeholders will be used for experiment filepaths. These configs are compared against reference files located in `src/swell/test/jedi_configs/`, and named `jedi__config.yaml`. Any difference in values in these yamls will cause this test to fail, so ensure any differences created are intentional, then run `swell utility CreateMockConfigs` to automatically generate new reference files for all suites. These new files are placed in the `jedi_config` location in the source code. +The JEDI config test generates mock configs for jedi executables in a dry-run mode, where obs will not be checked and placeholders will be used for experiment filepaths (this can result in situations where altering some parameters will not affect the output yaml as they would in a normal experiment, such as changes to cycle times). These configs are compared against reference files located in `src/swell/test/jedi_configs/`, and named `jedi__config.yaml`. Any difference in values in these yamls will cause this test to fail, so ensure any differences created are intentional, then run `swell utility CreateMockConfigs` to automatically generate new reference files for all suites. These new files are placed in the `jedi_config` location in the source code. diff --git a/src/swell/test/code_tests/code_tests.py b/src/swell/test/code_tests/code_tests.py index 1b7b790f1..d8539004d 100644 --- a/src/swell/test/code_tests/code_tests.py +++ b/src/swell/test/code_tests/code_tests.py @@ -57,7 +57,7 @@ def code_tests() -> None: # Load Suite Creation Test test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(SuiteCreationTest)) - # Load Suite Creation Test + # Load JEDI config test test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(JEDIConfigTest)) # Create a test runner diff --git a/src/swell/test/code_tests/jedi_config_test.py b/src/swell/test/code_tests/jedi_config_test.py index adb8f5dba..0678163b4 100644 --- a/src/swell/test/code_tests/jedi_config_test.py +++ b/src/swell/test/code_tests/jedi_config_test.py @@ -14,6 +14,7 @@ from swell.swell_path import get_swell_path from swell.utilities.mock_jedi_config import mock_jedi_config from swell.utilities.scripts.create_mock_configs import defaults_dict +from swell.utilities.test_cache import get_test_cache # -------------------------------------------------------------------------------------------------- @@ -40,8 +41,10 @@ def runTest(self) -> None: datetime = defaults['datetime'] executable_type = defaults['executable_type'] + cache_location = get_test_cache() + # Create the mock jedi config - config_file = mock_jedi_config(suite, model, datetime, executable_type) + config_file = mock_jedi_config(suite, model, datetime, executable_type, cache_location) # Read the file yaml = YAML(typ='safe') @@ -60,6 +63,6 @@ def runTest(self) -> None: f'did not match comparison version {comparison_config}. ' 'Please check the file diffs. If these differences ' 'are intentional, new mock test files can be generated using ' - '`swell utility MockJediConfigs`') + '`swell utility CreateMockConfigs`') # -------------------------------------------------------------------------------------------------- diff --git a/src/swell/utilities/mock_jedi_config.py b/src/swell/utilities/mock_jedi_config.py index 6fa7bdae1..cf849a485 100644 --- a/src/swell/utilities/mock_jedi_config.py +++ b/src/swell/utilities/mock_jedi_config.py @@ -21,6 +21,7 @@ def mock_jedi_config(suite: str, model: str, datetime: str, executable_type: str, + work_dir: str | None = None, copy_dir: str | None = None) -> str: '''Generate a mock jedi config using the settings for a particular suite. Configs are generated @@ -37,7 +38,10 @@ def mock_jedi_config(suite: str, Rendered file is placed under a temporary experiment directory ''' - tempdir = tempfile.mkdtemp() + if work_dir is None: + tempdir = tempfile.mkdtemp() + else: + tempdir = work_dir override_dict = {'models': {}} override_dict['experiment_root'] = tempdir diff --git a/src/swell/utilities/scripts/create_mock_configs.py b/src/swell/utilities/scripts/create_mock_configs.py index 04d05340b..7faad4d3b 100644 --- a/src/swell/utilities/scripts/create_mock_configs.py +++ b/src/swell/utilities/scripts/create_mock_configs.py @@ -11,6 +11,7 @@ from swell.swell_path import get_swell_path from swell.utilities.mock_jedi_config import mock_jedi_config +from swell.utilities.test_cache import get_test_cache # -------------------------------------------------------------------------------------------------- @@ -63,9 +64,10 @@ def main() -> None: datetime = defaults['datetime'] executable_type = defaults['executable_type'] + work_dir = get_test_cache() copy_dir = os.path.join(get_swell_path(), 'test', 'jedi_configs') - mock_jedi_config(suite, model, datetime, executable_type, copy_dir) + mock_jedi_config(suite, model, datetime, executable_type, work_dir, copy_dir) # --------------------------------------------------------------------------------------------------