From 3adda7db7a4b52087bfb1183ea3322d53e4bc6c6 Mon Sep 17 00:00:00 2001
From: David Robert Verelst <dave@dtu.dk>
Date: Mon, 3 Jul 2017 12:46:45 +0200
Subject: [PATCH] prepost.dlcplots: prune unused method, do not set legend
 alpha if no leg

---
 wetb/prepost/dlcplots.py | 236 +--------------------------------------
 1 file changed, 3 insertions(+), 233 deletions(-)

diff --git a/wetb/prepost/dlcplots.py b/wetb/prepost/dlcplots.py
index 78fef068..24db6c6b 100644
--- a/wetb/prepost/dlcplots.py
+++ b/wetb/prepost/dlcplots.py
@@ -150,242 +150,10 @@ def merge_sim_ids(sim_ids, post_dirs, post_dir_save=False):
 
     return run_dirs, df_stats
 
-
 # =============================================================================
 ### STAT PLOTS
 # =============================================================================
 
-def plot_stats(sim_ids, post_dirs, fig_dir_base=None):
-    """
-    For each wind speed, take the max of the max.
-
-    Only one or two sim_ids are supported. When they are from different
-    models/projects, specify for each sim_id a different post_dir
-
-    Parameters
-    ----------
-
-    sim_ids : list
-        list of sim_id's, 1 or 2
-
-    post_dirs
-        list of post_dir's, 1 or 2. If 2, should correspond to sim_ids
-
-    fig_dir_base : str, default=None
-
-    """
-
-    # if sim_id is a list, combine the two dataframes into one
-    df_stats = pd.DataFrame()
-    if type(sim_ids).__name__ == 'list':
-        for ii, sim_id in enumerate(sim_ids):
-            if isinstance(post_dirs, list):
-                post_dir = post_dirs[ii]
-            else:
-                post_dir = post_dirs
-            cc = sim.Cases(post_dir, sim_id, rem_failed=True)
-            if ii == 0:
-                df_stats, _, _ = cc.load_stats()
-            else:
-                # because there is no unique index, we will ignore it
-                df_stats, _, _ = pd.concat([df_stats, cc.load_stats()],
-                                            ignore_index=True)
-    else:
-        sim_id = sim_ids
-        sim_ids = False
-        post_dir = post_dirs
-        cc = sim.Cases(post_dir, sim_id, rem_failed=True)
-        df_stats, _, _ = cc.load_stats()
-
-#    if force_dir:
-#        cc.change_results_dir(resdir=force_dir)
-#        for case in cc.cases:
-#            sim_id = cc.cases[case]['[post_dir]']
-#            cc.cases[case]['[post_dir]'] = post_dir
-
-#    # add DLC category
-#    f = lambda x: x.split('_')[0]
-#    df_stats['DLC'] = df_stats['[Case id.]'].map(f)
-
-#    fig, axes = plt.subplots(nrows=1, ncols=1, figsize=(12,8), num=1)
-
-    # define the number of positions you want to have the color for
-    N = 22
-    # select a color map
-    cmap = mpl.cm.get_cmap('jet', N)
-    # convert to array
-    cmap_arr = cmap(np.arange(N))
-    # color=cmap_arr[icol][0:3]
-
-    # make a stastics plot for each channel
-    gb_ch = df_stats.groupby(df_stats.channel)
-
-    # channel selection
-    plot_chans = {}
-    plot_chans['DLL-2-inpvec-2'] = 'P_e'
-    plot_chans['bearing-shaft_rot-angle_speed-rpm'] = 'RPM'
-
-    plot_chans['tower-tower-node-001-momentvec-x'] = 'M_x T_B'
-    plot_chans['tower-tower-node-001-momentvec-y'] = 'M_y T_B'
-    plot_chans['tower-tower-node-001-momentvec-z'] = 'M_z T_B'
-
-    plot_chans['tower-tower-node-008-momentvec-z'] = 'M_x T_T'
-    plot_chans['tower-tower-node-008-momentvec-z'] = 'M_y T_T'
-    plot_chans['tower-tower-node-008-momentvec-z'] = 'M_z T_T'
-
-    plot_chans['shaft-shaft-node-004-momentvec-x'] = 'M_x Shaft_{MB}'
-    plot_chans['shaft-shaft-node-004-momentvec-y'] = 'M_y Shaft_{MB}'
-    plot_chans['shaft-shaft-node-004-momentvec-z'] = 'M_z Shaft_{MB}'
-
-    plot_chans['blade1-blade1-node-003-momentvec-x'] = 'M_x B1_{root}'
-    plot_chans['blade1-blade1-node-003-momentvec-y'] = 'M_y B1_{root}'
-    plot_chans['blade1-blade1-node-003-momentvec-z'] = 'M_z B1_{root}'
-    plot_chans['blade2-blade2-node-003-momentvec-x'] = 'M_x B2_{root}'
-    plot_chans['blade2-blade2-node-003-momentvec-y'] = 'M_y B2_{root}'
-    plot_chans['blade2-blade2-node-003-momentvec-z'] = 'M_z B2_{root}'
-    plot_chans['blade3-blade3-node-003-momentvec-x'] = 'M_x B3_{root}'
-    plot_chans['blade3-blade3-node-003-momentvec-y'] = 'M_y B3_{root}'
-    plot_chans['blade3-blade3-node-003-momentvec-z'] = 'M_z B3_{root}'
-
-    plot_chans['DLL-5-inpvec-1'] = 'Min tower clearance'
-
-    plot_chans['bearing-pitch1-angle-deg'] = 'B1_{pitch}'
-    plot_chans['bearing-pitch2-angle-deg'] = 'B2_{pitch}'
-    plot_chans['bearing-pitch3-angle-deg'] = 'B3_{pitch}'
-
-    plot_chans['setbeta-bladenr-1-flapnr-1'] = 'B1_{flap}'
-    plot_chans['setbeta-bladenr-2-flapnr-1'] = 'B2_{flap}'
-    plot_chans['setbeta-bladenr-3-flapnr-1'] = 'B3_{flap}'
-
-    mfcs1 = ['k', 'w']
-    mfcs2 = ['b', 'w']
-    mfcs3 = ['r', 'w']
-    stds = ['r', 'b']
-
-    for nr, (ch_name, gr_ch) in enumerate(gb_ch):
-        if ch_name not in plot_chans:
-            continue
-        for dlc_name, gr_ch_dlc in gr_ch.groupby(df_stats['[DLC]']):
-            print('start plotting:  %s %s' % (str(dlc_name).ljust(7), ch_name))
-
-            fig, axes = mplutils.make_fig(nrows=1, ncols=1, figsize=(7,5))
-            ax = axes[0,0]
-            # seperate figure for the standard deviations
-            fig2, axes2 = mplutils.make_fig(nrows=1, ncols=1, figsize=(7,5))
-            ax2 = axes2[0,0]
-
-            if fig_dir_base is None and not sim_ids:
-                res_dir = gr_ch_dlc['[res_dir]'][:1].values[0]
-                run_dir = gr_ch_dlc['[run_dir]'][:1].values[0]
-                fig_dir = os.path.join(fig_dir_base, res_dir)
-            elif fig_dir_base is None and isinstance(sim_ids, list):
-                fig_dir = os.path.join(fig_dir_base, '-'.join(sim_ids))
-            elif fig_dir_base and not sim_ids:
-                res_dir = gr_ch_dlc['[res_dir]'][:1].values[0]
-                fig_dir = os.path.join(fig_dir_base, res_dir)
-            elif sim_ids and fig_dir_base is not None:
-                # create the compare directory if not defined
-                fig_dir = fig_dir_base
-
-            # if we have a list of different cases, we also need to group those
-            # because the sim_id wasn't saved before in the data frame,
-            # we need to derive that from the run dir
-            # if there is only one run dir nothing changes
-            ii = 0
-            sid_names = []
-            for run_dir, gr_ch_dlc_sid in gr_ch_dlc.groupby(df_stats['[run_dir]']):
-                sid_name = run_dir.split('/')[-2]
-                sid_names.append(sid_name)
-                print(sid_name)
-                wind = gr_ch_dlc_sid['[Windspeed]'].values
-                dmin = gr_ch_dlc_sid['min'].values
-                dmean = gr_ch_dlc_sid['mean'].values
-                dmax = gr_ch_dlc_sid['max'].values
-                dstd = gr_ch_dlc_sid['std'].values
-                if not sim_ids:
-                    lab1 = 'mean'
-                    lab2 = 'min'
-                    lab3 = 'max'
-                    lab4 = 'std'
-                else:
-                    lab1 = 'mean %s' % sid_name
-                    lab2 = 'min %s' % sid_name
-                    lab3 = 'max %s' % sid_name
-                    lab4 = 'std %s' % sid_name
-                mfc1 = mfcs1[ii]
-                mfc2 = mfcs2[ii]
-                mfc3 = mfcs3[ii]
-                ax.plot(wind, dmean, mec='k', marker='o', mfc=mfc1, ls='',
-                        label=lab1, alpha=0.7)
-                ax.plot(wind, dmin, mec='b', marker='^', mfc=mfc2, ls='',
-                        label=lab2, alpha=0.7)
-                ax.plot(wind, dmax, mec='r', marker='v', mfc=mfc3, ls='',
-                        label=lab3, alpha=0.7)
-
-                ax2.plot(wind, dstd, mec=stds[ii], marker='s', mfc=stds[ii], ls='',
-                        label=lab4, alpha=0.7)
-
-                ii += 1
-
-#            for wind, gr_wind in  gr_ch_dlc.groupby(df_stats['[Windspeed]']):
-#                wind = gr_wind['[Windspeed]'].values
-#                dmin = gr_wind['min'].values#.mean()
-#                dmean = gr_wind['mean'].values#.mean()
-#                dmax = gr_wind['max'].values#.mean()
-##                dstd = gr_wind['std'].mean()
-#                ax.plot(wind, dmean, 'ko', label='mean', alpha=0.7)
-#                ax.plot(wind, dmin, 'b^', label='min', alpha=0.7)
-#                ax.plot(wind, dmax, 'rv', label='max', alpha=0.7)
-##                ax.errorbar(wind, dmean, c='k', ls='', marker='s', mfc='w',
-##                        label='mean and std', yerr=dstd)
-            ax.grid()
-            ax.set_xlim([3, 27])
-            leg = ax.legend(loc='best', ncol=2)
-            leg.get_frame().set_alpha(0.7)
-            ax.set_title(r'{DLC%s} $%s$' % (dlc_name, plot_chans[ch_name]))
-            ax.set_xlabel('Wind speed [m/s]')
-            fig.tight_layout()
-            fig.subplots_adjust(top=0.92)
-            if not sim_ids:
-                fig_path = os.path.join(fig_dir,
-                                        ch_name.replace(' ', '_') + '.png')
-            else:
-                sids = '_'.join(sid_names)
-#                fig_dir = run_dir.split('/')[:-1] + 'figures/'
-                fname = '%s_%s.png' % (ch_name.replace(' ', '_'), sids)
-                fig_path = os.path.join(fig_dir, 'dlc%s/' % dlc_name)
-                if not os.path.exists(fig_path):
-                    os.makedirs(fig_path)
-                fig_path = fig_path + fname
-            fig.savefig(fig_path)#.encode('latin-1')
-#            canvas.close()
-            fig.clear()
-            print('saved: %s' % fig_path)
-
-            ax2.grid()
-            ax2.set_xlim([3, 27])
-            leg = ax2.legend(loc='best', ncol=2)
-            leg.get_frame().set_alpha(0.7)
-            ax2.set_title(r'{DLC%s} $%s$' % (dlc_name, plot_chans[ch_name]))
-            ax2.set_xlabel('Wind speed [m/s]')
-            fig2.tight_layout()
-            fig2.subplots_adjust(top=0.92)
-            if not sim_ids:
-                fig_path = os.path.join(fig_dir,
-                                        ch_name.replace(' ', '_') + '_std.png')
-            else:
-                sids = '_'.join(sid_names)
-                fname = '%s_std_%s.png' % (ch_name.replace(' ', '_'), sids)
-                fig_path = os.path.join(fig_dir, 'dlc%s/' % dlc_name)
-                if not os.path.exists(fig_path):
-                    os.makedirs(fig_path)
-                fig_path = fig_path + fname
-            fig2.savefig(fig_path)#.encode('latin-1')
-#            canvas.close()
-            fig2.clear()
-            print('saved: %s' % fig_path)
-
-
 def plot_stats2(sim_ids, post_dirs, plot_chans, fig_dir_base=None, labels=None,
                 post_dir_save=False, dlc_ignore=['00'], figsize=(8,6)):
     """
@@ -619,7 +387,9 @@ def plot_dlc_stats(df_stats, plot_chans, fig_dir_base, labels=None,
             ax.grid()
             ax.set_xlim(xlims)
             leg = ax.legend(loc='best', ncol=3)
-            leg.get_frame().set_alpha(0.7)
+            # if no data at all was found
+            if leg is not None:
+                leg.get_frame().set_alpha(0.7)
             ax.set_title(r'{DLC%s} %s' % (dlc_name, ch_dscr))
             ax.set_xlabel(xlabel)
             fig.tight_layout()
-- 
GitLab