From 789dc9bf9fec8085a2da825ba4664c4694d8714d Mon Sep 17 00:00:00 2001 From: Mei Han Date: Wed, 4 Feb 2026 13:38:24 -0500 Subject: [PATCH 1/3] Add abi_g16 and abi_g18 --- .../geos_atmosphere/observations/abi_g16.yaml | 352 ++++++++++++++++++ .../geos_atmosphere/observations/abi_g18.yaml | 352 ++++++++++++++++++ .../observations/ufo_tests.yaml | 8 + .../geos_atmosphere/task_questions.yaml | 4 + .../jedi/observation_ioda_names.yaml | 3 + src/swell/suites/3dfgat_atmos/suite_config.py | 2 + src/swell/suites/3dvar_atmos/suite_config.py | 2 + .../suites/convert_ncdiags/suite_config.py | 2 + .../suites/eva_capabilities/suite_config.py | 2 + src/swell/suites/geosadas/suite_config.py | 2 + src/swell/suites/hofx/suite_config.py | 2 + src/swell/suites/ufo_testing/suite_config.py | 2 + src/swell/tasks/eva_observations.py | 2 + src/swell/tasks/eva_timeseries.py | 2 + 14 files changed, 737 insertions(+) create mode 100644 src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/abi_g16.yaml create mode 100644 src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/abi_g18.yaml diff --git a/src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/abi_g16.yaml b/src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/abi_g16.yaml new file mode 100644 index 000000000..d0e7a31f0 --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/abi_g16.yaml @@ -0,0 +1,352 @@ +obs space: + name: ABI GOES-16 + obsdatain: + engine: + type: H5File + obsfile: '{{cycle_dir}}/abi_g16.{{window_begin}}.nc4' + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: '{{cycle_dir}}/{{experiment_id}}.abi_g16.{{window_begin}}.nc4' + io pool: + max pool size: 6 + simulated variables: [brightnessTemperature] + channels: &abi_g16_channels {{abi_g16_avail_channels}} + +obs operator: + name: CRTM + Absorbers: [H2O,O3,CO2] + obs options: + Sensor_ID: &Sensor_ID abi_g16 + EndianType: little_endian + CoefficientPath: '{{crtm_coeff_dir}}/' + linear obs operator: + Absorbers: [H2O,O3] + Surfaces: [Water_Temperature,Land_Temperature,Ice_Temperature,Snow_Temperature] + +obs bias: + input file: '{{cycle_dir}}/abi_g16.{{background_time}}.satbias.nc4' + output file: '{{cycle_dir}}/abi_g16.{{window_begin}}.satbias.nc4' + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &abi_g16_tlapse '{{cycle_dir}}/abi_g16.{{background_time}}.tlapse.txt' + - name: lapseRate + tlapse: *abi_g16_tlapse + - 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 + +obs prior filters: +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + action: + name: assign error + error parameter vector: [1.4,3.0,3.0,3.5,2.0,2.0,2.0,2.0,2.0,2.0] + +obs post filters: +# Useflag Check +- filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *abi_g16_channels + options: + channels: *abi_g16_channels + use_flag: &useflag_abi_g16 {{abi_g16_active_channels}} + minvalue: 1.0e-12 + action: + name: reject + +# Satellite Zenith Angle Check +- filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + test variables: + - name: MetaData/sensorZenithAngle + maxvalue: 65. + action: + name: reject + +# Surface type check +# Over water no reject. Over land, reject ch 7, 11-16. Over ice or snow, reject all. +- filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 7, 11-16 + where: + - variable: + name: GeoVaLs/land_area_fraction + minvalue: 0.99 +- filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.99 +- filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.99 +- filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + 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 + +# BT range check +- filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + minvalue: 0.0 + maxvalue: 1000.0 + action: + name: reject + +# Topography Check +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *abi_g16_channels + options: + channels: *abi_g16_channels + sensor: *Sensor_ID + +# Model top transmittance check +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *abi_g16_channels + options: + channels: *abi_g16_channels + +# Scene Consistency Check based on ch13 (10.3 micron) SDTB +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 13 + minvalue: 0.4 + action: + name: reject +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 13 + maxvalue: 0.4 + minvalue: 0.3 + max_exclusive: true + action: + name: inflate error + inflation factor: 1.4142 + +# Scene Consistency Check for ch8-10 based on ch8 (6.2 micron) SDTB +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: 8-10 + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 8 + maxvalue: 0.5 + minvalue: 0.4 + max_exclusive: true + action: + name: inflate error + inflation factor: 1.1489 +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: 8-10 + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 8 + maxvalue: 0.6 + minvalue: 0.5 + max_exclusive: true + action: + name: inflate error + inflation factor: 1.2923 +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: 8-10 + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 8 + maxvalue: 0.7 + minvalue: 0.6 + max_exclusive: true + action: + name: inflate error + inflation factor: 1.4967 +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: 8-10 + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 8 + minvalue: 0.7 + action: + name: reject + +# Near SST Retrieval Check +- filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *abi_g16_channels + options: + channels: *abi_g16_channels + use_flag: *useflag_abi_g16 + maxvalue: 1.0e-12 + action: + name: reject + +# Surface Jacobian Check +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *abi_g16_channels + options: + channels: *abi_g16_channels + sensor: *Sensor_ID + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.5, 2.0, 4.0, 2.0, 4.0] + +# All channels are retained where cloud fraction <=1 (i.e., 1%) +- filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + where: + - variable: + name: MetaData/cloud_frac + maxvalue: 1 + +# For surface and ch10 (7.3 micron), use split window chns to remove oqaque clouds +# step 1: calculate splitWindowDiff with Tb_obs and Tb_sim (hofx, restored to before BC) +- filter: Variable Assignment + assignments: + - name: DerivedMetaData/splitWindowDiff + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsValue/brightnessTemperature + channels: 13 + - name: ObsValue/brightnessTemperature + channels: 14 + - name: HofX/brightnessTemperature + channels: 13 + - name: HofX/brightnessTemperature + channels: 14 + - name: ObsBiasData/brightnessTemperature + channels: 13 + - name: ObsBiasData/brightnessTemperature + channels: 14 + coefs: [1, -1, -1, 1, 1, -1] +# step 2: apply threshold +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: 7, 10-16 + where: + - variable: + name: DerivedMetaData/splitWindowDiff + maxvalue: -0.75 + action: + name: reject + +# Final gross check +- filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *abi_g16_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *abi_g16_channels + options: + channels: *abi_g16_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 0.0, 0.0, 0.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *abi_g16_channels + options: + channels: *abi_g16_channels + obserr_bound_max: [2.5,4.0,4.0,4.0,2.5,2.5,2.5,2.5,2.5,2.5] + action: + name: reject diff --git a/src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/abi_g18.yaml b/src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/abi_g18.yaml new file mode 100644 index 000000000..24f0a8070 --- /dev/null +++ b/src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/abi_g18.yaml @@ -0,0 +1,352 @@ +obs space: + name: ABI GOES-18 + obsdatain: + engine: + type: H5File + obsfile: '{{cycle_dir}}/abi_g18.{{window_begin}}.nc4' + missing file action: warn + obsdataout: + engine: + type: H5File + obsfile: '{{cycle_dir}}/{{experiment_id}}.abi_g18.{{window_begin}}.nc4' + io pool: + max pool size: 6 + simulated variables: [brightnessTemperature] + channels: &abi_g18_channels {{abi_g18_avail_channels}} + +obs operator: + name: CRTM + Absorbers: [H2O,O3,CO2] + obs options: + Sensor_ID: &Sensor_ID abi_g18 + EndianType: little_endian + CoefficientPath: '{{crtm_coeff_dir}}/' + linear obs operator: + Absorbers: [H2O,O3] + Surfaces: [Water_Temperature,Land_Temperature,Ice_Temperature,Snow_Temperature] + +obs bias: + input file: '{{cycle_dir}}/abi_g18.{{background_time}}.satbias.nc4' + output file: '{{cycle_dir}}/abi_g18.{{window_begin}}.satbias.nc4' + variational bc: + predictors: + - name: constant + - name: lapseRate + order: 2 + tlapse: &abi_g18_tlapse '{{cycle_dir}}/abi_g18.{{background_time}}.tlapse.txt' + - name: lapseRate + tlapse: *abi_g18_tlapse + - 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 + +obs prior filters: +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + action: + name: assign error + error parameter vector: [1.4,3.0,3.0,3.5,2.0,2.0,2.0,2.0,2.0,2.0] + +obs post filters: +# Useflag Check +- filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + test variables: + - name: ObsFunction/ChannelUseflagCheckRad + channels: *abi_g18_channels + options: + channels: *abi_g18_channels + use_flag: &useflag_abi_g18 {{abi_g18_active_channels}} + minvalue: 1.0e-12 + action: + name: reject + +# Satellite Zenith Angle Check +- filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + test variables: + - name: MetaData/sensorZenithAngle + maxvalue: 65. + action: + name: reject + +# Surface type check +# Over water no reject. Over land, reject ch 7, 11-16. Over ice or snow, reject all. +- filter: BlackList + filter variables: + - name: brightnessTemperature + channels: 7, 11-16 + where: + - variable: + name: GeoVaLs/land_area_fraction + minvalue: 0.99 +- filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + where: + - variable: + name: GeoVaLs/ice_area_fraction + minvalue: 0.99 +- filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + where: + - variable: + name: GeoVaLs/surface_snow_area_fraction + minvalue: 0.99 +- filter: BlackList + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + 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 + +# BT range check +- filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + minvalue: 0.0 + maxvalue: 1000.0 + action: + name: reject + +# Topography Check +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTopoRad + channels: *abi_g18_channels + options: + channels: *abi_g18_channels + sensor: *Sensor_ID + +# Model top transmittance check +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *abi_g18_channels + options: + channels: *abi_g18_channels + +# Scene Consistency Check based on ch13 (10.3 micron) SDTB +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 13 + minvalue: 0.4 + action: + name: reject +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 13 + maxvalue: 0.4 + minvalue: 0.3 + max_exclusive: true + action: + name: inflate error + inflation factor: 1.4142 + +# Scene Consistency Check for ch8-10 based on ch8 (6.2 micron) SDTB +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: 8-10 + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 8 + maxvalue: 0.5 + minvalue: 0.4 + max_exclusive: true + action: + name: inflate error + inflation factor: 1.1489 +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: 8-10 + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 8 + maxvalue: 0.6 + minvalue: 0.5 + max_exclusive: true + action: + name: inflate error + inflation factor: 1.2923 +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: 8-10 + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 8 + maxvalue: 0.7 + minvalue: 0.6 + max_exclusive: true + action: + name: inflate error + inflation factor: 1.4967 +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: 8-10 + where: + - variable: + name: ClearSkyStdDev/brightnessTemperature + channels: 8 + minvalue: 0.7 + action: + name: reject + +# Near SST Retrieval Check +- filter: Bounds Check + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + test variables: + - name: ObsFunction/NearSSTRetCheckIR + channels: *abi_g18_channels + options: + channels: *abi_g18_channels + use_flag: *useflag_abi_g18 + maxvalue: 1.0e-12 + action: + name: reject + +# Surface Jacobian Check +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + action: + name: inflate error + inflation variable: + name: ObsFunction/ObsErrorFactorSurfJacobianRad + channels: *abi_g18_channels + options: + channels: *abi_g18_channels + sensor: *Sensor_ID + obserr_demisf: [0.01, 0.02, 0.03, 0.02, 0.03] + obserr_dtempf: [0.5, 2.0, 4.0, 2.0, 4.0] + +# All channels are retained where cloud fraction <=1 (i.e., 1%) +- filter: Domain Check + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + where: + - variable: + name: MetaData/cloud_frac + maxvalue: 1 + +# For surface and ch10 (7.3 micron), use split window chns to remove oqaque clouds +# step 1: calculate splitWindowDiff with Tb_obs and Tb_sim (hofx, restored to before BC) +- filter: Variable Assignment + assignments: + - name: DerivedMetaData/splitWindowDiff + type: float + function: + name: ObsFunction/Arithmetic + options: + variables: + - name: ObsValue/brightnessTemperature + channels: 13 + - name: ObsValue/brightnessTemperature + channels: 14 + - name: HofX/brightnessTemperature + channels: 13 + - name: HofX/brightnessTemperature + channels: 14 + - name: ObsBiasData/brightnessTemperature + channels: 13 + - name: ObsBiasData/brightnessTemperature + channels: 14 + coefs: [1, -1, -1, 1, 1, -1] +# step 2: apply threshold +- filter: Perform Action + filter variables: + - name: brightnessTemperature + channels: 7, 10-16 + where: + - variable: + name: DerivedMetaData/splitWindowDiff + maxvalue: -0.75 + action: + name: reject + +# Final gross check +- filter: Background Check + filter variables: + - name: brightnessTemperature + channels: *abi_g18_channels + function absolute threshold: + - name: ObsFunction/ObsErrorBoundIR + channels: *abi_g18_channels + options: + channels: *abi_g18_channels + obserr_bound_latitude: + name: ObsFunction/ObsErrorFactorLatRad + options: + latitude_parameters: [0.0, 0.0, 0.0, 0.0] + obserr_bound_transmittop: + name: ObsFunction/ObsErrorFactorTransmitTopRad + channels: *abi_g18_channels + options: + channels: *abi_g18_channels + obserr_bound_max: [2.5,4.0,4.0,4.0,2.5,2.5,2.5,2.5,2.5,2.5] + action: + name: reject diff --git a/src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/ufo_tests.yaml b/src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/ufo_tests.yaml index d53daf7a5..fbc742bb7 100644 --- a/src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/ufo_tests.yaml +++ b/src/swell/configuration/jedi/interfaces/geos_atmosphere/observations/ufo_tests.yaml @@ -8,6 +8,14 @@ default: # Values for individual observation types # --------------------------------------- +abi_g16: + filter_test: + passedBenchmark: 4511 + +abi_g18: + filter_test: + passedBenchmark: 6938 + aircraft_temperature: filter_test: passedBenchmark: 160674 diff --git a/src/swell/configuration/jedi/interfaces/geos_atmosphere/task_questions.yaml b/src/swell/configuration/jedi/interfaces/geos_atmosphere/task_questions.yaml index d99321656..7a27a2135 100644 --- a/src/swell/configuration/jedi/interfaces/geos_atmosphere/task_questions.yaml +++ b/src/swell/configuration/jedi/interfaces/geos_atmosphere/task_questions.yaml @@ -232,6 +232,8 @@ obs_experiment: observations: default_value: + - abi_g16 + - abi_g18 - aircraft_temperature - aircraft_wind - gps @@ -267,6 +269,8 @@ observations: - omi_aura - ompsnm_npp options: + - abi_g16 + - abi_g18 - aircraft_temperature - aircraft_wind - gps diff --git a/src/swell/configuration/jedi/observation_ioda_names.yaml b/src/swell/configuration/jedi/observation_ioda_names.yaml index f12a41e46..8b6ff7ac6 100644 --- a/src/swell/configuration/jedi/observation_ioda_names.yaml +++ b/src/swell/configuration/jedi/observation_ioda_names.yaml @@ -3,6 +3,9 @@ ioda instrument names: full name: ABI (GOES-16) provider : ncdiag inst type: radiance + - ioda name: abi_g18 + full name: ABI (GOES-18) + inst type: radiance - ioda name: ahi_himawari8 full name: AHI (Himawari-8) provider : ncdiag diff --git a/src/swell/suites/3dfgat_atmos/suite_config.py b/src/swell/suites/3dfgat_atmos/suite_config.py index c35915186..f57883a57 100644 --- a/src/swell/suites/3dfgat_atmos/suite_config.py +++ b/src/swell/suites/3dfgat_atmos/suite_config.py @@ -43,6 +43,8 @@ class SuiteConfig(QuestionContainer, Enum): "dadev/rtodling/archive/Restarts/JEDI/541x"), qd.window_type("4D"), qd.observations([ + "abi_g16", + "abi_g18", "aircraft_temperature", "aircraft_wind", "airs_aqua", diff --git a/src/swell/suites/3dvar_atmos/suite_config.py b/src/swell/suites/3dvar_atmos/suite_config.py index 2bf5ab418..e83ff0bc8 100644 --- a/src/swell/suites/3dvar_atmos/suite_config.py +++ b/src/swell/suites/3dvar_atmos/suite_config.py @@ -47,6 +47,8 @@ class SuiteConfig(QuestionContainer, Enum): qd.gsibec_nlons("144"), qd.vertical_resolution("72"), qd.observations([ + "abi_g16", + "abi_g18", "aircraft_temperature", "aircraft_wind", "airs_aqua", diff --git a/src/swell/suites/convert_ncdiags/suite_config.py b/src/swell/suites/convert_ncdiags/suite_config.py index c8669546c..04909c9c2 100644 --- a/src/swell/suites/convert_ncdiags/suite_config.py +++ b/src/swell/suites/convert_ncdiags/suite_config.py @@ -44,6 +44,8 @@ class SuiteConfig(QuestionContainer, Enum): "gsi_ncdiags" ]), qd.observations([ + "abi_g16", + "abi_g18", "aircraft", "airs_aqua", "amsr2_gcom-w1", diff --git a/src/swell/suites/eva_capabilities/suite_config.py b/src/swell/suites/eva_capabilities/suite_config.py index a5dc9af50..c48749be9 100644 --- a/src/swell/suites/eva_capabilities/suite_config.py +++ b/src/swell/suites/eva_capabilities/suite_config.py @@ -62,6 +62,8 @@ class SuiteConfig(QuestionContainer, Enum): geos_atmosphere=[ qd.cycle_times(['T00', 'T06', 'T12', 'T18']), qd.observations([ + "abi_g16", + "abi_g18", # "aircraft_temperature", # "aircraft_wind", "airs_aqua", diff --git a/src/swell/suites/geosadas/suite_config.py b/src/swell/suites/geosadas/suite_config.py index ebe2710b6..32c1e75b8 100644 --- a/src/swell/suites/geosadas/suite_config.py +++ b/src/swell/suites/geosadas/suite_config.py @@ -32,6 +32,8 @@ class SuiteConfig(QuestionContainer, Enum): geos_atmosphere=[ qd.horizontal_resolution("13"), qd.observations([ + "abi_g16", + "abi_g18", "aircraft_temperature", "aircraft_wind", "airs_aqua", diff --git a/src/swell/suites/hofx/suite_config.py b/src/swell/suites/hofx/suite_config.py index 90723ef84..737a2b662 100644 --- a/src/swell/suites/hofx/suite_config.py +++ b/src/swell/suites/hofx/suite_config.py @@ -37,6 +37,8 @@ class SuiteConfig(QuestionContainer, Enum): qd.npx_proc(2), qd.npy_proc(2), qd.observations([ + "abi_g16", + "abi_g18", "aircraft_temperature", "aircraft_wind", "airs_aqua", diff --git a/src/swell/suites/ufo_testing/suite_config.py b/src/swell/suites/ufo_testing/suite_config.py index ab10cc015..8a2875d6b 100644 --- a/src/swell/suites/ufo_testing/suite_config.py +++ b/src/swell/suites/ufo_testing/suite_config.py @@ -33,6 +33,8 @@ class SuiteConfig(QuestionContainer, Enum): geos_atmosphere=[ qd.cycle_times(['T00']), qd.observations([ + "abi_g16", + "abi_g18", "aircraft_temperature", "aircraft_wind", "airs_aqua", diff --git a/src/swell/tasks/eva_observations.py b/src/swell/tasks/eva_observations.py index bcd485942..71544937a 100644 --- a/src/swell/tasks/eva_observations.py +++ b/src/swell/tasks/eva_observations.py @@ -73,6 +73,8 @@ def execute(self) -> None: # This should be configurable once we do the eva refactoring. # ------------------------------------------------------------- channels_to_plot = { + 'abi_g16': [8, 10], + 'abi_g18': [8, 9, 10], 'airs_aqua': [15, 92, 128, 156, 172, 175, 190, 215, 252, 262, 310, 362, 497, 672, 914, 1088, 1329, 1449, 1766, 1800, 1869, 1918], 'cris-fsr_n20': [59, 69, 82, 86, 92, 102, 107, 114, 130, 141, 153, 158, 164, 167, 168, diff --git a/src/swell/tasks/eva_timeseries.py b/src/swell/tasks/eva_timeseries.py index a8ee7c11c..0610654f6 100644 --- a/src/swell/tasks/eva_timeseries.py +++ b/src/swell/tasks/eva_timeseries.py @@ -97,6 +97,8 @@ def execute(self) -> None: # This should be configurable once we do the eva refactoring. # ------------------------------------------------------------- channels_to_plot = { + 'abi_g16': [8, 10], + 'abi_g18': [8, 9, 10], 'airs_aqua': [15, 92, 128, 156, 172, 175, 190, 215, 252, 262, 310, 362, 497, 672, 914, 1088, 1329, 1449, 1766, 1800, 1869, 1918], 'cris-fsr_n20': [59, 69, 82, 86, 92, 102, 107, 114, 130, 141, 153, 158, 164, 167, 168, From 77264e48336d7cb1c250b00172eee1f4e715865e Mon Sep 17 00:00:00 2001 From: dooruk Date: Tue, 3 Mar 2026 10:43:23 -0500 Subject: [PATCH 2/3] make abi optional --- .../jedi/interfaces/geos_atmosphere/task_questions.yaml | 2 -- src/swell/suites/3dfgat_atmos/suite_config.py | 2 -- src/swell/suites/3dvar_atmos/suite_config.py | 2 -- src/swell/suites/hofx/suite_config.py | 2 -- 4 files changed, 8 deletions(-) diff --git a/src/swell/configuration/jedi/interfaces/geos_atmosphere/task_questions.yaml b/src/swell/configuration/jedi/interfaces/geos_atmosphere/task_questions.yaml index 7a27a2135..636e49e1c 100644 --- a/src/swell/configuration/jedi/interfaces/geos_atmosphere/task_questions.yaml +++ b/src/swell/configuration/jedi/interfaces/geos_atmosphere/task_questions.yaml @@ -232,8 +232,6 @@ obs_experiment: observations: default_value: - - abi_g16 - - abi_g18 - aircraft_temperature - aircraft_wind - gps diff --git a/src/swell/suites/3dfgat_atmos/suite_config.py b/src/swell/suites/3dfgat_atmos/suite_config.py index f57883a57..c35915186 100644 --- a/src/swell/suites/3dfgat_atmos/suite_config.py +++ b/src/swell/suites/3dfgat_atmos/suite_config.py @@ -43,8 +43,6 @@ class SuiteConfig(QuestionContainer, Enum): "dadev/rtodling/archive/Restarts/JEDI/541x"), qd.window_type("4D"), qd.observations([ - "abi_g16", - "abi_g18", "aircraft_temperature", "aircraft_wind", "airs_aqua", diff --git a/src/swell/suites/3dvar_atmos/suite_config.py b/src/swell/suites/3dvar_atmos/suite_config.py index e83ff0bc8..2bf5ab418 100644 --- a/src/swell/suites/3dvar_atmos/suite_config.py +++ b/src/swell/suites/3dvar_atmos/suite_config.py @@ -47,8 +47,6 @@ class SuiteConfig(QuestionContainer, Enum): qd.gsibec_nlons("144"), qd.vertical_resolution("72"), qd.observations([ - "abi_g16", - "abi_g18", "aircraft_temperature", "aircraft_wind", "airs_aqua", diff --git a/src/swell/suites/hofx/suite_config.py b/src/swell/suites/hofx/suite_config.py index 737a2b662..90723ef84 100644 --- a/src/swell/suites/hofx/suite_config.py +++ b/src/swell/suites/hofx/suite_config.py @@ -37,8 +37,6 @@ class SuiteConfig(QuestionContainer, Enum): qd.npx_proc(2), qd.npy_proc(2), qd.observations([ - "abi_g16", - "abi_g18", "aircraft_temperature", "aircraft_wind", "airs_aqua", From 632c36477d4c105591e26c88564025ec9be6a214 Mon Sep 17 00:00:00 2001 From: dooruk Date: Tue, 3 Mar 2026 10:45:53 -0500 Subject: [PATCH 3/3] also out of convert_ncdiags --- src/swell/suites/convert_ncdiags/suite_config.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/swell/suites/convert_ncdiags/suite_config.py b/src/swell/suites/convert_ncdiags/suite_config.py index 04909c9c2..c8669546c 100644 --- a/src/swell/suites/convert_ncdiags/suite_config.py +++ b/src/swell/suites/convert_ncdiags/suite_config.py @@ -44,8 +44,6 @@ class SuiteConfig(QuestionContainer, Enum): "gsi_ncdiags" ]), qd.observations([ - "abi_g16", - "abi_g18", "aircraft", "airs_aqua", "amsr2_gcom-w1",