diff output_report.py @ 5:d5a4180410c4 draft default tip

"planemo upload commit 7bc843096b70fe1c8fc149e69d8f87fceac4eb3b"
author gregor.m
date Sat, 28 Nov 2020 18:50:09 +0000
parents a4c6fcf2c456
children
line wrap: on
line diff
--- a/output_report.py	Thu Nov 26 16:40:47 2020 +0000
+++ b/output_report.py	Sat Nov 28 18:50:09 2020 +0000
@@ -1,28 +1,24 @@
-''' Produces plots and a summary html 'headless' '''
+""" Produces plots and a summary html 'headless' """
+import logging
+import os
 
-import os
 import matplotlib
-# headless plotting and disable latex
-matplotlib.use('Agg')
-matplotlib.rcParams['text.usetex'] = False
 import matplotlib.pyplot as ppl
-
-import logging
-
 import spyboat.plotting as spyplot
 
+ppl.switch_backend('Agg')
+matplotlib.rcParams["text.usetex"] = False
 logger = logging.getLogger(__name__)
 
 # figure resolution
-DPI=250
+DPI = 250
 
-def produce_snapshots(input_movie, results, frame, Wkwargs,
-                      img_path='.'):
 
-    '''
-    Takes the *input_movie* and the 
-    *results* dictionary from spyboat.processing.run_parallel
-    and produces phase, period and amplitude snapshot png's.
+def produce_snapshots(input_movie, results, frame, Wkwargs, img_path="."):
+    """
+    Takes the *input_movie* and the *results* dictionary
+    from spyboat.processing.run_parallel and produces phase,
+    period and amplitude snapshot png's.
 
     For the period snapshot also the period range is needed,
     hence the analysis dictionary 'Wkwargs' also gets passed.
@@ -32,103 +28,111 @@
     and the storage location in *img_path*.
 
     These get picked up by 'create_html'
-    '''
-
+    """
 
     spyplot.input_snapshot(input_movie[frame])
     fig = ppl.gcf()
-    out_path = os.path.join(img_path, f'input_frame{frame}.png')
+    out_path = os.path.join(img_path, f"input_frame{frame}.png")
+    fig.savefig(out_path, dpi=DPI)
+    ppl.close(fig)
+
+    spyplot.phase_snapshot(results["phase"][frame])
+    fig = ppl.gcf()
+    out_path = os.path.join(img_path, f"phase_frame{frame}.png")
     fig.savefig(out_path, dpi=DPI)
     ppl.close(fig)
-    
-    spyplot.phase_snapshot(results['phase'][frame])
+
+    spyplot.period_snapshot(
+        results["period"][frame], Wkwargs["Tmin"],
+        Wkwargs["Tmax"], time_unit="a.u."
+    )
+
     fig = ppl.gcf()
-    out_path = os.path.join(img_path, f'phase_frame{frame}.png')    
+    out_path = os.path.join(img_path, f"period_frame{frame}.png")
+    fig.savefig(out_path, dpi=DPI)
+    ppl.close(fig)
+
+    spyplot.amplitude_snapshot(results["amplitude"][frame])
+    fig = ppl.gcf()
+    out_path = os.path.join(img_path, f"amplitude_frame{frame}.png")
     fig.savefig(out_path, dpi=DPI)
     ppl.close(fig)
 
-    spyplot.period_snapshot(results['period'][frame],
-                            Wkwargs['Tmin'],Wkwargs['Tmax'],
-                            time_unit = 'a.u.')
-    
-    fig = ppl.gcf()
-    out_path = os.path.join(img_path, f'period_frame{frame}.png')    
-    fig.savefig(out_path, dpi=DPI)
-    ppl.close(fig)
-    
-    spyplot.amplitude_snapshot(results['amplitude'][frame])
-    fig = ppl.gcf()
-    out_path = os.path.join(img_path, f'amplitude_frame{frame}.png')    
-    fig.savefig(out_path, dpi=DPI)
-    ppl.close(fig)
-        
-    logger.info(f'Produced 4 snapshots for frame {frame}..')
+    logger.info(f"Produced 4 snapshots for frame {frame}..")
+
+
+def produce_distr_plots(results, Wkwargs, img_path="."):
+    """
+    Output file names are:
 
-def produce_distr_plots(results, Wkwargs, img_path='.'):
-
-    '''
-    Output file names are:
-    
-    period_distr.png, power_distr.png and phase_distr.png   
-    '''
+    period_distr.png, power_distr.png and phase_distr.png
+    """
 
-    spyplot.period_distr_dynamics(results['period'], Wkwargs)
+    spyplot.period_distr_dynamics(results["period"], Wkwargs)
     fig = ppl.gcf()
-    out_path = os.path.join(img_path, f'period_distr.png')    
+    out_path = os.path.join(img_path, "period_distr.png")
     fig.savefig(out_path, dpi=DPI)
-    
-    spyplot.power_distr_dynamics(results['power'], Wkwargs)
+
+    spyplot.power_distr_dynamics(results["power"], Wkwargs)
     fig = ppl.gcf()
-    out_path = os.path.join(img_path, f'power_distr.png')    
+    out_path = os.path.join(img_path, "power_distr.png")
     fig.savefig(out_path, dpi=DPI)
 
-    spyplot.phase_coherence_dynamics(results['phase'], Wkwargs)
+    spyplot.phase_coherence_dynamics(results["phase"], Wkwargs)
     fig = ppl.gcf()
-    out_path = os.path.join(img_path, f'phase_distr.png')    
+    out_path = os.path.join(img_path, "phase_distr.png")
     fig.savefig(out_path, dpi=DPI)
-        
-    logger.info(f'Produced 3 distribution plots..')
+
+    logger.info("Produced 3 distribution plots..")
+
 
-    
-def create_html(frame_nums, html_fname='OutputReport.html'):
-
-    '''
-    The html generated assumes the respective png's 
+def create_html(frame_nums, html_fname="OutputReport.html"):
+    """
+    The html generated assumes the respective png's
     have been created with 'produce_snapshots' and 'produce_distr_plots'
     and can be found at the cwd (that's how Galaxy works..)
-    '''
+    """
 
     # -- create a gallery for every frame in frame_nums --
-    
-    galleries = ''
+
+    galleries = ""
     for frame_num in frame_nums:
-        new_gal =f'''
-        <div class="FrameSlides"> 
-        <h3 style="text-align:center; color=#363333"> Frame Nr. {frame_num} </h3>
+        new_gal = f"""
+        <div class="FrameSlides">
+        <h3 style="text-align:center; color=#363333">
+        Frame Nr. {frame_num} </h3>
 
             <div class="snapshot_gallery">
 
-               <figure class=”snapshot_gallery__item snapshot_gallery__item--1">
-                 <img src="input_frame{frame_num}.png" alt="The Input" class="snapshot_gallery__img">
+               <figure class=”snapshot_gallery__item
+                   snapshot_gallery__item--1">
+                 <img src="input_frame{frame_num}.png" alt="The Input"
+                     class="snapshot_gallery__img">
                </figure>
 
-               <figure class=”snapshot_gallery__item snapshot_gallery__item--2">
-                 <img src="phase_frame{frame_num}.png" alt="Phase" class="snapshot_gallery__img">
+               <figure class=”snapshot_gallery__item
+                  snapshot_gallery__item--2">
+                 <img src="phase_frame{frame_num}.png" alt="Phase"
+                    class="snapshot_gallery__img">
                </figure>
 
-               <figure class=”snapshot_gallery__item snapshot_gallery__item--3">
-                 <img src="period_frame{frame_num}.png" alt="Period" class="snapshot_gallery__img">
+               <figure class=”snapshot_gallery__item
+                    snapshot_gallery__item--3">
+                 <img src="period_frame{frame_num}.png"
+                   alt="Period" class="snapshot_gallery__img">
                </figure>
 
-               <figure class=”snapshot_gallery__item snapshot_gallery__item--4">
-                 <img src="amplitude_frame{frame_num}.png" alt="Amplitude" class="snapshot_gallery__img">
+               <figure class=”snapshot_gallery__item
+                   snapshot_gallery__item--4">
+                 <img src="amplitude_frame{frame_num}.png"
+                   alt="Amplitude" class="snapshot_gallery__img">
                </figure>
             </div>
         </div>
-        '''
+        """
         galleries += new_gal
-    
-    html_string =f'''
+
+    html_string = f"""
     <html>
     <!-- this file got automatically created by 'output_report.py' -->
     <title>SpyBOAT Output Report</title>
@@ -152,7 +156,7 @@
             text-align: center;
             /* border: 1px dashed rgba(4, 4, 4, 0.35);     */
             grid-template-columns: repeat(3,1fr);
-            grid-template-rows: 20vw;    
+            grid-template-rows: 20vw;
             grid-gap: 0px;
             column-gap: 0px
         }}
@@ -186,7 +190,7 @@
     </head>
     <body>
     <h1 style="text-align:center; color:#363333">SpyBOAT Results Report</h1>
-    <hr style="width:50%"> 
+    <hr style="width:50%">
     <h1 class="subheader"> Distribution Dynamics </h1>
     <div class="distr_gallery">
        <figure class=”distr_gallery__item distr_gallery__item--1">
@@ -237,13 +241,12 @@
     </script>
     </body>
     </html>
-    '''
+    """
 
-    with open(html_fname, 'w') as OUT:
-
+    with open(html_fname, "w") as OUT:
         OUT.write(html_string)
 
-    logger.info(f'Created html report')
+    logger.info("Created html report")
     return html_string
 
 # for local testing