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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 32 additions & 2 deletions src/swell/configuration/jedi/bufr2ioda/bufr_ncep_mtiasi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,18 @@ observations:
query: "*/SELV"
type: float

sensorChannelStart1:
query: "*/STCH"
# mnemonic: STCH

sensorChannelEnd1:
query: "*/ENCH"
# mnemonic: ENCH

channelScaleFactor1:
query: "*/CHSF"
# mnemonic: CHSF

sensorViewAngle:
sensorScanAngle:
fieldOfViewNumber: "*/FOVN"
Expand Down Expand Up @@ -233,9 +245,27 @@ observations:
units: "1"
range: [0, 1]

- name: "MetaData/sensorChannelStart1"
source: variables/sensorChannelStart1
dimensions: ["ChannelBlock"]
longName: "Starting channel number"
units: ""

- name: "MetaData/sensorChannelEnd1"
source: variables/sensorChannelEnd1
dimensions: ["ChannelBlock"]
longName: "Ending channel number"
units: ""

- name: "MetaData/channelScaleFactor1"
source: variables/channelScaleFactor1
dimensions: ["ChannelBlock"]
longName: "Channel scale factor"
units: ""

# The unit from BUFR is W m-2 sr-1 m -- this is radiance per wavenumber
# - name: "ObsValue/spectralRadiance"
- name: "ObsValue/radiance"
# - name: "ObsValue/radiance"
- name: "ObsValue/spectralRadiance"
source: variables/spectralRadiance
longName: "IASI Spectral Radiance"
units: "W m-2 sr-1"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
obs pre filters:
# Remove Observations from the Edge of the Scan
- filter: Domain Check
filter variables:
- name: brightnessTemperature
channels: 1-15
where:
- variable:
name: MetaData/sensorScanPosition
is_in: 4-27
action:
name: reduce obs space

# Data Thinning
- filter: Gaussian Thinning
horizontal_mesh: 145
use_reduced_horizontal_grid: true
distance_norm: geodesic
# round_horizontal_bin_count_to_nearest: true
# partition_longitude_bins_using_mesh: true
action:
name: reduce obs space

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
obs pre filters:
# Remove Observations from the Edge of the Scan
- filter: Domain Check
filter variables:
- name: brightnessTemperature
channels: 1-15
where:
- variable:
name: MetaData/sensorScanPosition
is_in: 4-27
action:
name: reduce obs space

# Data Thinning
- filter: Gaussian Thinning
horizontal_mesh: 145
use_reduced_horizontal_grid: true
distance_norm: geodesic
# round_horizontal_bin_count_to_nearest: true
# partition_longitude_bins_using_mesh: true
action:
name: reduce obs space

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
obs pre filters:
# Remove Observations from the Edge of the Scan
- filter: Domain Check
filter variables:
- name: brightnessTemperature
channels: 1-15
where:
- variable:
name: MetaData/sensorScanPosition
is_in: 4-27
action:
name: reduce obs space

# Data Thinning
- filter: Gaussian Thinning
horizontal_mesh: 145
use_reduced_horizontal_grid: true
distance_norm: geodesic
# round_horizontal_bin_count_to_nearest: true
# partition_longitude_bins_using_mesh: true
action:
name: reduce obs space

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
obs pre filters:
# Remove Observations from the Edge of the Scan
- filter: Domain Check
filter variables:
- name: brightnessTemperature
channels: 1-15
where:
- variable:
name: MetaData/sensorScanPosition
is_in: 4-27
action:
name: reduce obs space

# Data Thinning
- filter: Gaussian Thinning
horizontal_mesh: 145
use_reduced_horizontal_grid: true
distance_norm: geodesic
# round_horizontal_bin_count_to_nearest: true
# partition_longitude_bins_using_mesh: true
action:
name: reduce obs space

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
obs pre filters:
# Remove Observations from the Edge of the Scan
- filter: Domain Check
filter variables:
- name: brightnessTemperature
channels: 1-15
where:
- variable:
name: MetaData/sensorScanPosition
is_in: 4-27
action:
name: reduce obs space

# Data Thinning
- filter: Gaussian Thinning
horizontal_mesh: 145
use_reduced_horizontal_grid: true
distance_norm: geodesic
# round_horizontal_bin_count_to_nearest: true
# partition_longitude_bins_using_mesh: true
action:
name: reduce obs space

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
obs pre filters:
# Remove Observations from the Edge of the Scan
- filter: Domain Check
filter variables:
- name: brightnessTemperature
channels: 1-15
where:
- variable:
name: MetaData/sensorScanPosition
is_in: 4-27
action:
name: reduce obs space

# Data Thinning
- filter: Gaussian Thinning
horizontal_mesh: 145
use_reduced_horizontal_grid: true
distance_norm: geodesic
# round_horizontal_bin_count_to_nearest: true
# partition_longitude_bins_using_mesh: true
action:
name: reduce obs space

Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Observation Pre Filters (QC)
# ----------------------------
obs pre filters:
# Step 1: Create Derived Variables
# Assign channel wavenumbers in m-1
- filter: Variable Assignment
assignments:
- name: MetaData/sensorCentralWavenumber
type: float
channels: *iasi_metop-b_channels
function:
name: ObsFunction/LinearCombination
options:
variables:
- name: ObsValue/spectralRadiance
channels: *iasi_metop-b_channels
coefs: [25.0]
intercept: 64475.0
use channel numbers: true

### Do not need this in the present setting
### Scaled radiance to spectral radiance
### creates a spectral radiance in (W / (m^2.sr.m^-1))
# - filter: Variable Transforms
# Transform: SatRadianceFromScaledRadiance
# transform from:
# name: ObsValue/spectralRadiance
# channels: *iasi_metop-b_channels
# number of scale factors: 1
# scale factor variable: MetaData/channelScaleFactor
# scale factor start: MetaData/sensorChannelStart
# scale factor end: MetaData/sensorChannelEnd
# get scaling factors from multiple arrays: true

# Step 2: Transform radiance to brightness temperature
- filter: Variable Transforms
Transform: SatBrightnessTempFromRad
transform from:
name: ObsValue/spectralRadiance
channels: *iasi_metop-b_channels
spectral variable:
name: MetaData/sensorCentralWavenumber
channels: *iasi_metop-b_channels
radiance units: wavenumber
planck1: 1.191042953e-16
planck2: 1.4387774e-2

# Step 3: Assign Observation Error
- filter: Perform Action
filter variables:
- name: brightnessTemperature
channels: *iasi_metop-b_channels
action:
name: assign error
error parameter vector: *iasi_metop-b_obserr

# Step 4: Remove Observations from the Edge of the Scan
- filter: Domain Check
filter variables:
- name: brightnessTemperature
channels: *iasi_metop-b_channels
where:
- variable:
name: MetaData/sensorScanPosition
is_in: 5-56
action:
name: reduce obs space

# Step 5: Create cloudFree variable (for thinning)
- filter: Variable Assignment
assignments:
- name: DerivedMetaData/fractionOfClearPixelsInFOV
type: float
function:
name: ObsFunction/Arithmetic
options:
variables:
- name: MetaData/fractionOfClearPixelsInFOV
coefs: [1.0]

# Step 6: Data Thinning
- filter: Gaussian Thinning
filter variables:
- name: brightnessTemperature
channels: *iasi_metop-b_channels
# GSI value leads to consirably more obs than GSI uses!
# horizontal_mesh: 145
horizontal_mesh: 175
use_reduced_horizontal_grid: true
distance_norm: geodesic
priority_variable: DerivedMetaData/fractionOfClearPixelsInFOV
action:
name: reduce obs space

Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Observation Pre Filters (QC)
# ----------------------------
obs pre filters:
# Step 1: Create Derived Variables
# Assign channel wavenumbers in m-1
- filter: Variable Assignment
assignments:
- name: MetaData/sensorCentralWavenumber
type: float
channels: *iasi_metop-c_channels
function:
name: ObsFunction/LinearCombination
options:
variables:
- name: ObsValue/spectralRadiance
channels: *iasi_metop-c_channels
coefs: [25.0]
intercept: 64475.0
use channel numbers: true

### Do not need this in the present setting
### Scaled radiance to spectral radiance
### creates a spectral radiance in (W / (m^2.sr.m^-1))
# - filter: Variable Transforms
# Transform: SatRadianceFromScaledRadiance
# transform from:
# name: ObsValue/spectralRadiance
# channels: *iasi_metop-c_channels
# number of scale factors: 1
# scale factor variable: MetaData/channelScaleFactor
# scale factor start: MetaData/sensorChannelStart
# scale factor end: MetaData/sensorChannelEnd
# get scaling factors from multiple arrays: true

# Step 2: Transform radiance to brightness temperature
- filter: Variable Transforms
Transform: SatBrightnessTempFromRad
transform from:
name: ObsValue/spectralRadiance
channels: *iasi_metop-c_channels
spectral variable:
name: MetaData/sensorCentralWavenumber
channels: *iasi_metop-c_channels
radiance units: wavenumber
planck1: 1.191042953e-16
planck2: 1.4387774e-2

# Step 3: Assign Observation Error
- filter: Perform Action
filter variables:
- name: brightnessTemperature
channels: *iasi_metop-c_channels
action:
name: assign error
error parameter vector: *iasi_metop-c_obserr

# Step 4: Remove Observations from the Edge of the Scan
- filter: Domain Check
filter variables:
- name: brightnessTemperature
channels: *iasi_metop-c_channels
where:
- variable:
name: MetaData/sensorScanPosition
is_in: 5-56
action:
name: reduce obs space

# Step 5: Create cloudFree variable (for thinning)
- filter: Variable Assignment
assignments:
- name: DerivedMetaData/fractionOfClearPixelsInFOV
type: float
function:
name: ObsFunction/Arithmetic
options:
variables:
- name: MetaData/fractionOfClearPixelsInFOV
coefs: [1.0]

# Step 6: Data Thinning
- filter: Gaussian Thinning
filter variables:
- name: brightnessTemperature
channels: *iasi_metop-c_channels
# GSI value leads to consirably more obs than GSI uses!
# horizontal_mesh: 145
horizontal_mesh: 175
use_reduced_horizontal_grid: true
distance_norm: geodesic
priority_variable: DerivedMetaData/fractionOfClearPixelsInFOV
action:
name: reduce obs space

4 changes: 2 additions & 2 deletions src/swell/configuration/jedi/observation_ioda_names.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,10 @@ ioda instrument names:
inst type: radiance
- ioda name: iasi_metop-b
full name: IASI (METOP-B)
inst type: radiance
inst type: spectralRadiance
- ioda name: iasi_metop-c
full name: IASI (METOP-C)
inst type: radiance
inst type: spectralRadiance
- ioda name: mhs_metop-a
full name: MHS (METOP-A)
inst type: radiance
Expand Down