source: production/pt_hedland_2006/make_report.py @ 3514

Last change on this file since 3514 was 3514, checked in by duncan, 18 years ago

Hi all,
I'm doing a change in the anuga structure, moving the code to

\anuga_core\source\anuga

After you have done an svn update, the PYTHONPATH has to be changed to;
PYTHONPATH = anuga_core/source/

This is part of changes required to make installation of anuga quicker and reducing the size of our sandpits.

If any imports are broken, try fixing them. With adding anuga. to them for example. If this seems to have really broken things, email/phone me.

Cheers
Duncan

File size: 8.3 KB
Line 
1"""
2Generate report for production run
3
4Inputs:
5
6report_title:    title to be included in tex file
7production dirs: dictionary of production directories with a
8                 association to that simulation run, eg high tide,
9                 low tide and MSL.
10                   
11
12Outputs:
13
14* Report generated to scenario_report.tex where the scenario relates
15the name of the production directory this script is being run from.
16* figures used for report stored in the report_figure directory
17NOTE, this directory will need to be committed, as well as
18the latex files.
19
20The report structure is
21
22* Executive Summary
23* Introduction
24* Modelling Methodology
25* Tsunami scenario
26* Data sources
27* Inundation model
28* Inundation modelling results
29* Impact modelling
30* Summary
31* References
32* Appendix: Metadata
33* Appendix: Time series outputs
34
35Other files included in document which require manual intervention:
36
37* an abstract must be written in abstract.tex
38* an introduction must be written in introduction.tex; a basic outline and
39  some of the core inputs are already in place
40* the tsunami-genic event should be discussed in tsunami_scenario.tex
41* a discussion of the ANUGA model is required in anuga.tex
42* a computational_setup.tex file needs to be written for the particular scenario
43* the interpretation of the results needs to be written to interpretation.tex
44* maximum inundation map names need to be included in HAT_map and LAT_map etc.
45* damage modelling map names need to be included in HAT_damage and LAT_damage etc.
46* a summary must be written into summary.tex
47* metadata for the scenario data to be included in metadata.tex
48
49May, June 2006                   
50"""
51
52from os import getcwd, sep, altsep, mkdir, access, F_OK
53import project
54from anuga.pyvolution.util import sww2timeseries, get_gauges_from_file
55
56# Derive scenario name
57p = getcwd().split(sep)
58scenario = p[-1] # Last element of absolute CWD path
59scenario_name = scenario.split('_2006')[0] # Strip any text past `_2006`
60test = scenario_name.split('_')
61if len(test) <> 1:
62    scenario_name = '%s %s' %(test[0], test[1])
63
64# Create report directory
65reportdir = getcwd()+sep+'report'+sep
66if access(reportdir,F_OK) == 0:
67    mkdir (reportdir)
68   
69# User defined inputs
70report_title = 'Tsunami impact modelling for the North West shelf: %s' %scenario_name.title()
71
72# WA DLI data
73production_dirs = {'20060707_001859': 'MSL',
74                   '20060707_003301': 'HAT',
75                   '20060707_003424': 'LAT'}
76
77max_maps = {'MSL': 'MSL_map',
78            'HAT': 'HAT_map',
79            'LAT': 'LAT_map'}
80
81gauge_map = 'pt_hedland_gauge.jpg'
82
83# Create sections and graphs for each designated production directory
84latex_output = []
85swwfiles = {}
86for label_id in production_dirs.keys():
87   
88    file_loc = project.outputdir + label_id + sep
89    swwfile = file_loc + project.basename + '.sww'
90    swwfiles[swwfile] = label_id
91
92texname, elev_output = sww2timeseries(swwfiles,
93                                      project.gauge_filename,
94                                      production_dirs,
95                                      report = True,
96                                      reportname = 'latexoutput',
97                                      plot_quantity = ['stage', 'speed'],
98                                      surface = False,
99                                      time_min = None,
100                                      time_max = None,
101                                      title_on = False,
102                                      verbose = True)
103
104latex_output.append(texname)
105
106# Start report generation
107# Future: generate_report(reportdir, scenario, report_title,
108# project.gauge_filename, max_maps, damage_maps, production_dirs, latex_output)
109report_name = reportdir + scenario + '_report.tex'
110fid = open(report_name, 'w')
111
112s = """
113% This is based on an automatically generated file (by make_report.py).
114%
115% Manual parts are:
116% * an abstract must be written in abstract.tex
117% * an introduction must be written in introduction.tex; a basic outline and
118%   some of the core inputs are already in place
119% * outline of the modelling methodology provided in modelling_methodology.tex
120% * the tsunami-genic event should be discussed in tsunami_scenario.tex
121% * an computational_setup.tex file needs to be written for the particular scenario
122% * the interpretation of the results needs to be written to interpretation.tex
123% * maximum inundation maps need to be included in HAT_map.tex and LAT_map.tex etc.
124% * damage modelling maps need to be included in HAT_damage and LAT_damage etc.
125% * a summary must be written into summary.tex
126% * metadata for the scenario data to be included in metadata.tex
127
128\documentclass{article}
129
130\usepackage{ae} % or {zefonts}
131\usepackage[T1]{fontenc}
132\usepackage[ansinew]{inputenc}
133\usepackage{amsmath}
134\usepackage{amssymb}
135\usepackage{graphicx}
136\usepackage{color}
137\usepackage[colorlinks]{hyperref}
138\usepackage{lscape} %landcape pages support
139\usepackage{setspace}
140\usepackage{rotating}
141\include{appendix}
142\setstretch{1.25}
143\\topmargin 0pt
144\oddsidemargin 0pt
145\evensidemargin 0pt
146\marginparwidth 0.5pt
147\\textwidth \paperwidth
148\\advance\\textwidth -2in
149
150"""
151fid.write(s)
152
153#s = '\\title{%s} \n' %report_title
154#fid.write(s)
155
156s = """
157\date{\\today}
158%\\author{Geoscience Australia}
159
160\\begin{document}
161\\title{
162\\begin{figure}[hbt]
163  \centerline{ \includegraphics[scale=0.4]{../report_figures/GAlogo.jpg}}
164\end{figure}
165"""
166fid.write(s)
167s = '%s} '%report_title
168fid.write(s)
169s = """
170  \maketitle
171
172    \section{Executive Summary}
173    \label{sec:execsum}
174  \input{execsum}
175
176  \\tableofcontents
177 
178  \section{Introduction}
179    \label{sec:intro}
180  \input{introduction}
181
182   \section{Modelling methodology}
183    \label{sec:methodology}
184    \input{modelling_methodology}
185   
186  \section{Tsunami scenarios}
187    \label{sec:tsunamiscenario}
188    \input{tsunami_scenario}
189
190  \section{Data sources}
191    \label{sec:data}
192    \input{data}
193   
194   \section{Inundation model}
195    \label{sec:anuga}
196    \input{anuga}
197    \input{computational_setup}
198       
199  \section{Inundation modelling results}
200     \label{sec:results}
201         
202"""
203fid.write(s)
204
205# Generate latex output for location points
206s = '\\begin{table} \\begin{center} \n'
207fid.write(s)
208s = '\caption{Defined point locations for %s study area.}' %scenario_name
209fid.write(s)
210s = """
211\label{table:locations}
212\\begin{tabular}{|l|l|l|l|}\hline
213\\bf{Point Name} & \\bf{Easting} & \\bf{Northing} & \\bf{Elevation}\\\\ \hline
214"""
215fid.write(s)
216
217gauges, locations, elevation = get_gauges_from_file(project.gauge_filename)
218
219for name, gauges, elev in zip(locations, gauges, elevation):
220    east = gauges[0]
221    north = gauges[1]
222    s = '%s & %.2f & %.2f & %.2f \\\\ \hline \n' %(name.replace('_',' '), east, north, elev)
223    fid.write(s)
224
225s = '\\end{tabular} \n  \end{center} \n \end{table} \n \n'
226fid.write(s)
227
228s = '\\begin{sidewaysfigure} \n \centerline{ \includegraphics[width=\paperwidth]{../report_figures/%s}}' %gauge_map
229fid.write(s)
230
231= """
232\caption{Point locations used for Port Hedland study.} 
233\label{fig:points}
234\end{sidewaysfigure}
235"""
236fid.write(s)
237   
238s = '\input{interpretation} \n'
239fid.write(s)
240
241# Assign titles to each production section
242# Must specify one name per section
243for i, name in enumerate(production_dirs.keys()):
244#
245#    s = '\subsection{%s} \n \n' %production_dirs[name]     
246#    fid.write(s)
247
248    s = '\input{%s} \n \clearpage \n \n' %max_maps[production_dirs[name]]
249    fid.write(s)
250
251# Closing
252
253s = """
254   \section{Impact modelling}
255    \label{sec:impact}
256     \input{damage}
257"""
258fid.write(s)
259
260#for i, name in enumerate(production_dirs.keys()):
261
262#    s = '\input{%s} \n \clearpage \n \n' %damage_maps[production_dirs[name]]
263#    fid.write(s)
264
265s = """
266     \section{Summary}
267     \label{sec:summary}
268     \input{summary}
269     
270    \input{references}
271
272    \\appendix
273   
274   \section{Metadata}
275     \label{sec:metadata}
276     \input{metadata}
277
278\pagebreak
279
280   \section{Time series}
281     \label{sec:timeseries}
282"""
283fid.write(s)
284
285s = '\input{%s} \n \clearpage \n \n' %latex_output[0]
286fid.write(s)
287
288s="""
289
290\pagebreak
291
292   \section{Damage modelling inputs}
293     \label{sec:damageinputs}
294     \input{damage_inputs}
295
296\end{document}
297"""
298fid.write(s)
Note: See TracBrowser for help on using the repository browser.