From 361d94abb8291eafcd1d0c30d28be40be2c2ecce Mon Sep 17 00:00:00 2001 From: Stephan Rasp Date: Thu, 23 Aug 2018 00:10:35 -0700 Subject: [PATCH] Final commit after reviews --- .gitignore | 0 LICENSE | 0 cbrain/README.md | 0 cbrain/__init__.py | 0 cbrain/data_generator.py | 0 cbrain/hyai_hybi.pkl | Bin cbrain/imports.py | 0 cbrain/losses.py | 0 cbrain/model_diagnostics.py | 0 cbrain/models.py | 0 cbrain/preprocess_aqua.py | 0 cbrain/shuffle_ds.py | 0 cbrain/utils.py | 0 misc/read_aquaplanet_write_adiabatic.m | 0 nn_config/A001_fullphy_ess_sample1_base.yml | 0 ...02_fullphy_essv2_nonorm_sample1_max_rs.yml | 0 ...llphy_essv2_nonorm_sample1_max_rs_deep.yml | 0 nn_config/B001_purecrm_ess_sample1_base.yml | 0 nn_config/B002_purecrm_ess_sample1_deep1.yml | 0 nn_config/B003_purecrm_ess_sample1_tanh.yml | 0 nn_config/B004_purecrm_ess_sample1_mse.yml | 0 nn_config/B005_purecrm_ess_sample1_lr1.yml | 0 .../B006_purecrm_ess_sample1_deep1_tanh.yml | 0 nn_config/B007_purecrm_ess_sample1_bs128.yml | 0 nn_config/B008_purecrm_ess_sample1_bs512.yml | 0 .../B009_purecrm_ess_sample1_sigmoid.yml | 0 .../B010_purecrm_ess_sample1_leakyrelu.yml | 0 nn_config/B011_purecrm_ess_sample1_deep2.yml | 0 nn_config/B012_purecrm_ess_sample1_wide1.yml | 0 .../B013_purecrm_ess_sample1_mse_var.yml | 0 nn_config/B014_purecrm_essv2_sample1_base.yml | 0 nn_config/B015_purecrm_ess_sample1_impr.yml | 0 .../B016_purecrm_ess_sample1_impr_var.yml | 0 ...purecrm_essv2_norm-by-var_sample1_base.yml | 0 ...18_purecrm_essv2_nonorm_sample1_max_rs.yml | 0 ...9_purecrm_essv2_noadiab_sample1_max_rs.yml | 0 ...20_purecrm_essv2_nonorm_sample1_noise1.yml | 0 .../B021_purecrm_essv2_nonorm_sample1_dr1.yml | 0 ..._purecrm_essv2_nonorm_sample1_dr2_deep.yml | 0 ...ecrm_essv2_nonorm_sample1_noise1_deep1.yml | 0 ...ecrm_essv2_nonorm_sample1_noise2_deep1.yml | 0 ...purecrm_essv2_nonorm_sample1_max_rs_l2.yml | 0 ...recrm_essv2_nonorm_sample1_max_rs_l2v2.yml | 0 ...7_purecrm_essv2_nonorm_fullyear_max_rs.yml | 0 ...recrm_essv2_nonorm_sample1_max_rs_tiny.yml | 0 ...sv2_nonorm_sample1_max_rs_deep_l2_tanh.yml | 0 ...2_nonorm_sample1_max_rs_deep_l2v2_tanh.yml | 0 ...2_nonorm_sample1_max_rs_deep_l2v3_tanh.yml | 0 nn_config/C001_tfcomp_sample1_base.yml | 0 nn_config/C002_tfcomp_sample1_deep1.yml | 0 nn_config/D001_fbp_sample1_max_rs_deep.yml | 0 nn_config/D002_fbp_ke_sample1_max_rs_deep.yml | 0 .../D003_fbp_engy_ess_sample1_max_rs_deep.yml | 0 ...D004_fbp_engy_ess_fullyear_max_rs_deep.yml | 0 ..._fbp_engy_ess_fullyear_max_rs_deep_mae.yml | 0 ...006_fbp32_engy_ess_sample1_max_rs_deep.yml | 0 ...07_fbp32_engy_ess_fullyear_max_rs_deep.yml | 0 ...08_fbp_engy_ess_sample1_max_rs_deep_eq.yml | 0 ...9_fbp_engy_ess_fullyear_max_rs_deep_eq.yml | 0 ...fbp_engy_ess_sample1_max_rs_deep_eq_l2.yml | 0 ...fbp_engy_ess_sample1_max_rs_deep_eq_dr.yml | 0 ...p_engy_ess_sample1_max_rs_deep_eq_tanh.yml | 0 ..._ess_sample1_max_rs_deep_eq_tanh_l2_dr.yml | 0 nn_config/D014_fbp_engy_ess_sample1_bn.yml | 0 nn_config/D015_fbp_engy_ess_sample1_dr02.yml | 0 .../D016_fbp_engy_ess_sample1_shallow.yml | 0 nn_config/D017_fbp_engy_ess_sample1_conv1.yml | 0 nn_config/D018_fbp_engy_ess_ref_3m_ref.yml | 0 nn_config/D019_fbp_engy_ess_ref_6m_ref.yml | 0 .../D020_fbp_engy_ess_ref_fullyear_ref.yml | 0 .../D021_fbp_engy_ess_ref_sample1_ref.yml | 0 .../D022_fbp_engy_ess_ref_4k_sample1_ref.yml | 0 .../D023_fbp_engy_ess_ref_fullyear_dr02.yml | 0 .../D024_fbp_engy_ess_ref_4k_fullyear_ref.yml | 0 ...bp_engy_ess_ref_fullyear_ref_longtrain.yml | 0 ...D026_fbp_engy_ess_ref_fullyear_newdr01.yml | 0 .../D027_fbp_engy_ess_sample1_conv1_bn.yml | 0 ...28_fbp_engy_ess_ref_sample1_bottleneck.yml | 0 .../D029_fbp_engy_ess_sample1_conv_tile1.yml | 0 .../D030_fbp_engy_ess_ref_1k_sample1_ref.yml | 0 .../D031_fbp_engy_ess_ref_1k_fullyear_ref.yml | 0 .../D032_fbp_engy_ess_4k_fullyear_ref.yml | 0 ...ess_ref_fullyear_ref_longtrain_gentine.yml | 0 ...ess_ref_fullyear_ref_longtrain_smaller.yml | 0 ..._ref_fullyear_ref_longtrain_big_fluxes.yml | 0 ...ef_fullyear_ref_longtrain_small_fluxes.yml | 0 ...gy_ess_ref_fullyear_ref_longtrain_tiny.yml | 0 ...ess_ref_fullyear_ref_longtrain_shallow.yml | 0 ...f_fullyear_ref_longtrain_small_fluxes2.yml | 2 +- ...ref_fullyear_ref_longtrain_big_fluxes2.yml | 4 +- .../E001_fullphy_fbp_sample1_max_rs_deep.yml | 0 ...E002_fullphy_fbp32_sample1_max_rs_deep.yml | 0 ...F001_fbp_engy_cons_sample1_max_rs_deep.yml | 0 ...02_fbp32_engy_cons_sample1_max_rs_deep.yml | 0 ...p_engy_cons_APinp_sample1_partial_relu.yml | 0 ...fbp_engy_ess_galen_sample1_max_rs_deep.yml | 0 ..._fbp_engy_ess_snow_sample1_max_rs_deep.yml | 0 ...p_nobeta_engy_ess_fullyear_max_rs_deep.yml | 0 ...bp_nobeta_engy_ess_sample1_max_rs_deep.yml | 0 nn_config/P001_128_sample1.yml | 0 nn_config/P002_512_sample1.yml | 0 nn_config/P003_2048_sample1.yml | 0 nn_config/P004_8192_sample1.yml | 0 nn_config/P005_90x2_sample1.yml | 0 nn_config/P006_256x2_sample1.yml | 0 nn_config/P007_600x2_sample1.yml | 0 nn_config/P008_1300x2_sample1.yml | 0 nn_config/P009_50x8_sample1.yml | 0 nn_config/P010_115x8_sample1.yml | 0 nn_config/P011_256x8_sample1.yml | 0 nn_config/P012_512x8_sample1.yml | 0 nn_config/P013_512x8_sample1_bs512.yml | 0 nn_config/P014_512x8_sample1_bs256.yml | 0 nn_config/P015_512x8_sample1_bs128.yml | 0 nn_config/P016_512x8_10days.yml | 0 nn_config/P017_512x8_30days.yml | 0 nn_config/P018_512x8_90days.yml | 0 nn_config/P019_512x8_180days.yml | 0 nn_config/P020_512x8_270days.yml | 0 nn_config/P021_512x8_fullyear.yml | 0 nn_config/lmu_P019_512x8_180days.yml | 0 nn_config/lmu_P020_512x8_270days.yml | 0 nn_config/lmu_P021_512x8_fullyear.yml | 0 notebooks/dev/CGAN.ipynb | 0 notebooks/dev/SST.ipynb | 0 notebooks/dev/cbrain-cam-analysis.ipynb | 0 notebooks/dev/change-normalization-file.ipynb | 0 .../dev/check-CBRAIN-CAM-implementation.ipynb | 0 notebooks/dev/compare-fbp-32col.ipynb | 0 notebooks/dev/correct-constants.ipynb | 0 notebooks/dev/debug-engy_cons.ipynb | 0 notebooks/dev/debug-review.ipynb | 139 +++ notebooks/dev/debug_CBRAIN-CAM2-Copy1.ipynb | 0 notebooks/dev/debug_CBRAIN-CAM2.ipynb | 0 notebooks/dev/debug_engy-ess.ipynb | 0 notebooks/dev/energy_conservation-nn.ipynb | 0 notebooks/dev/generalization.ipynb | 0 notebooks/dev/load-multi-dataset.ipynb | 0 notebooks/dev/old_notebooks/R2.ipynb | 0 notebooks/dev/old_notebooks/RNN.ipynb | 0 .../agu_analysis_and_figures.html | 0 .../agu_analysis_and_figures.ipynb | 0 .../dev/old_notebooks/blow-up-analysis.ipynb | 0 notebooks/dev/old_notebooks/clr_callback.py | 0 notebooks/dev/old_notebooks/constraints.ipynb | 0 notebooks/dev/old_notebooks/cyclical_lr.ipynb | 0 .../dev/old_notebooks/debug-fluxbp.ipynb | 0 .../dev/old_notebooks/debug_CBRAIN-CAM.ipynb | 0 .../dev/old_notebooks/diag_development.ipynb | 0 .../diagnostics_and_visualization.html | 0 .../diagnostics_and_visualization.ipynb | 0 .../old_notebooks/energy_conservation.ipynb | 0 .../old_notebooks/explore_aqua_files.ipynb | 0 .../dev/old_notebooks/extended_output.ipynb | 0 .../input_noise-output_norm.ipynb | 0 notebooks/dev/old_notebooks/input_queue.ipynb | 0 .../dev/old_notebooks/keras_experiments.ipynb | 0 .../dev/old_notebooks/load_keras_model.ipynb | 0 notebooks/dev/old_notebooks/mat2text.ipynb | 0 .../dev/old_notebooks/normalization.ipynb | 0 .../dev/old_notebooks/split_datasets.ipynb | 0 .../dev/old_notebooks/test_diagnostics.ipynb | 0 .../old_notebooks/test_preprocessing.ipynb | 0 .../dev/old_notebooks/tf_diagnostics.ipynb | 0 .../old_notebooks/understand_log_loss.ipynb | 0 notebooks/dev/old_notebooks/variance.ipynb | 0 notebooks/dev/utils.py | 0 notebooks/presentation/diagnostics.ipynb | 248 ++++ notebooks/presentation/grl_paper.ipynb | 752 ++++++------ notebooks/presentation/paper2.ipynb | 1026 ++++++++++++++--- pp_config/fbp_engy_ess.yml | 0 pp_config/fbp_engy_ess_1k_valid.sh | 0 pp_config/fbp_engy_ess_2k_valid.sh | 0 pp_config/fbp_engy_ess_3k_valid.sh | 0 pp_config/fbp_engy_ess_4k_fullyear.sh | 0 pp_config/fbp_engy_ess_4k_sample1.sh | 0 pp_config/fbp_engy_ess_4k_valid.sh | 0 pp_config/fbp_engy_ess_ref_1k_fullyear.sh | 0 pp_config/fbp_engy_ess_ref_1k_sample1.sh | 0 pp_config/fbp_engy_ess_ref_3m.sh | 0 pp_config/fbp_engy_ess_ref_4k_fullyear.sh | 0 pp_config/fbp_engy_ess_ref_4k_sample1.sh | 0 pp_config/fbp_engy_ess_ref_4k_twoyears.sh | 0 pp_config/fbp_engy_ess_ref_6m.sh | 0 pp_config/fbp_engy_ess_ref_fullyear.sh | 0 pp_config/fbp_engy_ess_ref_sample1.sh | 0 pp_config/fbp_engy_ess_ref_valid.sh | 0 pp_config/fbp_nobeta_engy_cons_fullyear.sh | 0 pp_config/fbp_nobeta_engy_cons_sample1.sh | 0 pp_config/old_files/config.yml | 0 pp_config/old_files/config2.yml | 0 pp_config/old_files/config_PS.yml | 0 pp_config/old_files/config_SOLIN.yml | 0 pp_config/old_files/config_TF_comp.yml | 0 pp_config/old_files/fbp.yml | 0 .../old_files/fbp32_engy_cons_sample1.sh | 0 .../old_files/fbp32_engy_ess_fullyear.sh | 0 pp_config/old_files/fbp32_engy_ess_sample1.sh | 0 pp_config/old_files/fbp_engy_cons.yml | 0 pp_config/old_files/fbp_engy_cons_APinp.yml | 0 .../old_files/fbp_engy_cons_APinp_sample1.sh | 0 pp_config/old_files/fbp_engy_cons_sample1.sh | 0 pp_config/old_files/fbp_engy_ess_fullyear.sh | 0 pp_config/old_files/fbp_engy_ess_galen.yml | 0 .../old_files/fbp_engy_ess_galen_sample1.sh | 0 pp_config/old_files/fbp_engy_ess_sample1.sh | 0 pp_config/old_files/fbp_engy_ess_snow.yml | 0 .../old_files/fbp_engy_ess_snow_fullyear.sh | 0 .../old_files/fbp_engy_ess_snow_sample1.sh | 0 pp_config/old_files/fbp_ke.yml | 0 pp_config/old_files/fbp_ke_sample1.sh | 0 pp_config/old_files/fbp_sample1.sh | 0 .../old_files/full_physics_essentials.yml | 0 .../old_files/full_physics_essentialsv2.yml | 0 pp_config/old_files/fullphy_ess_fullyear.sh | 0 pp_config/old_files/fullphy_ess_sample1.sh | 0 .../old_files/fullphy_essv2_nonorm_sample1.sh | 0 pp_config/old_files/fullphy_fbp32_sample1.sh | 0 pp_config/old_files/fullphy_fbp_fullyear.sh | 0 pp_config/old_files/fullphy_fbp_sample1.sh | 0 pp_config/old_files/inout1.yml | 0 pp_config/old_files/inout_Mike.yml | 0 pp_config/old_files/inout_Mike_LAT.yml | 0 pp_config/old_files/inout_Mike_OMEGA.yml | 0 pp_config/old_files/inout_PS.yml | 0 pp_config/old_files/inout_SOLIN.yml | 0 pp_config/old_files/paper.yml | 0 pp_config/old_files/paper_nonorm_fullyear.sh | 0 pp_config/old_files/paper_nonorm_sample1.sh | 0 pp_config/old_files/pure_crm_essentials.yml | 0 pp_config/old_files/pure_crm_noadiab.yml | 0 pp_config/old_files/purecrm_ess_fullyear.sh | 0 pp_config/old_files/purecrm_ess_sample1.sh | 0 .../purecrm_essv2_nonorm_fullyear.sh | 0 .../old_files/purecrm_essv2_nonorm_sample1.sh | 0 .../purecrm_essv2_norm-by-var_sample1.sh | 0 pp_config/old_files/purecrm_essv2_sample1.sh | 0 .../old_files/purecrm_essv2_scale_sample1.sh | 0 .../purecrm_noadiab_nonorm_sample1.sh | 0 pp_config/old_files/tf_comp.yml | 0 pp_config/old_files/tfcomp_sample1.sh | 0 run_experiment.py | 0 save_weights.py | 0 wkspectra/Readme.txt | 0 wkspectra/wkspectra.csh | 2 +- wkspectra/wkspectra.ncl | 0 246 files changed, 1641 insertions(+), 532 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 LICENSE mode change 100644 => 100755 cbrain/README.md mode change 100644 => 100755 cbrain/__init__.py mode change 100644 => 100755 cbrain/data_generator.py mode change 100644 => 100755 cbrain/hyai_hybi.pkl mode change 100644 => 100755 cbrain/imports.py mode change 100644 => 100755 cbrain/losses.py mode change 100644 => 100755 cbrain/model_diagnostics.py mode change 100644 => 100755 cbrain/models.py mode change 100644 => 100755 cbrain/preprocess_aqua.py mode change 100644 => 100755 cbrain/shuffle_ds.py mode change 100644 => 100755 cbrain/utils.py mode change 100644 => 100755 misc/read_aquaplanet_write_adiabatic.m mode change 100644 => 100755 nn_config/A001_fullphy_ess_sample1_base.yml mode change 100644 => 100755 nn_config/A002_fullphy_essv2_nonorm_sample1_max_rs.yml mode change 100644 => 100755 nn_config/A003_fullphy_essv2_nonorm_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/B001_purecrm_ess_sample1_base.yml mode change 100644 => 100755 nn_config/B002_purecrm_ess_sample1_deep1.yml mode change 100644 => 100755 nn_config/B003_purecrm_ess_sample1_tanh.yml mode change 100644 => 100755 nn_config/B004_purecrm_ess_sample1_mse.yml mode change 100644 => 100755 nn_config/B005_purecrm_ess_sample1_lr1.yml mode change 100644 => 100755 nn_config/B006_purecrm_ess_sample1_deep1_tanh.yml mode change 100644 => 100755 nn_config/B007_purecrm_ess_sample1_bs128.yml mode change 100644 => 100755 nn_config/B008_purecrm_ess_sample1_bs512.yml mode change 100644 => 100755 nn_config/B009_purecrm_ess_sample1_sigmoid.yml mode change 100644 => 100755 nn_config/B010_purecrm_ess_sample1_leakyrelu.yml mode change 100644 => 100755 nn_config/B011_purecrm_ess_sample1_deep2.yml mode change 100644 => 100755 nn_config/B012_purecrm_ess_sample1_wide1.yml mode change 100644 => 100755 nn_config/B013_purecrm_ess_sample1_mse_var.yml mode change 100644 => 100755 nn_config/B014_purecrm_essv2_sample1_base.yml mode change 100644 => 100755 nn_config/B015_purecrm_ess_sample1_impr.yml mode change 100644 => 100755 nn_config/B016_purecrm_ess_sample1_impr_var.yml mode change 100644 => 100755 nn_config/B017_purecrm_essv2_norm-by-var_sample1_base.yml mode change 100644 => 100755 nn_config/B018_purecrm_essv2_nonorm_sample1_max_rs.yml mode change 100644 => 100755 nn_config/B019_purecrm_essv2_noadiab_sample1_max_rs.yml mode change 100644 => 100755 nn_config/B020_purecrm_essv2_nonorm_sample1_noise1.yml mode change 100644 => 100755 nn_config/B021_purecrm_essv2_nonorm_sample1_dr1.yml mode change 100644 => 100755 nn_config/B022_purecrm_essv2_nonorm_sample1_dr2_deep.yml mode change 100644 => 100755 nn_config/B023_purecrm_essv2_nonorm_sample1_noise1_deep1.yml mode change 100644 => 100755 nn_config/B024_purecrm_essv2_nonorm_sample1_noise2_deep1.yml mode change 100644 => 100755 nn_config/B025_purecrm_essv2_nonorm_sample1_max_rs_l2.yml mode change 100644 => 100755 nn_config/B026_purecrm_essv2_nonorm_sample1_max_rs_l2v2.yml mode change 100644 => 100755 nn_config/B027_purecrm_essv2_nonorm_fullyear_max_rs.yml mode change 100644 => 100755 nn_config/B028_purecrm_essv2_nonorm_sample1_max_rs_tiny.yml mode change 100644 => 100755 nn_config/B029_purecrm_essv2_nonorm_sample1_max_rs_deep_l2_tanh.yml mode change 100644 => 100755 nn_config/B030_purecrm_essv2_nonorm_sample1_max_rs_deep_l2v2_tanh.yml mode change 100644 => 100755 nn_config/B031_purecrm_essv2_nonorm_sample1_max_rs_deep_l2v3_tanh.yml mode change 100644 => 100755 nn_config/C001_tfcomp_sample1_base.yml mode change 100644 => 100755 nn_config/C002_tfcomp_sample1_deep1.yml mode change 100644 => 100755 nn_config/D001_fbp_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/D002_fbp_ke_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/D003_fbp_engy_ess_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/D004_fbp_engy_ess_fullyear_max_rs_deep.yml mode change 100644 => 100755 nn_config/D005_fbp_engy_ess_fullyear_max_rs_deep_mae.yml mode change 100644 => 100755 nn_config/D006_fbp32_engy_ess_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/D007_fbp32_engy_ess_fullyear_max_rs_deep.yml mode change 100644 => 100755 nn_config/D008_fbp_engy_ess_sample1_max_rs_deep_eq.yml mode change 100644 => 100755 nn_config/D009_fbp_engy_ess_fullyear_max_rs_deep_eq.yml mode change 100644 => 100755 nn_config/D010_fbp_engy_ess_sample1_max_rs_deep_eq_l2.yml mode change 100644 => 100755 nn_config/D011_fbp_engy_ess_sample1_max_rs_deep_eq_dr.yml mode change 100644 => 100755 nn_config/D012_fbp_engy_ess_sample1_max_rs_deep_eq_tanh.yml mode change 100644 => 100755 nn_config/D013_fbp_engy_ess_sample1_max_rs_deep_eq_tanh_l2_dr.yml mode change 100644 => 100755 nn_config/D014_fbp_engy_ess_sample1_bn.yml mode change 100644 => 100755 nn_config/D015_fbp_engy_ess_sample1_dr02.yml mode change 100644 => 100755 nn_config/D016_fbp_engy_ess_sample1_shallow.yml mode change 100644 => 100755 nn_config/D017_fbp_engy_ess_sample1_conv1.yml mode change 100644 => 100755 nn_config/D018_fbp_engy_ess_ref_3m_ref.yml mode change 100644 => 100755 nn_config/D019_fbp_engy_ess_ref_6m_ref.yml mode change 100644 => 100755 nn_config/D020_fbp_engy_ess_ref_fullyear_ref.yml mode change 100644 => 100755 nn_config/D021_fbp_engy_ess_ref_sample1_ref.yml mode change 100644 => 100755 nn_config/D022_fbp_engy_ess_ref_4k_sample1_ref.yml mode change 100644 => 100755 nn_config/D023_fbp_engy_ess_ref_fullyear_dr02.yml mode change 100644 => 100755 nn_config/D024_fbp_engy_ess_ref_4k_fullyear_ref.yml mode change 100644 => 100755 nn_config/D025_fbp_engy_ess_ref_fullyear_ref_longtrain.yml mode change 100644 => 100755 nn_config/D026_fbp_engy_ess_ref_fullyear_newdr01.yml mode change 100644 => 100755 nn_config/D027_fbp_engy_ess_sample1_conv1_bn.yml mode change 100644 => 100755 nn_config/D028_fbp_engy_ess_ref_sample1_bottleneck.yml mode change 100644 => 100755 nn_config/D029_fbp_engy_ess_sample1_conv_tile1.yml mode change 100644 => 100755 nn_config/D030_fbp_engy_ess_ref_1k_sample1_ref.yml mode change 100644 => 100755 nn_config/D031_fbp_engy_ess_ref_1k_fullyear_ref.yml mode change 100644 => 100755 nn_config/D032_fbp_engy_ess_4k_fullyear_ref.yml mode change 100644 => 100755 nn_config/D033_fbp_engy_ess_ref_fullyear_ref_longtrain_gentine.yml mode change 100644 => 100755 nn_config/D034_fbp_engy_ess_ref_fullyear_ref_longtrain_smaller.yml mode change 100644 => 100755 nn_config/D035_fbp_engy_ess_ref_fullyear_ref_longtrain_big_fluxes.yml mode change 100644 => 100755 nn_config/D036_fbp_engy_ess_ref_fullyear_ref_longtrain_small_fluxes.yml mode change 100644 => 100755 nn_config/D037_fbp_engy_ess_ref_fullyear_ref_longtrain_tiny.yml mode change 100644 => 100755 nn_config/D038_fbp_engy_ess_ref_fullyear_ref_longtrain_shallow.yml mode change 100644 => 100755 nn_config/D039_fbp_engy_ess_ref_fullyear_ref_longtrain_small_fluxes2.yml mode change 100644 => 100755 nn_config/D040_fbp_engy_ess_ref_fullyear_ref_longtrain_big_fluxes2.yml mode change 100644 => 100755 nn_config/E001_fullphy_fbp_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/E002_fullphy_fbp32_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/F001_fbp_engy_cons_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/F002_fbp32_engy_cons_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/F003_fbp_engy_cons_APinp_sample1_partial_relu.yml mode change 100644 => 100755 nn_config/G001_fbp_engy_ess_galen_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/H001_fbp_engy_ess_snow_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/N001_fbp_nobeta_engy_ess_fullyear_max_rs_deep.yml mode change 100644 => 100755 nn_config/N002_fbp_nobeta_engy_ess_sample1_max_rs_deep.yml mode change 100644 => 100755 nn_config/P001_128_sample1.yml mode change 100644 => 100755 nn_config/P002_512_sample1.yml mode change 100644 => 100755 nn_config/P003_2048_sample1.yml mode change 100644 => 100755 nn_config/P004_8192_sample1.yml mode change 100644 => 100755 nn_config/P005_90x2_sample1.yml mode change 100644 => 100755 nn_config/P006_256x2_sample1.yml mode change 100644 => 100755 nn_config/P007_600x2_sample1.yml mode change 100644 => 100755 nn_config/P008_1300x2_sample1.yml mode change 100644 => 100755 nn_config/P009_50x8_sample1.yml mode change 100644 => 100755 nn_config/P010_115x8_sample1.yml mode change 100644 => 100755 nn_config/P011_256x8_sample1.yml mode change 100644 => 100755 nn_config/P012_512x8_sample1.yml mode change 100644 => 100755 nn_config/P013_512x8_sample1_bs512.yml mode change 100644 => 100755 nn_config/P014_512x8_sample1_bs256.yml mode change 100644 => 100755 nn_config/P015_512x8_sample1_bs128.yml mode change 100644 => 100755 nn_config/P016_512x8_10days.yml mode change 100644 => 100755 nn_config/P017_512x8_30days.yml mode change 100644 => 100755 nn_config/P018_512x8_90days.yml mode change 100644 => 100755 nn_config/P019_512x8_180days.yml mode change 100644 => 100755 nn_config/P020_512x8_270days.yml mode change 100644 => 100755 nn_config/P021_512x8_fullyear.yml mode change 100644 => 100755 nn_config/lmu_P019_512x8_180days.yml mode change 100644 => 100755 nn_config/lmu_P020_512x8_270days.yml mode change 100644 => 100755 nn_config/lmu_P021_512x8_fullyear.yml mode change 100644 => 100755 notebooks/dev/CGAN.ipynb mode change 100644 => 100755 notebooks/dev/SST.ipynb mode change 100644 => 100755 notebooks/dev/cbrain-cam-analysis.ipynb mode change 100644 => 100755 notebooks/dev/change-normalization-file.ipynb mode change 100644 => 100755 notebooks/dev/check-CBRAIN-CAM-implementation.ipynb mode change 100644 => 100755 notebooks/dev/compare-fbp-32col.ipynb mode change 100644 => 100755 notebooks/dev/correct-constants.ipynb mode change 100644 => 100755 notebooks/dev/debug-engy_cons.ipynb create mode 100755 notebooks/dev/debug-review.ipynb mode change 100644 => 100755 notebooks/dev/debug_CBRAIN-CAM2-Copy1.ipynb mode change 100644 => 100755 notebooks/dev/debug_CBRAIN-CAM2.ipynb mode change 100644 => 100755 notebooks/dev/debug_engy-ess.ipynb mode change 100644 => 100755 notebooks/dev/energy_conservation-nn.ipynb mode change 100644 => 100755 notebooks/dev/generalization.ipynb mode change 100644 => 100755 notebooks/dev/load-multi-dataset.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/R2.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/RNN.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/agu_analysis_and_figures.html mode change 100644 => 100755 notebooks/dev/old_notebooks/agu_analysis_and_figures.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/blow-up-analysis.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/clr_callback.py mode change 100644 => 100755 notebooks/dev/old_notebooks/constraints.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/cyclical_lr.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/debug-fluxbp.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/debug_CBRAIN-CAM.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/diag_development.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/diagnostics_and_visualization.html mode change 100644 => 100755 notebooks/dev/old_notebooks/diagnostics_and_visualization.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/energy_conservation.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/explore_aqua_files.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/extended_output.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/input_noise-output_norm.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/input_queue.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/keras_experiments.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/load_keras_model.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/mat2text.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/normalization.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/split_datasets.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/test_diagnostics.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/test_preprocessing.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/tf_diagnostics.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/understand_log_loss.ipynb mode change 100644 => 100755 notebooks/dev/old_notebooks/variance.ipynb mode change 100644 => 100755 notebooks/dev/utils.py mode change 100644 => 100755 notebooks/presentation/diagnostics.ipynb mode change 100644 => 100755 notebooks/presentation/grl_paper.ipynb mode change 100644 => 100755 notebooks/presentation/paper2.ipynb mode change 100644 => 100755 pp_config/fbp_engy_ess.yml mode change 100644 => 100755 pp_config/fbp_engy_ess_1k_valid.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_2k_valid.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_3k_valid.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_4k_fullyear.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_4k_sample1.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_4k_valid.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_ref_1k_fullyear.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_ref_1k_sample1.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_ref_3m.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_ref_4k_fullyear.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_ref_4k_sample1.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_ref_4k_twoyears.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_ref_6m.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_ref_fullyear.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_ref_sample1.sh mode change 100644 => 100755 pp_config/fbp_engy_ess_ref_valid.sh mode change 100644 => 100755 pp_config/fbp_nobeta_engy_cons_fullyear.sh mode change 100644 => 100755 pp_config/fbp_nobeta_engy_cons_sample1.sh mode change 100644 => 100755 pp_config/old_files/config.yml mode change 100644 => 100755 pp_config/old_files/config2.yml mode change 100644 => 100755 pp_config/old_files/config_PS.yml mode change 100644 => 100755 pp_config/old_files/config_SOLIN.yml mode change 100644 => 100755 pp_config/old_files/config_TF_comp.yml mode change 100644 => 100755 pp_config/old_files/fbp.yml mode change 100644 => 100755 pp_config/old_files/fbp32_engy_cons_sample1.sh mode change 100644 => 100755 pp_config/old_files/fbp32_engy_ess_fullyear.sh mode change 100644 => 100755 pp_config/old_files/fbp32_engy_ess_sample1.sh mode change 100644 => 100755 pp_config/old_files/fbp_engy_cons.yml mode change 100644 => 100755 pp_config/old_files/fbp_engy_cons_APinp.yml mode change 100644 => 100755 pp_config/old_files/fbp_engy_cons_APinp_sample1.sh mode change 100644 => 100755 pp_config/old_files/fbp_engy_cons_sample1.sh mode change 100644 => 100755 pp_config/old_files/fbp_engy_ess_fullyear.sh mode change 100644 => 100755 pp_config/old_files/fbp_engy_ess_galen.yml mode change 100644 => 100755 pp_config/old_files/fbp_engy_ess_galen_sample1.sh mode change 100644 => 100755 pp_config/old_files/fbp_engy_ess_sample1.sh mode change 100644 => 100755 pp_config/old_files/fbp_engy_ess_snow.yml mode change 100644 => 100755 pp_config/old_files/fbp_engy_ess_snow_fullyear.sh mode change 100644 => 100755 pp_config/old_files/fbp_engy_ess_snow_sample1.sh mode change 100644 => 100755 pp_config/old_files/fbp_ke.yml mode change 100644 => 100755 pp_config/old_files/fbp_ke_sample1.sh mode change 100644 => 100755 pp_config/old_files/fbp_sample1.sh mode change 100644 => 100755 pp_config/old_files/full_physics_essentials.yml mode change 100644 => 100755 pp_config/old_files/full_physics_essentialsv2.yml mode change 100644 => 100755 pp_config/old_files/fullphy_ess_fullyear.sh mode change 100644 => 100755 pp_config/old_files/fullphy_ess_sample1.sh mode change 100644 => 100755 pp_config/old_files/fullphy_essv2_nonorm_sample1.sh mode change 100644 => 100755 pp_config/old_files/fullphy_fbp32_sample1.sh mode change 100644 => 100755 pp_config/old_files/fullphy_fbp_fullyear.sh mode change 100644 => 100755 pp_config/old_files/fullphy_fbp_sample1.sh mode change 100644 => 100755 pp_config/old_files/inout1.yml mode change 100644 => 100755 pp_config/old_files/inout_Mike.yml mode change 100644 => 100755 pp_config/old_files/inout_Mike_LAT.yml mode change 100644 => 100755 pp_config/old_files/inout_Mike_OMEGA.yml mode change 100644 => 100755 pp_config/old_files/inout_PS.yml mode change 100644 => 100755 pp_config/old_files/inout_SOLIN.yml mode change 100644 => 100755 pp_config/old_files/paper.yml mode change 100644 => 100755 pp_config/old_files/paper_nonorm_fullyear.sh mode change 100644 => 100755 pp_config/old_files/paper_nonorm_sample1.sh mode change 100644 => 100755 pp_config/old_files/pure_crm_essentials.yml mode change 100644 => 100755 pp_config/old_files/pure_crm_noadiab.yml mode change 100644 => 100755 pp_config/old_files/purecrm_ess_fullyear.sh mode change 100644 => 100755 pp_config/old_files/purecrm_ess_sample1.sh mode change 100644 => 100755 pp_config/old_files/purecrm_essv2_nonorm_fullyear.sh mode change 100644 => 100755 pp_config/old_files/purecrm_essv2_nonorm_sample1.sh mode change 100644 => 100755 pp_config/old_files/purecrm_essv2_norm-by-var_sample1.sh mode change 100644 => 100755 pp_config/old_files/purecrm_essv2_sample1.sh mode change 100644 => 100755 pp_config/old_files/purecrm_essv2_scale_sample1.sh mode change 100644 => 100755 pp_config/old_files/purecrm_noadiab_nonorm_sample1.sh mode change 100644 => 100755 pp_config/old_files/tf_comp.yml mode change 100644 => 100755 pp_config/old_files/tfcomp_sample1.sh mode change 100644 => 100755 run_experiment.py mode change 100644 => 100755 save_weights.py mode change 100644 => 100755 wkspectra/Readme.txt mode change 100644 => 100755 wkspectra/wkspectra.csh mode change 100644 => 100755 wkspectra/wkspectra.ncl diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/cbrain/README.md b/cbrain/README.md old mode 100644 new mode 100755 diff --git a/cbrain/__init__.py b/cbrain/__init__.py old mode 100644 new mode 100755 diff --git a/cbrain/data_generator.py b/cbrain/data_generator.py old mode 100644 new mode 100755 diff --git a/cbrain/hyai_hybi.pkl b/cbrain/hyai_hybi.pkl old mode 100644 new mode 100755 diff --git a/cbrain/imports.py b/cbrain/imports.py old mode 100644 new mode 100755 diff --git a/cbrain/losses.py b/cbrain/losses.py old mode 100644 new mode 100755 diff --git a/cbrain/model_diagnostics.py b/cbrain/model_diagnostics.py old mode 100644 new mode 100755 diff --git a/cbrain/models.py b/cbrain/models.py old mode 100644 new mode 100755 diff --git a/cbrain/preprocess_aqua.py b/cbrain/preprocess_aqua.py old mode 100644 new mode 100755 diff --git a/cbrain/shuffle_ds.py b/cbrain/shuffle_ds.py old mode 100644 new mode 100755 diff --git a/cbrain/utils.py b/cbrain/utils.py old mode 100644 new mode 100755 diff --git a/misc/read_aquaplanet_write_adiabatic.m b/misc/read_aquaplanet_write_adiabatic.m old mode 100644 new mode 100755 diff --git a/nn_config/A001_fullphy_ess_sample1_base.yml b/nn_config/A001_fullphy_ess_sample1_base.yml old mode 100644 new mode 100755 diff --git a/nn_config/A002_fullphy_essv2_nonorm_sample1_max_rs.yml b/nn_config/A002_fullphy_essv2_nonorm_sample1_max_rs.yml old mode 100644 new mode 100755 diff --git a/nn_config/A003_fullphy_essv2_nonorm_sample1_max_rs_deep.yml b/nn_config/A003_fullphy_essv2_nonorm_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/B001_purecrm_ess_sample1_base.yml b/nn_config/B001_purecrm_ess_sample1_base.yml old mode 100644 new mode 100755 diff --git a/nn_config/B002_purecrm_ess_sample1_deep1.yml b/nn_config/B002_purecrm_ess_sample1_deep1.yml old mode 100644 new mode 100755 diff --git a/nn_config/B003_purecrm_ess_sample1_tanh.yml b/nn_config/B003_purecrm_ess_sample1_tanh.yml old mode 100644 new mode 100755 diff --git a/nn_config/B004_purecrm_ess_sample1_mse.yml b/nn_config/B004_purecrm_ess_sample1_mse.yml old mode 100644 new mode 100755 diff --git a/nn_config/B005_purecrm_ess_sample1_lr1.yml b/nn_config/B005_purecrm_ess_sample1_lr1.yml old mode 100644 new mode 100755 diff --git a/nn_config/B006_purecrm_ess_sample1_deep1_tanh.yml b/nn_config/B006_purecrm_ess_sample1_deep1_tanh.yml old mode 100644 new mode 100755 diff --git a/nn_config/B007_purecrm_ess_sample1_bs128.yml b/nn_config/B007_purecrm_ess_sample1_bs128.yml old mode 100644 new mode 100755 diff --git a/nn_config/B008_purecrm_ess_sample1_bs512.yml b/nn_config/B008_purecrm_ess_sample1_bs512.yml old mode 100644 new mode 100755 diff --git a/nn_config/B009_purecrm_ess_sample1_sigmoid.yml b/nn_config/B009_purecrm_ess_sample1_sigmoid.yml old mode 100644 new mode 100755 diff --git a/nn_config/B010_purecrm_ess_sample1_leakyrelu.yml b/nn_config/B010_purecrm_ess_sample1_leakyrelu.yml old mode 100644 new mode 100755 diff --git a/nn_config/B011_purecrm_ess_sample1_deep2.yml b/nn_config/B011_purecrm_ess_sample1_deep2.yml old mode 100644 new mode 100755 diff --git a/nn_config/B012_purecrm_ess_sample1_wide1.yml b/nn_config/B012_purecrm_ess_sample1_wide1.yml old mode 100644 new mode 100755 diff --git a/nn_config/B013_purecrm_ess_sample1_mse_var.yml b/nn_config/B013_purecrm_ess_sample1_mse_var.yml old mode 100644 new mode 100755 diff --git a/nn_config/B014_purecrm_essv2_sample1_base.yml b/nn_config/B014_purecrm_essv2_sample1_base.yml old mode 100644 new mode 100755 diff --git a/nn_config/B015_purecrm_ess_sample1_impr.yml b/nn_config/B015_purecrm_ess_sample1_impr.yml old mode 100644 new mode 100755 diff --git a/nn_config/B016_purecrm_ess_sample1_impr_var.yml b/nn_config/B016_purecrm_ess_sample1_impr_var.yml old mode 100644 new mode 100755 diff --git a/nn_config/B017_purecrm_essv2_norm-by-var_sample1_base.yml b/nn_config/B017_purecrm_essv2_norm-by-var_sample1_base.yml old mode 100644 new mode 100755 diff --git a/nn_config/B018_purecrm_essv2_nonorm_sample1_max_rs.yml b/nn_config/B018_purecrm_essv2_nonorm_sample1_max_rs.yml old mode 100644 new mode 100755 diff --git a/nn_config/B019_purecrm_essv2_noadiab_sample1_max_rs.yml b/nn_config/B019_purecrm_essv2_noadiab_sample1_max_rs.yml old mode 100644 new mode 100755 diff --git a/nn_config/B020_purecrm_essv2_nonorm_sample1_noise1.yml b/nn_config/B020_purecrm_essv2_nonorm_sample1_noise1.yml old mode 100644 new mode 100755 diff --git a/nn_config/B021_purecrm_essv2_nonorm_sample1_dr1.yml b/nn_config/B021_purecrm_essv2_nonorm_sample1_dr1.yml old mode 100644 new mode 100755 diff --git a/nn_config/B022_purecrm_essv2_nonorm_sample1_dr2_deep.yml b/nn_config/B022_purecrm_essv2_nonorm_sample1_dr2_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/B023_purecrm_essv2_nonorm_sample1_noise1_deep1.yml b/nn_config/B023_purecrm_essv2_nonorm_sample1_noise1_deep1.yml old mode 100644 new mode 100755 diff --git a/nn_config/B024_purecrm_essv2_nonorm_sample1_noise2_deep1.yml b/nn_config/B024_purecrm_essv2_nonorm_sample1_noise2_deep1.yml old mode 100644 new mode 100755 diff --git a/nn_config/B025_purecrm_essv2_nonorm_sample1_max_rs_l2.yml b/nn_config/B025_purecrm_essv2_nonorm_sample1_max_rs_l2.yml old mode 100644 new mode 100755 diff --git a/nn_config/B026_purecrm_essv2_nonorm_sample1_max_rs_l2v2.yml b/nn_config/B026_purecrm_essv2_nonorm_sample1_max_rs_l2v2.yml old mode 100644 new mode 100755 diff --git a/nn_config/B027_purecrm_essv2_nonorm_fullyear_max_rs.yml b/nn_config/B027_purecrm_essv2_nonorm_fullyear_max_rs.yml old mode 100644 new mode 100755 diff --git a/nn_config/B028_purecrm_essv2_nonorm_sample1_max_rs_tiny.yml b/nn_config/B028_purecrm_essv2_nonorm_sample1_max_rs_tiny.yml old mode 100644 new mode 100755 diff --git a/nn_config/B029_purecrm_essv2_nonorm_sample1_max_rs_deep_l2_tanh.yml b/nn_config/B029_purecrm_essv2_nonorm_sample1_max_rs_deep_l2_tanh.yml old mode 100644 new mode 100755 diff --git a/nn_config/B030_purecrm_essv2_nonorm_sample1_max_rs_deep_l2v2_tanh.yml b/nn_config/B030_purecrm_essv2_nonorm_sample1_max_rs_deep_l2v2_tanh.yml old mode 100644 new mode 100755 diff --git a/nn_config/B031_purecrm_essv2_nonorm_sample1_max_rs_deep_l2v3_tanh.yml b/nn_config/B031_purecrm_essv2_nonorm_sample1_max_rs_deep_l2v3_tanh.yml old mode 100644 new mode 100755 diff --git a/nn_config/C001_tfcomp_sample1_base.yml b/nn_config/C001_tfcomp_sample1_base.yml old mode 100644 new mode 100755 diff --git a/nn_config/C002_tfcomp_sample1_deep1.yml b/nn_config/C002_tfcomp_sample1_deep1.yml old mode 100644 new mode 100755 diff --git a/nn_config/D001_fbp_sample1_max_rs_deep.yml b/nn_config/D001_fbp_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/D002_fbp_ke_sample1_max_rs_deep.yml b/nn_config/D002_fbp_ke_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/D003_fbp_engy_ess_sample1_max_rs_deep.yml b/nn_config/D003_fbp_engy_ess_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/D004_fbp_engy_ess_fullyear_max_rs_deep.yml b/nn_config/D004_fbp_engy_ess_fullyear_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/D005_fbp_engy_ess_fullyear_max_rs_deep_mae.yml b/nn_config/D005_fbp_engy_ess_fullyear_max_rs_deep_mae.yml old mode 100644 new mode 100755 diff --git a/nn_config/D006_fbp32_engy_ess_sample1_max_rs_deep.yml b/nn_config/D006_fbp32_engy_ess_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/D007_fbp32_engy_ess_fullyear_max_rs_deep.yml b/nn_config/D007_fbp32_engy_ess_fullyear_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/D008_fbp_engy_ess_sample1_max_rs_deep_eq.yml b/nn_config/D008_fbp_engy_ess_sample1_max_rs_deep_eq.yml old mode 100644 new mode 100755 diff --git a/nn_config/D009_fbp_engy_ess_fullyear_max_rs_deep_eq.yml b/nn_config/D009_fbp_engy_ess_fullyear_max_rs_deep_eq.yml old mode 100644 new mode 100755 diff --git a/nn_config/D010_fbp_engy_ess_sample1_max_rs_deep_eq_l2.yml b/nn_config/D010_fbp_engy_ess_sample1_max_rs_deep_eq_l2.yml old mode 100644 new mode 100755 diff --git a/nn_config/D011_fbp_engy_ess_sample1_max_rs_deep_eq_dr.yml b/nn_config/D011_fbp_engy_ess_sample1_max_rs_deep_eq_dr.yml old mode 100644 new mode 100755 diff --git a/nn_config/D012_fbp_engy_ess_sample1_max_rs_deep_eq_tanh.yml b/nn_config/D012_fbp_engy_ess_sample1_max_rs_deep_eq_tanh.yml old mode 100644 new mode 100755 diff --git a/nn_config/D013_fbp_engy_ess_sample1_max_rs_deep_eq_tanh_l2_dr.yml b/nn_config/D013_fbp_engy_ess_sample1_max_rs_deep_eq_tanh_l2_dr.yml old mode 100644 new mode 100755 diff --git a/nn_config/D014_fbp_engy_ess_sample1_bn.yml b/nn_config/D014_fbp_engy_ess_sample1_bn.yml old mode 100644 new mode 100755 diff --git a/nn_config/D015_fbp_engy_ess_sample1_dr02.yml b/nn_config/D015_fbp_engy_ess_sample1_dr02.yml old mode 100644 new mode 100755 diff --git a/nn_config/D016_fbp_engy_ess_sample1_shallow.yml b/nn_config/D016_fbp_engy_ess_sample1_shallow.yml old mode 100644 new mode 100755 diff --git a/nn_config/D017_fbp_engy_ess_sample1_conv1.yml b/nn_config/D017_fbp_engy_ess_sample1_conv1.yml old mode 100644 new mode 100755 diff --git a/nn_config/D018_fbp_engy_ess_ref_3m_ref.yml b/nn_config/D018_fbp_engy_ess_ref_3m_ref.yml old mode 100644 new mode 100755 diff --git a/nn_config/D019_fbp_engy_ess_ref_6m_ref.yml b/nn_config/D019_fbp_engy_ess_ref_6m_ref.yml old mode 100644 new mode 100755 diff --git a/nn_config/D020_fbp_engy_ess_ref_fullyear_ref.yml b/nn_config/D020_fbp_engy_ess_ref_fullyear_ref.yml old mode 100644 new mode 100755 diff --git a/nn_config/D021_fbp_engy_ess_ref_sample1_ref.yml b/nn_config/D021_fbp_engy_ess_ref_sample1_ref.yml old mode 100644 new mode 100755 diff --git a/nn_config/D022_fbp_engy_ess_ref_4k_sample1_ref.yml b/nn_config/D022_fbp_engy_ess_ref_4k_sample1_ref.yml old mode 100644 new mode 100755 diff --git a/nn_config/D023_fbp_engy_ess_ref_fullyear_dr02.yml b/nn_config/D023_fbp_engy_ess_ref_fullyear_dr02.yml old mode 100644 new mode 100755 diff --git a/nn_config/D024_fbp_engy_ess_ref_4k_fullyear_ref.yml b/nn_config/D024_fbp_engy_ess_ref_4k_fullyear_ref.yml old mode 100644 new mode 100755 diff --git a/nn_config/D025_fbp_engy_ess_ref_fullyear_ref_longtrain.yml b/nn_config/D025_fbp_engy_ess_ref_fullyear_ref_longtrain.yml old mode 100644 new mode 100755 diff --git a/nn_config/D026_fbp_engy_ess_ref_fullyear_newdr01.yml b/nn_config/D026_fbp_engy_ess_ref_fullyear_newdr01.yml old mode 100644 new mode 100755 diff --git a/nn_config/D027_fbp_engy_ess_sample1_conv1_bn.yml b/nn_config/D027_fbp_engy_ess_sample1_conv1_bn.yml old mode 100644 new mode 100755 diff --git a/nn_config/D028_fbp_engy_ess_ref_sample1_bottleneck.yml b/nn_config/D028_fbp_engy_ess_ref_sample1_bottleneck.yml old mode 100644 new mode 100755 diff --git a/nn_config/D029_fbp_engy_ess_sample1_conv_tile1.yml b/nn_config/D029_fbp_engy_ess_sample1_conv_tile1.yml old mode 100644 new mode 100755 diff --git a/nn_config/D030_fbp_engy_ess_ref_1k_sample1_ref.yml b/nn_config/D030_fbp_engy_ess_ref_1k_sample1_ref.yml old mode 100644 new mode 100755 diff --git a/nn_config/D031_fbp_engy_ess_ref_1k_fullyear_ref.yml b/nn_config/D031_fbp_engy_ess_ref_1k_fullyear_ref.yml old mode 100644 new mode 100755 diff --git a/nn_config/D032_fbp_engy_ess_4k_fullyear_ref.yml b/nn_config/D032_fbp_engy_ess_4k_fullyear_ref.yml old mode 100644 new mode 100755 diff --git a/nn_config/D033_fbp_engy_ess_ref_fullyear_ref_longtrain_gentine.yml b/nn_config/D033_fbp_engy_ess_ref_fullyear_ref_longtrain_gentine.yml old mode 100644 new mode 100755 diff --git a/nn_config/D034_fbp_engy_ess_ref_fullyear_ref_longtrain_smaller.yml b/nn_config/D034_fbp_engy_ess_ref_fullyear_ref_longtrain_smaller.yml old mode 100644 new mode 100755 diff --git a/nn_config/D035_fbp_engy_ess_ref_fullyear_ref_longtrain_big_fluxes.yml b/nn_config/D035_fbp_engy_ess_ref_fullyear_ref_longtrain_big_fluxes.yml old mode 100644 new mode 100755 diff --git a/nn_config/D036_fbp_engy_ess_ref_fullyear_ref_longtrain_small_fluxes.yml b/nn_config/D036_fbp_engy_ess_ref_fullyear_ref_longtrain_small_fluxes.yml old mode 100644 new mode 100755 diff --git a/nn_config/D037_fbp_engy_ess_ref_fullyear_ref_longtrain_tiny.yml b/nn_config/D037_fbp_engy_ess_ref_fullyear_ref_longtrain_tiny.yml old mode 100644 new mode 100755 diff --git a/nn_config/D038_fbp_engy_ess_ref_fullyear_ref_longtrain_shallow.yml b/nn_config/D038_fbp_engy_ess_ref_fullyear_ref_longtrain_shallow.yml old mode 100644 new mode 100755 diff --git a/nn_config/D039_fbp_engy_ess_ref_fullyear_ref_longtrain_small_fluxes2.yml b/nn_config/D039_fbp_engy_ess_ref_fullyear_ref_longtrain_small_fluxes2.yml old mode 100644 new mode 100755 index a45db1cb..4561de30 --- a/nn_config/D039_fbp_engy_ess_ref_fullyear_ref_longtrain_small_fluxes2.yml +++ b/nn_config/D039_fbp_engy_ess_ref_fullyear_ref_longtrain_small_fluxes2.yml @@ -1,5 +1,5 @@ exp_name: D039_fbp_engy_ess_ref_fullyear_ref_small_fluxes2 -data_dir: /local/S.Rasp/preprocessed_data/ +data_dir: /scratch/srasp/preprocessed_data/ train_fn: fbp_engy_ess_ref_train_fullyear_shuffle valid_fn: fbp_engy_ess_valid_sample1 norm_fn: fbp_engy_ess_ref_train_sample1_norm_small_fluxes2.nc diff --git a/nn_config/D040_fbp_engy_ess_ref_fullyear_ref_longtrain_big_fluxes2.yml b/nn_config/D040_fbp_engy_ess_ref_fullyear_ref_longtrain_big_fluxes2.yml old mode 100644 new mode 100755 index ae47655b..e74e0c13 --- a/nn_config/D040_fbp_engy_ess_ref_fullyear_ref_longtrain_big_fluxes2.yml +++ b/nn_config/D040_fbp_engy_ess_ref_fullyear_ref_longtrain_big_fluxes2.yml @@ -1,5 +1,5 @@ -exp_name: D0340_fbp_engy_ess_ref_fullyear_ref_big_fluxes2 -data_dir: /local/S.Rasp/preprocessed_data/ +exp_name: D040_fbp_engy_ess_ref_fullyear_ref_big_fluxes2 +data_dir: /scratch/srasp/preprocessed_data/ train_fn: fbp_engy_ess_ref_train_fullyear_shuffle valid_fn: fbp_engy_ess_valid_sample1 norm_fn: fbp_engy_ess_ref_train_sample1_norm_big_fluxes2.nc diff --git a/nn_config/E001_fullphy_fbp_sample1_max_rs_deep.yml b/nn_config/E001_fullphy_fbp_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/E002_fullphy_fbp32_sample1_max_rs_deep.yml b/nn_config/E002_fullphy_fbp32_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/F001_fbp_engy_cons_sample1_max_rs_deep.yml b/nn_config/F001_fbp_engy_cons_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/F002_fbp32_engy_cons_sample1_max_rs_deep.yml b/nn_config/F002_fbp32_engy_cons_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/F003_fbp_engy_cons_APinp_sample1_partial_relu.yml b/nn_config/F003_fbp_engy_cons_APinp_sample1_partial_relu.yml old mode 100644 new mode 100755 diff --git a/nn_config/G001_fbp_engy_ess_galen_sample1_max_rs_deep.yml b/nn_config/G001_fbp_engy_ess_galen_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/H001_fbp_engy_ess_snow_sample1_max_rs_deep.yml b/nn_config/H001_fbp_engy_ess_snow_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/N001_fbp_nobeta_engy_ess_fullyear_max_rs_deep.yml b/nn_config/N001_fbp_nobeta_engy_ess_fullyear_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/N002_fbp_nobeta_engy_ess_sample1_max_rs_deep.yml b/nn_config/N002_fbp_nobeta_engy_ess_sample1_max_rs_deep.yml old mode 100644 new mode 100755 diff --git a/nn_config/P001_128_sample1.yml b/nn_config/P001_128_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P002_512_sample1.yml b/nn_config/P002_512_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P003_2048_sample1.yml b/nn_config/P003_2048_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P004_8192_sample1.yml b/nn_config/P004_8192_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P005_90x2_sample1.yml b/nn_config/P005_90x2_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P006_256x2_sample1.yml b/nn_config/P006_256x2_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P007_600x2_sample1.yml b/nn_config/P007_600x2_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P008_1300x2_sample1.yml b/nn_config/P008_1300x2_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P009_50x8_sample1.yml b/nn_config/P009_50x8_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P010_115x8_sample1.yml b/nn_config/P010_115x8_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P011_256x8_sample1.yml b/nn_config/P011_256x8_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P012_512x8_sample1.yml b/nn_config/P012_512x8_sample1.yml old mode 100644 new mode 100755 diff --git a/nn_config/P013_512x8_sample1_bs512.yml b/nn_config/P013_512x8_sample1_bs512.yml old mode 100644 new mode 100755 diff --git a/nn_config/P014_512x8_sample1_bs256.yml b/nn_config/P014_512x8_sample1_bs256.yml old mode 100644 new mode 100755 diff --git a/nn_config/P015_512x8_sample1_bs128.yml b/nn_config/P015_512x8_sample1_bs128.yml old mode 100644 new mode 100755 diff --git a/nn_config/P016_512x8_10days.yml b/nn_config/P016_512x8_10days.yml old mode 100644 new mode 100755 diff --git a/nn_config/P017_512x8_30days.yml b/nn_config/P017_512x8_30days.yml old mode 100644 new mode 100755 diff --git a/nn_config/P018_512x8_90days.yml b/nn_config/P018_512x8_90days.yml old mode 100644 new mode 100755 diff --git a/nn_config/P019_512x8_180days.yml b/nn_config/P019_512x8_180days.yml old mode 100644 new mode 100755 diff --git a/nn_config/P020_512x8_270days.yml b/nn_config/P020_512x8_270days.yml old mode 100644 new mode 100755 diff --git a/nn_config/P021_512x8_fullyear.yml b/nn_config/P021_512x8_fullyear.yml old mode 100644 new mode 100755 diff --git a/nn_config/lmu_P019_512x8_180days.yml b/nn_config/lmu_P019_512x8_180days.yml old mode 100644 new mode 100755 diff --git a/nn_config/lmu_P020_512x8_270days.yml b/nn_config/lmu_P020_512x8_270days.yml old mode 100644 new mode 100755 diff --git a/nn_config/lmu_P021_512x8_fullyear.yml b/nn_config/lmu_P021_512x8_fullyear.yml old mode 100644 new mode 100755 diff --git a/notebooks/dev/CGAN.ipynb b/notebooks/dev/CGAN.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/SST.ipynb b/notebooks/dev/SST.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/cbrain-cam-analysis.ipynb b/notebooks/dev/cbrain-cam-analysis.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/change-normalization-file.ipynb b/notebooks/dev/change-normalization-file.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/check-CBRAIN-CAM-implementation.ipynb b/notebooks/dev/check-CBRAIN-CAM-implementation.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/compare-fbp-32col.ipynb b/notebooks/dev/compare-fbp-32col.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/correct-constants.ipynb b/notebooks/dev/correct-constants.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/debug-engy_cons.ipynb b/notebooks/dev/debug-engy_cons.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/debug-review.ipynb b/notebooks/dev/debug-review.ipynb new file mode 100755 index 00000000..216c7e2b --- /dev/null +++ b/notebooks/dev/debug-review.ipynb @@ -0,0 +1,139 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/export/home/srasp/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", + " from ._conv import register_converters as _register_converters\n", + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "from cbrain.imports import *\n", + "from matplotlib.animation import FuncAnimation\n", + "from IPython.display import SVG, HTML" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "ename": "IndexError", + "evalue": "The indexing operation you are attempting to perform is not valid on netCDF4.Variable object. Try loading your data into memory first by calling .load().", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/backends/netCDF4_.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 65\u001b[0;31m \u001b[0marray\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetitem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 66\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mIndexError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4.Variable.__getitem__\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4.Variable._get\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: ", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m ds = xr.open_dataset(f'/beegfs/DATA/pritchard/srasp/nnatmonly_fbp8_D036_andkua_nofix_betafix35/nnatmonly_fbp8_D036_ak_nf_bf35.cam2.h1.0000-01-11-00000.nc', \n\u001b[0;32m----> 2\u001b[0;31m decode_times=False, decode_cf=False)\n\u001b[0m", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/backends/api.py\u001b[0m in \u001b[0;36mopen_dataset\u001b[0;34m(filename_or_obj, group, decode_cf, mask_and_scale, decode_times, autoclose, concat_characters, decode_coords, engine, chunks, lock, cache, drop_variables)\u001b[0m\n\u001b[1;32m 316\u001b[0m \u001b[0mlock\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_default_lock\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename_or_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mengine\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 317\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mclose_on_error\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstore\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 318\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mmaybe_decode_store\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstore\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlock\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 319\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 320\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mengine\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;34m'scipy'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/backends/api.py\u001b[0m in \u001b[0;36mmaybe_decode_store\u001b[0;34m(store, lock)\u001b[0m\n\u001b[1;32m 236\u001b[0m \u001b[0mstore\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask_and_scale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmask_and_scale\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdecode_times\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdecode_times\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 237\u001b[0m \u001b[0mconcat_characters\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mconcat_characters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdecode_coords\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdecode_coords\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 238\u001b[0;31m drop_variables=drop_variables)\n\u001b[0m\u001b[1;32m 239\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[0m_protect_dataset_variables_inplace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/conventions.py\u001b[0m in \u001b[0;36mdecode_cf\u001b[0;34m(obj, concat_characters, mask_and_scale, decode_times, decode_coords, drop_variables)\u001b[0m\n\u001b[1;32m 602\u001b[0m \u001b[0mvars\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattrs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconcat_characters\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask_and_scale\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdecode_times\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 603\u001b[0m decode_coords, drop_variables=drop_variables)\n\u001b[0;32m--> 604\u001b[0;31m \u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDataset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvars\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattrs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mattrs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 605\u001b[0m \u001b[0mds\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_coords\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcoord_names\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munion\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mextra_coords\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mintersection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvars\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 606\u001b[0m \u001b[0mds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_file_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfile_obj\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/dataset.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, data_vars, coords, attrs, compat)\u001b[0m\n\u001b[1;32m 362\u001b[0m \u001b[0mcoords\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 363\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdata_vars\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mcoords\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 364\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_set_init_vars_and_dims\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_vars\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcoords\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcompat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 365\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mattrs\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 366\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mattrs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mattrs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/dataset.py\u001b[0m in \u001b[0;36m_set_init_vars_and_dims\u001b[0;34m(self, data_vars, coords, compat)\u001b[0m\n\u001b[1;32m 380\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 381\u001b[0m variables, coord_names, dims = merge_data_and_coords(\n\u001b[0;32m--> 382\u001b[0;31m data_vars, coords, compat=compat)\n\u001b[0m\u001b[1;32m 383\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 384\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_variables\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvariables\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/merge.py\u001b[0m in \u001b[0;36mmerge_data_and_coords\u001b[0;34m(data, coords, compat, join)\u001b[0m\n\u001b[1;32m 361\u001b[0m \u001b[0mobjs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcoords\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 362\u001b[0m \u001b[0mexplicit_coords\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoords\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 363\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mmerge_core\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcompat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjoin\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexplicit_coords\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexplicit_coords\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 364\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 365\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/merge.py\u001b[0m in \u001b[0;36mmerge_core\u001b[0;34m(objs, compat, join, priority_arg, explicit_coords, indexes)\u001b[0m\n\u001b[1;32m 423\u001b[0m \u001b[0mcoerced\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoerce_pandas_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 424\u001b[0m \u001b[0maligned\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdeep_align\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcoerced\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjoin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mindexes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 425\u001b[0;31m \u001b[0mexpanded\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mexpand_variable_dicts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maligned\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 426\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 427\u001b[0m \u001b[0mcoord_names\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnoncoord_names\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdetermine_coords\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcoerced\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/merge.py\u001b[0m in \u001b[0;36mexpand_variable_dicts\u001b[0;34m(list_of_variable_dicts)\u001b[0m\n\u001b[1;32m 209\u001b[0m \u001b[0mvar_dicts\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcoords\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 210\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 211\u001b[0;31m \u001b[0mvar\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_variable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvar\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 212\u001b[0m \u001b[0msanitized_vars\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvar\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36mas_variable\u001b[0;34m(obj, name)\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0;34m'conflict with the coordinates used to label '\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m 'dimensions.' % (name, obj.dims))\n\u001b[0;32m--> 115\u001b[0;31m \u001b[0mobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_index_variable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 116\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 117\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36mto_index_variable\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 401\u001b[0m \u001b[0;34m\"\"\"Return this variable as an xarray.IndexVariable\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 402\u001b[0m return IndexVariable(self.dims, self._data, self._attrs,\n\u001b[0;32m--> 403\u001b[0;31m encoding=self._encoding, fastpath=True)\n\u001b[0m\u001b[1;32m 404\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 405\u001b[0m \u001b[0mto_coord\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0malias\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mto_index_variable\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'to_coord'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, dims, data, attrs, encoding, fastpath)\u001b[0m\n\u001b[1;32m 1626\u001b[0m \u001b[0;31m# Unlike in Variable, always eagerly load values into memory\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1627\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mPandasIndexAdapter\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1628\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPandasIndexAdapter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1629\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1630\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, array, dtype)\u001b[0m\n\u001b[1;32m 1176\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1177\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1178\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msafe_cast_to_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1179\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdtype\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1180\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPeriodIndex\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/utils.py\u001b[0m in \u001b[0;36msafe_cast_to_index\u001b[0;34m(array)\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'dtype'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'O'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'dtype'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 56\u001b[0;31m \u001b[0mindex\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIndex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 57\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 490\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 491\u001b[0m \"\"\"\n\u001b[0;32m--> 492\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 493\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 494\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 492\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 493\u001b[0m \u001b[0marray\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_indexable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 494\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 495\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 496\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xarray/backends/netCDF4_.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mtraceback\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0mmsg\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m'\\n\\nOriginal traceback:\\n'\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mtraceback\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat_exc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 76\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mIndexError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 77\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp_inds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: The indexing operation you are attempting to perform is not valid on netCDF4.Variable object. Try loading your data into memory first by calling .load()." + ] + } + ], + "source": [ + "ds = xr.open_dataset(f'/beegfs/DATA/pritchard/srasp/nnatmonly_fbp8_D036_andkua_nofix_betafix35/nnatmonly_fbp8_D036_ak_nf_bf35.cam2.h1.0000-01-11-00000.nc', \n", + " decode_times=False, decode_cf=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ds.TPHYSTND.isel(time=-1, lev=13).plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": true, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/dev/debug_CBRAIN-CAM2-Copy1.ipynb b/notebooks/dev/debug_CBRAIN-CAM2-Copy1.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/debug_CBRAIN-CAM2.ipynb b/notebooks/dev/debug_CBRAIN-CAM2.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/debug_engy-ess.ipynb b/notebooks/dev/debug_engy-ess.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/energy_conservation-nn.ipynb b/notebooks/dev/energy_conservation-nn.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/generalization.ipynb b/notebooks/dev/generalization.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/load-multi-dataset.ipynb b/notebooks/dev/load-multi-dataset.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/R2.ipynb b/notebooks/dev/old_notebooks/R2.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/RNN.ipynb b/notebooks/dev/old_notebooks/RNN.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/agu_analysis_and_figures.html b/notebooks/dev/old_notebooks/agu_analysis_and_figures.html old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/agu_analysis_and_figures.ipynb b/notebooks/dev/old_notebooks/agu_analysis_and_figures.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/blow-up-analysis.ipynb b/notebooks/dev/old_notebooks/blow-up-analysis.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/clr_callback.py b/notebooks/dev/old_notebooks/clr_callback.py old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/constraints.ipynb b/notebooks/dev/old_notebooks/constraints.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/cyclical_lr.ipynb b/notebooks/dev/old_notebooks/cyclical_lr.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/debug-fluxbp.ipynb b/notebooks/dev/old_notebooks/debug-fluxbp.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/debug_CBRAIN-CAM.ipynb b/notebooks/dev/old_notebooks/debug_CBRAIN-CAM.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/diag_development.ipynb b/notebooks/dev/old_notebooks/diag_development.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/diagnostics_and_visualization.html b/notebooks/dev/old_notebooks/diagnostics_and_visualization.html old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/diagnostics_and_visualization.ipynb b/notebooks/dev/old_notebooks/diagnostics_and_visualization.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/energy_conservation.ipynb b/notebooks/dev/old_notebooks/energy_conservation.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/explore_aqua_files.ipynb b/notebooks/dev/old_notebooks/explore_aqua_files.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/extended_output.ipynb b/notebooks/dev/old_notebooks/extended_output.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/input_noise-output_norm.ipynb b/notebooks/dev/old_notebooks/input_noise-output_norm.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/input_queue.ipynb b/notebooks/dev/old_notebooks/input_queue.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/keras_experiments.ipynb b/notebooks/dev/old_notebooks/keras_experiments.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/load_keras_model.ipynb b/notebooks/dev/old_notebooks/load_keras_model.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/mat2text.ipynb b/notebooks/dev/old_notebooks/mat2text.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/normalization.ipynb b/notebooks/dev/old_notebooks/normalization.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/split_datasets.ipynb b/notebooks/dev/old_notebooks/split_datasets.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/test_diagnostics.ipynb b/notebooks/dev/old_notebooks/test_diagnostics.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/test_preprocessing.ipynb b/notebooks/dev/old_notebooks/test_preprocessing.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/tf_diagnostics.ipynb b/notebooks/dev/old_notebooks/tf_diagnostics.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/understand_log_loss.ipynb b/notebooks/dev/old_notebooks/understand_log_loss.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/old_notebooks/variance.ipynb b/notebooks/dev/old_notebooks/variance.ipynb old mode 100644 new mode 100755 diff --git a/notebooks/dev/utils.py b/notebooks/dev/utils.py old mode 100644 new mode 100755 diff --git a/notebooks/presentation/diagnostics.ipynb b/notebooks/presentation/diagnostics.ipynb old mode 100644 new mode 100755 index 802f95be..f3964911 --- a/notebooks/presentation/diagnostics.ipynb +++ b/notebooks/presentation/diagnostics.ipynb @@ -1906,6 +1906,254 @@ "diags['D036_fbp_engy_ess_ref_fullyear_ref_small_fluxes'][0].mean_stats(9)" ] }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 1716/1716 [01:20<00:00, 21.21it/s]\n", + "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:259: RuntimeWarning: divide by zero encountered in true_divide\n", + " self.stats['r2'] = 1. - (self.stats['mse'] / self.stats['true_var'])\n", + "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:259: RuntimeWarning: invalid value encountered in true_divide\n", + " self.stats['r2'] = 1. - (self.stats['mse'] / self.stats['true_var'])\n", + "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:265: RuntimeWarning: invalid value encountered in true_divide\n", + " self.stats['hor_r2'] = 1 - (self.stats['hor_mse'] / self.stats['hor_tvar'])\n" + ] + } + ], + "source": [ + "diags['D039_fbp_engy_ess_ref_fullyear_ref_small_fluxes2'] = \\\n", + " get_sst_stats('D039_fbp_engy_ess_ref_fullyear_ref_small_fluxes2', 'fbp_engy_ess_ref_train_sample1_norm_small_fluxes2.nc', norms)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
biasmsepred_meantrue_meanpred_sqmeantrue_sqmeanpred_vartrue_varr2hor_tsqmeanhor_tmeanhor_msehor_tvarhor_r2
TPHYSTND4.00495e-081.31709e-093.31768e-072.91718e-071.88927e-093.19543e-091.72563e-093.03139e-090.4608073.19543e-092.91718e-071.31709e-093.17483e-090.563409
PHQ-4.67151e-111.6783e-151.06673e-091.11344e-098.44046e-162.51426e-157.85753e-162.45547e-15-4.223872.51426e-151.11344e-091.6783e-152.50224e-150.514013
FSNT-0.302245781.811230.511230.81415793615913683092.483994.2-inf159136230.814781.8111058610.992615
FSNS-0.45218954.654163.343163.79588117.489468.449218.650318-inf89468.4163.795954.65462639.70.98476
FLNT-0.00265003162.456222.492222.4955148151641.61181.511322.30.84071951641.6222.495162.4562137.580.924
FLNS-0.191542100.51452.266152.45773399.473519.26536.639628.4390.8043133519.2652.4577100.514767.4460.869028
PRECT1.11203e-101.41473e-153.16772e-083.1566e-081.23458e-141.37268e-149.94448e-151.13301e-140.6829991.37268e-143.1566e-081.41473e-151.27304e-140.88887
allNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN0.819528
\n", + "
" + ], + "text/plain": [ + " bias mse pred_mean true_mean pred_sqmean \\\n", + "TPHYSTND 4.00495e-08 1.31709e-09 3.31768e-07 2.91718e-07 1.88927e-09 \n", + "PHQ -4.67151e-11 1.6783e-15 1.06673e-09 1.11344e-09 8.44046e-16 \n", + "FSNT -0.302245 781.811 230.511 230.814 157936 \n", + "FSNS -0.45218 954.654 163.343 163.795 88117.4 \n", + "FLNT -0.00265003 162.456 222.492 222.495 51481 \n", + "FLNS -0.191542 100.514 52.2661 52.4577 3399.47 \n", + "PRECT 1.11203e-10 1.41473e-15 3.16772e-08 3.1566e-08 1.23458e-14 \n", + "all NaN NaN NaN NaN NaN \n", + "\n", + " true_sqmean pred_var true_var r2 hor_tsqmean \\\n", + "TPHYSTND 3.19543e-09 1.72563e-09 3.03139e-09 0.460807 3.19543e-09 \n", + "PHQ 2.51426e-15 7.85753e-16 2.45547e-15 -4.22387 2.51426e-15 \n", + "FSNT 159136 83092.4 83994.2 -inf 159136 \n", + "FSNS 89468.4 49218.6 50318 -inf 89468.4 \n", + "FLNT 51641.6 1181.51 1322.3 0.840719 51641.6 \n", + "FLNS 3519.26 536.639 628.439 0.804313 3519.26 \n", + "PRECT 1.37268e-14 9.94448e-15 1.13301e-14 0.682999 1.37268e-14 \n", + "all NaN NaN NaN NaN NaN \n", + "\n", + " hor_tmean hor_mse hor_tvar hor_r2 \n", + "TPHYSTND 2.91718e-07 1.31709e-09 3.17483e-09 0.563409 \n", + "PHQ 1.11344e-09 1.6783e-15 2.50224e-15 0.514013 \n", + "FSNT 230.814 781.811 105861 0.992615 \n", + "FSNS 163.795 954.654 62639.7 0.98476 \n", + "FLNT 222.495 162.456 2137.58 0.924 \n", + "FLNS 52.4577 100.514 767.446 0.869028 \n", + "PRECT 3.1566e-08 1.41473e-15 1.27304e-14 0.88887 \n", + "all NaN NaN NaN 0.819528 " + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "diags['D039_fbp_engy_ess_ref_fullyear_ref_small_fluxes2'][0].mean_stats(9)" + ] + }, { "cell_type": "code", "execution_count": 16, diff --git a/notebooks/presentation/grl_paper.ipynb b/notebooks/presentation/grl_paper.ipynb old mode 100644 new mode 100755 index 175846e0..f3602057 --- a/notebooks/presentation/grl_paper.ipynb +++ b/notebooks/presentation/grl_paper.ipynb @@ -12,7 +12,12 @@ { "cell_type": "code", "execution_count": 1, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2018-08-10T20:37:51.656658Z", + "start_time": "2018-08-10T20:37:51.466539Z" + } + }, "outputs": [], "source": [ "%load_ext autoreload\n", @@ -22,13 +27,18 @@ { "cell_type": "code", "execution_count": 2, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2018-08-10T20:38:07.925187Z", + "start_time": "2018-08-10T20:37:52.470793Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/export/home/srasp/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", + "/export/home/gyacalis/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", " from ._conv import register_converters as _register_converters\n", "Using TensorFlow backend.\n" ] @@ -50,7 +60,12 @@ { "cell_type": "code", "execution_count": 3, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2018-08-10T20:38:09.144875Z", + "start_time": "2018-08-10T20:38:08.901322Z" + } + }, "outputs": [], "source": [ "MODEL_DIR = '/export/home/srasp/repositories/CBRAIN-CAM/saved_models/'\n", @@ -60,7 +75,12 @@ { "cell_type": "code", "execution_count": 4, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2018-08-10T20:38:10.319056Z", + "start_time": "2018-08-10T20:38:10.144201Z" + } + }, "outputs": [], "source": [ "def get_d(m, trn='sample1', val='sample1', eps=''):\n", @@ -76,9 +96,7 @@ }, { "cell_type": "markdown", - "metadata": { - "heading_collapsed": true - }, + "metadata": {}, "source": [ "## Network architecture sensitivity test\n", "\n", @@ -105,7 +123,10 @@ "cell_type": "code", "execution_count": 5, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T20:38:12.880922Z", + "start_time": "2018-08-10T20:38:12.719406Z" + } }, "outputs": [], "source": [ @@ -119,7 +140,10 @@ "cell_type": "code", "execution_count": 6, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T20:38:13.980832Z", + "start_time": "2018-08-10T20:38:13.696524Z" + } }, "outputs": [], "source": [ @@ -130,9 +154,7 @@ }, { "cell_type": "markdown", - "metadata": { - "hidden": true - }, + "metadata": {}, "source": [ "**Architectures**\n", "\n", @@ -149,7 +171,10 @@ "cell_type": "code", "execution_count": 7, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T20:38:17.156973Z", + "start_time": "2018-08-10T20:38:16.867639Z" + } }, "outputs": [], "source": [ @@ -162,7 +187,10 @@ "cell_type": "code", "execution_count": 8, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T20:38:17.918368Z", + "start_time": "2018-08-10T20:38:17.775707Z" + } }, "outputs": [], "source": [ @@ -173,14 +201,17 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T20:38:29.143255Z", + "start_time": "2018-08-10T20:38:27.370343Z" + } }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -198,11 +229,33 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T20:38:32.378486Z", + "start_time": "2018-08-10T20:38:30.760053Z" + } }, - "outputs": [], + "outputs": [ + { + "ename": "OSError", + "evalue": "Unable to open file (unable to open file: name = '/scratch/srasp/preprocessed_data/paper_nonorm_train_sample1_norm.nc', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mtmp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mm\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mmlist\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0md\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_d\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'./tmp/'\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave_str\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mget_d\u001b[0;34m(m, trn, val, eps)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mtpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{DATA_DIR}paper_nonorm_valid_{val}_targets.nc'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mnpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{DATA_DIR}paper_nonorm_train_{trn}_norm.nc'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mnorms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'feature_means'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'feature_stds'\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0meps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'target_conv'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m )\n\u001b[1;32m 9\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, model_path, is_tf, fpath, tpath, npath, norms, tf_filepattern, tf_fvars, tf_tvars, tf_meanpath, tf_stdpath, nlat, nlon, nlev, ntime, raw_nlev, watch_mem, convo, convo_tile)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0;31m# Get variable names and open arrays\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_k\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk_norm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5py\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtarget_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk_norm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'target_names'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_k_norm_arrs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mnorms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, name, mode, driver, libver, userblock_size, swmr, **kwds)\u001b[0m\n\u001b[1;32m 267\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mphil\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0mfapl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fapl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdriver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlibver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 269\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muserblock_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mswmr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mswmr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 270\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 271\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py\u001b[0m in \u001b[0;36mmake_fid\u001b[0;34m(name, mode, userblock_size, fapl, fcpl, swmr)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0mflags\u001b[0m \u001b[0;34m|=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_SWMR_READ\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflags\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 100\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmode\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'r+'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_RDWR\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mh5py/h5f.pyx\u001b[0m in \u001b[0;36mh5py.h5f.open\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mOSError\u001b[0m: Unable to open file (unable to open file: name = '/scratch/srasp/preprocessed_data/paper_nonorm_train_sample1_norm.nc', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)" + ] + } + ], "source": [ "dlist = list()\n", "for mlist in [mlist_shallow, mlist_medium, mlist_deep]:\n", @@ -219,7 +272,10 @@ "cell_type": "code", "execution_count": 11, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:16:22.403549Z", + "start_time": "2018-08-10T18:16:22.209839Z" + } }, "outputs": [], "source": [ @@ -230,18 +286,22 @@ "cell_type": "code", "execution_count": 12, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:16:23.058082Z", + "start_time": "2018-08-10T18:16:23.000480Z" + } }, "outputs": [ { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpars_shallow\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mr2s\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmarker\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'o'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'shallow'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpars_medium\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mr2s\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmarker\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'o'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'medium'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpars_deep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mr2s\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmarker\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'o'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'deep'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgca\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_xscale\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'log'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] } ], "source": [ @@ -253,18 +313,21 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 13, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:16:47.443436Z", + "start_time": "2018-08-10T18:16:46.948573Z" + } }, "outputs": [ { "data": { "text/plain": [ - "array([1.0e+03, 2.5e+06, 1.0e+03, 1.0e+03])" + "array([1.00464e+03, 2.50100e+06, 1.00464e+03, 1.00464e+03])" ] }, - "execution_count": 21, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -275,9 +338,12 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 14, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:16:48.849869Z", + "start_time": "2018-08-10T18:16:48.772752Z" + } }, "outputs": [], "source": [ @@ -288,9 +354,12 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 15, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:16:49.749141Z", + "start_time": "2018-08-10T18:16:49.692784Z" + } }, "outputs": [], "source": [ @@ -309,14 +378,29 @@ }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 16, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:16:50.840214Z", + "start_time": "2018-08-10T18:16:50.543230Z" + } }, "outputs": [ + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0max\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfigsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m4.5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mplot_arch_sens\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mplot_arch_sens\u001b[0;34m(ax, s)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mplot_arch_sens\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m50\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpars_shallow\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmarker\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'o'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'shallow'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpars_medium\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmarker\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'x'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'medium'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpars_deep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmarker\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'^'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'deep'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_xscale\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'log'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] + }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -332,201 +416,116 @@ }, { "cell_type": "markdown", - "metadata": { - "heading_collapsed": true, - "hidden": true - }, + "metadata": {}, "source": [ "### Does it matter whether we validate with 60 days or a full year?" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 17, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:16:54.481346Z", + "start_time": "2018-08-10T18:16:53.786352Z" + } }, - "outputs": [], + "outputs": [ + { + "ename": "OSError", + "evalue": "Unable to open file (unable to open file: name = '/scratch/srasp/preprocessed_data/paper_nonorm_train_sample1_norm.nc', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0md_fullyear\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_d\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmlist\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'fullyear'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mget_d\u001b[0;34m(m, trn, val, eps)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mtpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{DATA_DIR}paper_nonorm_valid_{val}_targets.nc'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mnpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{DATA_DIR}paper_nonorm_train_{trn}_norm.nc'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mnorms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'feature_means'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'feature_stds'\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0meps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'target_conv'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m )\n\u001b[1;32m 9\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, model_path, is_tf, fpath, tpath, npath, norms, tf_filepattern, tf_fvars, tf_tvars, tf_meanpath, tf_stdpath, nlat, nlon, nlev, ntime, raw_nlev, watch_mem, convo, convo_tile)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0;31m# Get variable names and open arrays\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_k\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk_norm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5py\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtarget_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk_norm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'target_names'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_k_norm_arrs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mnorms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, name, mode, driver, libver, userblock_size, swmr, **kwds)\u001b[0m\n\u001b[1;32m 267\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mphil\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0mfapl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fapl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdriver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlibver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 269\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muserblock_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mswmr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mswmr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 270\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 271\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py\u001b[0m in \u001b[0;36mmake_fid\u001b[0;34m(name, mode, userblock_size, fapl, fcpl, swmr)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0mflags\u001b[0m \u001b[0;34m|=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_SWMR_READ\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflags\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 100\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmode\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'r+'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_RDWR\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mh5py/h5f.pyx\u001b[0m in \u001b[0;36mh5py.h5f.open\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mOSError\u001b[0m: Unable to open file (unable to open file: name = '/scratch/srasp/preprocessed_data/paper_nonorm_train_sample1_norm.nc', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)" + ] + } + ], "source": [ "d_fullyear = get_d(mlist[1], val='fullyear')" ] }, { "cell_type": "code", - "execution_count": 108, + "execution_count": 21, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:30.408377Z", + "start_time": "2018-08-10T18:17:30.351374Z" + } }, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 17519/17519 [15:33<00:00, 18.76it/s]\n", - "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:241: RuntimeWarning: divide by zero encountered in true_divide\n", - " self.stats['r2'] = 1. - (self.stats['mse'] / self.stats['true_var'])\n" + "ename": "NameError", + "evalue": "name 'd_fullyear' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0md_fullyear\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0md_fullyear\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'd_fullyear' is not defined" ] } ], "source": [ - "#d_fullyear.compute_stats(); d_fullyear.save_stats()" + "d_fullyear.compute_stats(); d_fullyear.save_stats()" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 19, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:24.799129Z", + "start_time": "2018-08-10T18:17:24.744009Z" + } }, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'd_fullyear' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0md_fullyear\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'd_fullyear' is not defined" + ] + } + ], "source": [ "d_fullyear.load_stats()" ] }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 20, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:25.666268Z", + "start_time": "2018-08-10T18:17:25.619268Z" + } }, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:275: RuntimeWarning: divide by zero encountered in true_divide\n", - " lev_r2 = 1. - (np.mean(mse, axis=(0, 1)) / np.mean(true_var, axis=(0, 1)))\n" + "ename": "NameError", + "evalue": "name 'd_fullyear' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0md_fullyear\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'd_fullyear' is not defined" ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
biasmsepred_meantrue_meanpred_sqmeantrue_sqmeanpred_vartrue_varr2r2_v2
TPHYSTND_NORAD-3.03274e-071.35405e-091.10627e-051.1366e-051.80147e-093.22793e-091.52674e-092.937e-090.2446940.547209
PHQ2.24975e-101.74521e-151.3343e-091.10933e-097.24496e-162.48544e-156.68094e-162.43478e-15-16.93030.515226
QRL4.60526e-081.65383e-10-1.73767e-05-1.74227e-056.63799e-108.43212e-102.71015e-104.46311e-100.5326510.649254
QRS4.83492e-077.0164e-116.65222e-066.16872e-061.23627e-101.79297e-105.27433e-111.18599e-10-inf0.424489
allNaNNaNNaNNaNNaNNaNNaNNaNNaN0.534044
\n", - "
" - ], - "text/plain": [ - " bias mse pred_mean true_mean \\\n", - "TPHYSTND_NORAD -3.03274e-07 1.35405e-09 1.10627e-05 1.1366e-05 \n", - "PHQ 2.24975e-10 1.74521e-15 1.3343e-09 1.10933e-09 \n", - "QRL 4.60526e-08 1.65383e-10 -1.73767e-05 -1.74227e-05 \n", - "QRS 4.83492e-07 7.0164e-11 6.65222e-06 6.16872e-06 \n", - "all NaN NaN NaN NaN \n", - "\n", - " pred_sqmean true_sqmean pred_var true_var r2 \\\n", - "TPHYSTND_NORAD 1.80147e-09 3.22793e-09 1.52674e-09 2.937e-09 0.244694 \n", - "PHQ 7.24496e-16 2.48544e-15 6.68094e-16 2.43478e-15 -16.9303 \n", - "QRL 6.63799e-10 8.43212e-10 2.71015e-10 4.46311e-10 0.532651 \n", - "QRS 1.23627e-10 1.79297e-10 5.27433e-11 1.18599e-10 -inf \n", - "all NaN NaN NaN NaN NaN \n", - "\n", - " r2_v2 \n", - "TPHYSTND_NORAD 0.547209 \n", - "PHQ 0.515226 \n", - "QRL 0.649254 \n", - "QRS 0.424489 \n", - "all 0.534044 " - ] - }, - "execution_count": 110, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ @@ -535,148 +534,24 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 22, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:33.923302Z", + "start_time": "2018-08-10T18:17:33.874917Z" + } }, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:275: RuntimeWarning: divide by zero encountered in true_divide\n", - " lev_r2 = 1. - (np.mean(mse, axis=(0, 1)) / np.mean(true_var, axis=(0, 1)))\n" + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdlist\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
biasmsepred_meantrue_meanpred_sqmeantrue_sqmeanpred_vartrue_varr2r2_v2
TPHYSTND_NORAD-3.11576e-071.34097e-091.09873e-051.12988e-051.78108e-093.19913e-091.48801e-092.88997e-090.09003010.544513
PHQ2.24497e-101.73858e-151.32396e-091.09946e-097.19093e-162.47601e-156.58004e-162.42112e-15-25.53720.512341
QRL3.90402e-081.62918e-10-1.74028e-05-1.74418e-056.59047e-108.35577e-102.5984e-104.32452e-100.4805650.644567
QRS4.328e-076.8975e-116.59336e-066.16056e-061.22272e-101.77773e-105.19385e-111.16738e-10-inf0.425857
allNaNNaNNaNNaNNaNNaNNaNNaNNaN0.531820
\n", - "
" - ], - "text/plain": [ - " bias mse pred_mean true_mean \\\n", - "TPHYSTND_NORAD -3.11576e-07 1.34097e-09 1.09873e-05 1.12988e-05 \n", - "PHQ 2.24497e-10 1.73858e-15 1.32396e-09 1.09946e-09 \n", - "QRL 3.90402e-08 1.62918e-10 -1.74028e-05 -1.74418e-05 \n", - "QRS 4.328e-07 6.8975e-11 6.59336e-06 6.16056e-06 \n", - "all NaN NaN NaN NaN \n", - "\n", - " pred_sqmean true_sqmean pred_var true_var r2 \\\n", - "TPHYSTND_NORAD 1.78108e-09 3.19913e-09 1.48801e-09 2.88997e-09 0.0900301 \n", - "PHQ 7.19093e-16 2.47601e-15 6.58004e-16 2.42112e-15 -25.5372 \n", - "QRL 6.59047e-10 8.35577e-10 2.5984e-10 4.32452e-10 0.480565 \n", - "QRS 1.22272e-10 1.77773e-10 5.19385e-11 1.16738e-10 -inf \n", - "all NaN NaN NaN NaN NaN \n", - "\n", - " r2_v2 \n", - "TPHYSTND_NORAD 0.544513 \n", - "PHQ 0.512341 \n", - "QRL 0.644567 \n", - "QRS 0.425857 \n", - "all 0.531820 " - ] - }, - "execution_count": 111, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ @@ -685,19 +560,14 @@ }, { "cell_type": "markdown", - "metadata": { - "hidden": true - }, + "metadata": {}, "source": [ "There is harldy any difference between the statistics computed for 60 days and for a full year. To speed up analysis we will use the 60 day version." ] }, { "cell_type": "markdown", - "metadata": { - "heading_collapsed": true, - "hidden": true - }, + "metadata": {}, "source": [ "### Batch size sensitivity\n", "\n", @@ -706,9 +576,12 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 23, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:36.899484Z", + "start_time": "2018-08-10T18:17:36.740965Z" + } }, "outputs": [], "source": [ @@ -717,9 +590,12 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 24, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:37.202057Z", + "start_time": "2018-08-10T18:17:37.161211Z" + } }, "outputs": [], "source": [ @@ -729,26 +605,30 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 25, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:39.707163Z", + "start_time": "2018-08-10T18:17:37.599492Z" + } }, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 2868/2868 [03:21<00:00, 14.23it/s]\n", - "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:240: RuntimeWarning: divide by zero encountered in true_divide\n", - " self.stats['r2'] = 1. - (self.stats['mse'] / self.stats['true_var'])\n", - "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:246: RuntimeWarning: divide by zero encountered in true_divide\n", - " self.stats['hor_r2'] = 1 - (self.stats['hor_mse'] / self.stats['hor_tvar'])\n", - "100%|██████████| 2868/2868 [03:14<00:00, 14.76it/s]\n", - "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:240: RuntimeWarning: invalid value encountered in true_divide\n", - " self.stats['r2'] = 1. - (self.stats['mse'] / self.stats['true_var'])\n", - "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:246: RuntimeWarning: invalid value encountered in true_divide\n", - " self.stats['hor_r2'] = 1 - (self.stats['hor_mse'] / self.stats['hor_tvar'])\n", - "100%|██████████| 2868/2868 [03:11<00:00, 15.01it/s]\n" + "ename": "OSError", + "evalue": "Unable to open file (unable to open file: name = '/scratch/srasp/preprocessed_data/paper_nonorm_train_sample1_norm.nc', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mbsd\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mb\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mbs_list\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0md\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_d\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'./tmp/'\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave_str\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mget_d\u001b[0;34m(m, trn, val, eps)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mtpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{DATA_DIR}paper_nonorm_valid_{val}_targets.nc'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mnpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{DATA_DIR}paper_nonorm_train_{trn}_norm.nc'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mnorms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'feature_means'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'feature_stds'\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0meps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'target_conv'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m )\n\u001b[1;32m 9\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, model_path, is_tf, fpath, tpath, npath, norms, tf_filepattern, tf_fvars, tf_tvars, tf_meanpath, tf_stdpath, nlat, nlon, nlev, ntime, raw_nlev, watch_mem, convo, convo_tile)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0;31m# Get variable names and open arrays\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_k\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk_norm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5py\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtarget_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk_norm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'target_names'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_k_norm_arrs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mnorms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, name, mode, driver, libver, userblock_size, swmr, **kwds)\u001b[0m\n\u001b[1;32m 267\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mphil\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0mfapl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fapl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdriver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlibver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 269\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muserblock_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mswmr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mswmr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 270\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 271\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py\u001b[0m in \u001b[0;36mmake_fid\u001b[0;34m(name, mode, userblock_size, fapl, fcpl, swmr)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0mflags\u001b[0m \u001b[0;34m|=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_SWMR_READ\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflags\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 100\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmode\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'r+'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_RDWR\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mh5py/h5f.pyx\u001b[0m in \u001b[0;36mh5py.h5f.open\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mOSError\u001b[0m: Unable to open file (unable to open file: name = '/scratch/srasp/preprocessed_data/paper_nonorm_train_sample1_norm.nc', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)" ] } ], @@ -763,14 +643,34 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 26, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:41.818026Z", + "start_time": "2018-08-10T18:17:41.552161Z" + } }, "outputs": [ + { + "ename": "ValueError", + "evalue": "x and y must have same first dimension, but have shapes (4,) and (0,)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbss\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'hor_r2'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'all'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0md\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mbsd\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 3356\u001b[0m mplDeprecation)\n\u001b[1;32m 3357\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3358\u001b[0;31m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3359\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3360\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_hold\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwashold\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/__init__.py\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1853\u001b[0m \u001b[0;34m\"the Matplotlib list!)\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlabel_namer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1854\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1855\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1856\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1857\u001b[0m inner.__doc__ = _add_data_doc(inner.__doc__,\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1525\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormalize_kwargs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_alias_map\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1526\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1527\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1528\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1529\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_grab_next_args\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 404\u001b[0m \u001b[0mthis\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 405\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 406\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mseg\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_plot_args\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 407\u001b[0m \u001b[0;32myield\u001b[0m \u001b[0mseg\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 408\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_plot_args\u001b[0;34m(self, tup, kwargs)\u001b[0m\n\u001b[1;32m 381\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mindex_of\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtup\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 382\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 383\u001b[0;31m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_xy_from_xy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 384\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 385\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommand\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'plot'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_xy_from_xy\u001b[0;34m(self, x, y)\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 241\u001b[0m raise ValueError(\"x and y must have same first dimension, but \"\n\u001b[0;32m--> 242\u001b[0;31m \"have shapes {} and {}\".format(x.shape, y.shape))\n\u001b[0m\u001b[1;32m 243\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m2\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 244\u001b[0m raise ValueError(\"x and y can be no greater than 2-D, but have \"\n", + "\u001b[0;31mValueError\u001b[0m: x and y must have same first dimension, but have shapes (4,) and (0,)" + ] + }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -785,14 +685,34 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 27, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:43.752854Z", + "start_time": "2018-08-10T18:17:43.531798Z" + } }, "outputs": [ + { + "ename": "ValueError", + "evalue": "x and y must have same first dimension, but have shapes (4,) and (0,)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbss\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'mse'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'float'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mfactors\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0md\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mbsd\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 3356\u001b[0m mplDeprecation)\n\u001b[1;32m 3357\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3358\u001b[0;31m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3359\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3360\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_hold\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwashold\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/__init__.py\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1853\u001b[0m \u001b[0;34m\"the Matplotlib list!)\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlabel_namer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1854\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1855\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1856\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1857\u001b[0m inner.__doc__ = _add_data_doc(inner.__doc__,\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1525\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcbook\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormalize_kwargs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_alias_map\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1526\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1527\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1528\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1529\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_grab_next_args\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 404\u001b[0m \u001b[0mthis\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 405\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 406\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mseg\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_plot_args\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 407\u001b[0m \u001b[0;32myield\u001b[0m \u001b[0mseg\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 408\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_plot_args\u001b[0;34m(self, tup, kwargs)\u001b[0m\n\u001b[1;32m 381\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mindex_of\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtup\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 382\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 383\u001b[0;31m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_xy_from_xy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 384\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 385\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcommand\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'plot'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py\u001b[0m in \u001b[0;36m_xy_from_xy\u001b[0;34m(self, x, y)\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 241\u001b[0m raise ValueError(\"x and y must have same first dimension, but \"\n\u001b[0;32m--> 242\u001b[0;31m \"have shapes {} and {}\".format(x.shape, y.shape))\n\u001b[0m\u001b[1;32m 243\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m2\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 244\u001b[0m raise ValueError(\"x and y can be no greater than 2-D, but have \"\n", + "\u001b[0;31mValueError\u001b[0m: x and y must have same first dimension, but have shapes (4,) and (0,)" + ] + }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -807,9 +727,7 @@ }, { "cell_type": "markdown", - "metadata": { - "hidden": true - }, + "metadata": {}, "source": [ "The results here are a little unintuitive. Part of it could be random scatter, but given our amount of data that seems unlikely. More likely is a non-optimal tuning of the learning rate schedule with batch size. In fact a look at the TensorBoard graph suggests exactly that. At larger learning rates the loos shoots off to very large values. \n", "\n", @@ -818,9 +736,7 @@ }, { "cell_type": "markdown", - "metadata": { - "heading_collapsed": true - }, + "metadata": {}, "source": [ "## Training amount sensitivity tests\n", "\n", @@ -837,20 +753,30 @@ }, { "cell_type": "code", - "execution_count": 264, + "execution_count": 28, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:48.940603Z", + "start_time": "2018-08-10T18:17:46.703547Z" + } }, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 2868/2868 [03:29<00:00, 13.67it/s]\n", - "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:243: RuntimeWarning: divide by zero encountered in true_divide\n", - " self.stats['r2'] = 1. - (self.stats['mse'] / self.stats['true_var'])\n", - "/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py:249: RuntimeWarning: divide by zero encountered in true_divide\n", - " self.stats['hor_r2'] = 1 - (self.stats['hor_mse'] / self.stats['hor_tvar'])\n" + "ename": "OSError", + "evalue": "Unable to open file (unable to open file: name = '/scratch/srasp/preprocessed_data/paper_nonorm_train_sample1_norm.nc', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;31m# So I set a lower bound (eps=1e-10) to divide the input features by.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;31m# This does not affect performance, so we should be good!\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0md\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_d\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0meps\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m''\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0;36m3\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m'_eps'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 9\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'./tmp/'\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave_str\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave_stats\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mget_d\u001b[0;34m(m, trn, val, eps)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mtpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{DATA_DIR}paper_nonorm_valid_{val}_targets.nc'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mnpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{DATA_DIR}paper_nonorm_train_{trn}_norm.nc'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mnorms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'feature_means'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'feature_stds'\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0meps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'target_conv'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m )\n\u001b[1;32m 9\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, model_path, is_tf, fpath, tpath, npath, norms, tf_filepattern, tf_fvars, tf_tvars, tf_meanpath, tf_stdpath, nlat, nlon, nlev, ntime, raw_nlev, watch_mem, convo, convo_tile)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0;31m# Get variable names and open arrays\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_k\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk_norm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5py\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtarget_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk_norm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'target_names'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_k_norm_arrs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mnorms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, name, mode, driver, libver, userblock_size, swmr, **kwds)\u001b[0m\n\u001b[1;32m 267\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mphil\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0mfapl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fapl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdriver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlibver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 269\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muserblock_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mswmr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mswmr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 270\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 271\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py\u001b[0m in \u001b[0;36mmake_fid\u001b[0;34m(name, mode, userblock_size, fapl, fcpl, swmr)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0mflags\u001b[0m \u001b[0;34m|=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_SWMR_READ\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflags\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 100\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmode\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'r+'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_RDWR\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mh5py/h5f.pyx\u001b[0m in \u001b[0;36mh5py.h5f.open\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mOSError\u001b[0m: Unable to open file (unable to open file: name = '/scratch/srasp/preprocessed_data/paper_nonorm_train_sample1_norm.nc', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)" ] } ], @@ -870,9 +796,12 @@ }, { "cell_type": "code", - "execution_count": 268, + "execution_count": 29, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:57.606668Z", + "start_time": "2018-08-10T18:17:57.172938Z" + } }, "outputs": [], "source": [ @@ -893,14 +822,29 @@ }, { "cell_type": "code", - "execution_count": 269, + "execution_count": 30, "metadata": { - "hidden": true + "ExecuteTime": { + "end_time": "2018-08-10T18:17:58.946684Z", + "start_time": "2018-08-10T18:17:58.527174Z" + } }, "outputs": [ + { + "ename": "IndexError", + "evalue": "list index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfigsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m12\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mplot_arch_sens\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m60\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mplot_time_sens\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m60\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mplot_arch_sens\u001b[0;34m(ax, s)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mplot_arch_sens\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m50\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpars_shallow\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmarker\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'o'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'shallow'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpars_medium\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmarker\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'x'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'medium'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpars_deep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmarker\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'^'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'deep'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_xscale\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'log'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: list index out of range" + ] + }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAADhCAYAAADRYpOcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAD51JREFUeJzt3VGIpWd5B/D/Y9JUmkYtzQqSTUykm+qiBdMhTRFqimlJcpFc2EoCYi3BRdtIQSmkWFKJV7bUgpBWFyqpgsbohSy4klIbCYix2RCNJiGyRms2ShM15kY0hj69OMcymby7883sNzPZnd8PBs75zsuc582Z/fPPN+fMV90dAADguV600wMAAMALkaIMAAADijIAAAwoygAAMKAoAwDAgKIMAAAD6xblqvpYVT1RVd88zuNVVR+uqqNV9UBVXTL/mABMJbcB5jHljPJtSa48weNXJdm3/DqQ5F9OfiwATsJtkdsAJ23dotzddyf58QmWXJvk471wT5KXVdUr5hoQgI2R2wDzmOM9yucleWzV/WPLYwC8MMltgAnO3M4nq6oDWfyaL2efffbvvvrVr97OpweYxX333ffD7t6z03NsNZkNnC42m9tzFOXHk5y/6v7e5bHn6e6DSQ4mycrKSh85cmSGpwfYXlX13zs9w0malNsyGzhdbDa353jrxaEkb1t+ivqyJE939w9m+L4AbA25DTDBumeUq+pTSS5Pcm5VHUvyd0l+JUm6+yNJDie5OsnRJD9N8udbNSwA65PbAPNYtyh39/XrPN5J/nK2iQA4KXIbYB6uzAcAAAOKMgAADCjKAAAwoCgDAMCAogwAAAOKMgAADCjKAAAwoCgDAMCAogwAAAOKMgAADCjKAAAwoCgDAMCAogwAAAOKMgAADCjKAAAwoCgDAMCAogwAAAOKMgAADCjKAAAwoCgDAMCAogwAAAOKMgAADCjKAAAwoCgDAMCAogwAAAOKMgAADCjKAAAwoCgDAMCAogwAAAOTinJVXVlVj1TV0aq6afD4BVV1V1XdX1UPVNXV848KwBQyG2Ae6xblqjojya1JrkqyP8n1VbV/zbK/TXJHd78+yXVJ/nnuQQFYn8wGmM+UM8qXJjna3Y929zNJbk9y7Zo1neQly9svTfL9+UYEYANkNsBMzpyw5rwkj626fyzJ761Z8/4k/15V705ydpIrZpkOgI2S2QAzmevDfNcnua279ya5Osknqup537uqDlTVkao68uSTT8701ABskMwGmGBKUX48yfmr7u9dHlvthiR3JEl3fyXJi5Ocu/YbdffB7l7p7pU9e/ZsbmIATkRmA8xkSlG+N8m+qrqoqs7K4oMfh9as+V6SNyVJVb0mi9B1+gFg+8lsgJmsW5S7+9kkNya5M8nDWXxS+sGquqWqrlkue2+Sd1TV15N8Ksnbu7u3amgAxmQ2wHymfJgv3X04yeE1x25edfuhJG+YdzQANkNmA8zDlfkAAGBAUQYAgAFFGQAABhRlAAAYUJQBAGBAUQYAgAFFGQAABhRlAAAYUJQBAGBAUQYAgAFFGQAABhRlAAAYUJQBAGBAUQYAgAFFGQAABhRlAAAYUJQBAGBAUQYAgAFFGQAABhRlAAAYUJQBAGBAUQYAgAFFGQAABhRlAAAYUJQBAGBAUQYAgAFFGQAABhRlAAAYUJQBAGBgUlGuqiur6pGqOlpVNx1nzVuq6qGqerCqPjnvmABMJbMB5nHmeguq6owktyb5oyTHktxbVYe6+6FVa/Yl+Zskb+jup6rq5Vs1MADHJ7MB5jPljPKlSY5296Pd/UyS25Ncu2bNO5Lc2t1PJUl3PzHvmABMJLMBZjKlKJ+X5LFV948tj612cZKLq+rLVXVPVV0514AAbIjMBpjJum+92MD32Zfk8iR7k9xdVa/r7p+sXlRVB5IcSJILLrhgpqcGYINkNsAEU84oP57k/FX39y6PrXYsyaHu/kV3fyfJt7II4efo7oPdvdLdK3v27NnszAAcn8wGmMmUonxvkn1VdVFVnZXkuiSH1qz5XBZnJlJV52bxa71HZ5wTgGlkNsBM1i3K3f1skhuT3Jnk4SR3dPeDVXVLVV2zXHZnkh9V1UNJ7kry1939o60aGoAxmQ0wn+ruHXnilZWVPnLkyI48N8DJqKr7untlp+fYTjIbOJVtNrddmQ8AAAYUZQAAGFCUAQBgQFEGAIABRRkAAAYUZQAAGFCUAQBgQFEGAIABRRkAAAYUZQAAGFCUAQBgQFEGAIABRRkAAAYUZQAAGFCUAQBgQFEGAIABRRkAAAYUZQAAGFCUAQBgQFEGAIABRRkAAAYUZQAAGFCUAQBgQFEGAIABRRkAAAYUZQAAGFCUAQBgQFEGAIABRRkAAAYmFeWqurKqHqmqo1V10wnWvbmquqpW5hsRgI2Q2QDzWLcoV9UZSW5NclWS/Umur6r9g3XnJPmrJF+de0gAppHZAPOZckb50iRHu/vR7n4mye1Jrh2s+0CSDyb52YzzAbAxMhtgJlOK8nlJHlt1/9jy2P+rqkuSnN/dn59xNgA2TmYDzOSkP8xXVS9K8qEk752w9kBVHamqI08++eTJPjUAGySzAaabUpQfT3L+qvt7l8d+6Zwkr03ypar6bpLLkhwafTikuw9290p3r+zZs2fzUwNwPDIbYCZTivK9SfZV1UVVdVaS65Ic+uWD3f10d5/b3Rd294VJ7klyTXcf2ZKJATgRmQ0wk3WLcnc/m+TGJHcmeTjJHd39YFXdUlXXbPWAAEwnswHmc+aURd19OMnhNcduPs7ay09+LAA2S2YDzMOV+QAAYEBRBgCAAUUZAAAGFGUAABhQlAEAYEBRBgCAAUUZAAAGFGUAABhQlAEAYEBRBgCAAUUZAAAGFGUAABhQlAEAYEBRBgCAAUUZAAAGFGUAABhQlAEAYEBRBgCAAUUZAAAGFGUAABhQlAEAYEBRBgCAAUUZAAAGFGUAABhQlAEAYEBRBgCAAUUZAAAGFGUAABhQlAEAYGBSUa6qK6vqkao6WlU3DR5/T1U9VFUPVNUXq+qV848KwBQyG2Ae6xblqjojya1JrkqyP8n1VbV/zbL7k6x09+8k+WySv597UADWJ7MB5jPljPKlSY5296Pd/UyS25Ncu3pBd9/V3T9d3r0nyd55xwRgIpkNMJMpRfm8JI+tun9seex4bkjyhZMZCoBNk9kAMzlzzm9WVW9NspLkjcd5/ECSA0lywQUXzPnUAGyQzAY4sSlnlB9Pcv6q+3uXx56jqq5I8r4k13T3z0ffqLsPdvdKd6/s2bNnM/MCcGIyG2AmU4ryvUn2VdVFVXVWkuuSHFq9oKpen+SjWQTuE/OPCcBEMhtgJusW5e5+NsmNSe5M8nCSO7r7waq6paquWS77hyS/nuQzVfW1qjp0nG8HwBaS2QDzmfQe5e4+nOTwmmM3r7p9xcxzAbBJMhtgHq7MBwAAA4oyAAAMKMoAADCgKAMAwICiDAAAA4oyAAAMKMoAADCgKAMAwICiDAAAA4oyAAAMKMoAADCgKAMAwICiDAAAA4oyAAAMKMoAADCgKAMAwICiDAAAA4oyAAAMKMoAADCgKAMAwICiDAAAA4oyAAAMKMoAADCgKAMAwICiDAAAA4oyAAAMKMoAADCgKAMAwICiDAAAA5OKclVdWVWPVNXRqrpp8PivVtWnl49/taounHtQAKaR2QDzWLcoV9UZSW5NclWS/Umur6r9a5bdkOSp7v6tJP+U5INzDwrA+mQ2wHymnFG+NMnR7n60u59JcnuSa9esuTbJvy1vfzbJm6qq5hsTgIlkNsBMphTl85I8tur+seWx4ZrufjbJ00l+c44BAdgQmQ0wkzO388mq6kCSA8u7P6+qb27n878AnJvkhzs9xDaz591ht+35t3d6gO0gs3fdz3Viz7vFbtzzpnJ7SlF+PMn5q+7vXR4brTlWVWcmeWmSH639Rt19MMnBJKmqI929spmhT1X2vDvY8+mvqo7s9AwnILNnYs+7gz3vDpvN7Slvvbg3yb6quqiqzkpyXZJDa9YcSvJny9t/kuQ/u7s3MxAAJ0VmA8xk3TPK3f1sVd2Y5M4kZyT5WHc/WFW3JDnS3YeS/GuST1TV0SQ/ziKYAdhmMhtgPpPeo9zdh5McXnPs5lW3f5bkTzf43Ac3uP50YM+7gz2f/l7Q+5XZs7Hn3cGed4dN7bn8tg0AAJ7PJawBAGBgy4vybryU6oQ9v6eqHqqqB6rqi1X1yp2Yc07r7XnVujdXVVfVKf1p2yn7raq3LF/nB6vqk9s949wm/FxfUFV3VdX9y5/tq3dizjlV1ceq6onj/Vm0Wvjw8r/JA1V1yXbPODeZLbPXrDstMjuR27sht7cks7t7y76y+CDJt5O8KslZSb6eZP+aNX+R5CPL29cl+fRWzrTVXxP3/IdJfm15+127Yc/LdeckuTvJPUlWdnruLX6N9yW5P8lvLO+/fKfn3oY9H0zyruXt/Um+u9Nzz7DvP0hySZJvHufxq5N8IUkluSzJV3d65m14nWX2Ltjzct1pkdkbeJ3l9ime21uR2Vt9Rnk3Xkp13T13913d/dPl3Xuy+Dunp7Ipr3OSfCDJB5P8bDuH2wJT9vuOJLd291NJ0t1PbPOMc5uy507ykuXtlyb5/jbOtyW6++4s/irE8Vyb5OO9cE+Sl1XVK7Znui0hs2X2aqdLZidye1fk9lZk9lYX5d14KdUpe17thiz+7+ZUtu6el7/eOL+7P7+dg22RKa/xxUkurqovV9U9VXXltk23Nabs+f1J3lpVx7L4iwvv3p7RdtRG/72/0MlsmZ3ktMvsRG4ncjvZRGZv6yWsea6qemuSlSRv3OlZtlJVvSjJh5K8fYdH2U5nZvFrvMuzOPt0d1W9rrt/sqNTba3rk9zW3f9YVb+fxd/pfW13/+9ODwZzkNmnPbktt59nq88ob+RSqqkTXEr1FDJlz6mqK5K8L8k13f3zbZptq6y353OSvDbJl6rqu1m8L+jQKfzhkCmv8bEkh7r7F939nSTfyiKAT1VT9nxDkjuSpLu/kuTFSc7dlul2zqR/76cQmS2zk9MvsxO5ncjtZBOZvdVFeTdeSnXdPVfV65N8NIvAPdXfA5Wss+fufrq7z+3uC7v7wize43dNd2/quusvAFN+rj+XxVmJVNW5WfxK79HtHHJmU/b8vSRvSpKqek0Wgfvktk65/Q4ledvyk9SXJXm6u3+w00OdBJkts0/HzE7kttxe2Hhmb8MnEK/O4v/Kvp3kfctjt2Txjy5ZvCifSXI0yX8ledVWz/QC2PN/JPmfJF9bfh3a6Zm3es9r1n4pp/4nqNd7jSuLX10+lOQbSa7b6Zm3Yc/7k3w5i09Wfy3JH+/0zDPs+VNJfpDkF1mcbbohyTuTvHPV63zr8r/JN071n+uJr7PMltmn5JfcPv1zeysy25X5AABgwJX5AABgQFEGAIABRRkAAAYUZQAAGFCUAQBgQFEGAIABRRkAAAYUZQAAGPg/GWt9nc3Gef4AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -931,9 +875,33 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], + "execution_count": 38, + "metadata": { + "ExecuteTime": { + "end_time": "2018-08-10T18:28:03.832314Z", + "start_time": "2018-08-10T18:28:01.014963Z" + } + }, + "outputs": [ + { + "ename": "OSError", + "evalue": "Unable to open file (unable to open file: name = '/scratch/srasp/preprocessed_data/paper_nonorm_train_sample1_norm.nc', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Load model for figures\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0md\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_d\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'P021_512x8_fullyear'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'sample1'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0meps\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'_eps'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mget_d\u001b[0;34m(m, trn, val, eps)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mtpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{DATA_DIR}paper_nonorm_valid_{val}_targets.nc'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mnpath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{DATA_DIR}paper_nonorm_train_{trn}_norm.nc'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mnorms\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'feature_means'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'feature_stds'\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0meps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'target_conv'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m )\n\u001b[1;32m 9\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/data11/home/srasp/repositories/CBRAIN-CAM/notebooks/presentation/cbrain/model_diagnostics.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, model_path, is_tf, fpath, tpath, npath, norms, tf_filepattern, tf_fvars, tf_tvars, tf_meanpath, tf_stdpath, nlat, nlon, nlev, ntime, raw_nlev, watch_mem, convo, convo_tile)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0;31m# Get variable names and open arrays\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_k\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk_norm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5py\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtarget_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk_norm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'target_names'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_k_norm_arrs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mnorms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, name, mode, driver, libver, userblock_size, swmr, **kwds)\u001b[0m\n\u001b[1;32m 267\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mphil\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0mfapl\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fapl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdriver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlibver\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 269\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmake_fid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muserblock_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mswmr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mswmr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 270\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 271\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py\u001b[0m in \u001b[0;36mmake_fid\u001b[0;34m(name, mode, userblock_size, fapl, fcpl, swmr)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mswmr\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mswmr_support\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0mflags\u001b[0m \u001b[0;34m|=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_SWMR_READ\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflags\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 100\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmode\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'r+'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mfid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh5f\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mACC_RDWR\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfapl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfapl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mh5py/_objects.pyx\u001b[0m in \u001b[0;36mh5py._objects.with_phil.wrapper\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mh5py/h5f.pyx\u001b[0m in \u001b[0;36mh5py.h5f.open\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mOSError\u001b[0m: Unable to open file (unable to open file: name = '/scratch/srasp/preprocessed_data/paper_nonorm_train_sample1_norm.nc', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)" + ] + } + ], "source": [ "# Load model for figures\n", "d = get_d('P021_512x8_fullyear', val='sample1', eps='_eps')" diff --git a/notebooks/presentation/paper2.ipynb b/notebooks/presentation/paper2.ipynb old mode 100644 new mode 100755 index 76ccd215..678e2216 --- a/notebooks/presentation/paper2.ipynb +++ b/notebooks/presentation/paper2.ipynb @@ -99,18 +99,18 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 241, "metadata": {}, "outputs": [], "source": [ "def savefigs(fig, name):\n", " fig.savefig(FIG_DIR + name + '.pdf')\n", - " fig.savefig(FIG_DIR + name + '.png', dpi=300)" + " fig.savefig(FIG_DIR + name + '.png', dpi=500, bbox_inches='tight')" ] }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 210, "metadata": {}, "outputs": [], "source": [ @@ -166,7 +166,9 @@ " 'nnatmonly_fbp8_D032_4k_nofix_betafix35']\n", "exps_nonsp = ['nonsp_andkua', 'nonsp_1k', 'nonsp_2k', 'nonsp_3k', 'nonsp_4k']\n", "exps_review = ['nnatmonly_fbp8_D033_andkua_nofix_betafix35', 'nnatmonly_fbp8_D034_andkua_nofix_betafix35',\n", - " 'nnatmonly_fbp8_D035_andkua_nofix_betafix35', 'nnatmonly_fbp8_D037_andkua_nofix_betafix35']" + " 'nnatmonly_fbp8_D035_andkua_nofix_betafix35', 'nnatmonly_fbp8_D037_andkua_nofix_betafix35',\n", + " 'nnatmonly_fbp8_D038_andkua_nofix_betafix35', 'nnatmonly_fbp8_D039_andkua_nofix_betafix35',\n", + " 'nnatmonly_fbp8_D040_andkua_nofix_betafix35']" ] }, { @@ -211,17 +213,17 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 211, "metadata": {}, "outputs": [], "source": [ - "for e in exps_review:\n", + "for e in exps_review[-2:]:\n", " h0s[e] = xr.open_mfdataset(f'{DATA_DIR}{e}/*.h0.0*', decode_times=False)" ] }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 206, "metadata": {}, "outputs": [], "source": [ @@ -274,14 +276,24 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 212, "metadata": {}, "outputs": [], "source": [ - "for e in exps_review:\n", + "for e in exps_review[-2:]:\n", " h0means[e] = h0s[e].mean('time').compute()" ] }, + { + "cell_type": "code", + "execution_count": 213, + "metadata": {}, + "outputs": [], + "source": [ + "for e in exps_review[-2:]:\n", + " h0means[e]['PRECT'] *= 1e3*24*3600" + ] + }, { "cell_type": "code", "execution_count": 401, @@ -352,11 +364,11 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 266, "metadata": {}, "outputs": [], "source": [ - "for e in exps_review:\n", + "for e in exps_norm:\n", " h1s[e] = xr.open_mfdataset(f'{DATA_DIR}{e}/*.h1.0001-01*', decode_times=False, decode_cf=False)" ] }, @@ -525,9 +537,7 @@ }, { "cell_type": "markdown", - "metadata": { - "heading_collapsed": true - }, + "metadata": {}, "source": [ "## Mean climate and parameterized tendencies" ] @@ -535,9 +545,7 @@ { "cell_type": "code", "execution_count": 54, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [], "source": [ "# Gaussian latitudes\n", @@ -549,9 +557,7 @@ { "cell_type": "code", "execution_count": 55, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [], "source": [ "label_lats = [-90, -45, -20, 0, 20, 45, 90]\n", @@ -562,9 +568,7 @@ { "cell_type": "code", "execution_count": 56, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [], "source": [ "def mean_panels(hdict, func, exps, exp_ref=None, vmin=-5, vmax=5, cm_ref='plasma', cm='RdBu_r', unit='Temperature [K]', \n", @@ -615,100 +619,845 @@ }, { "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Review" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [], + "source": [ + "titles=['SPCAM', 'NNCAM_paper', 'NNCAM_larger', 'NNCAM_smaller', 'NNCAM_tiny', 'NNCAM_big_fluxes', \n", + " 'NNCAM_shallow']" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['sp8fbp_andkua',\n", + " 'nnatmonly_fbp8_D025_andkua_nofix_betafix35',\n", + " 'nnatmonly_fbp8_D033_andkua_nofix_betafix35',\n", + " 'nnatmonly_fbp8_D034_andkua_nofix_betafix35',\n", + " 'nnatmonly_fbp8_D035_andkua_nofix_betafix35',\n", + " 'nnatmonly_fbp8_D037_andkua_nofix_betafix35',\n", + " 'nnatmonly_fbp8_D038_andkua_nofix_betafix35']" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "exps_tmp = exps_ak[:2] + exps_review; exps_tmp" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "#### NN-Size sensitivity" + ] + }, + { + "cell_type": "code", + "execution_count": 242, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "exps_nnsize = ['sp8fbp_andkua', 'nnatmonly_fbp8_D033_andkua_nofix_betafix35', \n", + " 'nnatmonly_fbp8_D025_andkua_nofix_betafix35', 'nnatmonly_fbp8_D034_andkua_nofix_betafix35',\n", + " 'nnatmonly_fbp8_D037_andkua_nofix_betafix35', 'nnatmonly_fbp8_D038_andkua_nofix_betafix35']" + ] + }, + { + "cell_type": "code", + "execution_count": 252, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "titles_nnsize = ['SPCAM', 'NNCAM 8x512', 'NNCAM 9x256 (ours)', 'NNCAM 4x256', \n", + " 'NNCAM 2x256', 'NNCAM 1x256']" + ] + }, + { + "cell_type": "code", + "execution_count": 253, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "clabel_locs = [(1, 150), (1, 200), (1, 300), (1, 500), (1, 900)]" + ] + }, + { + "cell_type": "code", + "execution_count": 254, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, axs = mean_panels(h0means, lambda d: d['TAP'].isel(lev=slice(5, None)).mean('lon'), \n", + " exps_nnsize[1:], exps_nnsize[0], \n", + " contourf=True, width=twocols, \n", + " titles=titles_nnsize,\n", + " clevels=np.arange(190, 310, 20), levels_ref=np.arange(180, 305, 5), \n", + " levels=np.arange(-5, 6, 0.5), clabel_locs=clabel_locs)" + ] + }, + { + "cell_type": "code", + "execution_count": 255, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "savefigs(f, 'mean_T_review_nnsize')" + ] + }, + { + "cell_type": "code", + "execution_count": 264, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, axs = mean_panels(h0means, lambda d: d['TPHYSTND'].isel(lev=slice(3, None)).mean('lon'), exps_nnsize, \n", + " contourf=True, width=twocols,\n", + " titles=titles_nnsize,\n", + " levels=np.arange(-7.5e-5, 8.25e-5, 7.5e-6), unit='$\\Delta$T$_{\\mathrm{phy}}$ [K s$^{-1}$]',\n", + " cbar_ticks=np.arange(-6e-5, 8e-5, 2e-5))" + ] + }, + { + "cell_type": "code", + "execution_count": 265, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "savefigs(f, 'mean_TPHY_review_nnsize')" + ] + }, + { + "cell_type": "code", + "execution_count": 258, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "ctmp = sns.color_palette(\"hls\", 6)" + ] + }, + { + "cell_type": "code", + "execution_count": 259, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f = mean_panels_line(h0means, ['FSNT','FLNT', 'PRECT'], exps_nnsize, ctmp, \n", + " labels=titles_nnsize, zorders=range(7), #width=2*twocols, height=5,\n", + " ylabels=['TOA solar \\n' r'[W m$^{-2}$]', 'TOA thermal \\n' r'[W m$^{-2}$]',\n", + " 'Precipitation \\n' r'[mm d$^{-1}$]'])" + ] + }, + { + "cell_type": "code", + "execution_count": 260, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "savefigs(f, 'mean_flux_prec_review_nnsize')" + ] + }, + { + "cell_type": "code", + "execution_count": 261, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "climerr_nnsize = climate_error(h0means,\n", + " lambda d: d.isel(lev=slice(5, None), ilev=slice(5, None)),\n", + " lambda ref, d: np.fabs(ref['TAP'] - d['TAP']), exps_nnsize[0], exps_nnsize[1:])" + ] + }, + { + "cell_type": "code", + "execution_count": 262, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0,0.5,'Climate error')" + ] + }, + "execution_count": 262, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, ax=plt.subplots()\n", + "sns.barplot(data=climerr_nnsize, ax=ax)\n", + "plt.xticks(range(5), titles_nnsize[1:], rotation=45)\n", + "plt.ylabel('Climate error')" + ] + }, + { + "cell_type": "code", + "execution_count": 263, "metadata": { "hidden": true }, + "outputs": [], + "source": [ + "f.savefig(FIG_DIR + 'climerr_nnsize' + '.png', dpi=500, bbox_inches='tight')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Normalization sensitivity" + ] + }, + { + "cell_type": "code", + "execution_count": 214, + "metadata": {}, + "outputs": [], + "source": [ + "for var in ['FSNT','FLNT', 'PRECT']:\n", + " h0means['nnatmonly_fbp8_D040_andkua_nofix_betafix35'][var] /= 5\n", + " #h0means['nnatmonly_fbp8_D039_andkua_nofix_betafix35'][var] *= 5" + ] + }, + { + "cell_type": "code", + "execution_count": 215, + "metadata": {}, + "outputs": [], + "source": [ + "exps_norm = ['sp8fbp_andkua', 'nnatmonly_fbp8_D025_andkua_nofix_betafix35', \n", + " 'nnatmonly_fbp8_D040_andkua_nofix_betafix35', 'nnatmonly_fbp8_D039_andkua_nofix_betafix35']" + ] + }, + { + "cell_type": "code", + "execution_count": 216, + "metadata": {}, + "outputs": [], + "source": [ + "titles_norm = ['SPCAM', 'NNCAM ref (this paper)', 'NNCAM fluxes * 5', 'NNCAM fluxes / 5']" + ] + }, + { + "cell_type": "code", + "execution_count": 217, + "metadata": {}, + "outputs": [], + "source": [ + "clabel_locs = [(1, 150), (1, 200), (1, 300), (1, 500), (1, 900)]" + ] + }, + { + "cell_type": "code", + "execution_count": 218, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, axs = mean_panels(h0means, lambda d: d['TAP'].isel(lev=slice(5, None)).mean('lon'), \n", + " exps_norm[1:], exps_norm[0], \n", + " contourf=True, width=twocols*0.8, \n", + " titles=titles_norm,\n", + " clevels=np.arange(190, 310, 20), levels_ref=np.arange(180, 305, 5), \n", + " levels=np.arange(-5, 6, 0.5), clabel_locs=clabel_locs)" + ] + }, + { + "cell_type": "code", + "execution_count": 219, + "metadata": {}, + "outputs": [], + "source": [ + "#savefigs(f, 'mean_T_review_nnsize')\n", + "f.savefig(FIG_DIR + 'mean_T_review_norm' + '.png', dpi=500, bbox_inches='tight')" + ] + }, + { + "cell_type": "code", + "execution_count": 220, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, axs = mean_panels(h0means, lambda d: d['TPHYSTND'].isel(lev=slice(3, None)).mean('lon'), exps_norm, \n", + " contourf=True, width=twocols*0.8,\n", + " titles=titles_norm,\n", + " levels=np.arange(-7.5e-5, 8.25e-5, 7.5e-6), unit='$\\Delta$T$_{\\mathrm{phy}}$ [K s$^{-1}$]',\n", + " cbar_ticks=np.arange(-6e-5, 8e-5, 2e-5))" + ] + }, + { + "cell_type": "code", + "execution_count": 221, + "metadata": {}, + "outputs": [], + "source": [ + "#savefigs(f, 'mean_TPHY_review_nnsize')\n", + "f.savefig(FIG_DIR + 'mean_TPHY_review_norm' + '.png', dpi=500, bbox_inches='tight')" + ] + }, + { + "cell_type": "code", + "execution_count": 222, + "metadata": {}, + "outputs": [], + "source": [ + "ctmp = sns.color_palette(\"hls\", 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 223, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAN4AAADdCAYAAADU88wZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsnXd4HFe5/z9nZrZppVVbNVuWZbn3bidOc3ohBIcESEIKgRtySeCmABcIcC9wf1xqSAg4FwIpBEgP6Z0kThyHOLFjx0WSbdmW3NSllVbbZ+b8/hhJlm1JVl/Zns/zzLM7O2fOeXd2v/O+c6qQUmJjYzOyKMk2wMbmRMQWno1NErCFZ2OTBGzh2dgkAVt4NjZJwBaejU0SsIVnY5MEbOHZ2CQBW3g2NklA6+8Jfr9fFhcXD4MpNjaDY/369Q1Sypxk29EX+i284uJi1q1bNxy2jChSShojewjEW4krJlEzgS4NxrgyyXbl41bSEEIk20ybfiCEqEq2DX2l38I7lmlpquKjynf4WCaodBYQEBMw8RySRpAgRWwgTdSTq0WY40tlXvpUCtxTUMUJdbmOS4QQnwJuBJ4G/IBXSvkTIcSPgCBQJ6X863DbcUL8k4LVO/nHzudYnbGANueyQ46pMoYiDVRTByCq+QjJsYTkWGrisKkBnmqsx688wgyvztL0EkpSF+BRfcn4KjaDQAgxH3ADu4B5UsrbhBD/JYTIBEwp5Z1CiLuA0Sc8MxweDjuGhUjNPl7/5GFeHzOLxoxLAHDIKMWJBha6vJxWNJ3stFSklKDrGJEwgT2V7NxfTUW4hR0pTnblTSSq5bDPyGFfK6xqbcGvPsv0lCCLfROZnLYUr5aZ5G9q045fCNH1Oeg+KeV9XfYvBMLAfMBs/0z28DqsiP4OCyqcOFG+8sY/mTmhGGWUPgNJKala8zR/cjexy30GEhVVxjnXo3NlySxcSt8qc6WuEyzdwubycj7CYMuEKbR5DorMJZrIVrYyI6WNJenTmZy2xPaESUQIsV5KuagP6e4GNmCFmilSyv/pEmrWSin/NryWDkB4WTNny/Mef4aUeJQJeoJZmemcXFRIvss5TCb2j0RLgFVv3c1Tk0+mhYkgJQvdYb4yfgZZTseA85W6TqhsK6WlpbwvJZsnTSPkPigyt2gkW9nKbK/Ossw5lHgXoCmj45qcKPRVeKOBfguveOpU+ak/P0xjZvYhnxdEw5S4HOT50tAcToSqYgpBuqayxJeKT1OH0u5uafrkfR6vf4X38z9LgjTcRPiPokIW+IY2FJS6TlvZVjaXlvIBsGXSNMKutM7jTgLkqttYkObgotzTyXDmD2n5Nt1zXAtv0aJF8oNVb7O3vIzyfdVsRKF83ARiLneP5yimwYy6A1zQ0siUnGw802fiyMkdrO2dmPE469/4LU8U+tmrngIojNdCfKdkcF6ur2W3bf6ETeVlfOBwUDpxKmHXQU/oE1Wck9nGZ/LOxaWmDKstJzrHvfC6tuNJ0yS4rZwt27exLxSmWTcxDQNpGghTUp1XwI7iycj256rpO0qZV7qRIgUKJ0/Bd/IpuMaOG/AXqN+2luf3P8N7eZ8mIvNAmlyY5eTqMeNRR/gZ1IxFadu0kdLycv7lEmyYMo+45gXAr+5ghd/NWf4zUITdYWg4OKGE1xNRvY2trW9RH95JMCYpi5awzZyG0aUtzBWPMK56D5NaWpmZl8OM2bPx5uYdNW/TNNhe+jxvBz6hLGs69eY8JCqZIsJtxROZ4k2+ZzFjMQ68+iJPh5v4cOYyDMUFmJztq+CGoouSbd5xyQktvKjRxkfNz7Cl5Z8kZOyQY3GZSo2+hDY5lpBZQIJDawAVUye/rY4iaTA+JZ0JeQV4nS6kGSEWC7CzcRs7E03UuJzUq1OISn/nuct9CtcXFve5xnKkiFbuouKvD/CPhTMoLVqCQpxbxyZYkjk32aYdd5yQwpPSZFPLG3zQ9AQxMwTAOM9spqQtwyHcSAxCeoA2vZGYGSJqhqiPx9kbddBkjiVojicsc+lPv22vGeb0zHTOzS1gzCipVe0OmUhQ/9Sj/DYvhZ2580gVdfx68jQynFnJNu244lgS3pD0XGlN1PFG3R/YHykFYJxnFqf4v0iua8JRz5XSJKg3Uh+rpLLtY0qb6qk3nbSIdML4MXEipQJSxWNEyTV1ilOymZc/kdnpvlHbltgV4XCQc8U1fPmeO/nfMwpp03L5ddUH/M+kCxD2894JyaA9Xlnru6yqf5CEjOBR0zkz5ytM9C4edAdjKSVRM4gmnGjCdVx0WNabm1j1h19x/8XXIYXGiqy9XDHmzGSbddxwLHm8Ad9u42aUf9b+gTfq7iUhI0z0LuHqol8xKXXJkIhECIFH9eFQ3MeF6AC0zCyWnH4hp25+HYAXm7IpC1Yk2Sqb3hBCDMszTL+FFzcj1EZ38sie/6Q0uApVODg796tclH+b3V2qD6QtO40VdTHGtJajk8Lv9u0nbsSOfqJNsrhsODLtd6hZNDtLfuuZ8wDwO8dzXt5N+F3jh8O24xY90MyW//0hv7n634grqZyatpuvjz832WYd8wxHqCmEeBXYCcSklLd3c/xRoLpjF2tY0c+Omu9AhTfbdw7T5KcINAX6db6NhRmLEYlHCLu8CMCngVPpuZdNVlYWeXlHb+M8kRkm4SnAGECRUu7p5vgMKWVpT/s90e9aTa+aybXj7ybDkU9ZWRlTpkxBVYe/H+bxSKKpkVqHIKaloJFgnNvbba8WwzDYvn27Lbzk8HsgDcubXd31gBCiENgjhMiUUjYD9EV0MBDhaZlkOA52+rVFN3C0zCz89XVUpxrowkFdLEi+O/2IdPY1TiqlQAJo6ebYCqzxewbwh/5kOuh2vIovXTGg8yY99Ngh+0888QSlpaWkpqayc+dOJk+ezNatW1m5ciX/93//B0A0GuXqq68mMzOTSy65hIcffpjCwkIuueQSrrvuOi677DKWLVvG//7v/7J8+fLBfrVhRwiBy59DZlMdjd4MwtJFUzxIusOL2kP7XszQ+VfLbj5saWRn1EHcVLF+e2tLV8NM9AjmpvlZlF5Cijp6OxYcI7wLpALddTX6GCgH+i2CUTP1w969e/H7/Zx11lncd9993H777fziF7+goqICt9vN1772tc60999/Pw888ABPPvkkt912GyUlJWzcuBG/38+CBQuS+C36j1AU0jP8hCMtRDQvzYaDgBHFRYI0zQEC4qZJix7ltvJ3qdWtTgXWGM4jiejp1ARhTRDEgV0UOuo4JyuDs7Nnoim25+wPQohbsO5ogm5Gpksp3xdC3CulvKm/eQ9aeId7roHyzW9+kz179vDnP/+Z5557jvHjx6MoCpqmHdGOt2rVKoLBIGvXriUejwMwY8YM7r//fi699NIhsWckEZpGntNLQzRIxOHBEBpRXET1jhQKcVOlWh8DQKpRzbim7UzbsR1/XQuKAcIUmEKhsqSA3eOLqc4opk3NZW9iDA/WwqO1G5mb2sbledMZ5xm6IVnHOc+2v/ZWAzmgRuZR4/Gef/55KioqCAQCzJkzh9tuu63z2EsvvcRdd91FNBpl2bJlfOYzn+Hyyy9n7dq1PPXUUwBcfvnlLFmyhM2bNyfrKwwK1eUm1+nCjEYJR4O0qYKY5kJIiWrqOI0oF2x4jsnleylyZZMyew4pp1+HlpOLUDWEpoGAk6sPENu9k9gHG6lqqmLVnAmUjVtERMlibVs6H7Y1U6xt5bMFxSxOP3qXvhMZKWWVEOLrwCxgE3BvN8leHEjeg+oyVlZWxvTp0wdSrs1RkKaJGY2AlCAE5TsqmOBQcY4tREvP6FseUhKr2k3L2vd5L7yHNdNnciB1Oh39JrKo4dP+TM7Pm3FM9Hk9GsPUnHCzlHKlEOLrUsrf95CmCJiD1eTwfF/yHTUez+ZQhKKgpng79xWnk5R+3uSEELiLS3AXl/BZKbloezmlG9/ixTw3O/wLaSKfvzTAM/VruSjTzcVj5qCNsmFVo4BiIcRPsKYF7IkfAI/QjxnKbOGdIAgh8EydzsKp05kfiXDgo1U8mdjDhtxFtAo/jwXgheb1rMhw8qnCOceFBzwcIcRpwDJgBvAaMAFIB74D3IY15Z+UUv62y2k/BHKxmgx6YgvWDGWJvtpi395OQBSPh8LTL+TWs77Kb4TJafVv4pENhEQmf2/xctPmf/FO7Xb6+xgyCvALIdZ12b7a9aCUcrWU8hdABfA5KeVPsUQzFxgnpbwbKD4sz+uwGs6/3Uu584HZwLy+GjpqhPfQQw9x2WVWf9Rbb70VgJkzZ7J27VoqKyu5++67qa6u5gc/+AF33XUXK1euBODvf/873/rWtwCorKykpKSEaDTKunXrmDu3b6O8f/KTn/Doo4927r/11lu8//77/OhHPyIQCHSW38G2bdvYuHHjkHzv7mhsbOxsuxxOhBD4Zy3m5jNv5K7UTE5tfAsnLQSUXP6vXuFbm99hX/iY6hLYIKVc1GW77/AEQoirsGaSruzycUdDKBwZLs7E8mTbeyl3G/ACB2tBj8qgQ817KgbWgP4fk45shpg1axYvvniwkujss8/mwQcf5Dvf+Q4AK1eu5Lvf/S6pqamdaaqqqliyZAk7duzA4XBw4YUX8tRTT1FRUcEZZ5zRma6yspJbbrmFG264gXg8Tnl5OTU1NXzve9/jvffe45RTTulM+/rrr/Pzn/+clStX8sgjj7Bs2TLefvttAoEAxcXFFBcXEwgEeOmll0hPT2fOnDmcfvrpANx4442cdNJJbN26lR/84Ae8+uqr7N27l5SUFGbOnMkjjzzCnDlzKCwsJCcnh1deeYVIJMLXvvY1vvvd73LppZdy3nnnUVU1sutvZEyYytcnTKV62zoern+HTRlL2K8U8p2d+znXXcq1k04+5sNPIcTngGuBV4GNQog7sELNvwJ7hRC3cqggAX4N1AG99ddzAV/HEu1P+mLLqHrGu/TSS/nTn/7UGeIoisI111zDX/7yFzIyMpBSHtKmt379eiorK3E4HJSVlXHdddcxefJkNm7cSGFhIYHAoXfrZcuWcfHFF3P11VdzzjnnoKoq1dXVzJgxg7PPPrszXUfb4OTJk7nqqqsIBAKceuqpfPvb3+aWW26hY5myxYsXs3nzZoLBYOe5hmFw9dVX8/zzz/Phhx/S2tqK3+/n3XffZebMmZx88slcf/31/Pu//zsOh4O5c+cSiUSoqKggJyeHL37xi515JRIJHI7hnZ7wcAqmLuI/pyyk9OPX+bOIUO2cxauxXD7avIZvTphCSdqx2wYopXwSeLKHw3f1cE5Hx+ge74RSyh/315ZBC687zzUYvvGNb3D++ed37p9yyimdwrv55pv52c9+RnZ2Nk6nk507d7Jy5UocDgd33HEH4fZ1HW699VbS09P54Q9/eEjeLpcLgBUrVlBeXk5WVhZFRUVH2OB0Wt2spk6dyh/+8AfOP//8TgF0FX4gEMDlcrF582Y+9alPAaBpGn/84x/ZunUrP/vZz3jttddYsGABhmE9m69evZoDBw5w3nnndXq8wsJCpkyZ0mlfByMtug6EEMxceD6/amvl0Y8e542chTQq+fywsp4V3l18ruSkpNiVTIQQJ0kpPxiyDKWU/doWLlwoOygtLZXHI2+++aZ87733BnTuLbfc0uOxt99+Wz7zzDNHzaOhoUHee++9h3yWzGu9e+v78rZ1z8gvbN4hv7B5h7zjk9dlIBZKmj09AayT/fw/97ZhNSFcCzyAVRnTXZo7sTpL+/qTt92AfoyQ7GudCLZw//qneNd/MiZOUmQTN+Wlsyh3atJsOpyhbkAXQrwOfBW4REp5Tw9pXMBpwAXAHCnleX3Je9TUatqMbhxp6dx4xpe5JbybNKOasMjizjrJfaVvYprm0TM4NrkBa+qHU4QQPfW+vx5YjFUB8z99zdgWnk2fEUKwdMmn+HVeEZPb1iHReMscz7c2v01d6JhqdugTUsoqKeWdWOHmzB6SebE6SoeA5r7mPWqENxLteDfeeCOrV6/uzH8wlJWVcdddd7Fq1arOWtiNGzdyzTXXcPfdd9PS0t24yeOD9Pzx/GTR5Xwm8AEaYQ6o4/nmripe3jF0dQ+jASHEpUKI3wK/wOqZcgTtwnwNKAQe7Gveg67VvGLLwKane2zWpCM+G852vA0bNrB7926ysqzZm1etWkUgEGD58uXcfffdzJs3j1gsxpo1a/jpT3/Kz3/+c7KystB1nTPOOINnn32WiRMncsMNNwDW3b9jDGAHTqeTzMxMmpqajvtR40LTuPLUq5m3/V/8PlxDo1bCwzEvH65/jdtnnI7P4zl6JqOfqVLKWwCEEN/tLoEQYiWwHlgppfxeXzMeNR4PrHa8V155pbMdrWs7HtBjO15VVRWPPPIIQGc7XkZGBkqXDr/z589nxowZzJxpRQxCCKSUndX8K1as4P777+ess84iFouxadMmsrOzaWlpoaSkhMzMTJqbD0YS06ZN44477uCaa67ptGnGjBncc889rFixgieeeGIYr9ToYfqUk/nN1JNZGv4XCgnKXRP5xo5yXi5deyx2OTsc0cP7rrwJPAW0CiF8QoiL+5LxoD1ed55rMAxnO15Xpk2bxo9+9CMqKysB+NOf/sT3v/99nnvuOU499VRmzpzZOTawpqaGtLQ0Nm3aRDgcJiXFWo1o6tRDa/Q2bNjAG2+8QWVlJbfffsRMcMctLk8aty25hjXlr/FwwkGLUsTDJqxa/zZfnzCLouxjttG9oj3UBGsKiO6YjTVer0OYZX3J+IRtTpCmREpruJv15uAYfwQgBEJgbUryu0odK9c6HA3wx9LnWOdciIEbIXWWRvbx5dmn4vP0NrJm8AxDc8J3gP+jfeoHKWXrUOU9qrqMDQVSSkxdYugSMyExEmAaEmlYn5vGQdH1lQ7xCYX2TaAoIFTR877a5ZxjvI9jf0hxZ3DbguvYuOddHg7Uc0CZzQcpxazfsZ1z4gG+MPdk3EnqkTMAlmP1w+yYc6VP/TD7Qr+FNz5lLgc+CSNNia6YxNrahynJjl4wIM32fVMe4kWEsP6IdHgSIUDp8scWtB8XBz1PR94AUiLNdgdlSEzDEpKpt4stYb32RVSdnqzdlo7POs6Vsst3aC/v4IisvqtWKKBqAqV9c3gUHB4FRT2+xTiv6HRmj9N5qexJXjKzaVFKeMWdwlulW7nAaOOzc07CpY36+/6r8tCxeUNGv0PNh6+o6Dxh+k1hJoydMuRGDRZFE6iaQHUIFIdAUQWKhvWqdhV/3/78neIzLeGbRvsNoJt9y6N2vLc+PxwhQHMpOFIUnCkKqlMc1ZZjJdTsjrZ4E0+WP8satYQ2WQiAx2jlXDPI5bNPxakNTQ3wMISampRSP3rK/tPvW05V+BNOWnoSQhFozigur9LpMoTgCA/WdWI0y1u1e6QOz9XuxQ7xLt2NjOp83jroORVVINpFpWrtItMEyhA/kwml3QP300t1fLeuHjkeNtGjJon2Ldxk3SicHSJ0iIMha/t17ejfF201SIRN4mGDeNgkETYtcXe5XqpToLkVHG7Ls7rSFFxp6pBfk/6Q6szi+jlf5rORah7b/hIfqlMJqQU8r/p4Y+tGzpWtfG726ThGWRPMcIkOhqBy5aMfDyxev/axQ2tDH3roIV544QWefvppbr31Vu6++25mzpzJAw88QF5eHs8++yxf+MIXWLlyZWet5s0338zf//53NmzYwK9//WsqKys566yzKC0tZcuWLXzlK1/hk08+6Szjxhtv5Oqrr+bpp58+ZGDrQHnggQe44IILGDNmDBs3buTOO+9k4cKFXH/99aSnHzkjdAemKUlEzHYRmZh6979Bx5y20oTd+7dTdu/A1nYXAlw+FbdPxZ2u4klvf83Q8GSoeNLbXzM1XKnKsFcmtURqeHLba7yvTSLcPswtxWzmU4RYMet01AHO+3IsrY83qoLsY6kBHWD//v2MGWPNddmfxnNFEbi8Ki6varUlxiXxkEkiYnaGp6Z5aJgqBDhTFZweBYe3/TVFRdXorIEF0OPS8qgRa4sGDeJtJtEWg2iLAXt7/w0UFTyZGilZGl6/RmqOhtfvIDVXw5fnxJujDfr5NN2Tz7/Nu44rowEeK3uJNY4SwkoOT5LJ65v+xeecCmdPP+m4rpQatPAO91yDYTgHwvalAf28887jpptu6mxAv+yyy9i+fXu3Dej19fXk5OR07nc0nn/88cc88cQTfPnLX+7TdxZCoLkEmuvQu3xnCN4eYtfHHVzx55L+XdB2TF0SDVrCi7TonSKMBKz9SKD9fbNOPGQSatAJNejUdzPZgVAhNceBr8Da0sc48RU4SMtzkJKl9ctbet0ZfGX+F7kyEuCvpS/zvmsKLVoefzbh+Q1vc016Nosn9m36jmONUeXx4NhpQH/mmWdYsWJFZ35D3XguhEAM0SOPoglSMjVSMjWs2vGe0WMm4WadcJNBqCFBqF6nrT5BsE4nWJMg3GS9BmsS7N9w6LmqQ5CW5yA1TyMt10FqrgNvjoY324HX3x7GduPFUjwZ3LjwKj7fWsP9O95mo2smdc4i7ozAuPWv8aW8YmYWjp7hR0PBCduAPlhWrVo1ogujjJZrrcdMgrUJWqsTtFbHaT2QoLVdiNHW3mbAsyp+UrI0vNnWTcCTpZKSZYW1KZnW5+50lerALu6vWk+5c1b7OhEmUyI7uKFoDuPyxvWY/wn1jGcYxnHfIbg7RlJ0HeHwaEBzKWQWucgsOtJzxsMGwdoEbXU6wboEbbUJQo16e+iaIBGRnd6yJ4QAd4bKwqyTme8JscvRQF1GFqHUqfzyQJgc7Z8syXAxvbAYVVEO9i7qw/Ng+5i6zwIpwA+llKGBX4nBMSjhZWVlsX17b7Oe2QwVHZVCoxlnikr2BJXsHpZkiIdNwk064Ua9PZxt39pD23CT9fwZabY20MjET2ZnDipQTB1Qx4DWjb8S+B7WpLbn0o/p+IaaQQkvLy/PXqXUps9YbZVOMgp7XrPP0CWRrqJsMogELHHW1zTTFNCRMSdCVxBd2i/b3/uFEOu6ZHefPHJuzZ7mzxxRBvWMZ2MzmjjaM54QYiHWxEQpwH9LKdtGzLjDbemv8IQQQayZc4cbP9AwAuWMlrJHusxkXd/hLHeqlDJtmPIeUgYSam4biZojIcS6ZNVQJaPskS4zWdd3OMs9LMwc1YyqEeg2NicKtvBsbJLAQIR3xAosw8RIlTNayh7pMpN1fYez3GT+Z/pFvytXbGxsBo8datrYJAFbeDY2ScAWno1NEuh3O57f75cdCzPa2Iwm1q9f3yClzDl6yuTTb+EVFxdzInQZM6VBQ9sumkN7aIkeoCVRR9hsAUUgFBVUBU114/OMIcORT7ojj0xnAana6O/MfLwihBjZ9asHwagbCJssjFAbddv+RVXLevZrldRmtaC7utT4CqzO8WB1r9Xbt8M6yaea6RR6ZzEubS6FnhmkOfzY2BzOCS28eM0B6jetZnvrGqry6mjKdxFKLSBkTidkFhAL5yANFyZODOFEouI04rj0KK5EFGe8DZcZwKG2oLpakb4AuquOtsgayiNrAJigzmHZmGvIdvU8gNPmxOOEE56UklDZJ5RufJTynP1Ujh9PizmPgDmRUKyAQ+qbFI6ofoppLoKuXvrhxiA12kyqWYPTe4CIYxO793ybye5FnJR3FZnOMcPxtfqEbsaJGEHCbU00NtcQD4cZl1ZIRnYRijf1uJ5caLRxwgwLklLSsOEdNux6jE8mprHXvYgGYxZmlzlIVGC820Wxx0Wx28U4t5NUVcGlKLgUgSoEYcMkbJiEDIOgYdKY0GlMJGhKGNTGE+yLxUkcdk3TxU7ytA/JFuWclX0ts7PPZ6RoiNXyVvVG1gfD1CoFJGQqBl3XMDBwySDeRDP+SDML4jqn580ic8oMxOif6fkQTqipH44FEk2NfLDqV7w2JY/9068lInM7p2MvcmnMSUtltjeFaV43rqPM6Zh6lGkuDCmpiSWoisbYHIqwprmVFjmRlsREHAQJ1D+DW6QwOeu0ofp6RyCl5L2mDfyjpo5aWYTJxEMmFkaaOIiiYBATXmIig5gzgybnBLYDT5gx8te/xNKWRi6eegbe8ROHzdYTlePa40nT5MCa53lafsSG7IuISGu0fJpicmZWFsszfYxx9TwaeigIGQarA0HeqKlnvxQIDKaoT/OV3PMoyh76m/O2tl08sKecKnMSHXFyRmw/01trOSNrAiXFk/Gm+TonjU0YJntiDexq2ccnzTVsN3y0ivzO/FLMOhbVb+Kz2TPJm3vqqA5HjyWPd9wKz2gL8vard/HstDk0MAuATCXBtWMKWZyeijbCfyApJX/bvZeXwnHAZJJ4ka/nn0d+9qwhyb81EWTlrnfZnJiAiRMhdWbWrucLMoOSpaeh+nx9zqsyXMsr+7eyNppOVFgzYjtpZUndGq4et5yMybOHxOahxhZekons3M5ftv2D94ouQicFlQSf8ftYkVuAc4DTgw8V/6jaxxPBKAATzH/yzfwz8ecObs7IDxvL+GN1gBBW23FRYCvXtOrMPPtTKK6Br0mXMA1eOLCJ15pjtAirWcQn93Be9XounncV7tyxg7J7qLGFlySklBx462V+nxJgd9pSAEq0Vm4vmY3fOXrWZHt1334eag6DEExIrOJ7mcvwFc/odz66aXJv2T/5lxyPRMVr1HPl7nKWn/EZtMyha8iXUvJCdRlPNyaICS9gUpj4kC8Gosw77UujphLGFl4SSDTUs+q1R3hs1iJCah4CnYszda4aM3NUPpesqt7PHxtCSKEwPfgqt3mW4Ju3pM/nV1Tv5je1e2nSrOaJqYF1/EfubLKnzBwukwnpBg9UfsL7ES9SqLho5uS6V/h8wYVkTV88bOX2lWFYpusWDi4ULKWU9wxZ3se68KSUVL/zT/6k11OWvwhQ8NLILUVjmeMrTLZ5vfJa3R4erIsDsLDmWf6NmWSec2Gv5xiRCI+te5mXM6ZhCBdOWrisdQeXLLl8xDzPrkiIu3Zuox7ruTHfXMelVTtZdvrNONIzRsSG7hgG4Y1vf9u+LqrcM2R591d48yZNlGuefAI1zYeyyDzeAAAgAElEQVSSkoLq8yWl8dWMxznwwRpeq93J6inziarpgMEcVyXfmHAqaZp3RO0ZKE/WVPB0A4DJGdue4NNlcbwLl5C6cDGOXKsWViYSxGtraKgo4x5nmCqfVSEzRi/n9rxJFBZMG3G7DSl5/MBuXmyKYwoNB0HmNr/M5+VUxp36WUQSnqWHI9QUQtwELARUKeWXhizf/gqvYPIkeeNvfokjkUAzTDzhKGmhMD7TIFVRSHVoeDUHHqcTh9OBQ9NwqAoOVUV1OBAOJ4rHY4k2JRUlLc0SscdzVPHGWwLsqahgS8NePvBoVGVORgrrLu8T+/nSGB/LMucP+GIki/v3beaNgAeBwcyad1i4bgsTy+twF45D6gZVapQPTp7L1qJFxJR0FGKcpe7i+qkXoSrJnT5/XzTG3bvL2WdYN7pMyjlr52rOn3IlvunzRtSWYRLet7CmI4xJKR8dsnz7K7ysmbPleY8/M6DCFJlAlQkUaSAwUaSJZsRxGHEcegK3nsBtSjQJihAoQhBVBCHNQVhzEXBlYShd5+w3yRK7WJimc8WY0/BqPS8GOZqRUnJX1Ud82HawQsRjNjKuaTv1vrE0O4s6P/dRwzfG5TM7feiWRxssppS82lDLo7VNJHAi0Bmn/4tLdlaxaOmXcRcWHT2TIWCYhPcFwAdMkVJ+e8jy7a/wCmePl9949nskTIEuJTFTISrdJKQXHQ+69GDgxpBWp2ITFYmGydDUKjppIU3UUKiGOD9vAnMz5qOK0VGrNhiklLzdVMG7zbXsjPpIcHD1V4U4xa4aTk1P45zsOTjV3pfaShbNCZ3791WwLmT9HhohJkTe5/zKehYuugrPhOG9WQxXraYQIhVQpJStQ5bnUFSuSCkxZIK4GSEhoxhSR0oTIRQk1jHdSBCXJjFpopsSE5OYqRMyorTpEdoSYVpjYUJ6DN00MaXElBKPEKSpKj6Hmwnp+UxMm0S6Iw8hjt/B8wnT4P3Adta31jPW5eJC/wx8jmNigmQAKsIR/rBnO/t0K/xUiDEu9hFLK3dxsm8eOYvPQssY+kqYPkzhfhrWgiUzgNeACUA68B3gNsDEqr38bZdzHgIqAVNK+ZNu8nwUqO7YBeqklD87qq3Heq2mzehESsnGYCuPVe+iKnHwpuGhjqJAKdNralls+sktmo2raDyO/IJBV8j01eMJIX4ILJBSXiqEuBbYBFwnpbxNCHGXlPK2Lmm/LqX8fS95zZBSlva03xPHfoxmMyoRQjDfl85833y2h9t4tmYnW8IqEXLZlpHLtgx4njjp+j5yt7/OuHdqmNxoUqL6SMnNxeHPQcvJwczIwkxLx5OSgqqIdpcEigBFSmQigRmJIONR6MNqQUKIq4BdQNceBpKeVxGaL4T4PRCXUh6y1K8QohDYI4TIlFI2A/RFdGALz2YEmJKSyn+WzMWQknWtdaxu2sOOMLTITJq1Epr9JWzzwz8BpInLiOCORTDa4rSZEWiKdJuvqut4ohHS21rQVQ2g4Sih5ueAa4FXgY1CiDuwQs2/AnuFELdihZVd2Sil/F0PWa7AEqoB/KGv1wNs4dmMIKoQLE3PY2m61T7ZmIiyoaWK0lATVZE4TYabCBnENC+xznZYA5UEBg6QAoFESIlEwdA02lLTaEvt2/OvlPJJ4MkeDt/Vw+fLhBBTgMThHg/4GCgHruiTAV2whWeTNLIdbs7xT+Wc9mlpDKlTHd3N7tB29kb3EjeCpKlxYmYLTfF9mBxcklpK0JQ0spxzSHNOZ1+knMeHx8z7pJRvd3dASvm+EOJeKeVN/c3UFp7NqEEVGoWeyRR6Jh9xzJA6TfH91EZ3sj9SyoFoOUG9gfrYGupja4bTrCuFEH6sBvTnuzk+oC5btvBsjglUoZHjGk+Oazyz0s8CIKg3sje8mdpoBbpMwPD4vL/T+7LNLw4kU1t4NscsaVo2M3zLmeFb3v5JvyO+vrAUq+fKpu4OSilfEkIUAXOwGtm784pHcPy2QtvYDA06sB3I7yXND4A2oKWvmdoez8amd7KA5cCWXtJsAYJAoq+Z2sKzsekFKeUPhBDZUsrGXpLNB1qxupx1G5Ieji08G5teEEL8EQgLIWQ37XgdbANewPZ4NjZDxube+mq24wK+jlX7eURH6u6whWdj0wNCiLuAAiHEVLrvuQKAlPLH/c3bFp6NTQ+0j1ZYIKX8WAixdCjztoVnY9MD7bOMLRZCfAjMBtZ2k+ZOYDXwVn8GytrCs7HpmWeBrcAO4P4e0twBnAb8lxBijpTyvL5kbAvPxqYHpJRVwNFWmb0eyATqgP/pa952zxUbmz4ghDiph0NerI7SIaC5r/nZwrOx6QEhhFsIca0Q4gGg2yV9pZR3Ys3fUgg82Ne87VDT5oShfUDrHVjPbnGsHie9TXb0PPBVIKN9EG13ea4E1gMrpZTf66sttsezOZ7wCyHWddm+2vWglHI78FD77rlSyp9i9bOcC4yTUt4NFHc55QbgMuAUIcSCHsp8E3gKaBVC+IQQF/fFUNvj2RxP9DrnSi90O9lRe+XKnUIIF/B5rKkeDmc2MIuDA2LL+lKgLTybEwYhRD5wOeAB3j3aZEdCiEuxRiZIYFV3eQ6k1wrYwrM5gZBS1mD1qeyO7iY7miqlvAVACPHdobTFfsazsekZ0cP7QWN7PBubnqkQQnTUcL47lBnbwrOx6ZkS4Ie0rwg7lBnbwrOx6ZnlWGPtOoTXp7F2feGEF56RkMRDBrGQSbzNIBE2iUdMEhETPWpiJCRGQmLqYBrWTa9j/UyhgKIJFFWgaAJVE2huBYdH4HArOFIUPJkaKZkaqmP0rcNuc1Re7bpy0FBy3ArPNCWhep3WmjihBp1wo06oQSfSYhALGkRbrVc9NqQRRI+40hRSsjWyxrvwT3STPdFF5ngXqjZ4QUopibYatFYnrO/apBNq1Ik06cTDJomoiR4xScSkdd9uL1JRQHUIVKeC6hRoboHLq+L0WjcNt089uKVrpGSquHwqinLC3ERWDlfG/RaeKhwYiYN3fqGASMIPIU1JrM0k2moQCegEaxMEaxO01SZoqU7QWp3ATBxdVELF+rOlKjhTFJxeFYdHsTa3QHEIVIfo9GxW4e0BvykxDTB1iaFbnlGPWt4yETVJhEzCzZZ9saBJLBinuTLOzneCACgOQXaxi5wpbnKmusmZ5MaTqXa7JLWUkkTYJFhnfTdri3e+T4TNIby6vVwvBTwZKilZGt5sDa/fQUq2htevkeq39l1pylGX1T4WkFLqw5V3v9fHe/iKiiNPEKCogBDWzVQcGo4hhCVQYYnUet/+2vW9ejBdB1ICpiU0Q5cYcYkel+gRk6OZ7slU8RU4Sc2x/hjebAeeTOsO7kpTcaWqODxi2P8kpimJtRq01SVo3BWjYWeMxp1RWg4cOTeOUMDptW4AzhQFPS6JBQ1ibQbS6CbzdhweBV+Bg9RcB95sjZQsjZRsDZdXaQ9/FTSXOFgpLkGaYMRN9Lh1XRNR0wq1QybxkEG0PTKIthhEWgwizdYN5GioDoHXb5XvzbJs8WRpeNLbr71PxemxvKrmGrrrP1wrwg4H/fZ4uhnH6XRaP1z7j4cEU4eeK36GJ5xzetvDoXSVtFwHaXkOUvMc+Aoc+AqcOFNGRzOlogg8GRqeDI2cKZ7Oz+Mhg/qKKPXbra1hZ4xE2Gz3jkf+wTW3IDXHgS/fQVqBA1++E98Y6/u6fd17yqHGiJuEA4YVujfqna+hRivMDTXoxENmpyfuC6pToLkEqsMSouKwnpcP3rwPRh6dm1McjExSFByu0fFb95UhWRHWNCVSt/KR7YK0dqwQSZqWQDveW3fb9s+7vjclZvvxjry6ekVVsy646rQqL5QheD4abRi6JN5mWF4nbKK5RKd3PlYqaBIR0xJjQ4Jwk0G42Xru7PCesaBBImJ9PyM+dDfl6x6ffPx6vO5QFAHOY+NPMdpRtQ7vmGxLBo7Do5BR6CSj0HnUtNKUnaGuHjfRYxJTl5gJ2XkDl6b1mRGX6AnrmB47GBonIiZ6zBymNUuGh+O2VtPm2EAoAodb4HADqIPL7IahsGhk6HeoKYQIYs2cO9z4gYYRKGe0lD3SZSbr+g5nuVOllH1bHjbJDMTjbRuJOFoIsS5Z8Xoyyh7pMpN1fYezXCHEuqOnGh0cW1VBNjbHCbbwbGySwECEd9+QW5HcckZL2SNdZrKu73CWm8z/TL/od+WKjY3N4LFDTRubJGALz8YmCfS7OcHv98vi4uJhMMXGZnCsX7++QUqZk2w7+kK/hVdcXMzhfTVthgcp5XExvGakEEIcbYGRUYMdao5SNrVWcEPpv7hv76pkm2IzDNjCG4XEjRj37quhTebyXksGCbPPa9rbHCPYwhuF3LfvPQJmPgBxUlnVVJ5ki2yGGlt4o4xNrTt4P1gAQK5m9SV+t7kpmSbZDAO28EYRcSPGH/YfwMTJVHcDXyssBGBXzE9YjybZOpuhxBbeKOL+/e/SZIzFKcLcWjSXiW0K6Uo9Bi7eaLTDzcEihJgihHhICLFCCHGrEOK/hRBfSYYttvBGCdvbKlndOgaAq/JSUFavZs93b2d6dSkAa1rakmnesUJ/1sdrxppkxDvCNgK28EYNq5v3Y+Ki0FnPGQ1x6h/5CwCL//kBYLI37ieQCCfXyNFPg5RyUZetx07TUsq/SCl/AmhCiJIRtBGwhTdqqInHAZigxKleeRcYBt5FS8irC5Md341E49UGO9wcDF3Wx/u0EOI6IcT3sNZH2DfStthzrowSGnXrHpixcSNmMEjKrLnk33QrLW++zozdm1g9dSL/ao5wRUGSDT2GOcr6eCOK7fFGCS26Nd9mTtkuHHn55H3tGwhFIf2c8zmz1YFAp9bM4UCwPsmWHt+0e8K7hBC/Gc5ybOGNAmJmnLD0ATC2PkTBf3wL1ZsKWPOJTrviRvLiOwCF5z55O4mWnhD4pJS3SSlvH85C7FBzFFAVqUWi4ZKt5J95Ps6xhYccVzwelqY6eS4OWzzZSNNEKPY9c5g4QwjhAHQp5T3DVYj9640CdocbAUiNN+KeOKnbNGcWLQCgyTWG1p3bR8y2E5BvAk8Bzw5nIbbHGwXsjbYBqaSHGnHPX9ptmnx3Dl5ZQUjk8NHejzhn8rSRNfLE4RqgENgL/PTwg0KIR4Hqjl2gTkr5s/4WYgtvFFATstrn/OEgapqvx3RjlSDbZQ6bZJhzRsq4E49GKeX/E0Lc1MPx/5FSlnbsCCFmDKQQO9QcBTS0NyWMkb3/HDPSrQUV9vhyMFpbh92uE5QcIcQfgOzuDkopS4UQuV33B1KI7fFGAa1Ys44Xe7J6Tbckq4RnAwEaPUUEt3xMxrLlI2DdiYMQwgV0LL18xPR7QojvAzXAbODWwZRlCy/JxMw4EdIBmJw/ude0EzzZONlPnFQ2H3iX01g+AhaeUJwHzMd6dpPATw47/ryUcrMQYvxgC7JDzSSzu3Vfe1NCC5kTuq/R7EAIQYFqLeO8yRVHmiOz/PKJgpTyBWCVlPLHwPvdHN8shMiUUg56bhdbeEmmonYXAGl6M4rLfdT0U9OszvR7cscS27VzWG073jhsWNBFQojvCyF+KdpnlBJC3AXc0d5r5Qs9ZHNETedAsIWXZPa2tQCQafRt5MHC9LEA1HuLCG7+eNjsOkbpz7Cgc6WUPwW2AHPbj98GfF1KebuUsqfV9oZk2jf7GS/J1JrWM3yu2rffc4Y3B4UmwuRRUfcSOT3emE9IGga4BFjXipQb25sIVCnlBd2kfXFgph2KLbwk06xaoeO41PQ+pXcoghytjVo9g61ZGktaW1F9Pbf92Ryky7AgD/CuEOIOIB34a5dke4FyoKcQRBNCXNKxI6V8fiC22MJLIkaojaBmtc1NzOl7RdnkFAe1rVBVWER4yyekLTttuEw8rujjsKCPAR8ws4fjASzxvg2cAgxIePYzXhIJ7t5ORLHa7iam9X2g3fw0a+q/urTxtG5aPyy2ncAoUsqXgQ3dHZRSvoO1lPRzQOWACxnoiTaDp6J6BxIVF62kqM4+nzc7zQ9AkLHsrd2AEbanhBgK2ms1v9/+2tvD8xrgN1gh6YCwQ80kUhm15s300b+JjHyaSoYaJmCkUDHZz/S175N+pt17c7BIKW8TQkySUlYcJd0/gX8Opizb4yUJKSX7FasyLdth9Pv8CW6rFnRXcRGt7741pLadqAghPg/cLIT4TW8j0IUQRUKIi7tWsvQXW3hJwmhuojHVqo3M9xy94fxw5vnyAKjJGE9Lwy5ie46ZhXJGLVLKJ4B7gDLgd70k/QHQBrQMtCxbeEkiunsnAa/VAX6cO7Xf589PywQgYE6hao6T1nftKSGGiC8D64FbekmzBQhizc05IGzhJYno9m0EnZbwxnsy+31+rtNBsUvHxMmGuTMJvr8as32KQJtBUQ80AgeEED01kM7HGqEwb6CF2MJLEoHtW4kqluAmpuQeJXX3nJtthZt7UucTSA0RWv/hkNl3ApMJXIfVyN7T0J9twAsMYnoIW3hJwGgLspdWJCpuEcTTj6aErpycno6GQatZwraFGXa4OUiEEGdjNZC3AM3tM013hwu4mUGMybObE5JApLyM6jFWmOlTIwPOJ0VVmJOq8HEbbJo2j0WvriJeW4MzL3+oTD3R2AB0NCUcMRC2Cw8BcxiE47I9XhKIlG3hQIEVXvoH0JTQlfOzrYVOqrV51E+A1nfeHLR9xyvtw4F+275S0BG90qWUTcCy9vF2J/WS1fcZZOXKMevx4qbJ2tYQrze2sCsaZU5qCmdk+FiY5sWhDMnIjWEjUlbK7svPBWCmd3AdnGenpuBV4oRMP5sWF5H71MukLlyCe2Lvo9mPU/xCiHVd9u87bOGSEFbnZy+W0+nurjem/bWol3I6ajUHvEb2MSc8Q0qer2/m5cYAQePgCOwNwTAbgmG8qsKKnEwuzs6gm5ta0tEDAeoiDTQ6iwGTs7IHJxBFCE7J8PJ6U4LyogUsV/ZQc+9vGffjn6Gmpg2JzYMhbprsi8WpDUdxmgYeaeJ3u8n1DYttvQ4LklK+AbwhhPgscAbQXc+D3UKIO4H3eilnPtAKmMCmgRh6TAmvMaHzu701lIet1VF9SgM5ynukqxUE5XyazCU06mn8vaaRoG5wZV72qBNfpLyUjxdPBVTytFoyHVMGned5WQW83rSHejmL2tPXMvbNamrvu5eCW7+dlBmnG+IJ3mpo5v3GempxIMXhNrTgS2xlmhnggjGTmVEwcUTsEkIsB5YCE7DCxe6oBjYCvQ3v76jVPP493oZgiN/vrSZkgoNWJjv+QbpSgSoF7rgLt+ttcpS3aRCz2ZH4HM83BEhIybX5/lElvkjZFrZNtyajnZOqDkmehW4nBY4Y1Qk3a5YW8+myFti0geaXnyfr4hVDUsbRkFKyqS3C89X72RoDhADhAkw8og6PaMDEgS7dRKSfVoefD/HzYaOksOZlLvOlcVLJqcP6W0kpVwGrjpLsImAXsIyevZkLa3hRdxMi9YlRLzxDSh6rqeOFRmuSnwxlB1PlU0xeG8K/CzL3SRQ9SjAXGk7PYe/UKoTjUbYnruCVxhZ0Kbm+IAdllIgvsKOMmsWnAHBW1oRDjkkpaT2QoLYsQm15hOY9ccbOS2He57JRHb3bf252Hg/XBNiWWIbrumrO+EslPP04Dn8OqUtOHjbPZwkuxN/27Gav9AACIXSylVLGGhuYFtEpyZhL0bhT0RwekJKmYDUf7P2IjbqTStcM9jmm8NsIPLr5Jc5OS3DOuOV4tf53KhgiXIAfyOvuoBDiUuAu2qeAEEJcLKXs96h0IWVvtaZHsmjRIrlu3bqjJxwCAgmdX+wsZ7fuBkyK1DdZuvVd5uwaT/bUxQiXG8XpIFFbS8s7byKjURIu2Hx1GmW5BZQnrkTiYHlGGl8dm5t08SUaG3jqqd/y3CnX4VMauW/Gwenam6pivP2rakIN+hHnZRW7OO0/8kgf03N7X8Qw+fHuvVRGEygkmKS+yPlPryevApxjC8m46BLSli5DaENzr42aJm817Oe12jpqhTV6XiPEWLGGBc27mJ+7nImTLkBVei9v94Ht/G1/OWXuyZjCYX1fUcYZ3r0szz+fPHffw1AhxPoBTv3QNY/ZWNP8vSil3NbN8f/m0KaG8vY+nv0rZ7QK753qSh6sbyGqeHEQZF7bE1xcnU/xoktxjTuywsloa6PlrdcJvPYyRqiNnWdqfHjSeMoTX8TEyTJfCjePK0BNovha33uHXxr7qMheypLUA9xefLpluy556Y69BPbE8WSo5E7zkDfdjTfbwUcP19NWp6O5BIu/lMOk5Wk9hmNx0+SBA3WsCljDjPKUj1i8ZzX525vI3A+ZRjZpC5fimToDz9RpnUuB9ZXmRAsftexlfXMLW6Pp6MLq3K0RYry+hrNaAiyddQ2p2eP6fW3q6mv5W9mHrM8owVBcCBIUqu/y+Sw/i3I/26cQdIiEd6WU8tHB5NGnckab8A4EA9yzcyOVmrVUlY/drDjwAecsvBFn9tG7VhmtrdT95c+E1n9I3SRY9dkJbDGvxsTFwlQntxWNQ0tSc8OBP63keyedTEz4+GahZHGGVaO58clGNj3dTFqeg0//chya62BYGA+brH2gjt3vWWIqOS2Nk7+a22vo+VZTC/cfqMVob6ZViOEWTbhpxmlGUGUMjRgaCTRhoCkmDsXEqai41RQ8jlTcWiptuklzTKfFEDSZaQRkIbLL00kae5gW2MAZio95869C83gHfY1qqyp5cMc2NuZbni5LKWVZ7C2m551KfuZMUrUsJJKYESKoN1Afq6QmWkFLopbrJ/xuKIT3KlbFSmw418gbNcLbH2zkrxXr2KSNwxROVKLMCb3Hl/KWkFe8oF95SSlp+2AN9X99kBZviDevHMcG57UYeJieIri1aDzpQxRy9cem11b+iIeWX4OLVh6cMRdFUWmuivHiHXuRBpz3X2PJn+Hp9vyd77ay9v569JgkZ6qbM79ZgNvXc+XM7kiMBw7sY19MJ2IOTSUOmKQnDjA2UMHC1hZOm3wWadPnDUuFyEdbtvB7XRDTXHhEHYXaKvzKFoToeRLfWyY/PijhCSGmY1WqPC2lDAw0nz6VlUzhRQyDVXs3s7q5nt2OIiTWHyRPL+U6zcGCWRcOKn+9uYm6B/9E884NvHVFAWszv4SOF4+S4IYx+SzLGLkH+ERdDb9a/yKbxi1nunsv/z3pTExd8vIP99G0O8bU89JZ+uWcXvNoqozx1i+rCTfppOZqnPWdMWSMPXo/zzbDoDae4EA0RMjQiZgm4USCUGsrkXCYaCxKNKETNw10YWIoEl1VcCfCZETDZMQT5OuSBSl+ciZOxjV+AopzYP1L+8OBWJyfV1RS176Yi9tooUCup8D4hAwlSqqWRba3hEL/Ahr1fSzNvnywwlsJ/AW4SEr5o6H5Fj2UNZLCa45HWBvYT2ljNVVxqFf8nQ/UYDI2UcpFiuDMWZ9CUYfGI0kpCb73DrWP/4UPznHx3pRLaTGtMGaON8LNhdNJdwyv95OGQcPjf+N7MybSpuXzpbxWLshZwOZnm9jwWBNev8YlvyrC4Tl6zWO4SeftX1fTuCuGI0Vh2Y25FC3xDrnXkYkEaFrSm2LipsnqQJAXahup6dJhIq++hsLqfWS0BkAIPC4X11x//WCF9wvg78AXgb9LKQfUON6nsvorvBnzJ8tH3/4dilBRhaPLpmJKk1g8QjDUSks0Sms8QX1Csl+4qFNyaBX5HN491Cf3MCm8j3PSxjB/+tnD9kPrzU3U//VB9tat45VPL2Gb93xMnAh0JjpaODcnj1Mzxw955Uu0cjf1D95HVSzA76/+JipR/jR9IsHt8MZP92PqcM4dYxgzJ6XPeSaiJmtW1rLnoxAA2SUu5n4ui7HzUpIulOHClJLSUIRVza2sa2kj2k2ax2dPHqzwruuyK6WUDw80r6OW1V/h5c8aL6948qfo0oOJhoELXboxcKNLDzpuoPtnCkGCTH0P+eH9FOsJ5qaNYeaMc9G6WTPASEjCzTrhRp1Qg06oMUEkYBAJGERbdBIRiWlYG4DLq+Lyqbh9Kqk5GuljnPjGOPDlO1CdB8Ue27uH5ldf4ANZyhsnXUijMoWOm4FThsgxGsglzlhFpcjlI0048KCQIlU8UkUYBtLQEYYJuoEqTVRTIkwTkKCoVpuZqhDdsY3yjWv5cPEsSifOo03zM17s4XMb5lD6UgAkTDrLx7Kv9n88njQl5a+3sPmZZqItVpdD/2QXE05JI32Mk/QxDlKy/n975xYiyVkF4O/Upa9z2bnE3WzCopK4kiCbNQ9i4iIoq4ZgEsUlMT4oiKgPyhqU6IO4IEK87kLeBNH4sLgEFYKKCr4kIASCPuiDyequwTg6JJlhu3t6uroux4dTu9s7u3OvrprI/0FNNzXV/6n+q845f///qXMCpOCJJFUliZRhLyVayRj2UgbdjKiTMuimRN2UqJcSdTOGKynJQEmijGSoaJ41W0Twa0JQF8KWR33Cpz5h164+5dOa8WnPBbTnQ9rzAd6aLNvDLOPiasTFQcRSnECWsXCpw1fu2J3ilcm2Fe+2u96nx578ITLyMRVA8sUNgSAbUMsGNDRiIh1wcDjkUFbncHM/zX0HyKRBEinxakbcTxmuZAw6Kf3lhNXllJXXkys30+6/IbRmAyb3h0y+KWDippDmbEC91id56XkuJn/j+bdMc37/EVZl499YG4rRBI+EQCPCzLbYq9ELrq7Dzi6s8p7fhCT/DRCBOx+Y4ciJWfxg58qRRBkv/v4Sf31mmah77cSDXxPCpofng3hiN/AGokRAPDtWBDTDjFuipImSDDLigW78wEzBiAeNaZ+w4eHXBd8XJP8emipZakaaTHno9Jv/fxXvp4/8vZRuF4HmTJBbvoDWXEBrJqAx7dOc9qm1PTxfkIOMWcAAAAUaSURBVMA0PuqlZnU7Kd3FmEsLMZ2FId3FGN1CNSs/VKglpH5KHChJAEngoSK24aH5XXut0RHbL2aArhih/B4PooxmlFAf+tDzQWHqYMi9n9/PTbdvP8nResSDjAvPdln6Z8SlhSGd/8TFGa81+DWh1vaoT/rU27nHmvJpTPq2b9L21doeYdMjqHv4NTGlFkEzJRmaJ4z7GVE3I+rZtRt0UvpLNtLpvZrQX062rOifPLexxxORdwIfBVrA11V1pZAO2QHbnlXoxK9y8ODNIHknqllAzTfrJOWyPosIXgB+IAQNDz+016AuhA3PLk7LozHl05oJaM4EtGYDmvv864YYOyFLlJXXErqLMZ3FmP7rMf2l3LsuJUS9jGglJY0F4hAIsb9F4QE2Ayg+vP2D0xx9ZI6gVmwIV9jwOPyBa+svDPsp6dC8go4My68j361qQ1h7NW/j+YIX2BY27dp5Ja6DpsOMQTcjHmSkw4wsVkZG9Yhvw1YRgXObNvdx4GvYksFxdpG6YbdsW/F+8vIXeOHn5YSMFYEXCJMHQiYPhFcetFrL6O+WNLZhVRbbEGt0QKBqnhiuvo4anCs3bf4eoNbyqbXMwNTa/qYxl0VSa/lm29/A+DWP9tyWjdRmz+PBVf9Z4oD5evZ8kHQZiAhhwzyw4w3NZmW6fgacwszRN0o5o3XY9m88EelizyONm3msOEQVVCG7bJlV9e845R5W1eqf/t0CO/F4L5YxcyQiL1Q1Q1WF7LJlVtW/45S7Zpi5p3FjK4ejApziORwVsBPFWztLNC7KkrNXZJcts6r+HafcKu+ZbbHtyRWHw7F73FDT4aiATWc1ReQoVpa2DnwPOILlFZwGHtcCXaaIvAs4rar3iMjJXMYrqvqjomSsI/cdwP3A7cATwCQlhRaVGcYkIsewqI07gN9hae4Kv47ryL4f+CxwHvgX8G9VfbqAdj+Epeybw8przQPtDeoe7Am24vHeD/wYKz37MeC4qn4Ly6Z7pKgTEZFDeXuXS94sY9EFu88nsAmq+hdVfQJLYnozFlp0CgspOj5m8aXJUtXnVPXbWH2AE+O4jjciN94NLG3eYv6+XlDz9wHfxdaWT6rq93OZ+wpqfyxs6PHyUrMecAKzyK+sOaQQK5nLuRW7GEdF5L2q+lT+v8dE5K2qeqEIWevInses8LSqPisiH6bc0KLSZInIo5gCzN5A/ri4D0udfhR4SlX/LCKnReScqu44KWzOk8CXgNEMS3t+4mLTyRURuRWzyhPAD4B7sYJ808BXix6iiMgZVT0pIg9iQ6JbgMdUdWxVF0XkHsxqPg38AYtqfog8tEhVe2OUfXeJsk4AnwZ+i40obmFM13Ed+WeAP2FKMqWqjxfQ5p2YYreAlzEj2lLVb+627XHiZjUdjgpws5oORwU4xXM4KsApnsNRAU7xHI4KcIpXMCLyKRG56wb7T11eWxKRh9c7bs1nzozrPB3V4p5AHxMi4gFfxKbsf4lFxTwqImeBd2NlgQ+JyGvAl/MllDPAd7C8IC/l7bwN+AwwBH6tqn8s/cs4Csd5vPHRwvr3Ihb9cx44O5KT/zzwjKqOBiX4wDHgF8DZfN8D2BPbF4DbSjhvRwk4xRsPn8C81N1YnWwfC2n6nIhcLtjwD+DhPFQuzLMYHwCew+qzfSQ/7ldYkcQ6O6y37dh7uAV0h6MCnMdzOCrAKZ7DUQFO8RyOCnCK53BUgFM8h6MCnOI5HBXgFM/hqID/AbzG7qpfDCNKAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f = mean_panels_line(h0means, ['FSNT','FLNT', 'PRECT'], exps_norm, ctmp, \n", + " labels=titles_norm, zorders=range(7), #width=2*twocols, height=5,\n", + " ylabels=['TOA solar \\n' r'[W m$^{-2}$]', 'TOA thermal \\n' r'[W m$^{-2}$]',\n", + " 'Precipitation \\n' r'[mm d$^{-1}$]'])" + ] + }, + { + "cell_type": "code", + "execution_count": 224, + "metadata": {}, + "outputs": [], + "source": [ + "#savefigs(f, 'mean_flux_prec_review_nnsize')\n", + "f.savefig(FIG_DIR + 'mean_flux_prec_review_norm' + '.png', dpi=500, bbox_inches='tight')" + ] + }, + { + "cell_type": "code", + "execution_count": 225, + "metadata": {}, + "outputs": [], + "source": [ + "climerr_norm = climate_error(h0means,\n", + " lambda d: d.isel(lev=slice(5, None), ilev=slice(5, None)),\n", + " lambda ref, d: np.fabs(ref['TAP'] - d['TAP']), exps_norm[0], exps_norm[1:])" + ] + }, + { + "cell_type": "code", + "execution_count": 226, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0,0.5,'Climate error')" + ] + }, + "execution_count": 226, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, ax=plt.subplots()\n", + "sns.barplot(data=climerr_norm, ax=ax)\n", + "plt.xticks(range(3), titles_norm[1:], rotation=45)\n", + "plt.ylabel('Climate error')" + ] + }, + { + "cell_type": "code", + "execution_count": 227, + "metadata": {}, + "outputs": [], + "source": [ + "f.savefig(FIG_DIR + 'climerr_norm' + '.png', dpi=500, bbox_inches='tight')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 267, + "metadata": {}, + "outputs": [], + "source": [ + "h1s['nnatmonly_fbp8_D040_andkua_nofix_betafix35']['PRECT'] /= 10\n", + "h1s['nnatmonly_fbp8_D039_andkua_nofix_betafix35']['PRECT'] *= 5" + ] + }, + { + "cell_type": "code", + "execution_count": 268, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for e in exps_norm:\n", + " prects[e] = h1s[e]['PRECT'].plot(range=(0, 4.5e-6), bins=100, label=e)" + ] + }, + { + "cell_type": "code", + "execution_count": 269, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(twocols*0.4, 1.7))\n", + "plt.subplots_adjust(wspace=0.03, left=0.13, right=0.9, bottom=0.22, top=0.9)\n", + "[ax.plot(prects[e][1][:-1]*1e3*24*3600, prects[e][0]/prects[e][0].sum(), label=titles_norm[i], \n", + " ) for i, e in enumerate(exps_norm)]\n", + "ax.set_yscale('log')\n", + "ax.legend(ncol=2)\n", + "sns.despine()\n", + "ax.set_xlabel(r'Precipitation [mm d$^{-1}$]'); ax.set_ylabel(r'Frequency')\n", + "#ax.set_title('Precipitation distribution')\n", + "#ax.ticklabel_format(axis='x', scilimits=(0, 0))\n", + "ax.set_ylim(1e-6, 1); \n", + "ax.set_xlim(0, 350);\n", + "#prects[exps[0]][1][-1]*1e3*24*3600" + ] + }, + { + "cell_type": "code", + "execution_count": 270, + "metadata": {}, + "outputs": [], + "source": [ + "savefigs(fig, 'prec_hist_norm')" + ] + }, + { + "cell_type": "code", + "execution_count": 203, + "metadata": {}, + "outputs": [], + "source": [ + "fig.savefig(FIG_DIR + 'prec_hist_norm' + '.png', dpi=500, bbox_inches='tight')" + ] + }, + { + "cell_type": "code", + "execution_count": 272, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['sp8fbp_andkua',\n", + " 'nnatmonly_fbp8_D025_andkua_nofix_betafix35',\n", + " 'nnatmonly_fbp8_D040_andkua_nofix_betafix35',\n", + " 'nnatmonly_fbp8_D039_andkua_nofix_betafix35']" + ] + }, + "execution_count": 272, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "exps_norm" + ] + }, + { + "cell_type": "code", + "execution_count": 271, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SpaceTime.PRECT.nnatmonly_fbp8_D024_3kw1_allfix_betafix35.nc\r\n", + "SpaceTime.PRECT.nnatmonly_fbp8_D024_3kw1_nofix_betafix35.nc\r\n", + "SpaceTime.PRECT.nnatmonly_fbp8_D024_4k_allfix_betafix35.nc\r\n", + "SpaceTime.PRECT.nnatmonly_fbp8_D024_4k_nofix_betafix35.nc\r\n", + "SpaceTime.PRECT.nnatmonly_fbp8_D024_andkua_allfix_betafix35.nc\r\n", + "SpaceTime.PRECT.nnatmonly_fbp8_D024_andkua_nofix_betafix35.nc\r\n", + "SpaceTime.PRECT.nnatmonly_fbp8_D025_andkua_nofix_betafix35.nc\r\n", + "SpaceTime.PRECT.nnatmonly_fbp8_D035_andkua_nofix_betafix35.nc\r\n", + "SpaceTime.PRECT.nnatmonly_fbp8_D039_andkua_nofix_betafix35.nc\r\n", + "SpaceTime.PRECT.nnatmonly_fbp8_D040_andkua_nofix_betafix35.nc\r\n", + "SpaceTime.PRECT.nonsp_3kw1.nc\r\n", + "SpaceTime.PRECT.nonsp_4k.nc\r\n", + "SpaceTime.PRECT.nonsp_andkua.nc\r\n", + "SpaceTime.PRECT.sp8fbp_3kw1.nc\r\n", + "SpaceTime.PRECT.sp8fbp_4k.nc\r\n", + "SpaceTime.PRECT.sp8fbp_andkua.nc\r\n" + ] + } + ], + "source": [ + "WK_DATA = '/beegfs/DATA/pritchard/srasp/wkdata/'\n", + "!ls {WK_DATA}" + ] + }, + { + "cell_type": "code", + "execution_count": 276, + "metadata": {}, + "outputs": [], + "source": [ + "wks = [xr.open_dataset(f'{WK_DATA}SpaceTime.PRECT.{e}.nc') \n", + " for e in exps_norm]" + ] + }, + { + "cell_type": "code", + "execution_count": 277, + "metadata": {}, + "outputs": [], + "source": [ + "wks = [wk.isel(freq=slice(1, None)) for wk in wks]" + ] + }, + { + "cell_type": "code", + "execution_count": 278, + "metadata": {}, + "outputs": [], + "source": [ + "freq_days = 1/wks[0].freq" + ] + }, + { + "cell_type": "code", + "execution_count": 279, + "metadata": {}, + "outputs": [], + "source": [ + "labels_days = [30, 10, 5]\n", + "labels_freq = 1/np.array(labels_days)" + ] + }, + { + "cell_type": "code", + "execution_count": 280, + "metadata": {}, + "outputs": [], + "source": [ + "hs = [12, 25, 50]\n", + "g = 9.81" + ] + }, + { + "cell_type": "code", + "execution_count": 281, + "metadata": {}, + "outputs": [], + "source": [ + "def ER(k, h):\n", + " n = 1; lat = 0.\n", + " Beta = 2. * 7.292E-5 * np.cos(abs(lat)) / 6.37E6\n", + " t4 = (Beta / np.ma.sqrt(g * h)) * (2 * n + 1.)\n", + " return -Beta * k / (k * k + t4)" + ] + }, + { + "cell_type": "code", + "execution_count": 282, + "metadata": {}, + "outputs": [], + "source": [ + "lat = 0.\n", + "ll = 2. * np.pi * 6.37E6 * np.cos(abs(lat))" + ] + }, + { + "cell_type": "code", + "execution_count": 283, + "metadata": {}, + "outputs": [], "source": [ - "### Review" + "k = 2 * np.pi * wks[0].wave / ll" ] }, { "cell_type": "code", - "execution_count": 80, - "metadata": { - "hidden": true - }, + "execution_count": 284, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "['sp8fbp_andkua',\n", - " 'nnatmonly_fbp8_D025_andkua_nofix_betafix35',\n", - " 'nnatmonly_fbp8_D033_andkua_nofix_betafix35',\n", - " 'nnatmonly_fbp8_D034_andkua_nofix_betafix35',\n", - " 'nnatmonly_fbp8_D035_andkua_nofix_betafix35',\n", - " 'nnatmonly_fbp8_D037_andkua_nofix_betafix35']" + "\n", + "array([0.010417, 0.020833, 0.03125 , 0.041667, 0.052083, 0.0625 , 0.072917,\n", + " 0.083333, 0.09375 , 0.104167, 0.114583, 0.125 , 0.135417, 0.145833,\n", + " 0.15625 , 0.166667, 0.177083, 0.1875 , 0.197917, 0.208333, 0.21875 ,\n", + " 0.229167, 0.239583, 0.25 , 0.260417, 0.270833, 0.28125 , 0.291667,\n", + " 0.302083, 0.3125 , 0.322917, 0.333333, 0.34375 , 0.354167, 0.364583,\n", + " 0.375 , 0.385417, 0.395833, 0.40625 , 0.416667, 0.427083, 0.4375 ,\n", + " 0.447917, 0.458333, 0.46875 , 0.479167, 0.489583, 0.5 ],\n", + " dtype=float32)\n", + "Coordinates:\n", + " * freq (freq) float32 0.010416667 0.020833334 0.03125 0.041666668 ..." ] }, - "execution_count": 80, + "execution_count": 284, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "exps_tmp = exps_ak[:2] + exps_review; exps_tmp" + "wks[0].freq" ] }, { "cell_type": "code", - "execution_count": 82, - "metadata": { - "hidden": true - }, + "execution_count": 285, + "metadata": {}, + "outputs": [], + "source": [ + "def tofreq(x): return 1/(2 * np.pi / (x * 24 * 60 * 60))" + ] + }, + { + "cell_type": "code", + "execution_count": 286, + "metadata": {}, + "outputs": [], + "source": [ + "def wk_panel(ax, data, title, add_text=True, ref=None, label_color='white', \n", + " field='FIG_3_SYM', **kwargs):\n", + " d = data[field] if ref is None else data[field] - ref\n", + " im = ax.contourf(data.wave, data.freq, d, **kwargs)\n", + " ax.set_yticks(labels_freq); ax.set_yticklabels(labels_days);\n", + " [ax.axhline(y, linestyle='--', c='gray', zorder=1.1, linewidth=0.75, alpha=0.5) for y in labels_freq]\n", + " [ax.plot(data.wave, tofreq(k*np.sqrt(g * h)), c='gray', lw=0.7, alpha=0.5) for h in hs];\n", + " [ax.plot(data.wave, tofreq(ER(k, h)), c='gray', lw=0.7, alpha=0.5) for h in hs];\n", + " #ax.set_xlim(data.wave[0], data.wave[-1]); ax.set_ylim(data.freq[0], data.freq[-1]);\n", + " ax.set_xlim(-10, 10); ax.set_ylim(data.freq[0], 0.3);\n", + " if add_text:\n", + " ax.text(5, 1/4, 'Kelvin', color=label_color, weight='bold', fontsize=5, zorder=2);\n", + " ax.text(-9, 1/15, 'n=1 ER', color=label_color, weight='bold', fontsize=5, zorder=2);\n", + " ax.text(4, 1/30, 'MJO', color=label_color, weight='bold', fontsize=5, zorder=2);\n", + " ax.set_xlabel(r'Zonal $k$'); ax.set_ylabel('Period [days]')\n", + " ax.set_title(title, pad=4)\n", + " ax.set_xticks([-10, -5, 0, 5, 10])\n", + " return im" + ] + }, + { + "cell_type": "code", + "execution_count": 288, + "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", "text/plain": [ - "
" + "['SPCAM', 'NNCAM ref (this paper)', 'NNCAM fluxes * 5', 'NNCAM fluxes / 5']" ] }, + "execution_count": 288, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ - "f = mean_panels(h0means, lambda d: d['TAP'].isel(lev=slice(5, None)).mean('lon'), \n", - " exps_tmp[1:], exps_ak[0], \n", - " contourf=True, width=twocols*1.2, \n", - " titles=['SPCAM', 'NNCAM_paper', 'NNCAM_larger', 'NNCAM_smaller', 'NNCAM_tiny', 'NNCAM_big_fluxes'],\n", - " clevels=np.arange(190, 310, 20), levels_ref=np.arange(180, 305, 5), \n", - " levels=np.arange(-5, 6, 0.5), clabel_locs=clabel_locs)" + "titles_norm" ] }, { "cell_type": "code", - "execution_count": 72, - "metadata": { - "hidden": true - }, + "execution_count": 291, + "metadata": {}, "outputs": [], "source": [ - "savefigs(f[0], 'mean_T_review')" + "def wk_panels(data, levels=np.arange(1.2, 3.1, 0.1), ref=None, cmap='nipy_spectral', \n", + " label_color='white', field='FIG_3_SYM'):\n", + " fig, axs = plt.subplots(1, 4, figsize=(twocols*0.9, 1.7))\n", + " for i, (ax, wk) in enumerate(zip(axs.flat, data)):\n", + " im = wk_panel(ax, wk, titles_norm[i], True if i == 0 else False, cmap=cmap, \n", + " levels=levels, extend='both', ref=ref if ref is None else ref[i]['FIG_3_SYM'],\n", + " label_color=label_color, field=field)\n", + " if i > 0: ax.set_ylabel(''); ax.set_yticks([])\n", + " plt.subplots_adjust(wspace=0.03, left=0.13, right=1.0, bottom=0.22, top=0.9)\n", + " cb = fig.colorbar(im, ax=axs, pad=0.01); #cb.set_label('Log power spectrum')\n", + " cb.set_ticks(np.arange(-20, 20, 0.5))\n", + " return fig" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "hidden": true - }, - "outputs": [], - "source": [] + "execution_count": 292, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZYAAACBCAYAAADjXJwBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsvXl4o1d5sH8f7ZZkyZK8L+OxPYvH9thOmJAQEjIOJBmYECgQ2iYhKZCEFFq+CZQP2n4QCC0U+LUMSaFA2tAkJIUQyhrIApnJnpAExp7xMotn8b4vsiVrP78/Xkkjj63FM7Yle3Rfly9b0qtXR4/f9zznec6zCCklWbJkyZIly3KhSvcAsmTJkiXL+iKrWLJkyZIly7KSVSxZsmTJkmVZySqWLFmyZMmyrGQVS5YsWbJkWVayiiVLlixZsiwr57ViEUJ8UAjxRSHE3wkh/kMI8SkhxH8JIQxCiDvDP38vhKgQQpiFEM8IIcrD7/2lEOL94b9fEkLsTOuXWQJCiL8SQvw0/Pfe8O92IcTFQoiNQog9QogSIcQ/hWXwifAxNwoh/r/w3xuFEMfDstohhGhN8bO/IIT4y5jHVwohLg3/H/Iinx/z+lYhRPNyfv8zxuMQQvz1Sp1/kc9bcdkLIb4nhLg8cv5zHO+28Dh2CiFE+LlmIcRD4bFaz/Uzsqw/NOkeQJqpAMaAZ4DbpZT/JoT4LLAJ8Egp/yNyoBDio8BHgOuBbwLHgWYhxBjwx1Uf+blzSAhxbczj3wMfBr4WfvwJ4F+klLMxx1QCfxBCbAb8wG+BD6DI69nIQUKIjcC3gPsAHVALFANfBS4DXow559VSys+FJ9AbgJeAFiFEHnAy/JMnhNgNTANtUsrnwp/zPeAVoB74J2AXyv/UDbSHz9cG9AGjwDuBHOA/gH8BfgY8Ff5eq8lKyv4CoAqYCD/eCeQB+4E9wAFAD7wV+Efgc+FjNeHzvBfollLeFz6lBJpR7pMIPmASsAPBsxPB8iOE+Cvg3VLK9wsh9kop9wgh2lHu22GU7/ZjFPmOAz4p5beFEDcCF0gp/y587T4D1AENwH9JKZtiPuN7wA+B90sp93COCCE+AjwhpRwIL6A+DbwB/EBKOX2u508X57VikVL+qxBiA3Ar8B4hxCkgBARQbqhYdgK5wMVCCF34uQ7goygT1FrjZ8BtgAg/DgEPAbcAU+HnozIQQrwJ2IgyqW0DHgCOokw6fSiTVywvSSl/LYT4IfA7lAmoBOiQUv4+5riILI8Cj4TP84KU8htCiG+hKBaA14DtKP+DCGqUm/w64M2ABWUCfBuKYnlZSvkDIcR3w+NuRVEsm4BRKeXD4e+GEEIrpfSnIrhlYMVkL6X8kxCiQ0rZHjYwZPh86vDrPxdCPAV8B0XBNAI/BbagLJYmAVvM+bqEEF+RUh6Oea4D+KQQ4kLgg8D9yyGUZWItKW2AMinlQPjvjFTYZ8N5rViEENehXDx5KCvhb8a8tlsIcSdgQFlF/0JK+ZgQ4mKUiw7gMeAPKBPeWuRe4MnIAynli0KIyOT2beDvhRDjKBd8DfAJKaVfCPEVwBh+214US+LLZ5zbG/79cxSLZQLoWWQMvvDvw8Ad4fFEJvhY5Z4XPud24PHwcwHgYygWy98D16BYj+rw65cLIUpRrJKIxdIHHIkZX+S7r5ZSibCSso+lC/giimJCCHEb8M/Ae4AXUBRwHoplVwzMAI1CCKOU0h0e2+HYE4Yn2KvC5/y3s/r2K8eaUdpCiAKU6zJy/kxW2EtCZEu6ZEknQogrAa+U8sWkBy9879547ojIalJK+fMk53AAH4x1e2ZZm4RdYQcAD/CklLIyxiX2fRQPw6PAxwm7wlCU9mdjlPYPgatRFo3TwJdjr7GY8+1Fce1+EWWhYgX6w3+/B/gK8HfAUPinA8UN3Ah8SkrpFkLcDvxSSjkUPvc8hS2lPLYigloFsoolS5YsWdKAEGKnlHJ/usexEmQVS5YsWbJkWVbO63DjLFmyZDmfEELcJoS4bKU/J62b90KIczKXcrEyw7lF5C3HOZYDjUb5VwQCgaTH6vV6/H4/oVDozJfGpJQF5yrX9YbBYMDj8aR0bE5ODnNzc4u9lJXtGQgh0Ov1KclWrVajVqvx+XxnvjQmpSwIny8r2zBarZZQKEQwmDw4zGAw4PV6WcT7FJUtgBCiqKqq6vtWqxUhhEquoLtqTVssy6EQMkGptLCb9239i5SO1Wg0bNmyZTGlAnBqWQe2DtBoNNTU1KR0bFFRETabLd7LGSPbFnanewgAFBcXY7FYUjp227Zti018kKJcW9h9zt97Oc6xWtTW1saT1zx0Oh01NTUpyfamm24a+uhHP8qGDRu45557Fp1Alos1rVjWC0IlECqRkrVSXFzM0NDQKoxqfWC325mYmEjp2Kxsl0aqsjUajfj9fvz+1Y7oXptoNBqCwWC8xeM8ysrK6O/vT3qcEKLojTfe4KqrruIjH/kI999/P5FKCnGOrxdKJZL/EELkh5/7VLjawv9J9nlZxZIBtNpexjPpTXqcEIL8/HzGxsaSHptFweFwMD4+nvQ4q9XKzMxMSjdzutkXTeNJH2q1GiFSWwyVl5fT19e3LJ+7ViyOc8HhcKSksFUqFRaLhampqVRO+77du3ejVqspLy+PWJr/KIR4Pebn9sjBUsp2lGoFxZzOK6uQUu4lnBOViPM6QTJTcDgcPNX7q5SOGx8fT8lEXgu0sHtFJ0khBFqtdjG//gLKysro7u5esbGsN2w2G5OTk0mP02g06PV6XC7XKoxqfeBwODh69GjS4woLCxkZGUn1tBrTiy9C2CI39fQA/FRK+U/x3iClfFgIMQVsAA5yOrE06QSUtVgygAQbxvMoKSlhcHBwFUaUnLXgr87Ly0tpNafX6wHwepNbjVkUHA5HSpZzJl2zawGVSoVarU7JbVhUVMTw8PCKjEMIsUsI8X9RyiXtFkKogF6hFIg9mez9WYslzVgsFpxOZ9LjTCYTHo8nJdfDWmGlXToOhyOlSS1VP3UWhUg0WDJFLITAbrfT1ta2SiNb+6S6GLJarTidzhVz3UopnwCeOOPpby527GJkLZY0k+oeQHl5ecZMfoq1siv6d6ZiMpmSumBUKhVms5np6eWJDsxkeSwXubm5KS2GInsFmeK63cfjGbE/lYhULcGysjIGBgaSHpcushZLmsnNzeXEiRMJj9FqtWi1Wtxu9yqNKjVa2MW+BYuazMBkMjE7O5v0uKKioqX4qbMA+fn5KcmspKSEzs7OZf3sTFcM50oqbnGDwYCUcsmuW/3LL2N6+WVg5Sf+rMWSRlJN3Mv6qZdOfn5+SpbgEjdAk7LeJz5QFkPJlLbZbF53rtuVxmw2p7QYWguu2zWlWNabmyGVyU8Igc1mW3DcWtg8TydWqzWpe8tmszE9Pb0mQowzhZycnJQs5+We/M4HhZ3KfKBWqzGZTCm5ItPJmlIs6+niuuuuu7jjjjv4z//8T2699dbo87fccgtf/epXo48LCgpoaGjgtttuiz4Xq1CyymUhOp0On8+X1LdfWlqa0X7qTCSVyW+lXLfr6f5fjFQCeVYyEmw5WVOKZT2hUqm4/fbbee2118jLy+PVV1/lvvtON5b7/e9/T3l5Oc8++yx2u53q6mp+8IMf8Mwzz/BA13fR6tK/PZap+yupTH45OTkEg8GUclyWk7W+EEglaimrsJdOJMou2WKooKDgrF23DpRWmZWA6azOkDpZxZImjEYj09PTNDQ08JGPfASfz8cVV1wRzal4+OGH+epXv8qRI0fmrWL23/sSrmk39uK4Na1WhUxVKpBaqZF0+qnXqnLRarVJS40IIcjLy0u5jE4WhVQWQxHXbaZE2SVi3SuWTL2Jc3Jy+OY3v4nT6aSyshKtVstrr70WjfR47LHHeP/738/998/vTupxe5UbO36Zn/MatVrpSpyoKqxarcZoNDIzM7Naw1oXpBIaX1BQsCIlh9b7nmIqlQzWkiWYfn/KCpKpF6IQgu9973scPHgQgDvuuGNBeROdTsdFF11Ee3v7gvd//ckvr3g5lLWKzWZLulrOFps8O+x2O0eOHEl4THFx8aLX7HKxHq97jUaDlDLhYihdrtuzZd1bLJnImX7qxRRgstXJeru5lotUXAr5+fmMjo6u0ojWB5FSI4nChy0WCy6XK6UeIudCpi4Yz5ZUXbfnWshT917I+ZLyo248p1MlJatY0kCyyU+lUmG1WlMq8hf7nvMdIQQ6nS5h4pjD4WBycnJJfupUe46sZ/Ly8pJej6u1b7XeFlXJXIxqtZqcnJyUclxi35NO1vVslKklHIxGY8JQzLNJ2quoqEjpuIiverlWfZkkX4vFkjR3ZanJpkIIqqqqznVoa55kiyG9Xo8QIuVOnaAkWp7vpFKBu6SkZIHrNtn9u3HjxuUY3lmzrhVLJmI2mxdsGp+pAJcaq56Tk5PSTXrmxbjeXArJJr9UG07FyqWioiK7H4NSJSJRqZHFXLeJri8hBNXV1cs2vrWK1WpNGL4thFhQPyzZfWs2m9HpdMs2xrMhq1hWmWST39k0nKqpqeHYsWPLMbyEZHpkTrKSGEv1UxsMBiwWy7ImpGWqFZ2I3NzchBF0iRpOxbteysrKliTXiMzWmuySkWw+sNvtS3LdRhR2unsLZRXLKpMsu3apfuqioiKcTmdKLohzuSkzWaFAcveiRqPBYDCk1HAqIqdNmzal5QbNNFknm/wWc90m+g4GgwGbzbZkS3C9KRVIXoG7pKQkbhBPvKCf0dHRxV1rTcC14Z+ysxtvqqxrxZJpK2y9Xp+w1Iher19S1VKtVktxcTG9vb1nNZ5UbtRMk2E8krVsXureSmFhITMzMyk1YFtOIrLOJJknK5Mfz3Ubr7VCTU1N2lfUmUCyCtwmkwmfz5dyIU+9Xp9yD6KVJm4eixDik2c81S2lXH9LhlUkWa+FpfZYqK6u5sSJE0uKcNrH4xk1aS0XVqs1roJdasMpjUZDSUlJNM/ofMZgMCRc6OTl5cVtOLVYdYb8/HxcLlfGtYBIB8kswaV6L5ZTYQshLgcuBeqAO6WUE0KIfwV6gX4p5U8SvT+RxTIL/CLmJxvCcY5E/KWLsdSGU1arlVAodFZVTpfi518L7gedTkcgEIirYCPhnKkq4KqqKk6ePJmtekxySzBevlXsdRP5W61WU1ZWRo/Sb/28J1EFbq1Wi06nW9RNtth+k8PhYG5uLiVXbwzXCyFej/m5PfKClPJ5KeXXgGNAXvjpYcAA6JOdOK7FIqW8XwhREH5YLqX80VJGnGU+arV60ezaiPVgLjLyh+HnUjqXSqVi48aNK5rhvJaw2+0JV35LaThlsVhQqVTL1lFyrWOz2eJa0ckaTp25KKmqquLUqVNZhU3yCtzJXLexslWr1VRUVCS1yKcLYbhG+dujmAk/kVLeHe94IcQNwHEp5XEAKeXXw89/UwjxYyll3PDKZCVd3odSFDMX+FOSY7MkIDa7djFXlKkwh9GDqWWDV1RUMDg4mG2iFMbhcHD48OFFX1tKw6lIzkpWYStoNBpCoVBcRbAUV01ubi4ajSalfu7nA4mSIiM9mFK17DZu3EhPT8+yKmwhxPXAzcATQohbgCeBq4EKwJdIqUByxXIh0AGk7G8RQrwXaAFOAN+SaSzFmUluHIfDwfHjxxd9zWDT45n2cUXonUnHHMlZOXXq1EoMc1EiY8rEvRmVSoUQIq7iKCsrSzm4oby8nKGhobQq7MgeWCZcu4kswUjDqVR8+pEQ2I6OjuUe4prFbrfT1dW16Gupdj+F0zkry11NOryHcuY+yoOpvj+ZYvm2lLJNCJGX5LhYXIAbpeS/Cpjn+wn78W4HZVJobFSK1nR3d2M2mykqKgLg2LFjWCwWCgsLATh69Cg2m438/HwAjhw5gsPhwOFwANDV1UVhYSF2ux2Azs5OiouLsdmU8vIdHR2UlpaSl6d8lfb2dioqKqLlOg4dOkRlZWU00bCtrY3q6mrMZjMAra2tbNq0CZNJ6WRw4MABtmzZgtFoREpJa2srtbW1GAwGQqEQbW1tbNu2Db1eTyAQQKVSsWnTJhp1Owj5JaPtExTU21FpBaZCIyf391PQYKdZ04zX66Wzs5PGxkZUKhUej4euri6ampooLy/n5MmTADQ3NysCd7k4duxY1KzWaDQ0NDQsu1wn6Se/cwPmYiMGm5KApevQpVWug4OD5OXl0dzcjN/vp729nfr6+nkl3qurq9FoNAnlqtPpyMvL4+mnn14g16amJg4cOLCiso29Zidt/TTTnPZrNhgMotFoKC4uXiBbk8nEsWPHaGhoSCpbu92O2+3G7/fHvWZXS7aZMB8Eg0GklGzduhWdTrdAtsXFxTz99NMpyXbDhg1R5Z5ItquNSPThQohPAFXAz6SULy7pxEK8D5iSUj6T4JjMbyywDOTl5WG1Wjl16tSCVb8mR421MpfxrtMugnir1aKiIvR6fSIT+Q0p5Y6Vlmvsd0j3ynrr1q2cOnVq0TyeyspKZmZmUlrN1dfXc/z48UThxasi20xBCEFDQ0PcyLimpibsbeXsSxIoqtfr2bJlS6IIuzeklDvCn3leyDY/Px+dTrfo3tU1ue/FXGRk4th00nurrKwMKWWiSNJY2f7tjT/gnkv+SnnhgZvg9Yepk1Kmtvm4RJLlsfwAOAXcIYT4l1ROKITYKYT4LIo/rvUcx7cuSBRZYykzM9M/P5JjMZdTZOUYz62zmm6qVJXJaoxJr9cvqlSW0nCqoKCA2dnZVc9ZyWTy8vLiBjDY7XaqpraBTP4/TleSaSazmKsrki+WW2bC2Z+82GQkZyVT+7MkUyyfA34tpfwQ8NNUTiil3C+l/JqU8g4pZWqOwnVOvOxaoRZojBp8Mwv3wc68YRPlrKRr7yORglmNMVkslrilRgoKClIqja/RaCgtLT3rJNP1SqLFUElJCTODycNaszkrCzmzAndsArJKp0KlVhGYC0Zfi0emJ5kmUyy/BW4UQnxBSvnaagxovZGoZIO52MhsCjeo1WoFOKuclZUi3S4wSDz5FRcXp1SLarVDYNdKJYN4JXJycnIIBAKEfInlpVarKS8vz+asnEGikk65pSZmBly0sCtatWAxHA4HHo9nqTkrq0qyzfv3okR3ZQPPz5LYbPszJxRjvoHhtsRGnRBizeasRG6OlVJCZrN50Ui7VBtORXJWsiGw80lUzLO8vJz+/n4Oczhh9Fo2Z2Vx8vPzowue0+V7diFVEqxeOJk49zDVnJXFeNgLD0d00QoHPiazWAaAHKBkZYexfonnq85x6PFMemGR7crYzPgNGzYkzVnJBOshFmVVHn/FtRzk5OTELbyZSn5FJGclXgj4SpPJVku80kORQp4RpRPvuovkrCylUd35QlylXRCEUQ0CkfD9K5GzshIktFiklN8SQhiBgkTHZVmcSCjhTvmuBa+ZS0yMH56/Uj7zRk1HzspyoORirKxiiTf5pdpwKpKzkqw3SzpIdx6L1Wpd1IVVXFyctCJxNmclPou5F1vYhURCURDaE/dQWamclZUgURHKb6KEGjtRasVct1qDWi84HA6qx+pw45k30UpTCHwB9vvnR2KfOaEspc9KplktkQKEKzWueKVG4tWuisVgMGC1Wjl06NCKjC0V4skl1tpLx/80XgVuIQT5+fm0tiYO9Iz0WclEhZ1u4hahtYZgViCCp62VfTwx7/8fUdjxkiozjbiuMCnlncBvpJQ3s4SMyyynsdvtzE16F67eywLQr0m4SbeUPivnG7HJj7EkajgVS6ZG1ESUygM4Vtzii0e8yc/hcDAxMZEw6U6v159Vn5Xzhby8vEWvzf2lOfzPQGH08WJVoUtLSxkbG0vYwjgpw8DR8E/8vm3LQrI9lm1CiLuAHSs7jPWHWq1GCIEMzL8RpUaCXiJcp0UfO4m0sDtpzsr5TmzdtVgWazh1JmspZyUd+zDxKnAnajgVIZuzEp/IYuhMxSz1IRBwgyf+YijTc1YWI6FiCVst/yGl/NwqjWfdYLPZmJycXLjyLAnAYOJgvLPps5JprKQbJ14Bv3gNpyJkes5KxFpJF2q1GmBBNJ3JZMLr9SYMIMnmrCQm3jV7oOwVdvafXuQs5kLOVAs7EYn2WO4Efh/+uxjYIaW8f7UGttZxOBxUnNw67zkpJDiC0LpQ7C3sYh9PoLfq2M4OjjgfWa2hrhgroVxUKhVqtTrqw4+s6vV5OnKceuyh8rifnckhsLHWSTdNPEArG1Z5DPEqcDvKrDj7XZSxecF79vF4NGflbEJgV5N0BkUsVoFbqAT6XC0cV9b3iymVtZCzshiJLJYJ4IKYnxOrMqJ1gBBCKTbnPSOPIj8IY2qEjBNSKCBvYy5Tx51pDUfN5CS+WD917BhzS000D7wlbjvctZSzUkMrt7D6RSsiq+rIXk8Lu1BpVah0avyu+NZKJivsM0nHda1SqVCpVFGLL3J/mYpymB12s58nF1UqkZyVSNHZtUSiRl8PrOZA1hOR7NoFTo3iIHTqou6O2MljH09g3WBmdtBNKLwvs9orrExVJrE4HA76+vqij1vYhTSEQPoRXhUP4OCWsPUXIZKzkskhsJH/8y0x7rDV/N/HlhqJdcndXNICgyr28/Si78vmrCQn4haH0wEa+3gCU2EOwwfjLyCWPWdlEIgEla1wH7tkm/dZzoLYyJrIBCfNIfAIHgzkLzh+H0+gyVGjy9XhGln9TeV4FkomKhqj0cjc3Nz8sZUFeKy/IDoZnhlVlck5K7EoibFPcAvji0YGrSSRNrkt7OYBHHTTxHHRyP/atvLgeMHiUWpC2Q9ca/7/1SY/P59tYxfOi/rbmXcV26abaQmdlmvsQmIt5awsRlzFEm4/+QMhxANCiKz1sgRyc3MXZteWBfhRX+HibwAGa44z2Z2edriZlgMTj9zc3HlFJ1vYhVRLnjeZcDu1i77HYDCQl5eXUt2wTGG1lQrEusF20U0T7DGQf6eXsbFciJMNbikzMTIykvEKO90YDAYCnmBUqXTTxLNlOTCwuMMokrOSToUthLhcCPHZ8PxvDz93ixDi00KILyR7f7I8llellJG2lFlS4Mzs2hZ2IXUSNBLfnBJ1001TeINWWWGbinJwOp08PffLtIwZ5peRiX0ukzhzDwDg8SIzk8Pz6yvFrviXkmS6Giwm58VeX23Zm81mLpq9Qrkm9xig3kdJ5QhD1xdHr9VYq0WtV2Ow6RP2Zc+iuMWrndvmKZWcOwUD79rCg76F3gtYppyV1LheCPF6zM/tkReklM9LKb8GHENJkAdollL+K0Cy5o/JXGEN4X7Hzecw+POK2MkvSkmAnw0qF1FkNRhBaiTmYmM0BDZ2QknHxJ6uiS0VLBYLFzoviz5+ADvWAi/TI4uXwlhLOSvpJFKBO2qt1PvINb6C23yKYP3ihTztmyz8qjulThrnNQ6HA/eYJ6pUuE9F2fbn6a+x0L3n4qjCjtxvK5qzEroUQh9SfqgC+ImUckfMz/djDxdC3AAcl1KeWVAvaR5EMsXyGZSe90lNnywK86OWdiGF5IW8HA5M7JivVCK/q/1MnZyZl7OSqRN7OjEYDGzxbg83l1JWf7l2P7NTWuQiUXZCIzI6ZyWTcDgcbB5vPP1Eu46yOQ/9RsOixxvzDbzmfjGbs5ICFouFS2euVB7sMaCWQYyBIDP2xQNJMiVnRQhxPXAzUBB2gRUDB4QQnwaQUiYMr0xWNv/TQDnQC/zzMox3XRPJrr0i9M7oc78szGVwdBPsyVlw/Jh1EzCId3rFTd41j8PhwD3umRex5Cj18Nzht7CB0y0FIm6wvqojjJ4aXRMhsOkmLy+PS3p3RuWqw49awpxaHS6MqJQV2scTCLWgv7ybU21rqzBqOsjJyWHzXD0CoSwqgWL9ywwF3wB2AmEPBkrNwEzKWZFS/gT4yRlPp7zXnsxiGZdS3gFkYwlTIDa7VpkA7fiLihj+YNGCYwUhNm4cheOLbzpnmc9bbVdy8eQV0clPbwzS56/G7z+9NooolTcsz6+ZnJV0o9Pp2OpvnJdbVaoZZyCwA6aVSk6xeTU9VV1rJmcl3UQWQ9FqCnVe8r0+Rg33g/8pqD+9oFzLOSuLkUyxFAghvgtprDOxhrDb7TSMXxRdVY9atuC6OlfxU9fPt0o2qEfRDI4gAon7L2RRSrHUyyYeDOZHAx/8ZSX095++LCNKZb/4TVr7rKw1Yie/bppQqUJYhYtJtUk5YO/pIqiv5z6XzVlZAjabjYsndyoP9hiwB2eZ1GqR8qYFx65KnxVNPWivVn7EyrbYShRurAe+BXw2/DtLAiKlRq4IXBO9Scs+NkP/m7rB+BWwvh5VLjnCS+6T00zF2XTOMp9r7O+FCXXUnaDRBDEYfMzOLtwDWCs5K5nC5fZ38OaJt0VlW1DgZOSHRujQQ7suaq3sE0+kPQR2uViN/CyNRsO2UBMiFGMJ+iYZzAlHMGqvjsr3BfPv1nTOymIk2mO5GqWUi0CJArh7VUa0RrHZbFRPbgMUv6l+jwpREcAT+j2oHgI/YAV4CzWaAYLdY9zCVFpyFtYab3ZcwiPdBdGAh2L1KEOyCA7OP05jUJOXl8fBgwcXOUuWM1Gr1SCISdqVFBVNc+hQxTxLBeBoWSvBkeCaVdirnex7piVoFB78Qo1fpYLYQDshsVVb2d+19hV2LIlKuvxKCBGUUv5mNQe0VnE4HLh7T/tTSzXjDNj7FhxXqJrC+WMNt86d9v9nI8Di0yJ287zWzGHfBVDvQ0iJ46iTNn814I0eJ5EM1HRz/FjWBZYq19jeS/3kBTwajla0ChezvzAQCimOjIi18pz+aWw225pW2EpX09VRLi3sZqejhUeOFkefK1OP0adzoNRVOY2j1MPzY79bjZyVVSXZHsvtQojPCCE+uSqjWcMYDAYun7sKAJUqhKXCyZR2vt7WhEKUqCfQ9faHO8Q9kVUqSdhpvQrXlCZqrTgCM0xUGpCIeflAFASzOStLxOgw8D/j4a7j9T5KNWP0X7fQ926rsawLF1iElbzn7uZeelU38Ji6jsP+C+imCc0eDQbhx9VlUQIitFfD9A5035lht2Ny9fqsuKuUz5/eAf5/9++yAAAgAElEQVSV3TZPFm78fwAdsL7U6TKTm5tLzUwdoLjBSu50MazJAzG/wFz1SBknv2/l0/Iw+8haKsloYTe/yzfRNqhYK1hfp2R6hk55ufI43CNcpQlBaYDeg9mclVRpEbvZrr+AxzwXwh4D+tAsoiKA97gO9hB1hcn8IIG5wLrIWVnp+62F3XyBK7Hv8WESHni7svApUY8wGLQrB7XroH4HtOt4a81zvNj9/IqOKV0ks1g+BtwKvCPRQUKILUKI/xZCvFcI8S4hxD8KIb4uhDgvQp7y8/NjwgolhRvGGNFa5x1j9WsAwfS0EcgqlWS0sJsebsBpKsV1myJLUyCAV6UiIOavh4qr3Lx86qVsCOwS2Jl7FU8686LlW8q0r9Cvtc+LXlSpQ1DuZ/rUbIIzZYnQwi64T4Wj/lXGNyt5awKJXTXDeMhy+sB2HY6HRvF5VQnbEaxlklks48AoYE90kJTyiBDiv1FqylwlpbxTCHEz0AQciD02XI/mdlAiqRoblYzf7u5uzGYzRUVKzsexY8ewWCwUFiqFG48ePYrNZiM/X9loPHLkCA6HA4dDMem6urooLCzEbleG2tnZSXFxMTabDYCOjg5KS0vJy1NK3LS3t1NRUYHFovzDDx06RGVlJbm5uQC0tbVRXV2N2WwGoLW1lU2bNmEyKWGYBw4cYMuWLRiNRt5cfillv67FWztL0XuOk+N3EzKq2DZUjN5wCYGgGbW6gVBviKuan+OQ/w/QDvX19Wi1Wnw+Hx0dHTQ0NKDRaPB6vXR2dtLY2IhKpcLj8dDV1UVTUxNCCNxuN0eOHKG5Wam043K5OHbsWDR7X6PR0NDQsKblutO4k8d1JsbfZqF2wwkMLj+Fc1O8kG9j21gf+j5JQKuix2Ll7ZUTdJlyqffX097evuxybWpq4sCBA+tGthcaL+FgvuDgq83UanvImXVRKmZ5vKSDbcMl6HWSQEMQm2cOqZVMNPatmGxjK05YNTaqGirXpGxtB8r44ZZamgN/Sbm+nKPWO6ht+C75R4vREEQi2KbtQS/8BH/rp7iih7f6Z/l5c/+qyHa1EYk+XAjxGZTosKellF9PeCIhdqIolitiFEurlLI1wXvWbu/dMAaDgWsr38+fDu+mmybq7unnWMEgPnXYGJzewQbN83jmtjPycQt388xK7q28IaXcsR7kWsMjBD69kWlpZGqbHm0owFbV8xyy5io+4nYd4ltzvKPxBS7r8LHf/+RKW4HrRrZ3cy8/baqmtWUr1Psp0b1IKPgyw+adUdnm/tckbyp7A9H1y1WRK4BF5MmZlW4UskLU8Ajdjwb51q6/5tITRbzS2M3fHoDtr/w1nepPEOgIV97Y6+Gympe4atLF/omnV022Qoi/5aqv3UP9B5RXnvgUdP2iTkrZuRIfnCiPZRtKF8nrU1AqxcAHgHej1JP5B6AeyOxepctAfn4+28cuAsBwp0Aau/GFfhd9PSfkxeLcwIjmtGss6wZLDavKxXRIWSGW+CcZNMyvYlxePs7ksA7hF1mZpkgLu/mfnDzmrjJDvR+kpNDrY1R32gUmkFRXD9Ny3JvgTFkW4H+K4Hg+eTalF5PZY8ajDhEQSlVz9nqoN7/BVbrp1VAqaSWRK+xvUGrD7AG+mOgkUsqh8PFLwmAwsHnz5sg5mJubY3Z2ltnZWdxud1pNuVSx2WwwoKKbJmqqh+jXvKrkrQQfAtWD1HiG6DYUQ4eeGl5dlbyVWLkCBINBXC5XVLZeb+ZPGBpdCB8aJALRrsG2cZaeubeAR0C7DsN3nWzZ3MnbDvrYt4pdHc6Urc/ni8p1dnaWYHDxasCZhDXfx5Gwz99mfIVpv4aYPD7K1GPoRobZ71txK3AefoOX7Zu3A2t3PtgxZKFGewoqoGyyjF6DR4mK3+uhRhzgg9UjPN/17LpWKpBYscyiVJ/LEUI0SimX3frweDzR2HghBDk5OVG/qtFoRKVS4XQ6GR8fn9fgKVUicesr9U+MZNc+GMpHvUeLSd9Fd9N/w2bgKBT+6VmclouZC1TCXk+47MjKEytXUBLhTCYTZrMZh8OBXq8nFAoxMTHBxMREximaFnYzm+/jZFCZ/ApU04z12qE2MvtJamqGeVu3l/08tao36Zmy1ev1mEwmrFYrZWVlaDQa5ubmmJiYYHJyMiMDClx5JUzVKhF1pXNejuYalaQ9/1PoQ43Ynprg2sFZ7lrlye/M+cBoNGI2mykuLiYnJwchRHQ+WNBILwPQB1VodV4EEunTog1qcatD0UKejlIPjKkJ+jLvmlhuEimWDpTM+w6Ufiwr6taSUuJ2u3G73YyMjADKxWWxWMjPz6eqqgqfz8fg4CDT08vnhz2XvvJ2u525cWVSLlJPMqR5I/qaJqihxKunzW6Al3XU8CqQHjdYMBjE6XTidDpPj0+jwWazUVVVhU6nw+l0Mjg4mBFKZh+Pc6XtOiZCysZpkXqSDn8ltCsuhYKHh7Ga+hDu9HfW9nq9eL3eeeU4cnJycDgclJQoOSEjIyOMjY1lhJJRaVUEg2pCHQZyts0QVIMvkg2uvZqaY+MEu8fYn+beflJKXC4XLpcr2v1TCIHVaqWwsJDq6mo8Hg+Dg4NntehcCfL9Wl7dMM4lPRAYLGVgYgByPgt7PWzV/Yndjkn2t+1b99YKJO4g+UDMz4OrOaiYMTA9Pc2JEydoa2vjpptuYnBwkIsuuii6Orzrrrs4evQo+/btY/PmzUxPT9PZ2cltt92W9PwRi+ZsM3IjZRtAUqCanuenrh6t5mTOHNJ5UTQnIJPKtwQCAUZHR+nq6qKtrY2pqSlqamqoq6uLRtKkC7VazRVihiBqcoWbOaknuNcPez1o/t1Fc2kr1/S4MzbBdG5ujr6+Pg4dOkRnZycajYbt27dTXV1NTs7C9gmrSY5Dj3FcScgrO+qkv/2yaNJe/tgW5h4T/IU7MzfQpZRMTU1x/Phx2tra6O3tpbCwkMbGRkpKSpQSNWniFsaxdf0Fn+6ZRLVZ8MATeUwY9sJLl1JDKzfUDPFi9/PpvV6fVu4h9nqga2VdtsnCjVcUlUrRa5GV3A9+8AMqKyspLS2lsbGRX/3qV+h0isl+88038//+3//jxhtv5ODBg+Tm5lJXVxcNH5ydnY2G6X3jG9/g2muv5dh9K9fhTgiBRqPhCv/VjNv9TFbqiVQetzqVjfppbUCpEQar5gYDZWLWarV4PJ7kB4eZmppiamoKnU5HSUkJFRUVDAwMMDo6uoIjXRybzQYTatjroax2kFOnlOzwGloprZrlslNe9ofSs/mpVqsRQhAIpJZ/EAwGGRgYYGBgAIvFQmVlJSqVipMnT6Yl6fAi+yU8fFSL+l4XxvpZZq4sg3ZQczHlupPMnlL+3+mQ7ZnzQTLm5ubo7u5GpVJRUFBAfX0909PT9PX1rfpe137Nk8jfbCZ40X9T2LqfseCH4eUS2OvhZscIrd431m3OymKkVbFoNBo2b96MSqUiFAphNpu5//77+eQnP0lxcXHc90kpGR0dZXR0FI/Hw89+9jPuuecetFotdXV1fPe7303JYjkX8vLyqJ5Ssu0dpR7ajxXBpVcj5A/Z2LOR9oJ2mPl8uILpq6u6ulapVFRUVGAwKJm/fr8fp9PJ9PR00iZCPp+PU6dO0dvbS3l5OY2NjfT09CzobXIuLsRk7My/Bk6o0On8qNUhSueUiEijxc87VDPsn3ombSs/tVpNTU0NGo1y67jd7qhsk9V7irgjc3Jy2LhxI8FgkJMnT65Knai7uZcHVXaeU88Q9KsoLptiaCgvak1XbRri1LiVO0OH02ZZazQatmzZghCCUCjEzMxMVGaJlE0oFGJ4eJjh4WHy8/NpaGhgdHSUwcHBVdnwv5t7+bnNjHFiAF66guKqfNpPFMJeD5vVB+is+CNTB2cy0rqOhxBiC/APwM+llD8PP/evKE0f+8ONwOKSVsXi8/lob1e6/6lUqugNptPpqKur4+Mf/zjj4+NMT08jpeTzn/88hYWFfPvb3+bWW28FlFXLTTfdxFvf+lbuvfdejhw5wkc/+lEeeeQRmh9vTnlluVSuzH8nzn4X0hgi4FfhRwvTO6j4460Man5BQPuX4N6xqpv2Efx+P0ePHo0+1ul0WCwWiouLMRqNUZfC+Ph43NpaoVCInp4eBgcH2bBhA2VlZRw7dmzeHsxKKBchBGqdmge9BZRunGRgwIadCYSQfKBqlOc60htR4/P56OzsjI7VaDRisViorq5Gp9Ph8/kYHx9nYmIi7qp5bm6Ozs5OcnNz2bp1K06nk56enhWcBNv5wh4D9gdHcUy2A5K6/HZOtFnIRZCTGyBfM8fNk760uhd9Ph+HDh0CFAWem5uLxWKhvLwclUrF7OwsY2NjzMzMxJXV2NgY4+PjFBcXRxdFK9k/poZHeACoyJ9hsNuE5f4JXLebCe71czfPcKDyJZw9Xp4J/nrFxnAOXC+EuC7m8fcjfe/PSHqPMAwYgPlx/4uQMEFypUmWbBaJYrJarfj9/uhFE2/1olKpqKqqQqPR0N3dnVSpxO6tLOVmamE3O5taoFUHm/08OlhA++ybyLlTUFO3n0M5L4PuasW/uvdVbmGcL/C3KZ//HEgpiU+lUpGXl0d+fj45OTnMzMwwOjqacBPUaDSyadMmRkZGGBoaWrGIu13WP+Mttst5qKcI0/Y8WlsrqaGNmyuGeM3/Er8eemxZP28JpCRbnU6Hw+HAbrcjhGBycpLR0dGEVklRURHFxcUcO3Yspba0S5N9Ozz6Rwh+iC3Oj9HLX2M8LNny2BuM9BhBSG7ePgidutVIMl2M2CS+hLLNzc3F4XBgsVjwer2MjY0xMTERV8lErEspJcePH19291gNj9B93wUIGWL70QHavlHKzm0vMHzCyF96pnjB/DusFbn8pPOHy/q5S2BegmQBH7vHwhUADPNtZnkxYYJkJOk9YrHEPP9N4P9KKeP2UEirxZKMSAw7KDdsQUEBDQ0NuN1uhoaGFoQchkIhuru7sVqtNDQ0cOrUqZRWK0u7mdp5zezBP/tHhjU5bDDM4pnVAJIazSDdoUthrgXmyMhNe2BeqDEoN2wk0mZ8fJzh4eEFfTfcbjcHDx6koqKC+vp61EdVyxo2qVg/X+do/hAvDOdh2hPCJSS0CrSGIOSFcB3M/MrFkcjFwcFB1Go1NpuNTZs2ATA8PLzoRDg8PMzk5CSbN29mk7MBZ98s++S5T/B3cy9fuE/Fvdd/iE+8Ac3Bl5k75qam8iZeH7yIz/McsszP66OvMut3Z7yrZmZmJrr4MRgM5Ofn09jYyOzsLIODgwv2rILBIEeOHMFut7N9+3aKT1ThnfYty/dsYTf79lwM5hqsFXlM+X6Jbo+akacq8XkmkOE+Kz/r+tE5f1Y6iEl6zxFCWIEnUaqwVAC+REoF0qxY9Ho9drud2dlZXC5XQj+qz+ejv7+f/v7+aGy70WhkeHiYkZGReTfr9PQ0Bw8epLq6GrvdzvHjx5FSLrBQln6BKau/fNccBz0XkvvPbiYGu+mmicLCaZw/1jDXo4U9OtjrWenyLXExGAyUlJREFXOyUvKRG1YIgcPhYMuWLYRCIXp7e+cpbyklPT09mEwmNNs09Pb2KrUZzhHlJr0HdnwRs/stdMsrqD42wCH/RtgjKH3aDd3ajJj4DAYDBQUFUdkmanwVDAYZGxtjbGwMnU5HUVER5eXlTE9P09/fP++9EbdwdUkdhQ12dId157z38gWuhB3beIeAF59/nh/dcgs7Xvkp/l+9Fb+/HKkPgS3E7MHMUCqR+WBmZga3251wPvB4PPT19dHX10dubi7l5eUYDAYGBwcZGxubNx9MTEzgdDrZtKkeg01Py8lzd+H2cCNc9EWG3gk9J/Np2fFOykz/xoDqYhwdE1ASZG7Ms2b7rMRJek85Ojjteyx+vx+Hw8GGDRtQq9XMzc0xPT3N9PR03JyK2dlZjh07hkqlori4mKamJkZHRxkaGoqau8FgkKNHj1JUVMT19Tcx3jXJFYFrAMWCWOr+gFIL6I+w+UNYfI2cOnaQjV/4dw7QgubjAUpKJmlrUwroRdxf6fJXezweRkdHMZvNlJWVRUNcZ2ZmmJ6exul0LuoWkFJGJ8KrDNcRqAig1+vp7++fZ/m5XC4OHjzIli1bMJlMioI5SyKWChd9EeNVP8U99ArWA3/P7JY/J2S9nIJX6jju2sJO96Gz/ozlxOv1Mjs7G13caLVa/H5/9JqNlyHu8/no7e2lt7cXu91ObW0tc3Nz9Pb2Rq/zFnYzO+jG6/RRV1dHd3f3AvdkqqHxLexm36N/RIbgjddfxzU2Bg88wKtv/QiXvPBpuO919n/TgLY7fYEQZ+Lz+QgEAhQUFGAymVCpVLjd7qhs403SkYWRWq2mpKSExsZGRkZGGB4ejiqnywPX0Nh1CbI0wKG6N7jy8LUp7XssNk+0sJt9910A77mBXDOMNZk48swc7xr+DicuzsGta4T8AWbakrs11ytpVSyxE1mEnJwcrFYrGzduxGAwzMtiPnMyDIVCDAwMMDg4GHWTTUxM0N/fH72g6oZ3MO2eoaDBjjwSQrhVtLBrScolavb6v0hPqZ7+Xh/vvszBxO//BWm2UL1nA6H7xqiW09yC0oMl3e6vWDciKPsqZrMZq9VKaWlptKrBxMTEonsrT3t+CUdBq9VSXl5ORUUFvb29UQUTCoXo6uqioqKC2tpajhw5cvYJgPepoO4hOlsr8Gwe488cZXSPe9GEQpSqx3H1rH7IczyklExOTs5TtFqtFqvVSlFREWazmUAgwOTkZNyqBhE3pMViUXKHAs1MnZoh6FXk53cFOHToELW1tYyMjEQThpeM/6nonx6Ph7y8PLwGAy6Ti3y/k51zLva7MycENjbaM4LRaMRqtVJdXY1er8flcjExMcHU1NSC6y0YDNLX10d/fz9FRUVs376dsbExpZFWWNeLAQ0Nrh10NvwRw2FDwpD82Dy3ePOE22TC4HIxOV7IiGUEvIKammHo1p6jNJafy5jlgvD89BjeFc14T3/q8hnMzc0xNDTE4cOHaW1tpbe3F71eT21tLdu3b6esrCya2xJBSsnIyAitra14vV4aGxuj5bYBfDN+tnXsgE1+pENRTi3sCv9OvgJsYZfSp+I9D+G/wEH5rjF+NljCYOMgVvczgOTg9I557zk7V9vZk+x7hEIhnE4nvb29tLe3c+jQIaampqJ+6traWhwORzSXIILf72fjiToKOjbQYt9FQ0NDtFQ4QG9vLyMjIzQ0NCz4v6Q27l1gfZ17m2HkU3mU//ccH9ko8WofoMo1x6lgITKU2W19IoElkcS9o0ePEgwG2bhxI42NjVRVVUXLrcfidDop6qhiZtCNY0seeVW5CLXyXQOBAO3t7VgsFqqqqua9bynXLiiWgEajwel0Uvn+QdQBNeW+cTiV0VusgLK3Nzg4SFdXF62trQwMDGA0Gqmrq6OhoYGSkhK02vmTuJSSoaEh2traCIVCNDU1Ycw38AB2HsCBmFYzdniK9279YLRs/pm0sJsWdkVlHY+J/Hy2jo0xPlbEsGUYh9eH16tFuDJual1VMv7Kmpubi+6tqFQq7HZ7NI9gcnKSkZERfD7f6ZtsBBiDyrKt5DTpmTo5w6XTV4IPHjxUQsXWWXZq3Ijh0189WZTNAzjA+BWGAvDqdddhv/FGrDd/lJ5Xgryz/4+0b/mU0jBpL+HzLLRW7rrrLj784Q9TXV3N4cOHeeyxxzh58iSnTp3iy1/+MgCf//zneeKJ1bF0IlUNIuVx9Ho9BQUFlJaWRrPyt49fHF3phQKSyW4nJYZqtlU10xr8AydOnMDv9zMxMYHH46Guro6urq5FV4HxZPwADgjewO1/0PLUpZcy+6CLW98+wN2VFlSdMPVvWhyk3wJcCn6/f56lYbFYKCoqoqamhpmZGYaHh3G5XFGZ+Gb8jBycIMehp7DBjmt0DjEokFJy7NgxSktL2bp1K0eOHIn+PyJWdyq4XC5MJhNTU1M4GKfqlRpO6QsQobXXbjhS9qmvrw+1Wo3D4WDz5s2o1WrGx8cZGRmJRoNKKRkcHGRkZIQ/K78Zb+kMQyeMMANv81zF/kNPUlarVPCI9ZpElAoo1+ct4b8j164iewWn1YrZ6cRkdiL8goo5DwfDCb3nMxmvWGIJhUJR11lEyWzatEnJJxg2KOVVJBACZ+8ss4Mu8qotyCIfHNdyc2CCB7rssHkWqfHT0j//5kyoYLRX86jpESqB6Yce4oIb+vi+s4LBycEFHQ3jKSiXy8WXvvSleb7iu+++m+uvvx6ARx999KwUy9mWpInF6/VGN0MjSqao0YHP5Wd20B3NGg54gox1TlKVW0dOXQ7Dw8MMDQ3hdrvp6uqKusUudrcsMs5di8sm9CHGXU+T4/czl5uLq+4EVS800mFS9oZWOw9ouYmt02axWCgpKcFoNJI7bsI1MkfIr7h05sa9zE14yS01sX37drq7u3G5XAwMDFBYWMgHtt3IWNckxHiAErpztVczXPMQ7j43ZrMZ8+OPM/thM5p2DZOHlbI9mbK/cjYEg8GoAler1djtdrZu3Rq1WCYnJ5FSEgwGEae09OrMlFS7kAEfnNAig5KOjg5qa2tRq9XRmmQRlI6wyu8NMc8rc8Y70HXoML3PzyQlvLilm8ofVtITvIhg8Py2VmCZFIsQoh64BqWu7ytAPmCSUt69HOdfjFgl83btu1EXqSnc7sA/62dmwEXAEyQUkEwcmeZl6wu8pf5S5KCGm0fG4YgWavzIDX529lyD4LSrZbG9l1sY5wvT7+DL/XZe+M1vmLVYGPud5P5eCyO6nmjZlsj74/Hwww/zuc99jq9+9avRTnWgrKyEEBlTFjyiZIb7xtGZteSWmGg0Xgijap4d/j0yJPHN+LG3lbOxbCuG7Xp+1f1T3G43jo4KrtvWyORxJ74ZRTCx7oRFZev+B66y/JHfbHgK3U1+3nygHP/4Dvxtl0WLd64XIkpGpVJR4diMY0seMiSZGXDhnfaBhF/2P4puVEdNTQ1er5eTJ08yMjKCK+hmZ10LslMigqev2cWUyz4eh5fuodyv4cDRf6D3pyre/p+d7PhTHd3iYWr2rk4Lh9UiGAxG92ciEXgVFRU4nU5qBhrACwGfit6uXP7Xpud920fJ6TOwc+xd7O/6DZs3b1Yy//ub512v3TRRw/xehft4HG77Oo4HvsMTH/kioZlcvvgTLRV8honDjoy9Zjs5yBRKBY1hBlb0s5ZFsUgp24UQzcDlQHO4g+QXhBB5Usp5tUBWojVxATbGu6YQKkFuqRH7ViuzA25CQYlKo9yAslMHTV64yAPDamjVw5s8sNWHHFUhDhmg0s/O3J3KONsEPdVdmM1mJB6EDNHwYgMn/kmLUedi32gNDEHz9MeRvhO0spWK2lmKDA4aQ420tbWxbds29Hp91DTX6XTcfPPN1NUppWCKiop48MEH+fWvf83c3Bz3338/zc3NS25FandZmTg2HXWTLFf73En6KejaQKNvBzI3AFsCvK30bXTruggGQoT8IUY7JtEYNdy48xYC3iA9zw3icweovKKU0vFKxGs5PFVpICdXkcHOtmuwVVs4blbysmSrZMvhIapmqnj4AsGXG37HZf9zGaOGCyjSdjMLyFofk4b+ReV66NAh6urq0Ol0+P3+FWnx+udNH+JHBx5cVtkC+Lr8aHJ8mAoNlF5UgGfSR5ds4wJ5AVKeXk1fe+21jI6O4n3djyyV8E4XckDNzrZraK18GV2ulmaaF7TPnf3WK9i+803urPkld3xZRfXsJGXyNuq/28OfNQ1wV+vj1NbWYjAYCIVCaZFt7GJquds+CyEoLy+nals5oT4PG4JONNoQIJBdOhzNVgxvLqR4+GZG2iYofXMhmlo1ctzDDw+VQGURzbknASs7266ht/rwadm2HmDjqJkn/reOmdIZquf+lsBcFc37uyhockIrOGrzaDY0Z4RsV5tlzbwXQuwGbpVS/pkQ4vPAvWcqljOOX5YPX8wVpNKpyC0xYcjT4RqeY3bYTYvchTSFYJMfBtSIUQ2ywg9aCce1CyyX0z7V3ewXX2P7d77Nhy55CXXxIHunDfT8qQfUDynVYW8LpZy3sn37dn784x/z7ne/m+7uc/dzx7jwlr197unImIif+Ql0Fi25pSaESuDsm8XnVCwTc7ERY2EOE0enuMz3Dqj38djJAtzO05uri4VhOxyvUPi1PzHH1zAFTZzI/QzuP1ye9rDtCGGLYEVaE8deu8+qfktBQQHFxcU4nU76+vrw+/1oNBpqamqo919I08m3gDkEGwPQrmN/8HR5+zNldDf38j+fqUdV/Sj9xh9R4fsKB9uvpmbvH9jAw5niBks58/5saWE3O/VX81SpCaMlwGWDczCqZr98El2uFlu1BWfvLHMTXvKqcmkOvpkHe4rppglQip+eWT3jS+p7+Gn9Jvibk4zpNOCqY+CoUnRysePTxLzM+1oa7ymhAoAO/sQwAyvWmni5XGG7gEagBvi5EOLTAImUynKy6A3iA06BqlfF7qL3U9To4I2JF5gZcCHbJHkbc1E71Gw/djGUBZQb9eTiIYL7eJwvWa/if4+/l3s1AWzBP9Br+zTMXqQ08QlfTKlOgAcPHoxaLcvBPh5fln2WeOc+E5/Tz7hzCrVejaXCRF5lLk/3P07T0FuYm/Li2GyFsSA/bC+ist7F0AmYm9HGPWd+/i3o//1fmb71h0AQ9w353M1vVuT7nA0rOQHPO3eIaDFFm83G1q1bo27Jw4cPsym/gc7tr7Pt2Jt4+dSLWOvMiHaBDC0+H+8TT1DxtIaBqz5A6dYmujvelmlKZVXYx+PghWtO7EKqJW8Uv4yx0cCRsQMMDQ0hD0qqq6tR5asQ3Vto3fgaN5dfxIN9RJXLmW7DP9iepUho6ei6kHz1DG3fyKOGVzMm3SDdLNY07TIAAAbfSURBVJcr7AnITEmGQiF+NfgTxJCSVV5aX0q1s47p3ll0Ri2dDa+z7cSFYAshN/h5sKc4enHE8qDjXj60/2P8SN7AyZqPIV+2hRWK4k9N9wbzSk8UiymvoDfI5DEnz2uepKysjImKPsr7N7Ht0A5+W26mfKubvsNGKmrdDHSLcOmbheTm5jI391nq7/sbLjvoj1qOkZvzfJoEI0RyZcxmMxs3bkRKyb6e3/KWzrcT2vw6uiktzt5Z8utsjHZMzNvQj3Ag7yXepS3A/b8a+kNbKTnRet4plQjR7xyEff2PIwbEvNy3EydOYLFYyGnIQdtdBcVS6fg40Lro+brz27lQY2bLE4KRU0bupivmszJyKvzjOKOUUEGQILPMAPSs1IdldBHKlcLhcFBWVhbtmnhd9fX4XX6aNW9G+ASiT7vAjL344ovZOLeVIc9l9B1R/KyxCijd7powK+KuOZN4xTvVajXXln2AHJuebQMX8BOPnZIaN6O9BgrKPQwcM/Hnrul5srVYLGzfvp2ZmZl55fnPtkDoCrIqso2H0WhkwwYlNmlDz1YMdj16iw736BymQiOjnRPsC82X0+bNm7Hb7bzT+35Em4H9obQUmUzGirvCkhEJs5+cnGR4eJj3bLoez5SPC01v5tdOO9cNueZds0IILrnkEmZnZ/mA668Qx5X8rViFkiFyjsoWFspXSrliCWJrKtx4uRgfH2d8fDwanviH6edpCl5Mh+UAdbomXi95DgZPH28ymTAajXQHO7B2TLAhvEu+j4y5gFaVeN85GAzyi54fc2X/tWwrlVxfOoocUEOhC2YEbJ7l+cPPKwU6wxQUFKBSqfB6vfN6vpyPck1EJJzbaDQSiX0dHx2nrKyMjZO1DNeeQHTOjywsLi7G5/PxrVNfpTl0aVamcYhEk+Xn51NbW8vLE88i1AK9Rse19mZeDb4MMcUfLBYLBoMBn8/Hsx37kNH5YE3JN3clT35eKpYIkdIaDoeDU+WHcbvdqE0qBkzHKQgUREtLFBcXo9Pp6O3t5fXA62kedebzTPDXyF6JGBBYys3otToCoSBaNEzU9aM7eLrAYkVFBYFAgOPHj6d51GuDWAWzceNGPB4Px60daIWWzZs3K0mUKC0nzGZztML3Gpv00kIkfSFiwRxwv4ra9P+3d/eukZVRHMe/Z41IlCCuW0gsxMYggqwvsI0vK5pmQVgWG7HQ3hdEBDfGZV1BLCUgFlb+B65suWBhrWCh4NoMFhaCWPgGq4ZjcW/CZQybTOZ55s7NfD/VZJice+aXS8488/LMMX6+50eObx/f3Q18dXWVpaUlRqMRv25/3XPXB5eZsbNqycw/9rv9NPp+Kux34FrhsieAX/a91dGsuZaZKwPKtVZdsx1OzbXMXAH/H1SouZvtrPW9YrnWfQ6whIj4apFrthcHkWutumY7rJqdH822cM2S9Sbh3gOSpKIcLJKkovoeLJ9Ys0rNofRbq67ZDrPmEHtetJoH0uuL95Kko6fvFYsk6Yjp5V1hEXEf8DZwOTMvR8QZ4CHgduCtnGIZFRFngaeAEbA1Za2HgXPArcCFzJz6S6xL9tfW282SZoe0Z4B1mn7N9vC1BplrW89s6/Q917m29cazLZLjpHpZsWTmD8CnnavWM/N94Ftod307vD+Bv4DbmP7+PQ+8S/NHWp+y1o6S/Y1nuZ6ZbwBXgHs715nthAacK5ht18Kcs7BntqVynMhMViwRcRp4pXPVRze4+URTda/ambkREeeAJ4EvJql3g36KTPvMvApcLdVfe/8vATcDJyLi851D7XX4Q9ReyGwHnmu3J7NdkHN2v0NVqrunXl68j4i7gHeAZeA94AHgJM2S7fyUy9XTwCmaRz+bmfn/rYoPXusR4CzN0vdiiW0QSvbX1utm+SWwRvNtnt9gttP0N8hc23pmW6fvuc61rTee7d0UyHHiPnxXmCSpJN8VJkkqysEiSSrKwSJJKsrBIkkqysEiSSrKwSJJKmphB0tEPBsRr0fEVkR8POHvvhQRJ9vLyxFxqU6Xw2Ou9ZhtPWZbVt/fINmbzLwSEXcAHwCvRcTTwGM0HyZaBr4DHgQ2gVXgCZoPbr08VupRYBQRG8Bnmfn9jO7CXDLXesy2HrMta2EHS0TcQnMSbWTm3+1mcG8CjwNbwAXgJ+B+YBv4B1ihOam6TtFsxfBcZl6fUftzy1zrMdt6zLashX0qDPgQuA68GBEv0Gwsdx44Q7MVwr80++sco9le4jcggJvG6twJvApsRkTMpvW5Zq71mG09ZluQW7pIkopa5BWLJKkCB4skqSgHiySpKAeLJKkoB4skqSgHiySpKAeLJKkoB4skqaj/AJScLNBJN/C2AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f = wk_panels(wks)" + ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "hidden": true - }, + "execution_count": 293, + "metadata": {}, "outputs": [], - "source": [] + "source": [ + "savefigs(f, 'wk_norm')" + ] }, { "cell_type": "markdown", "metadata": { - "hidden": true + "heading_collapsed": true }, "source": [ "### Nofix runs" @@ -744,8 +1493,7 @@ { "cell_type": "markdown", "metadata": { - "heading_collapsed": true, - "hidden": true + "heading_collapsed": true }, "source": [ "### Warming" @@ -1104,8 +1852,7 @@ { "cell_type": "markdown", "metadata": { - "heading_collapsed": true, - "hidden": true + "heading_collapsed": true }, "source": [ "### Training length" @@ -1260,9 +2007,7 @@ }, { "cell_type": "markdown", - "metadata": { - "hidden": true - }, + "metadata": {}, "source": [ "### Temperature" ] @@ -1270,9 +2015,7 @@ { "cell_type": "code", "execution_count": 64, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [], "source": [ "clabel_locs = [(1, 150), (1, 200), (1, 300), (1, 500), (1, 900)]" @@ -1281,9 +2024,7 @@ { "cell_type": "code", "execution_count": 181, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [ { "data": { @@ -1306,9 +2047,7 @@ { "cell_type": "code", "execution_count": 187, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [ { "data": { @@ -1331,9 +2070,7 @@ { "cell_type": "code", "execution_count": 290, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [], "source": [ "TAP = h0means[exps_ak_D025[0]]['TAP'].isel(lev=slice(2, None)).mean('lon')\n", @@ -1346,9 +2083,7 @@ { "cell_type": "code", "execution_count": 291, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [ { "data": { @@ -1372,9 +2107,7 @@ { "cell_type": "code", "execution_count": 292, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [], "source": [ "savefigs(f, 'mean_temperature')" @@ -1383,9 +2116,7 @@ { "cell_type": "code", "execution_count": 637, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [], "source": [ "TAP = h0means[exps_3kw1_D025[0]]['TAP'].isel(lev=slice(2, None)).mean('lon')\n", @@ -1398,9 +2129,7 @@ { "cell_type": "code", "execution_count": 639, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [ { "data": { @@ -1424,9 +2153,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [], "source": [ "savefigs(f, 'mean_temperature_3kw1')" @@ -1435,9 +2162,7 @@ { "cell_type": "code", "execution_count": 726, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [ { "data": { @@ -1506,8 +2231,7 @@ { "cell_type": "markdown", "metadata": { - "heading_collapsed": true, - "hidden": true + "heading_collapsed": true }, "source": [ "### Humidity" @@ -1633,8 +2357,7 @@ { "cell_type": "markdown", "metadata": { - "heading_collapsed": true, - "hidden": true + "heading_collapsed": true }, "source": [ "### Wind" @@ -1769,7 +2492,7 @@ { "cell_type": "markdown", "metadata": { - "hidden": true + "heading_collapsed": true }, "source": [ "### Heating" @@ -1988,8 +2711,7 @@ { "cell_type": "markdown", "metadata": { - "heading_collapsed": true, - "hidden": true + "heading_collapsed": true }, "source": [ "### Moistening" @@ -2208,8 +2930,7 @@ { "cell_type": "markdown", "metadata": { - "heading_collapsed": true, - "hidden": true + "heading_collapsed": true }, "source": [ "### Climate error" @@ -2217,7 +2938,7 @@ }, { "cell_type": "code", - "execution_count": 591, + "execution_count": 140, "metadata": { "hidden": true }, @@ -2385,8 +3106,7 @@ { "cell_type": "markdown", "metadata": { - "heading_collapsed": true, - "hidden": true + "heading_collapsed": true }, "source": [ "### Snapshots" @@ -2465,8 +3185,7 @@ { "cell_type": "markdown", "metadata": { - "heading_collapsed": true, - "hidden": true + "heading_collapsed": true }, "source": [ "### Line plots" @@ -2474,7 +3193,7 @@ }, { "cell_type": "code", - "execution_count": 299, + "execution_count": 104, "metadata": { "hidden": true }, @@ -3206,7 +3925,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "heading_collapsed": true + }, "source": [ "## Variability" ] @@ -3214,7 +3935,8 @@ { "cell_type": "markdown", "metadata": { - "heading_collapsed": true + "heading_collapsed": true, + "hidden": true }, "source": [ "### Std plots" @@ -3334,7 +4056,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "### Precip hist" ] @@ -3342,7 +4066,9 @@ { "cell_type": "code", "execution_count": 346, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "\n", @@ -3354,7 +4080,9 @@ { "cell_type": "code", "execution_count": 86, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "#save_tmp('prects', prects)\n", @@ -3364,7 +4092,9 @@ { "cell_type": "code", "execution_count": 87, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [ { "data": { @@ -3385,7 +4115,9 @@ { "cell_type": "code", "execution_count": 252, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "labels = ['SPCAM', 'NNCAM', 'CTRLCAM', 'SPCAM+4K', 'NNCAM-ref+4K', 'CTRLCAM+4K']\n", @@ -3395,7 +4127,9 @@ { "cell_type": "code", "execution_count": 91, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [ { "data": { @@ -3427,7 +4161,9 @@ { "cell_type": "code", "execution_count": 721, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [ { "data": { @@ -3461,7 +4197,9 @@ { "cell_type": "code", "execution_count": 722, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "savefigs(fig, 'prec_hist')" @@ -3469,7 +4207,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "hidden": true + }, "source": [ "#### Prec amount" ] @@ -3477,7 +4217,9 @@ { "cell_type": "code", "execution_count": 240, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "log_bins = np.logspace(-10, -5, 100)" @@ -3486,7 +4228,9 @@ { "cell_type": "code", "execution_count": 259, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [ { "name": "stdout", @@ -3507,7 +4251,9 @@ { "cell_type": "code", "execution_count": 215, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "save_tmp('log_prects', log_prects)\n", @@ -3517,7 +4263,9 @@ { "cell_type": "code", "execution_count": 223, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [ { "data": { @@ -3537,7 +4285,9 @@ { "cell_type": "code", "execution_count": 224, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "bin_mean = (log_bins[1:] + log_bins[:-1]) / 2" @@ -3546,7 +4296,9 @@ { "cell_type": "code", "execution_count": 266, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [ { "data": { @@ -3581,7 +4333,9 @@ { "cell_type": "code", "execution_count": 267, - "metadata": {}, + "metadata": { + "hidden": true + }, "outputs": [], "source": [ "savefigs(fig, 'prec_amount')" diff --git a/pp_config/fbp_engy_ess.yml b/pp_config/fbp_engy_ess.yml old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_1k_valid.sh b/pp_config/fbp_engy_ess_1k_valid.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_2k_valid.sh b/pp_config/fbp_engy_ess_2k_valid.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_3k_valid.sh b/pp_config/fbp_engy_ess_3k_valid.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_4k_fullyear.sh b/pp_config/fbp_engy_ess_4k_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_4k_sample1.sh b/pp_config/fbp_engy_ess_4k_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_4k_valid.sh b/pp_config/fbp_engy_ess_4k_valid.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_ref_1k_fullyear.sh b/pp_config/fbp_engy_ess_ref_1k_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_ref_1k_sample1.sh b/pp_config/fbp_engy_ess_ref_1k_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_ref_3m.sh b/pp_config/fbp_engy_ess_ref_3m.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_ref_4k_fullyear.sh b/pp_config/fbp_engy_ess_ref_4k_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_ref_4k_sample1.sh b/pp_config/fbp_engy_ess_ref_4k_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_ref_4k_twoyears.sh b/pp_config/fbp_engy_ess_ref_4k_twoyears.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_ref_6m.sh b/pp_config/fbp_engy_ess_ref_6m.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_ref_fullyear.sh b/pp_config/fbp_engy_ess_ref_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_ref_sample1.sh b/pp_config/fbp_engy_ess_ref_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_engy_ess_ref_valid.sh b/pp_config/fbp_engy_ess_ref_valid.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_nobeta_engy_cons_fullyear.sh b/pp_config/fbp_nobeta_engy_cons_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/fbp_nobeta_engy_cons_sample1.sh b/pp_config/fbp_nobeta_engy_cons_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/config.yml b/pp_config/old_files/config.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/config2.yml b/pp_config/old_files/config2.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/config_PS.yml b/pp_config/old_files/config_PS.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/config_SOLIN.yml b/pp_config/old_files/config_SOLIN.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/config_TF_comp.yml b/pp_config/old_files/config_TF_comp.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp.yml b/pp_config/old_files/fbp.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp32_engy_cons_sample1.sh b/pp_config/old_files/fbp32_engy_cons_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp32_engy_ess_fullyear.sh b/pp_config/old_files/fbp32_engy_ess_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp32_engy_ess_sample1.sh b/pp_config/old_files/fbp32_engy_ess_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_cons.yml b/pp_config/old_files/fbp_engy_cons.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_cons_APinp.yml b/pp_config/old_files/fbp_engy_cons_APinp.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_cons_APinp_sample1.sh b/pp_config/old_files/fbp_engy_cons_APinp_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_cons_sample1.sh b/pp_config/old_files/fbp_engy_cons_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_ess_fullyear.sh b/pp_config/old_files/fbp_engy_ess_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_ess_galen.yml b/pp_config/old_files/fbp_engy_ess_galen.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_ess_galen_sample1.sh b/pp_config/old_files/fbp_engy_ess_galen_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_ess_sample1.sh b/pp_config/old_files/fbp_engy_ess_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_ess_snow.yml b/pp_config/old_files/fbp_engy_ess_snow.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_ess_snow_fullyear.sh b/pp_config/old_files/fbp_engy_ess_snow_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_engy_ess_snow_sample1.sh b/pp_config/old_files/fbp_engy_ess_snow_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_ke.yml b/pp_config/old_files/fbp_ke.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_ke_sample1.sh b/pp_config/old_files/fbp_ke_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fbp_sample1.sh b/pp_config/old_files/fbp_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/full_physics_essentials.yml b/pp_config/old_files/full_physics_essentials.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/full_physics_essentialsv2.yml b/pp_config/old_files/full_physics_essentialsv2.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fullphy_ess_fullyear.sh b/pp_config/old_files/fullphy_ess_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fullphy_ess_sample1.sh b/pp_config/old_files/fullphy_ess_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fullphy_essv2_nonorm_sample1.sh b/pp_config/old_files/fullphy_essv2_nonorm_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fullphy_fbp32_sample1.sh b/pp_config/old_files/fullphy_fbp32_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fullphy_fbp_fullyear.sh b/pp_config/old_files/fullphy_fbp_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/fullphy_fbp_sample1.sh b/pp_config/old_files/fullphy_fbp_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/inout1.yml b/pp_config/old_files/inout1.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/inout_Mike.yml b/pp_config/old_files/inout_Mike.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/inout_Mike_LAT.yml b/pp_config/old_files/inout_Mike_LAT.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/inout_Mike_OMEGA.yml b/pp_config/old_files/inout_Mike_OMEGA.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/inout_PS.yml b/pp_config/old_files/inout_PS.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/inout_SOLIN.yml b/pp_config/old_files/inout_SOLIN.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/paper.yml b/pp_config/old_files/paper.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/paper_nonorm_fullyear.sh b/pp_config/old_files/paper_nonorm_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/paper_nonorm_sample1.sh b/pp_config/old_files/paper_nonorm_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/pure_crm_essentials.yml b/pp_config/old_files/pure_crm_essentials.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/pure_crm_noadiab.yml b/pp_config/old_files/pure_crm_noadiab.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/purecrm_ess_fullyear.sh b/pp_config/old_files/purecrm_ess_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/purecrm_ess_sample1.sh b/pp_config/old_files/purecrm_ess_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/purecrm_essv2_nonorm_fullyear.sh b/pp_config/old_files/purecrm_essv2_nonorm_fullyear.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/purecrm_essv2_nonorm_sample1.sh b/pp_config/old_files/purecrm_essv2_nonorm_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/purecrm_essv2_norm-by-var_sample1.sh b/pp_config/old_files/purecrm_essv2_norm-by-var_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/purecrm_essv2_sample1.sh b/pp_config/old_files/purecrm_essv2_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/purecrm_essv2_scale_sample1.sh b/pp_config/old_files/purecrm_essv2_scale_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/purecrm_noadiab_nonorm_sample1.sh b/pp_config/old_files/purecrm_noadiab_nonorm_sample1.sh old mode 100644 new mode 100755 diff --git a/pp_config/old_files/tf_comp.yml b/pp_config/old_files/tf_comp.yml old mode 100644 new mode 100755 diff --git a/pp_config/old_files/tfcomp_sample1.sh b/pp_config/old_files/tfcomp_sample1.sh old mode 100644 new mode 100755 diff --git a/run_experiment.py b/run_experiment.py old mode 100644 new mode 100755 diff --git a/save_weights.py b/save_weights.py old mode 100644 new mode 100755 diff --git a/wkspectra/Readme.txt b/wkspectra/Readme.txt old mode 100644 new mode 100755 diff --git a/wkspectra/wkspectra.csh b/wkspectra/wkspectra.csh old mode 100644 new mode 100755 index 113098b5..721fc327 --- a/wkspectra/wkspectra.csh +++ b/wkspectra/wkspectra.csh @@ -5,7 +5,7 @@ set varname='PRECT' set savedir="/beegfs/DATA/pritchard/srasp/wkdata" mkdir -p scratch mkdir -p $savedir -foreach EXP ( 'nnatmonly_fbp8_D024_andkua_nofix_betafix35' 'nnatmonly_fbp8_D024_4k_nofix_betafix35' 'nnatmonly_fbp8_D024_3kw1_nofix_betafix35') +foreach EXP ( 'nnatmonly_fbp8_D040_andkua_nofix_betafix35' ) mkdir -p figs/$EXP setenv FILENAME "./scratch/${varname}_rcat_${EXP}.nc" if ( ! -e $FILENAME ) then diff --git a/wkspectra/wkspectra.ncl b/wkspectra/wkspectra.ncl old mode 100644 new mode 100755