@@ -17,10 +17,7 @@ function ClimaCalibrate.observation_map(iteration)
17
17
G_ensemble[:, m] .= process_member_data (SimDir (simdir_path))
18
18
19
19
catch e
20
- @error " Error processing member $m , filling observation map entry with NaNs" exception = e
21
- bt = catch_backtrace ()
22
- println (" Stacktrace:" )
23
- display (stacktrace (bt))
20
+ @error " Error processing member $m , filling observation map entry with NaNs" exception = e
24
21
G_ensemble[:, m] .= NaN
25
22
end
26
23
end
@@ -46,8 +43,8 @@ function process_member_data(simdir::SimDir)
46
43
hur = process_outputvar (simdir, " hur" )
47
44
hus = process_outputvar (simdir, " hus" )
48
45
49
- ql = process_outputvar (simdir, " ql " )
50
- qi = process_outputvar (simdir, " qi " )
46
+ clw = process_outputvar (simdir, " clw " )
47
+ cli = process_outputvar (simdir, " cli " )
51
48
52
49
# Map over each year
53
50
year_observations = map (1 : 4 : length (rsut)) do year_start
@@ -66,10 +63,10 @@ function process_member_data(simdir::SimDir)
66
63
ta_yr = downsample_and_vectorize (ta[yr_ind])
67
64
hur_yr = downsample_and_vectorize (hur[yr_ind])
68
65
hus_yr = downsample_and_vectorize (hus[yr_ind])
69
- ql_yr = downsample_and_vectorize (ql [yr_ind])
70
- qi_yr = downsample_and_vectorize (qi [yr_ind])
66
+ clw_yr = downsample_and_vectorize (clw [yr_ind])
67
+ cli_yr = downsample_and_vectorize (cli [yr_ind])
71
68
72
- vcat (net_rad_yr, rsut_yr, rlut_yr, cre_yr, pr_yr, shf_yr, ts_yr, ta_yr, hur_yr, hus_yr, ql_yr, qi_yr )
69
+ vcat (net_rad_yr, rsut_yr, rlut_yr, cre_yr, pr_yr, shf_yr, ts_yr, ta_yr, hur_yr, hus_yr, clw_yr, cli_yr )
73
70
end
74
71
return vcat (year_observations... )
75
72
end
93
90
function preprocess_monthly_averages (simdir, name)
94
91
monthly_avgs = get_monthly_averages (simdir, name)
95
92
# Interpolate to pressure coordinates to match observations
93
+ pressure = get_monthly_averages (simdir, " pfull" )
96
94
if has_altitude (monthly_avgs)
97
- pressure = get_monthly_averages (simdir, " pfull" )
98
95
monthly_avgs = ClimaAnalysis. Atmos. to_pressure_coordinates (monthly_avgs, pressure)
99
96
monthly_avgs = limit_pressure_dim_to_era5_range (monthly_avgs)
100
97
end
98
+ monthly_avgs. attributes[" start_date" ] = pressure. attributes[" start_date" ]
101
99
# Line up dates for monthly averages
102
100
monthly_avgs = ClimaAnalysis. shift_to_start_of_previous_month (monthly_avgs)
103
101
# Remove spinup time
104
102
monthly_avgs = window (monthly_avgs, " time" ; left = spinup_time)
105
103
global_mean = monthly_avgs |> average_lat |> average_lon |> average_time
104
+ FT = monthly_avgs. data |> eltype
106
105
# Replace NaNs with global mean
107
- monthly_avgs = ClimaAnalysis. replace (monthly_avgs, NaN => global_mean)
106
+ monthly_avgs = ClimaAnalysis. replace (monthly_avgs, NaN => FT ( mean ( global_mean. data)) )
108
107
return monthly_avgs
109
108
end
110
109
0 commit comments