|
2 | 2 |
|
3 | 3 | """ |
4 | 4 | Sample script for post-processing GEOSldas ObsFcstAna output into data assimilation diagnostics. |
5 | | -First, compute and store monthly sums and sums of squares and cross-products of raw ObsFcstAna output. |
| 5 | +Computes and stores monthly sums and sums of squares and cross-products of raw ObsFcstAna output. |
6 | 6 | Data assimilation diagnostics ("stats") such as the mean and std-dev of the observation-minus-forecast |
7 | | -residuals can then be diagnosed quickly from these intermediate "sums" files. |
8 | | -Sample script optionally computes and plots: |
9 | | -- Maps of long-term data assimilation diagnostics (see also Plot_stats_maps.py). |
10 | | -- Monthly time series of spatially averaged data assimilation diagnostics (see also Plot_stats_timeseries.py). |
| 7 | +residuals can then be diagnosed quickly from these intermediate "sums" files. See Plot_stats_*.py. |
11 | 8 |
|
12 | 9 | Usage: |
13 | 10 | 1. Edit "user_config.py" with experiments information. |
14 | 11 | 2. Run this script as follows (on Discover): |
15 | 12 | $ module load python/GEOSpyD |
16 | | - $ ./Get_ObsFcstAna_stats.py |
| 13 | + $ ./Get_ObsFcstAna_sums.py |
17 | 14 | |
18 | 15 | # Background execution: |
19 | | - $ nohup ./Get_ObsFcstAna_stats.py > out.log & |
| 16 | + $ nohup ./Get_ObsFcstAna_sums.py > out.log & |
20 | 17 |
|
21 | 18 | Authors: Q. Liu, R. Reichle, A. Fox |
22 | | -Last Modified: May 2025 |
| 19 | +Last Modified: June 2025 |
23 | 20 | """ |
24 | 21 |
|
25 | 22 | import sys; sys.path.append('../../shared/python/') |
@@ -64,33 +61,6 @@ def main(): |
64 | 61 | # Compute and save monthly sums |
65 | 62 | postproc.save_monthly_sums() |
66 | 63 |
|
67 | | - # -------------------------------------------------------------------------------------- |
68 | | - # Optionally compute long-term temporal/spatial statistics and create plots. |
69 | | - # The plotting scripts can also run standalone using the individual Plot_stats_*.py scripts, |
70 | | - # as long as the monthly sum files are available. |
71 | | - |
72 | | - plot_maps = False |
73 | | - plot_timeseries = False |
74 | | - |
75 | | - if plot_maps: # Compute long-term temporal stats and plot maps |
76 | | - |
77 | | - stats_file = out_path + 'temporal_stats_'+exp_list[0]['exptag']+ '_'+start_time.strftime('%Y%m%d')+'_'+ \ |
78 | | - (end_time+timedelta(days=-1)).strftime('%Y%m%d')+'.nc4' |
79 | | - |
80 | | - # temporal_stats is a dictionary that contains all mean/variances fields for computing long-term O-F/O-A stats |
81 | | - # each field has the dimension [N_tile, N_species] |
82 | | - |
83 | | - temporal_stats = postproc.calc_temporal_stats_from_sums(write_to_nc=True, fout_stats=stats_file) |
84 | | - |
85 | | - # Example to plot some O-F maps |
86 | | - from Plot_stats_maps import plot_OmF_maps |
87 | | - plot_OmF_maps(postproc, temporal_stats, fig_path=out_path ) |
88 | | - |
89 | | - if plot_timeseries: # Compute spatially averaged stats and plot monthly time series of stats |
90 | | - |
91 | | - from Plot_stats_timeseries import Plot_monthly_OmF_bars |
92 | | - Plot_monthly_OmF_bars(postproc, fig_path=out_path) |
93 | | - |
94 | 64 | if __name__ == '__main__': |
95 | 65 | main() |
96 | 66 |
|
|
0 commit comments