示例#1
0
    def _make_ISR_document(self, version='draft'):
        """ Creates Individual Storm Report reports as LaTeX files.

        Parameters
        ----------
        version : string, optional (default = 'draft')
            Whether the file should be marked as "draft" or "final"

        Writes
        ------
        An Individual Storm Report LaTeX file the storm.

        Returns
        -------
        documentISR : str
            The file name and path of the ISR document.

        """

        # check input
        if version.lower() not in ('draft', 'final'):
            raise ValueError("Report version must be 'draft' or 'final")

        if version.lower() == 'draft':
            watermark = "\\usepackage{draftwatermark}\n\\SetWatermarkLightness{0.9}"
            draft = ' Draft'
        else:
            watermark = ''
            draft = ''

        # texpaths and placeholders in same order
        placeholders = {
            '__GeneralTable__': self.general_tex_table + '.tex',
            '__HydroTable__': self.hydro_tex_table + '.tex',
            '__WQTable__': self.wq_tex_table + '.tex',
            '__HydroFigure__': self.storm_figure + '.pdf',
            '__DATE__': self.starttime.strftime('%b %Y'),
            '__BMPPHOTO__': self.siteid,
            '__site_name__': self.tocentry,
            '__watermark__': watermark,
            '__draft__': draft
        }

        with open(self.templateISR, 'r') as f_template:
            template_string = f_template.read()

        for key in placeholders:
            template_string = template_string.replace(key, placeholders[key])

        documentISR_name = utils.processFilename('{}-{}-{}-ISR-{}.tex'.format(
            self.siteid, self.starttime.strftime('%Y%m%d-%H%M'),
            self.label.split(' ')[0], version
        ))
        documentISR = os.path.join('output', 'tex', 'ISR', documentISR_name)
        with open(documentISR, 'w') as f_report:
            f_report.write(template_string)

        return documentISR
示例#2
0
 def storm_figure(self):
     self._storm_figure = utils.processFilename('{}-{}-{}'.format(
         self.siteid, self.starttime.strftime('%Y-%m-%d-%H%M'),
         self.label.split(' ')[0])
     )
     return self._storm_figure
示例#3
0
 def wq_tex_table(self):
     self._wq_tex_table = utils.processFilename('{}-{}-3-WQ_{}'.format(
         self.siteid, self.starttime.strftime('%Y-%m-%d-%H%M'),
         self.label.split(' ')[0])
     )
     return self._wq_tex_table
示例#4
0
 def hydro_tex_table(self):
     self._hydro_tex_table = utils.processFilename('{}-{}-2-Hydro'.format(
         self.siteid, self.starttime.strftime('%Y-%m-%d-%H%M')
     ))
     return self._hydro_tex_table
示例#5
0
 def general_tex_table(self):
     self._general_tex_table = utils.processFilename('{}-{}-1-General'.format(
         self.siteid, self.starttime.strftime('%Y-%m-%d-%H%M')
     ))
     return self._general_tex_table