Skip to content

Commit 09cbc5b

Browse files
authored
[v2.1.2-1.8] workaround for surface t/q/uv/ps operators (NOAA-EMC#989)
* workaround for surface t/q/uv/ps operators * Remove error ramp workaround (merged in PR #3705) * Fix some comments in code * Minor fixes for copyright
1 parent 6a336f8 commit 09cbc5b

15 files changed

Lines changed: 618 additions & 718 deletions

parm/jedivar.yaml

Lines changed: 140 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ cost function:
5757
- snowh
5858
- vegetation_area_fraction
5959
- air_temperature_at_2m
60+
- water_vapor_mixing_ratio_wrt_moist_air_at_2m
6061
- eastward_wind_at_10m
6162
- northward_wind_at_10m
6263
- lai
@@ -769,16 +770,19 @@ cost function:
769770
simulated variables: [airTemperature]
770771

771772
obs operator:
772-
name: VertInterp
773-
vertical coordinate: air_pressure
774-
observation vertical coordinate: pressure
775-
observation vertical coordinate group: MetaData
776-
interpolation method: log-linear
777-
variables:
778-
- name: airTemperature
773+
name: SfcCorrected
774+
correction scheme to use: GSL
775+
gsl parameters:
776+
temperature lapse rate option: Local
777+
temperature local lapse rate level: 10
778+
temperature lapse rate threshold: true
779+
min threshold: 0.5
780+
max threshold: 10.0
781+
variables:
782+
- name: airTemperature
779783

780784
linear obs operator:
781-
name: VertInterp
785+
name: Identity
782786

783787
obs error:
784788
covariance model: diagonal
@@ -814,16 +818,16 @@ cost function:
814818
name: reduce obs space
815819

816820
# Duplicate Check
817-
# - filter: Temporal Thinning
818-
# filter variables:
819-
# - name: airTemperature
820-
# min_spacing: PT90M
821-
# tolerance: PT0H
822-
# seed_time: "@analysisDate@"
823-
# category_variable:
824-
# name: MetaData/longitude_latitude_pressure
825-
# action:
826-
# name: reduce obs space
821+
- filter: Temporal Thinning
822+
filter variables:
823+
- name: airTemperature
824+
min_spacing: PT90M
825+
tolerance: PT0H
826+
seed_time: "@analysisDate@"
827+
category_variable:
828+
name: MetaData/stationIdentification
829+
action:
830+
name: reduce obs space
827831

828832
# Online regional domain check
829833
- filter: Bounds Check
@@ -851,24 +855,24 @@ cost function:
851855
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]
852856
errors: [2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585, 2.2585]
853857

854-
# Error inflation based on pressure check (setupt.f90)
855-
- filter: Perform Action
856-
filter variables:
857-
- name: airTemperature
858-
where:
859-
- variable: ObsType/airTemperature
860-
is_in: 187
861-
action:
862-
name: inflate error
863-
inflation variable:
864-
name: ObsFunction/ObsErrorFactorPressureCheck
865-
options:
866-
variable: airTemperature
867-
inflation factor: 8.0
868-
# The new feature "surface observation error ramp"
869-
# needs to be added to UFO to align with the ramp
870-
# options for temperature and humidity in GSI.
871-
surface observation error ramp: true
858+
# # Error inflation based on pressure check (setupt.f90)
859+
# - filter: Perform Action
860+
# filter variables:
861+
# - name: airTemperature
862+
# where:
863+
# - variable: ObsType/airTemperature
864+
# is_in: 187
865+
# action:
866+
# name: inflate error
867+
# inflation variable:
868+
# name: ObsFunction/ObsErrorFactorPressureCheck
869+
# options:
870+
# variable: airTemperature
871+
# inflation factor: 8.0
872+
# # The new feature "surface observation error ramp"
873+
# # needs to be added to UFO to align with the ramp
874+
# # options for temperature and humidity in GSI.
875+
# surface observation error ramp: true
872876

873877
# # Error inflation based on errormod (qcmod.f90)
874878
# - filter: Perform Action
@@ -1593,16 +1597,13 @@ cost function:
15931597
simulated variables: [specificHumidity]
15941598

15951599
obs operator:
1596-
name: VertInterp
1597-
vertical coordinate: air_pressure
1598-
observation vertical coordinate: pressure
1599-
observation vertical coordinate group: MetaData
1600-
interpolation method: log-linear
1601-
variables:
1602-
- name: specificHumidity
1600+
name: SfcCorrected
1601+
correction scheme to use: GSL
1602+
variables:
1603+
- name: specificHumidity
16031604

16041605
linear obs operator:
1605-
name: VertInterp
1606+
name: Identity
16061607

16071608
obs error:
16081609
covariance model: diagonal
@@ -1638,16 +1639,16 @@ cost function:
16381639
name: reduce obs space
16391640

16401641
# Duplicate Check
1641-
# - filter: Temporal Thinning
1642-
# filter variables:
1643-
# - name: specificHumidity
1644-
# min_spacing: PT90M
1645-
# tolerance: PT0H
1646-
# seed_time: "@analysisDate@"
1647-
# category_variable:
1648-
# name: MetaData/longitude_latitude_pressure
1649-
# action:
1650-
# name: reduce obs space
1642+
- filter: Temporal Thinning
1643+
filter variables:
1644+
- name: specificHumidity
1645+
min_spacing: PT90M
1646+
tolerance: PT0H
1647+
seed_time: "@analysisDate@"
1648+
category_variable:
1649+
name: MetaData/stationIdentification
1650+
action:
1651+
name: reduce obs space
16511652

16521653
# Online regional domain check
16531654
- filter: Bounds Check
@@ -1668,31 +1669,31 @@ cost function:
16681669
action:
16691670
name: assign error
16701671
error function:
1671-
name: ObsFunction/ObsErrorModelStepwiseLinear
1672+
name: ObsFunction/ObsErrorModelHumidity
16721673
options:
16731674
xvar:
16741675
name: MetaData/pressure
16751676
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]
16761677
errors: [0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912, 0.05912]
16771678

1678-
# Error inflation based on pressure check (setupq.f90)
1679-
- filter: Perform Action
1680-
filter variables:
1681-
- name: specificHumidity
1682-
where:
1683-
- variable: ObsType/specificHumidity
1684-
is_in: 187
1685-
action:
1686-
name: inflate error
1687-
inflation variable:
1688-
name: ObsFunction/ObsErrorFactorPressureCheck
1689-
options:
1690-
variable: specificHumidity
1691-
inflation factor: 8.0
1692-
# The new feature "surface observation error ramp"
1693-
# needs to be added to UFO to align with the ramp
1694-
# options for temperature and humidity in GSI.
1695-
#surface observation error ramp: true
1679+
# # Error inflation based on pressure check (setupq.f90)
1680+
# - filter: Perform Action
1681+
# filter variables:
1682+
# - name: specificHumidity
1683+
# where:
1684+
# - variable: ObsType/specificHumidity
1685+
# is_in: 187
1686+
# action:
1687+
# name: inflate error
1688+
# inflation variable:
1689+
# name: ObsFunction/ObsErrorFactorPressureCheck
1690+
# options:
1691+
# variable: specificHumidity
1692+
# inflation factor: 8.0
1693+
# # The new feature "surface observation error ramp"
1694+
# # needs to be added to UFO to align with the ramp
1695+
# # options for temperature and humidity in GSI.
1696+
# #surface observation error ramp: true
16961697

16971698
# # Error inflation based on errormod (qcmod.f90)
16981699
# - filter: Perform Action
@@ -2136,10 +2137,13 @@ cost function:
21362137
simulated variables: [stationPressure]
21372138

21382139
obs operator:
2139-
name: SfcPCorrected
2140-
da_psfc_scheme: GSI
2140+
name: SfcCorrected
2141+
correction scheme to use: GSL
21412142
geovar_sfc_geomz: geopotential_height_at_surface
21422143
geovar_geomz: geopotential_height
2144+
variables:
2145+
- name: stationPressure
2146+
21432147
linear obs operator:
21442148
name: Identity
21452149

@@ -2177,16 +2181,16 @@ cost function:
21772181
name: reduce obs space
21782182

21792183
# Duplicate Check
2180-
# - filter: Temporal Thinning
2181-
# filter variables:
2182-
# - name: stationPressure
2183-
# min_spacing: PT90M
2184-
# tolerance: PT0H
2185-
# seed_time: "@analysisDate@"
2186-
# category_variable:
2187-
# name: MetaData/longitude_latitude_pressure
2188-
# action:
2189-
# name: reduce obs space
2184+
- filter: Temporal Thinning
2185+
filter variables:
2186+
- name: stationPressure
2187+
min_spacing: PT90M
2188+
tolerance: PT0H
2189+
seed_time: "@analysisDate@"
2190+
category_variable:
2191+
name: MetaData/stationIdentification
2192+
action:
2193+
name: reduce obs space
21902194

21912195
# Online regional domain check
21922196
- filter: Bounds Check
@@ -3037,17 +3041,14 @@ cost function:
30373041
simulated variables: [windEastward, windNorthward]
30383042

30393043
obs operator:
3040-
name: VertInterp
3041-
vertical coordinate: air_pressure
3042-
observation vertical coordinate: pressure
3043-
observation vertical coordinate group: MetaData
3044-
interpolation method: log-linear
3045-
variables:
3046-
- name: windEastward
3047-
- name: windNorthward
3044+
name: SfcCorrected
3045+
correction scheme to use: GSL
3046+
variables:
3047+
- name: windEastward
3048+
- name: windNorthward
30483049

30493050
linear obs operator:
3050-
name: VertInterp
3051+
name: Identity
30513052

30523053
obs error:
30533054
covariance model: diagonal
@@ -3084,17 +3085,17 @@ cost function:
30843085
name: reduce obs space
30853086

30863087
# Duplicate Check
3087-
# - filter: Temporal Thinning
3088-
# filter variables:
3089-
# - name: windEastward
3090-
# - name: windNorthward
3091-
# min_spacing: PT90M
3092-
# tolerance: PT0H
3093-
# seed_time: "@analysisDate@"
3094-
# category_variable:
3095-
# name: MetaData/longitude_latitude_pressure
3096-
# action:
3097-
# name: reduce obs space
3088+
- filter: Temporal Thinning
3089+
filter variables:
3090+
- name: windEastward
3091+
- name: windNorthward
3092+
min_spacing: PT90M
3093+
tolerance: PT0H
3094+
seed_time: "@analysisDate@"
3095+
category_variable:
3096+
name: MetaData/stationIdentification
3097+
action:
3098+
name: reduce obs space
30983099

30993100
# Online domain check
31003101
- filter: Bounds Check
@@ -3124,41 +3125,41 @@ cost function:
31243125
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]
31253126
errors: [1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874, 1.5874]
31263127

3127-
# Error inflation (windEastward) based on pressure check (setupw.f90)
3128-
- filter: Perform Action
3129-
filter variables:
3130-
- name: windEastward
3131-
where:
3132-
- variable: ObsType/windEastward
3133-
is_in: 287
3134-
action:
3135-
name: inflate error
3136-
inflation variable:
3137-
name: ObsFunction/ObsErrorFactorPressureCheck
3138-
options:
3139-
variable: windEastward
3140-
inflation factor: 4.0
3141-
SetSfcWndObsHeight: true
3142-
AddObsHeightToStationElevation: true
3143-
AssumedSfcWndObsHeight: 10
3128+
# # Error inflation (windEastward) based on pressure check (setupw.f90)
3129+
# - filter: Perform Action
3130+
# filter variables:
3131+
# - name: windEastward
3132+
# where:
3133+
# - variable: ObsType/windEastward
3134+
# is_in: 287
3135+
# action:
3136+
# name: inflate error
3137+
# inflation variable:
3138+
# name: ObsFunction/ObsErrorFactorPressureCheck
3139+
# options:
3140+
# variable: windEastward
3141+
# inflation factor: 4.0
3142+
# SetSfcWndObsHeight: true
3143+
# AddObsHeightToStationElevation: true
3144+
# AssumedSfcWndObsHeight: 10
31443145

3145-
# Error inflation (windNorthward) based on pressure check (setupw.f90)
3146-
- filter: Perform Action
3147-
filter variables:
3148-
- name: windNorthward
3149-
where:
3150-
- variable: ObsType/windNorthward
3151-
is_in: 287
3152-
action:
3153-
name: inflate error
3154-
inflation variable:
3155-
name: ObsFunction/ObsErrorFactorPressureCheck
3156-
options:
3157-
variable: windNorthward
3158-
inflation factor: 4.0
3159-
SetSfcWndObsHeight: true
3160-
AddObsHeightToStationElevation: true
3161-
AssumedSfcWndObsHeight: 10
3146+
# # Error inflation (windNorthward) based on pressure check (setupw.f90)
3147+
# - filter: Perform Action
3148+
# filter variables:
3149+
# - name: windNorthward
3150+
# where:
3151+
# - variable: ObsType/windNorthward
3152+
# is_in: 287
3153+
# action:
3154+
# name: inflate error
3155+
# inflation variable:
3156+
# name: ObsFunction/ObsErrorFactorPressureCheck
3157+
# options:
3158+
# variable: windNorthward
3159+
# inflation factor: 4.0
3160+
# SetSfcWndObsHeight: true
3161+
# AddObsHeightToStationElevation: true
3162+
# AssumedSfcWndObsHeight: 10
31623163

31633164
# # Error inflation (windEastward) based on errormod (qcmod.f90)
31643165
# - filter: Perform Action

0 commit comments

Comments
 (0)