This is the git repository used to investigate the divergence of moisture transport in nine exemplaric Atmospheric River (AR) cases using ERA5 and CARRA. By that, we want to assess the feasibility of deriving moisture transport divergence from sporadic airborne soundings. At the current state, this is done using synthetic sondes that are created within the reanalysis grid datasets for synthetically created zig-zag flight pattern.
import os
major_script_path=os.getcwd()+"/major_scripts/"
sys.path.insert(major_script_path,1)
import campaignAR_plotter
campaignAR_plotter.main()
# inside main you can specify the flights that are commented out and the subcampaign for variable campaign_name
# Current dates used:
# "20110317","20110423","20150314","20160311","20180224","20180225","20190319","20200416","20200419"
most of them require the plotting modules
import os
plotting_script_path=os.getcwd()+"/plotting/"
sys.path.insert(plotting_script_path,1)
no figures or data are explicitly presented in Sect. 1.
import plot_ar_cases_overview
plot_ar_cases_overview(figure_to_create="fig01_")
# this creates the AR overview maps showing IVT and flight track with sea-ice edge and isobars for all nine AR events.
# Note it is important to choose "fig01" as figure_to_create
import ar_ivt_climatology_plotting
# this creates the KDE-plot of mean AR-IVT as a function of AR centered latitude (long-time series 1979-2020).
# The nine ARs during observation periods are highlighted therein for climalogical framing.
This is a sketch of HALO observing AR boxes for the representative moisture budget components. This was created independently with image processing software.
This is the illustration of the AR sectors along the cross-section (warm prefrontal, core, cold postfrontal) showing the positioning of seven synthetic sondes along the in- and outflow corridors used for divergence calculations. Go to subpath "/notebooks/" and open AR_Sector_Illustration.ipnyb
This is the distance based AR-IVT together with synthetic soundings and gaussian fit for CARRA-IVT compared to ERA5-IVT for the AR1.
import campaignAR_plotter
campaignAR_plotter.main(campaign="Second_Synthetic_Study",flights=["SRF02"],calc_hmp=True,
use_era=True,use_carra_True,do_plotting=True)
# inside main you can specify the flights that are commented out and the subcampaign for variable campaign_name
This is the TIVT dependency on sounding frequency. For that, the following is required to create the data:
import os
script_path=os.getcwd()+"/scripts/"
sys.path.insert(script_path,1)
import run_sonde_freq_ivt_var_analysis
The figure as well as some correlations are created by the notebook TIVT_IVT_Variability_analysis.ipynb
This is the vertical statistics of q,v, and moisture transport.
import wind_moisture_dominance_analysis
wind_moisture_dominance_analysis.main(figures_to_create="fig07")
This depicts the vertical distribution of the variability components (s_v & s_q) for all inflow cross-sections with the intercase average. It has to be called by "fig08" in the main plotting routine
import wind_moisture_dominance_analysis
wind_moisture_dominance_analysis.main(figures_to_create="fig08")
This depicts the vertical distribution of the correlation and covaraince between q and v for all inflow cross-sections with the intercase average. It has be called by "fig09" in the main plotting routine
import wind_moisture_dominance_analysis
wind_moisture_dominance_analysis.main(figures_to_create="fig09")
This contour multiplot illustrates the vertical cross-section curtains of all ARs in terms of moisture transport distribution and its components.
import plot_ar_cases_overview
plot_ar_cases_overview.main(figure_to_create="fig10")
To create the divergence results just run:
import run_moisture_budget_closure_regression_method
This script itself calls Moisture_Convergence.calc_moisture_convergence_from_regression_method
the divergence values are then stored in the airborne data folder under budgets. Some additional figures are created and stored under "plots/budget/supplementary/"
This shows the frontal sector based AR cross-sections for in- and outflow corridor in multiplot.
It is created by running the notebook AR_sector_multiplot_in-outflow.ipynb
This notebook basically runs multiplot_inflow_outflow_IVT sectors from python class IVT_Variability_Plotter
.
To create the single case values just run:
import plot_moisture_budget_results
figure_to_create="fig12_single_case_sector_profiles"
plot_moisture_budget_results.main(figure_to_create=figure_to_create)
Inside the plot routine defines save_for_manuscript=True
This creates a boxplot showing the sector-based divergence statistics for the nine events intercomparing continuous and sonde-based divegence calculations.
import plot_moisture_budget_results
figure_to_create="fig13_campaign_divergence_overviews"
plot_moisture_budget_results.main(figure_to_create=figure_to_create)
This section includes three figures and deals with the instationarity and how this changes our understanding of ARs from airborne perspective.
In order to create the instantan moisture transport divergence components you have to run (similar to IVT divergence):
import run_moisture_budget_closure_regression_method
# set instantan as True
run.moisture_budget_closure_regression_method.main(instantan=True)
This script itself calls Moisture_Convergence.calc_moisture_convergence_from_regression_method
or alternatively, you run the notebook AR_Stationarity.ipynb
%To create the multiplot with comparing non-instantan minus instantan as a vertical profile just run: This figure compares the daily contribution of IVT divergence to daily moisture budget for flight duration with instantan values. The comparison refers to the continuous cross-frontal section and is similar built as Fig. 12. Using the same data for the flight
import plot_moisture_budgets
figure_to_create="fig14_divergence_instantan_errorbars""
plot_moisture_budgets.main(figure_to_create=figure_to_create)
This routine internally runs Budgets.Moisture_Budget_Plots.moisture_convergence_time_instantan_comparison() comparing both ideal-based (continuous) frontal-specific divergence components. For detailed flight specific information, check for Figure S4,S5
So far this the partioned comparison for sounding frequency and instantaneous error arising comparing both magnitudes. It is called as:
import plot_moisture_budgets
figure_to_create="fig15_campaign_divergence_overview_instantan_comparison"
plot_moisture_budgets.main(figure_to_create=figure_to_create)
This is the aircraft flight time bar plot showing the duration for flying all AR cross-sections with given constant flight speed of 250 m/s. Go to subpath "/notebooks/" and open Aircraft_Flight_Time.ipnyb
This is AR IVT shape multiplot indicating all nine inflow AR-IVT shapes. So far this plot is created manually by repeating the distance-based AR-IVT inflow cross-section plot. Open issue to create a plot routine
Runned by:
import plot_moisture_budgets_results
figure_to_create="fig_supplements_sonde_pos_comparison"
plot_moisture_budgets_results.main(figure_to_create=figure_to_create)
From the Budgets module, this runs sonde_divergence_error_bar() which is also needed for Figure 12.
Runned by:
import plot_moisture_budgets_results
figure_to_create="fig_supplements_sonde_pos_comparison"
plot_moisture_budgets_results.main(figure_to_create=figure_to_create)
this runs two fcts with the first being Inst_Budget_plots.compare_inst_sonde_pos() and illustrates the sonde positioning for the instantan and continuous representation. If the sounding locations change is specified in the Instantan & Budget class (default on_flight_tracks=True). This argument has to be given for Budgets.get_overall_budgets()
To create the multiplot of in- and outflow comparison (IVT) you have two choices:
import instantan
figure_to_create="fig13_in_outflow_instantan"
instantan.main(figure_to_create=figure_to_create)
Runned by:
import plot_moisture_budgets_results
figure_to_create="fig_supplements_sonde_pos_comparison"
plot_moisture_budgets_results.main(figure_to_create=figure_to_create)
analogue to above, the function creates S4 and S5. The relevant for S5 is: Inst_Budget_plots.mean_errors_per_flight() This shows the sector-based contributions of the divergence components for each flight. On top of that, it compares the continuous flight propagating and instantaneous values. Again, the sonde positioning has to be defined (default on_flight_tracks=True).
%python %import instantan %figure_to_create="fig16_conv_error" %instantan.main(figure_to_create=figure_to_create) %# this itself calls %instantan.cls.plot_div_tern_instantan_comparison("CONV",save_as_manuscript=False) # if last is set True figure is stored for manuscript %
%#### Figure 17 (ADV Non Instantan - Instantan
%Very similar to Fig 16, same plot style with slight adaptations:
%python %import instantan %figure_to_create="fig17_adv_error" %instantan.main(figure_to_create=figure_to_create) %# this itself calls %instantan.cls.plot_div_tern_instantan_comparison("ADV",save_as_manuscript=False) # if last is set True figure is stored for manuscript %