GPP User Manual Delft3D GPP_User_Manual
User Manual: Pdf Delft3D-GPP_User_Manual
Open the PDF directly: View PDF .
Page Count: 202
Download | ![]() |
Open PDF In Browser | View PDF |
3D/2D modelling suite for integral water solutions DR AF T Delft3D GPP User Manual DR AF T T DR AF GPP Visualisation of Delft3D simulation results and measurement data User Manual Hydro-Morphodynamics & Water Quality Version: 4.00 SVN Revision: 52614 April 18, 2018 DR AF T GPP, User Manual Published and printed by: Deltares Boussinesqweg 1 2629 HV Delft P.O. 177 2600 MH Delft The Netherlands For sales contact: telephone: +31 88 335 81 88 fax: +31 88 335 81 11 e-mail: software@deltares.nl www: https://www.deltares.nl/software telephone: fax: e-mail: www: +31 88 335 82 73 +31 88 335 85 82 info@deltares.nl https://www.deltares.nl For support contact: telephone: +31 88 335 81 00 fax: +31 88 335 81 11 e-mail: software.support@deltares.nl www: https://www.deltares.nl/software Copyright © 2018 Deltares All rights reserved. No part of this document may be reproduced in any form by print, photo print, photo copy, microfilm or any other means, without written permission from the publisher: Deltares. Contents Contents List of Figures vii List of Tables ix 1 Guide to this manual 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Changes with respect to previous versions . . . . . . . . . . . . . . . . . . 1.3 What’s new? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 3 2 Getting started 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T . . . . . . . . . . . . DR AF 3 Graphical User Interface 3.1 Starting the program . . . . . . . . . 3.2 Main window . . . . . . . . . . . . . 3.2.1 Menubar . . . . . . . . . . . 3.2.2 Data group Description . . . . 3.2.3 Data group Datasets . . . . . 3.2.4 Data group Plots . . . . . . . 3.3 Graphical windows . . . . . . . . . . 3.3.1 Usage of the menubar . . . . 3.3.2 Composing a plot . . . . . . . 3.3.3 Buttons in the graphical window 3.3.4 Using double-clicks . . . . . . 3.4 Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 17 20 22 22 25 26 27 27 29 29 35 4 Data sets and presentations 4.1 Data sets in general . . . . . . 4.2 Presentations and selections . 4.3 Importing the data set . . . . . 4.4 Available presentations . . . . 4.4.1 Types of presentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 37 39 40 40 41 5 Files and filetypes 5.1 Data files in the user-interface . 5.2 Representing date and time . . 5.3 Formatted data files . . . . . . 5.3.1 TEKAL files (general) . 5.3.2 Samples files . . . . . 5.3.3 TEKAL time-series files 5.4 Other properties of the filetypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 43 43 44 46 47 48 6 Layouts and plots 49 6.1 Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.2 How presentation routines co-operate . . . . . . . . . . . . . . . . . . . . . 49 7 Customising GPP 7.1 Printing and plotting . . . . . . . . . . . . . . . . . . . 7.1.1 Defining printers and plotters . . . . . . . . . . 7.1.2 Configuring printers for GPP . . . . . . . . . . 7.1.3 Procedure for configuring a new printer or plotter 7.2 Anatomy of a layout . . . . . . . . . . . . . . . . . . . 7.3 Default options for plot routines . . . . . . . . . . . . . 7.4 Graphical settings . . . . . . . . . . . . . . . . . . . . 7.5 Working environment . . . . . . . . . . . . . . . . . . Deltares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 53 53 54 55 56 57 58 60 iii GPP, User Manual Directories and files for GPP . . . . . . . . . . . . . . . . . . . . . 60 File types and file names . . . . . . . . . . . . . . . . . . . . . . . 61 Description files . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8 Advanced features 8.1 Standardising pictures . . . . . . . . . . 8.1.1 Batch processing . . . . . . . . . 8.1.2 Editing the session file . . . . . . 8.1.3 Using dedicated layouts . . . . . 8.2 Creating animations . . . . . . . . . . . . 8.3 Facilities for making animations . . . . . . 8.4 Automatically exporting data sets . . . . . 8.5 Automating tasks . . . . . . . . . . . . . 8.6 Defining your own plot and export routines 8.6.1 Script commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 7.5.1 7.5.2 7.5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 63 63 63 66 67 68 69 70 70 73 DR AF 9 Installation 75 9.1 Installing on the PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 9.2 Installing under Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 10 Glossary 77 A Command-line arguments 81 B ODS error codes 83 C Description of files used by GPP C.1 Description of the file. . . C.2 Description of the file . . . C.3 Description of the file . . . C.4 Description of the file . . C.5 Description of the file . . . C.6 Description of the file . . . C.7 Description of the GPP description file . . C.8 Description of the X resources used in GPP C.9 Description of the script library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 85 87 88 91 92 100 107 108 109 D Creating animations 111 E Example of using AWK to edit the state/session file 113 F Printers, plotters and pictures F.1 Storing pictures . . . . . . . . . . . . . F.2 Support of printers and plotters . . . . . F.2.1 Printing on MS Windows systems F.2.2 Printing on Linux systems . . . . F.2.3 Supported printers and plotters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 115 115 115 116 116 G Frequently asked questions G.1 Installation . . . . . . G.2 Printing . . . . . . . . G.3 Plotting . . . . . . . . G.4 Customising . . . . . G.5 Animations . . . . . . G.6 Files and data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 120 121 123 125 127 128 iv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deltares Contents H Trouble shooting H.1 Checklist . . . . . . . . . . . . . . . . . . . . . H.2 Errors that may occur . . . . . . . . . . . . . . . H.3 Problems involving files and directories . . . . . . H.3.1 NEFIS files . . . . . . . . . . . . . . . . H.3.2 Map files from D-Water Quality (DELWAQ) H.3.3 Binary and unformatted files . . . . . . . H.3.4 Navigating over directories . . . . . . . . I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 . 131 . 132 . 141 . 141 . 142 . 142 . 142 Overview of data sets 145 J Models and filetypes 151 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DR AF T K Plot routines K.1 Plot routines . . . . . . . . . . . . . . . . . K.1.1 Plot Timeseries . . . . . . . . . . . . K.1.2 Plot Limiting Factors . . . . . . . . . K.1.3 Plot Error Margins . . . . . . . . . . K.1.4 Plot curvilinear grid . . . . . . . . . . K.1.5 Plot finite elements grid . . . . . . . . K.1.6 Plot contour map . . . . . . . . . . . K.1.7 Plot isolines . . . . . . . . . . . . . K.1.8 Plot thin dams . . . . . . . . . . . . K.1.9 Plot XY graph . . . . . . . . . . . . . K.1.10 Plot vertical profile . . . . . . . . . . K.1.11 Polar contourplot . . . . . . . . . . . K.1.12 Polar isoline plot . . . . . . . . . . . K.1.13 Plot isolines (FEM) . . . . . . . . . . K.1.14 Plot finite element grid . . . . . . . . K.1.15 Plot vector field . . . . . . . . . . . . K.1.16 Plot balances . . . . . . . . . . . . . K.1.17 Plot histogram . . . . . . . . . . . . K.1.18 Plot pie chart . . . . . . . . . . . . . K.1.19 Plot land boundaries . . . . . . . . . K.1.20 Plot drogue tracks . . . . . . . . . . K.1.21 Plot time bar . . . . . . . . . . . . . K.1.22 Samples plot . . . . . . . . . . . . . K.1.23 Add text to drawing . . . . . . . . . . K.1.24 Add a simple annotation . . . . . . . K.1.25 Plot text at position . . . . . . . . . . K.1.26 Plot via a simple script . . . . . . . . K.2 Selection routines . . . . . . . . . . . . . . . K.2.1 Select a parameter . . . . . . . . . . K.2.2 Select a time . . . . . . . . . . . . . K.2.3 Select a location . . . . . . . . . . . K.2.4 Select a layer . . . . . . . . . . . . . K.2.5 Select a grid line (M) . . . . . . . . . K.2.6 Select a grid line (N) . . . . . . . . . K.2.7 Select a vertical profile . . . . . . . . K.2.8 Select an arbitrary transect . . . . . . K.3 Operation routines . . . . . . . . . . . . . . K.3.1 Average over a fixed layer . . . . . . K.3.2 Average squared vector (fixed layer) . K.3.3 Root-mean-square vector (fixed layer) Deltares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 163 163 164 164 165 165 166 166 167 168 168 169 169 169 170 170 171 172 173 173 174 174 174 175 176 176 176 177 177 177 178 178 178 179 179 180 180 180 181 181 v GPP, User Manual K.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DR AF T K.5 K.3.4 Calculate length . . . . . . . . . . . . . . . Binary operations . . . . . . . . . . . . . . . . . . . K.4.1 A − B . . . . . . . . . . . . . . . . . . . . K.4.2 A + B . . . . . . . . . . . . . . . . . . . . K.4.3 A ∗ B . . . . . . . . . . . . . . . . . . . . K.4.4 A/B . . . . . . . . . . . . . . . . . . . . . K.4.5 min(A, B) . . . . . . . . . . . . . . . . . . K.4.6 max(A, B) . . . . . . . . . . . . . . . . . K.4.7 f (A, B) . . . . . . . . . . . . . . . . . . . K.4.8 f (A) . . . . . . . . . . . . . . . . . . . . . Export routines . . . . . . . . . . . . . . . . . . . . K.5.1 Write Timeseries to Annotated File . . . . . . K.5.2 Write Timeseries to TSV File . . . . . . . . . K.5.3 Write Timeseries to Text File . . . . . . . . . K.5.4 Write MAP2D to Text File . . . . . . . . . . . K.5.5 Write XY data to Text File . . . . . . . . . . . K.5.6 Write data sets (finite element grid) to Text File K.5.7 Write grid to ArcView/Info import file . . . . . K.5.8 Write results to ArcView/Info import file . . . . K.5.9 Write via a simple script . . . . . . . . . . . vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 182 182 183 183 183 183 184 184 185 185 185 185 186 186 186 187 187 187 187 Deltares List of Figures List of Figures GPP main window . . . . . . . . . . . . . . . . . . . . Data Group Datasets . . . . . . . . . . . . . . . . . . . Add dataset window . . . . . . . . . . . . . . . . . . . File Selection window . . . . . . . . . . . . . . . . . . List of parameters and locations, after selecting a file and that file . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Graphical window with a time series plot . . . . . . . . . 2.7 Data Group Plots . . . . . . . . . . . . . . . . . . . . . 2.8 Create Plot window . . . . . . . . . . . . . . . . . . . . 2.9 Assigning data sets to the plot areas . . . . . . . . . . . 2.10 Graphical window with empty plot . . . . . . . . . . . . . 2.11 Area Attributes dialogue window . . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . parameter from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T 2.1 2.2 2.3 2.4 2.5 6 6 7 8 . . . . . . . 9 10 11 12 13 14 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 19 19 20 21 21 21 22 23 23 24 24 25 26 28 28 30 30 31 31 31 32 32 32 33 34 34 35 Main window of GPP . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Group Datasets window . . . . . . . . . . . . . . . . . . . . . . . Data Group Plots window . . . . . . . . . . . . . . . . . . . . . . . . . Main window menu options . . . . . . . . . . . . . . . . . . . . . . . . Sub-menu option Edit links to data files . . . . . . . . . . . . . . . . . . Sub-menu option Replace text in frames . . . . . . . . . . . . . . . . . Sub-menu option Replace text near axes . . . . . . . . . . . . . . . . . Make Job dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Group Description . . . . . . . . . . . . . . . . . . . . . . . . . . Data Group Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . Combine datasets dialogue . . . . . . . . . . . . . . . . . . . . . . . Export datasets dialogue . . . . . . . . . . . . . . . . . . . . . . . . Data Group Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layout of the graphical Plot window . . . . . . . . . . . . . . . . . . . Assign data dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . Data sets currently assigned to a plot area . . . . . . . . . . . . . . . . Quickscan facility allows for temporary selection of other locations or times Point selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Axes Attributes dialogue . . . . . . . . . . . . . . . . . . . . . . . . . Axis Labels dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . Axis options dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . Frame Texts dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . Text Attributes dialogue . . . . . . . . . . . . . . . . . . . . . . . . . Frame attributes dialogue . . . . . . . . . . . . . . . . . . . . . . . . Change Plot area attributes window . . . . . . . . . . . . . . . . . . . Change Plot Options window . . . . . . . . . . . . . . . . . . . . . . Interpolate contour classes dialogue . . . . . . . . . . . . . . . . . . Change Area Text window . . . . . . . . . . . . . . . . . . . . . . . . 4.1 4.2 Example of particular data set. Missing values are represented by discontinuities in the line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Plot of water level (filled contours) and flow velocity (vectors) . . . . . . . . . 39 5.1 Specifying time column of a TEKAL file . . . . . . . . . . . . . . . . . . . . 48 6.1 6.2 Empty layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Filled-in layout: the plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.1 Print setup dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 DR AF 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27 3.28 Deltares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii DR AF T GPP, User Manual viii Deltares List of Tables List of Tables 4.1 4.2 Measured data of BOD5 (mg/l) in two locations. (Note: these data are fictional) 37 Presentation forms for various types of data sets . . . . . . . . . . . . . . . 41 A.2 Environment variables used by GPP C.1 C.2 Symbols in Toolmaster/agX . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Line types in Toolmaster/agX . . . . . . . . . . . . . . . . . . . . . . . . . 98 DR AF T . . . . . . . . . . . . . . . . . . . . . 82 Deltares ix DR AF T GPP, User Manual x Deltares 1 Guide to this manual Introduction The name GPP has been derived from "general postprocessing program". It is meant for applications developed by Deltares. It can read most of the result files produced by the Delft3D modules and handles various other types as well. Key terms for GPP are: file types layouts collections of data to be visualised, recognised by a unique name ways of presenting the data, such as contour maps or xy-graphs the source of the data files, this identifies what types of files can be used the structure of a data file is important when selecting the data set and reading the actual data. The interface to the file is, however, uniform. before presenting the data, you specify the general set-up of the picture by selecting the appropriate layout: size of the graph or graphs (called plot areas), their position, additional text etc. a plot contains one or more plot areas; data sets are presented within a plot area according to some plotting method. One or more data sets may be added. Together with the axes and additional text, they make up the plot. T data sets presentations models DR AF 1.1 plots This manual describes the use of GPP. It is divided into two parts, the first will give you a short introduction and moves on to a detailed description of the user-interface: chapter 2: Getting started, describes how to get started with the program. chapter 3: Graphical User Interface, explains most of the menus and dialogues contained in GPP. The second part explains the concepts and documents what external files are used, how you can customise the program and so on. It is intended for the experienced users: chapter 4: Data sets and presentations, describes the concepts of data sets and presentations in more detail. chapter 5: Files and filetypes, presents some details on the currently supported file types. chapter 6: Layouts and plots, describes the function of layouts and plots. chapter 7: Customising GPP, discusses customising the program. chapter 8: Advanced features, presents advanced options within GPP, such as animations. chapter 9: Installation, describes how to install GPP. chapter 10: Glossary, is a glossary of the most important terms in GPP. More details can be found in the appendices: Appendix A: Command-line arguments, lists the command-line options and the environ- Deltares 1 of 190 GPP, User Manual ment variables that may be used. Appendix B: ODS error codes, lists the possible errors that can be unconnected and their codes. Appendix C: Description of files used by GPP, presents the contents of the configuration files in detail. Appendix D: Creating animations, describes how to use the auxiliary script gpp_anim for creating and displaying animations. Appendix E: Example of using AWK to edit the state/session file, gives an example of batch editing facilities that can be added to GPP. T Appendix F: Printers, plotters and pictures, contains information about supported printers, plotters and storing pictures under Linux and MS Windows. DR AF Appendix G: Frequently asked questions, has the frequently asked questions and their answers. Appendix H: Trouble shooting, describes the known problems and their work arounds. Should you experience problems. Appendix I: Overview of data sets, provides an overview of the data set types supported by GPP. Appendix J: Models and filetypes, gives an overview of the file types that are supported by GPP. Appendix K: Plot routines, contains an overview of the plot routines and other routines. 1.2 Changes with respect to previous versions 2 of 190 Deltares Guide to this manual Description 2.14 section 8.4, in description Separator should be ‘Separator’. section K.4, new operations f (A, B) and f (A) described. In the Tutorial folder files replaced by . Headers in Appendices D, I and K corrected. 2.12 section 8.3, Facilities for making animations, inserted. section 8.4, Automatically exporting data sets, inserted. Old Section 8.3 is now section 8.5, old Section 8.4 is now section 8.6. Section 1.3 What’s new added. 2.11 Updated terminology in some places Added the new features concerning the scripting interface (Sections 8.3 and 8.4) Appendix I added: an overview of data set types Appendix K: updated the list of available plot routines and other action routines Name changed to “GPP” DR AF T Version 2.10 1.3 Enhancements to the user-interface: The Edit menu in the main window, which allows the user to replace data files and text strings The Quick Scan button in the plot window The Showbutton in the Assign data window The Interpolate button in the Plot options window The changes to the printing facility under Windows documented Several details updated and corrected What’s new? This chapter intends to give a concise overview of new features and changes in GPP and the manual. Enhancements dd. november 2005 (version 2.11.07): Replacement of the old reading routines for certain NEFIS files. The new ones have a different approach, making it much easier to extend the supported parameters. Replacement of the underlying plot library. As a consequence you can send pictures directly to PostScript files for further use. Introduced a scripting language, Tcl, enabling you to create your own plot routines and export routines. Also useful to automate certain tasks. Documentation of the export functionality via the session file. Facilities for making animations. Deltares 3 of 190 DR AF T GPP, User Manual 4 of 190 Deltares 2 Getting started If you are anxious to start working with GPP and loath reading fat manuals, like most of us, then read at least this chapter: we describe a simple recipe for getting pictures from your data files. As GPP is fully window-oriented with a graphical user-interface, it should not be difficult to get around in the program. But, nevertheless, it is good to have some guideline. We will concentrate on a few files from the tutorial directory, but please note that GPP can use all kinds of data files. As long as you have files in one of the supported formats, you have no need to convert your files (the supported formats are described in a separate appendix). To start GPP on: Linux type gpp or delft3d-menu on the command line. If you use the Delft3D menu program (via delft3d-menu) then select the Utilities → GPP option. start the program Delft3D from its icon and select the Utilities → GPP option. DR AF PC T GPP is normally installed as part of the Delft3D system (cf. WL | Delft Hydraulics, 1999), but it can be used independently as well. You will get the main window, which initially shows the description (Figure 2.1). It has a simple menubar with the menus Session, Edit, Print job and Help, three push buttons (Description, Datasets and Plots) and a status bar, showing the current version of GPP. Description allows you to type or edit several lines of text that are meant to describe the set of data sets and plots you will create. The combination of data sets and plots is called a sessionand it can be saved in a so-called session file. You can save such files, open existing ones and create new session files via the Sessionmenu.1 The other buttons in the main window bring up the subwindows for defining and manipulating data sets and plots. The basic steps toward pictures are: prepare a sub-set of all data sets you might have and from which you are going to make graphs select or define the layout of the pictures you want to make combine layout and data. First we need to select the data we want to present. Click Datasets (see Figure 2.2). The list box will show the already defined data sets and will be empty if you start a new. The buttons to handle data sets are shown on the right hand side. Click Add. A dialogue appears, which shows from top to bottom (Figure 2.3): a button Select File two additional buttons which are greyed out an empty list box 1 The menu has not been called File, because this might give confusion with the data files you will use. Deltares 5 of 190 DR AF T GPP, User Manual Figure 2.1: GPP main window Figure 2.2: Data Group Datasets 6 of 190 Deltares DR AF T Getting started Figure 2.3: Add dataset window a text entry field (greyed) three buttons, Create (greyed), Close and Help We need to get the data from some file. So: Click Select File. Again a dialogue appears (Figure 2.4). This time a list button, to select the type of data file, two list boxes (left for files of the selected type, right for the sub-directories under the current), an input field for setting the mask for matching filenames and three buttons (OK, Filter and Cancel): The list boxes are filled with the subdirectories and files in the current directory that match the first file type. You will need to select the correct type of file, say a history file from D-Water Quality. This will bring up the appropriate filter, in this case "∗.his" and a list of files that match this filter. Select a different directory if necessary by double-clicking on the directories (".." is the parent directory). Select the file you want: click once and press OK (or double-click). In this tutorial we will use the file , a DELWAQ (binary) history to illustrate the use of GPP. We have supplied several other files in the tutorial directory: Deltares 7 of 190 T GPP, User Manual File DR AF Figure 2.4: File Selection window Type Remarks TEKAL time-series file Used to generate the picture in chapter 4 of the manual Delft3D-FLOW map file The calculation has to do with current-wave interaction. Delft3D-FLOW history file The area of interest is a small inlet in the Dutch Wadden sea. D-Water Quality history file No particular area, just some eutrophication calculation. TEKAL (GIS) Land contours of Manukau harbour in New Zealand TEKAL annotation file File, showing how to include geographic text Samples observations file Example of defining measurement data landboundary file The file selection dialogue disappears and the list of parameters is shown (see Figure 2.5). Then you can select a data set from this file. To do that: Select the parameter NH4 (ammonia). As a consequence the right-hand list box is filled with either locations or times (depending on the type of data file) Select one of the possible locations or times, in this case: tersch 4/10. Click Create (otherwise it will not create the data set). Click Close to close the dialogue (or go to the first step to define other data sets). These actions have created the data set containing one parameter, NH4, one location, ter- 8 of 190 Deltares DR AF T Getting started Figure 2.5: List of parameters and locations, after selecting a file and a parameter from that file sch 4/10 and a series of times. The data set is therefore a time-series and we can make a graph of the parameter versus time at that location. The next step is to plot the data set. To do this, Select the data set and click Preview. This action has the following result. A graphical window comes up (Figure 2.6). This displays the chosen data set, using: the first layout the first suitable presentation form for this type of data set Remarks: Presentation forms and layouts are described in the chapter 4 and chapter 6. It may be that you selected a data set that has no (direct) presentation forms, such as a three-dimensional data set. In that case the Assign data window is shown and you first have to create a subset (for instance select a layer) which can be plotted. You may postpone the choice of a location or a time. That way the data set will contain more information and when you try to display it, you can select the location or time you want to see. The plot window allows all kinds of manipulations, as described below. Remark: The quick-and-dirty approach offered by the Preview button is not the only way to make a picture, it is simply the quickest. If you change to the Plots Data Group, the procedure Deltares 9 of 190 DR AF T GPP, User Manual Figure 2.6: Graphical window with a time series plot 10 of 190 Deltares T Getting started DR AF Figure 2.7: Data Group Plots will be somewhat more elaborate but it offers quite a bit of flexibility. To do this, click Plots on the left.2 (see Figure 2.7): The main window is now filled in with a list box containing the names of any plots you may have defined, including the ones creating via the Preview button. Again there is a series of buttons on the right-hand side: Add View/Edit Delete Add a new plot View or edit the first selected plot Delete all selected plots Now click Add. This action has the following result, see Figure 2.8: A selection dialogue appears which allows you to select a layout for the new plot. Select the first layout (actually, any one will do). Normally you will change the name of the plot to a meaningful name reflecting the contents of the plot. In this tutorial we will use the default name “plot-1 plot portrait, no frame”. Click OK to enter the Assign data dialogue. The dialogue Assign data sets lets you assign one or more data sets with their presentations to the plot (Figure 2.9). Now: Select a plot area from the list box Plot areas. Select a data set from the Datasets list box. (The program will then fill in the right-hand list box: names of possible presentation methods for the selected data set or selection procedures to derive a sub-set. For this: see the next chapters.) 2 On Windows (in all its guises) you will need to click Plots twice if the focus is currently within the visible data group. This is no design of ours, but apparently part of the window management system. It makes it necessary to be a bit careful, when switching between data groups. Deltares 11 of 190 T GPP, User Manual DR AF Figure 2.8: Create Plot window If we use the previous data set, NH4 - tersch 4/10, the possibilities include: Plot time series Plot balances Plot pie chart Add text to drawing Select a presentation method, f.i. "Plot Timeseries", from the right-hand list. Click Add. Click OK (or go to the first step to add more data sets). If you simply click OK without assigning a data set, the graphical window will be filled in with the chosen layout (see Figure 2.10): possibly a frame with some text, one or more so-called plot areas: rectangles in the picture to which data sets can be assigned. The graphical window has a menu, like the main window, and a sub-window on the right-hand side with buttons. You can use the menu item Edit → Assign data, to invoke the dialogue Assign Data for an existing plot. You can also double-click on different parts of the graphical window: legend frame, axes of each graph, or graph itself. Then a dialogue appears that enables you to modify either the presentation of legend, axes or graphs. Perhaps this last action requires some explanation. The dialogue box concerning a graph, named Area Attributes (see Figure 2.11) contains four parts: Line settings: Select the line settings per data set in the plot area. If your graph contains a number of time series, then each set of data is drawn in a different way: the first line may be solid and black, the second a red dotted line, the third green crosses etc. Colour ramp: Select the sequence of colours to be used in a contour map or a histogram or, in fact, any graph consisting of filled areas. 12 of 190 Deltares DR AF T Getting started Figure 2.9: Assigning data sets to the plot areas Symbols: Adjust the size and mutual distance of the symbols (plusses, circles, crosses etc.) in xy graphs. The following buttons: OK, Cancel Data sets Plot options Text end the dialogue invoke the Assign data sets dialogue for the selected plot area. edit the options for the plot routines features of text used in the graph (other than text near the axis) You may want to print the graph. Select Plot → Print from the window’s menu. On Linux, a dialogue will appear to select the printer. You can also specify whether you want to save the print file. The default printer is the printer defined in the environment variable PRINTER or LPDEST (unless this printer is not known to GPP). Also on MS Windows, a dialogue will appear to select the printer, but there is one special printer: the default printer. You can set that printer via the menu item Plot/Printer set-up. Only this printer will actually print, all others create a print file with the picture. This is especially useful if you want to save the pictures in, say, a PostScript file for incorporating them in a document. Close the graphical window by selecting Plot → Close when you are done. The definitions of the data sets and the plots you made will be saved in a so-called state file, when you leave the program. This file is read the next time you start GPP, so that you can Deltares 13 of 190 DR AF T GPP, User Manual Figure 2.10: Graphical window with empty plot Figure 2.11: Area Attributes dialogue window 14 of 190 Deltares Getting started continue your previous session. The definitions can also be saved in a session file, this is essentially the same type of file, but it allows more explicit manipulation (see chapter 6 for more details). DR AF T Many settings of GPP are defined in external files (default layouts, properties of the plot routines, file types, graphical settings and printers). These files can be edited to suit your own preferences. We refer to chapter 7 and the appendices for a detailed description. Deltares 15 of 190 DR AF T GPP, User Manual 16 of 190 Deltares 3 Graphical User Interface 3.1 Starting the program We need to distinguish between a workstation running X Window and a PC running some version of Microsoft Windows. Also, as GPP is part of the Delft3D system, you may prefer to use it from within Delft3D: On a Linux workstation: After installation (see chapter 9), the program can be started standalone by typing: > gpp or from the Delft3D user-interface: > delft3d-menu DR AF T (and selecting a module or the Utilities option, and next GPP). As the installation procedure has added the home directory for GPP to the PATH variable, this command can be issued from any directory. On a PC: Double-click on the GPP (or Delft3D) icon in the desktop or start the program via the Start menu (this depends on how the installation was done and how you have organised your PC). To start GPP, go either to the Utilities or to one of the modules; next select GPP. When starting, GPP will bring up the main window (see Figure 3.1). It will also read a number of configuration files and the so-called state file (if it exists), which contains the definitions of data sets and plots from a previous session (see Appendix C). Read section 7.5, Working environment, for more information on which files from which directory are used. GPP may be passed a sequence of command-line arguments as well. Such arguments are used to: Determine a session file to read instead of the default state file, so that you can continue previous work. Let GPP work in batch mode, which means that any pictures defined in the given session file are printed without interaction from the user. Specify the so-called system directory (see chapter 7) which determines where the configuration files are coming from. In Appendix A these command-line arguments are explained in detail. 3.2 Main window The main window initially shows three buttons on the left-hand side, a simple menubar and the description of the session file. When you click on any of these buttons, the main window changes to present a list box of existing data sets or plots and push buttons that allow you to create new data sets or to view the plots and other functions. The buttons on the left represent data groups and clicking them brings up the corresponding dedicated subwindow. The status bar is used to display various messages, but only those that do not require immediate attention from the user. The buttons are: Deltares 17 of 190 DR AF T GPP, User Manual Figure 3.1: Main window of GPP Description, see Figure 3.1 This allows you to document the session file with a few lines of text. Rather than simply relying on file names or the actual data sets and plots in the session file, you can use this facility to document its purpose and contents. Datasets, see Figure 3.2 When you select this data group, the main window displays a list of the data sets. The buttons on the right-hand side allow manipulation of the data sets: Add Preview Combine Export Delete Add one or more new data sets Create a simple plot to show the selected data set Combine two data sets via an arithmetic calculation Export the contents of data sets to an external file Delete the selected data set or data sets The button Preview is a function that allows you to view a selected data set. It will create a plot containing that data set based on: the first layout in the list of layouts the first plot routine in the list of plot routines for that type of data sets. Remark: If the data set is a 3D data set or some other type that has no direct plot routine, then the Assign data dialogue appears and you have to do the necessary selections first. Plots, see Figure 3.3 Selecting the Plots Data Group brings up the list of existing plots and a set of three buttons: Add View/Edit Delete 18 of 190 Add a new plot View and/or edit the selected plot Delete the selected plot or plots Deltares DR AF T Graphical User Interface Figure 3.2: Data Group Datasets window Figure 3.3: Data Group Plots window Deltares 19 of 190 GPP, User Manual Figure 3.4: Main window menu options The intention is that the next release will allow you to rename the plot. This facility is visible in the user-interface but not fully implemented yet. The main window has a simple menubar with the following menus: Session Start from scratch Open an existing session file Leave the program Edit T This menu allows you to manipulate the current session, such as: Edit links to data files Replace text in a frame Replace text near axes DR AF This menu allows you to manipulate filenames and texts in a global way: Print job This menu allows you to create a so-called print job and to set the characteristics of the (default) printer. Help This menu can be used to bring up the online help information. Pressing function key F1 has a similar effect. The functions associated with the data groups and the menubar will be explained in more detail below. Menubar The main window has a menubar with three menus, see Figure 3.4. The Session menu has the following items, which are equivalent in function to the more usual File menu (the name however refers to session files, and was chosen to avoid confusion with the data files that you will use): New Remove all data sets and plots from the current session and start a new Open Read an existing session file Save Save the data sets and plots in the current session file (if any) Save as . . . Save the data sets and plots in a new session file Exit Exit the program (save the state file, while doing this) The Edit menu contains three items: 3.2.1 Links A dialogue will appear that presents all selected data files (see Figure 3.5). By selecting a data file and next Change source, the data file can be replaced by another (but similar) data file. Frame texts This option allows you to replace texts in the frames of a plot. Axis texts 20 of 190 Deltares T Graphical User Interface DR AF Figure 3.5: Sub-menu option Edit links to data files Figure 3.6: Sub-menu option Replace text in frames This option allows you to replace texts near axes in a plot. The Print Job menu contains two items: Make job A dialogue will appear that presents all existing plots (see Figure 3.8). By selecting one or more plots you indicate that these plots should be sent to the printer without showing them on the screen or any actions from you. Printer setup Select the printer and set its properties. The Help menu should require no specific explanation: it will bring up the online help information. The text is an abbreviated version of this manual, so the manual is the most comprehensive reference to GPP. Figure 3.7: Sub-menu option Replace text near axes Deltares 21 of 190 T GPP, User Manual Figure 3.8: Make Job dialogue Data group Description DR AF 3.2.2 We can be short about this data group (see Figure 3.9): It shows the name of the session file that was imported (if any) and which will be written again if you select the Save item from the Session menu. It also displays a short description of the session, which consists maximally of some ten lines. You can edit this description and it will be stored in the session file. Whether you want to use this facility or not, is entirely up to you, but it is quite convenient if you have a lot of such files. Data group Datasets The data group Datasets presents a list of existing data sets and a set of push buttons to manipulate the data sets (see Figure 3.10). Its functions as follows: When you select a data set, several properties will be shown below the list box. Click Add to bring up a dialogue to add new data sets (see the explanation in chapter 3). When you click Preview, the data set will be put in a new plot and this plot is then shown in a new plot window (see section 3.3). This fails, if there is no presentation available for that particular type of data set and you will have to use other means in stead (see the description of the Data Group Plots). Click Combine to bring up a dialogue to combine two data sets via arithmetic operations (addition, maximisation etc.) This should be fairly straightforward (see Figure 3.11): 3.2.3 The list box labelled Dataset A only contains data sets for which one or more operations (like addition) are available. The list box labelled Dataset B is filled with the same list. Selecting a data set from both list boxes brings up the list of possible operations (the first operation is chosen by default). By clicking Create you create the new data set. If you type a string in the Suffix field, this string will be appended to the name of the new data set. This makes it easier to distinguish it. Click Export to bring up yet another dialogue (see Figure 3.12). This one allows you to export the data contained in the data set to an external file. (Not all data sets can be exported, because currently only a limited number of methods is available). 22 of 190 Deltares DR AF T Graphical User Interface Figure 3.9: Data Group Description Figure 3.10: Data Group Datasets Deltares 23 of 190 T GPP, User Manual DR AF Figure 3.11: Combine datasets dialogue Figure 3.12: Export datasets dialogue Most methods export to a text file of some kind as these are best suited for the purpose. When you have selected one or more data sets and click Delete, the selected data sets will be removed from the session (which includes removing them from the plots as well). In some cases, data sets are required by other data sets and because of this relationship, such data sets will not be removed (but you get a message about that). Remark: The x,y co-ordinates in exported 2D map data sets refer to the grid cell corners. The x,y co-ordinates of the grid cell centre are also added. 24 of 190 Deltares DR AF T Graphical User Interface Figure 3.13: Data Group Plots Data group Plots The data group Plots allows you to define new plots or to view and edit existing plots (see Figure 3.13). The window contains a list of all existing plots and a set of three buttons: Select a plot and click View/edit, the plot is shown in a (new) graphical window. When you have selected one or more plots and click Delete, the selected plots will be removed from the session. This has no effect on the data sets that were used in the plots. Click Add to bring up: 3.2.4 A new graphical window A list of available layouts from which you should select one A dialogue allowing you to assign data sets to the various plot areas within the new plot This procedure is explained in section 3.3.2. Remark: In a next release, the data group will allow you to rename the plot, as it is often difficult to think of a good name beforehand. In version 2.10 this has not been implemented yet. Deltares 25 of 190 DR AF T GPP, User Manual Figure 3.14: Layout of the graphical Plot window 3.3 Graphical windows When you use the Preview button in the Datasets data group or the Add or View/Edit buttons in the Plots data group, you get a new window, called a graphical window. This window has a separate menubar and a number of buttons and other functions that will be explained in this section (see Figure 3.14). Remark: If you select the Preview option, the data set will be displayed in the graphical window directly only if the data set needs no further selections. If the data set needs further user selections (layer, time point, etc.) the Assign data dialogue (Figure 3.15) comes up. 26 of 190 Deltares Graphical User Interface 3.3.1 Usage of the menubar The menubar consists of the following menus: Plot This menu takes care of several overall functions. It has five items: Create Create a new plot, by selecting a layout and setting a unique name for the plot Select a plot from the list of existing plots Select the printer and set its properties Print the plot that is shown Close the graphical plot window Select Printer setup Print Close Edit This menu may be used to change the contents of the plot or to copy it to the clipboard: 3.3.2 T Open the dialogue to assign the data sets to the plot areas or to clean up the plot. Attributes (not implemented) Add text Open the dialogue to add or modify text in the plot. Copy to clipboard Copy the plot as a bitmap to the clipboard. Copying the picture to the clipboard is useful, if you want to include it in some document. Be aware though that the resolution is that of the screen and this can be too coarse for a printed document. A better alternative might be to print it in a PostScript file, as this will preserve the resolution much better. Help You can get the online information via this menu. DR AF Assign data Composing a plot When you want to fill the plot with data sets, you can do so by selecting the item Assign data from the Edit menu (see Figure 3.14 and Figure 3.15). The procedure is fairly simple: First select the plot area. Then select the data set you want to visualise. The third list, the possible presentations, is then filled. Sometimes you can use a so-called selection procedure to make a subset out of the data set, for instance to display a single layer from a three-dimensional data set. Select the appropriate presentation or selection procedure (if the latter, a new list appears, allowing you to select a layer or a location and thus to create a subset. This new data set will be automatically highlighted and a list of available presentations will appear). Then click Add to add the data set and its presentation to the list for that one plot area. You can repeat this procedure as often as you want. After clicking OK, the plot will be drawn. To delete 1 or more data sets from a plotarea: First select the plotarea then select Show in the Assign data window. Figure 3.16 will appear and you can view and delete separate data sets. Deltares 27 of 190 DR AF T GPP, User Manual Figure 3.15: Assign data dialogue Figure 3.16: Data sets currently assigned to a plot area 28 of 190 Deltares Graphical User Interface 3.3.3 Buttons in the graphical window The buttons on the right in the graphical window have the following meaning: Redraw: Redraws the graph. Use this if parts remain blank. (This might happen in some weird circumstances when the screen is not properly refreshed.) Quick scan: If the plot contains but one data set, this button brings up a list of locations or times that are contained in the same data file, so that you can have a quick look at these other locations or times without having to define new data sets (see Figure 3.17). To keep the facility easy to use, this works only if there is a single data set. Start animation: Start a simple animation. Its use is a bit complicated: you must create a data set with a spatial distribution and one or more time steps (typically one parameter from a so-called map file). Create a subset by selecting one time step and present it in the plot. If you then click this button, GPP will draw all time steps in the original data set one by one. Then its saves the picture in a bitmap file.1 Point selection: Select ON, Select OFF You can choose a point in one of the plot areas. It will show the value at that point or other relevant information (such as the grid cell indices; see Figure 3.18). The co-ordinates are shown in the two text fields below the buttons. Zoom: Zoom in, Zoom out Zoom in on a smaller area: DR AF T First select Zoom in Click the left mouse button at one of the corners of the area you want to select Keep it pressed and move the mouse. If you release the button, the area will have been selected and the graph will zoom in. You can repeat this again and again. By clicking Zoom out you will return to the original area (for all plot areas). Note: Depending on the kind of axis type, the zoom size is adapted in that way the aspect ratio is not changed. 3.3.4 Using double-clicks You can use a double-click of the left mouse button: Double-click on or near an axis brings up a dialogue in which you can change the attributes to the axis, colour text, font, number of tickmarks, scaling (see Figure 3.19, Figure 3.20 and Figure 3.21). Double-click in the frame (if a frame is visible); this allows you to fill in the text that appears in the frame (see Figure 3.22, Figure 3.23 and Figure 3.24). The buttons Text Attributes and Frame Attributes are used to change the detailed appearance of the text and the frame. Double-click in a plot area to give you the opportunity to change (see Figure 3.25, Figure 3.26 and Figure 3.28): series settings colour ramp appearance of individual time-series in line graphs. which sequence of colours to use for a contour map or pie-chart 1 On the UNIX workstation it will save each picture in an XWD file, on PC it will save each picture as a BMP file. See also chapter 8 for more information. Deltares 29 of 190 DR AF T GPP, User Manual Figure 3.17: Quickscan facility allows for temporary selection of other locations or times Figure 3.18: Point selection 30 of 190 Deltares T Graphical User Interface DR AF Figure 3.19: Axes Attributes dialogue Figure 3.20: Axis Labels dialogue Figure 3.21: Axis options dialogue Deltares 31 of 190 T GPP, User Manual DR AF Figure 3.22: Frame Texts dialogue Figure 3.23: Text Attributes dialogue Figure 3.24: Frame attributes dialogue 32 of 190 Deltares T Graphical User Interface DR AF Figure 3.25: Change Plot area attributes window datasets plot options which data sets are shown in the area the options used in drawing the data sets. The dialogue for changing the plot options requires some further explanation. Each presentation form can have one or more specific options. These are for instance whether to use a right vertical axis or a left axis or a list of concentration levels for making a contour map. The idea is that each combination of a data set and a presentation form can have its own values for these options. This way you are very flexible in making the plot. Defaults for these options are read from the configuration files. A second purpose of the dialogue is that you control whether the axes are visible or that the axes have to be determined again. This may be necessary if the plot options involve a change in axis type or if you have added new data sets for which the previous scaling is not effective. For Contour classes you can either modify the classes or Use classes file. Via Interpolate you get a dialogue that allows easy manipulation of the contour classes (see Figure 3.27): Enter a minimum and a maximum value for the class limits as well as the number of intervals. Select the method of interpolation: Linear spacing gives equal steps Logarithmic spacing gives steps that are small near the maximum and large near the minimum Anti-logarithmic spacing gives steps that are small near the minimum and large near the maximum (so the reverse) Depending on the character of the quantity to be shown, any of these methods may be useful. For instance, if you show the salinity in open sea, then you probably want to emphasize slight deviations from the maximum (i.e. fine scales in the range 33–35 promilles), whereas below 33 promilles the steps can be larger. With logarithmic spacing you can achieve this effect. Deltares 33 of 190 DR AF T GPP, User Manual Figure 3.26: Change Plot Options window Figure 3.27: Interpolate contour classes dialogue 34 of 190 Deltares Graphical User Interface Figure 3.28: Change Area Text window T To import a user-defined classes file: Set the option Use classes file to true. Set the option Name classes file to the name of your classes file. DR AF A classes file has a very simple format: any line may contain one single number, the numbers must be in ascending order and for documentation purposes you can add comments by using a hash (#) or an asterisk (∗) in the first column. Example of a classes file: * * Water levels: fixed contour classes * -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 3.4 Error handling If an error occurs while reading any of these files, you will see a message box with a description of this error. Three types of errors are possible: The program cannot find the file, which is a serious error for all but the session state file, as things are not defined then. The program can not read the file because of some syntax error. The reading routines will indicate the line on which the syntax error occurred and the offending word or character. The program complains about the version number in the configuration files. As these files are extended and adjusted with new releases it is important to use the correct versions. We try to keep them compatible, so that some things are simply not available, but occasionally major changes do happen. The message is therefore: if an error occurs with any of the configuration files, please find out what is the matter before continuing. If an error occurs with the state file, you may ignore it, though some data sets or plots from the previous session are not available. Deltares 35 of 190 DR AF T GPP, User Manual 36 of 190 Deltares 4 Data sets and presentations Data sets in general Sets of data, the results of a numerical model or of a measurement campaign, are commonly characterised by some quantity or quantities (a hydraulic parameter, an ecological parameter or whatever), by locations (we are dealing with the real world and models of that world) and by a range of times. This summarises the idea of the Open Data Structure (or ODS for short): these three things are characteristic for all data sets we usually deal with. Within this data model you can have many variations: time-series, scalar data on a 2D grid, a threedimensional flow field and so on. T To elaborate on this: a data set can be a time-series of water quality data - measurements of the concentration of BOD at a fixed location in time. The most natural form of presentation of such a data set is, of course, a plot of the concentration versus time. This is certainly one of the presentation forms contained in GPP. But what if the data set contains the data for two or more locations (see Table 4.1 and Figure 4.1)? Or for two or more parameters (temperature, salinity and oxygen concentration, for instance, as measured by a probe)? Although we try to abstract from the actual format of the data file via this general data model, there remains a relationship between the data set and the file it comes from. In general, the files you import in GPP can be considered to contain one or a limited number of such data sets. In some cases, such as map files from D-Water Quality, all the information in the file can be arranged into one single data set according to the ODS data model. In other cases more than one data set can be distinguished: a history file from Delft3D-FLOW is an example. It contains results for monitoring stations (single points) and for cross-sections. For the stations different parameters are available than for cross-sections. So, we may say that the data in such files constitute two disjoint data sets. DR AF 4.1 Some files actually require a second or even a third file to be read. If this is the case, the primary file will be selected and the names of the others are derived from that, if possible. It is not necessary to import the whole data set at once. In fact, GPP suggests that you select at least a parameter from the list of available quantities. So, GPP is a framework which allows you to import certain data sets (from external files) or to create data sets from others, and to present them in any way possible and suitable.1 To keep track of these data sets, they are given unique names. The user-interface constructs a default 1 etc. We refer to the detailed documentation on GPP for the algorithms used, how to extend the set of presentations Table 4.1: Measured data of BOD5 (mg/l) in two locations. (Note: these data are fictional) Time of measurement Station K4 Station QU2 21 July 1985, 8:00 22 July 1985, 10:35 23 July 1985, 8:10 25 July 1985, 13:43 1 August 1985, 12:20 2 August 1985, 11:55 5 August 1985, 7:22 5.0 6.5 2.0 3.4 4.0 (not measured) 11.2 3.5 21.5 2.0 1.0 < 1.0 3.0 4.5 Deltares 37 of 190 DR AF T GPP, User Manual Figure 4.1: Example of particular data set. Missing values are represented by discontinuities in the line 38 of 190 Deltares DR AF T Data sets and presentations Figure 4.2: Plot of water level (filled contours) and flow velocity (vectors) name, but you are free to select a different name. 4.2 Presentations and selections Internally, the data sets have a type and a subtype. These two properties among others allow GPP to construct a list of suitable presentation forms and selection methods. They are set automatically from all available information. The type indicates the dimensions of the data set: time-series, two-dimensional data sets, three-dimensional data sets etc. The subtype is usually ’SINGLE’, indicating a single component. In some cases, the subtype is ’VECTOR’, indicating two components (a vector quantity), others are used as well. Both the type and the subtype determine which subroutines for plotting a data set are suitable (see Figure 3.15). Sometimes, selecting the file from which the data set should come and selecting parameter, location or time is enough. An example: selecting the water level at a single monitoring station from a result file from Delft3D-FLOW. In other cases, we need the underlying grid as well. This may mean that another file has to be selected which contains information about the grid. As an example we may look at D-Water Quality map files. D-Water Quality does not Deltares 39 of 190 GPP, User Manual know anything about the grid (the underlying computational program, called DELWAQ, does not use the co-ordinates of the grid points, but only derived quantities), hence its output files do not possess any information about the geographical layout. You need to import an extra file (two actually). At present, only curvilinear grids can be imported. The order in which you do that is not important, but it is important to get the right files, as otherwise the data set can not be plotted: its proper type is not recognised. 4.3 Importing the data set The basic procedure to create a data set from a file has been described in chapter 2. But there are in fact several possibilities after you have selected the parameter: select a single location. The result is a time-series (or possibly a set of time-series, if the location has more than one layer). select several locations, in which case the data set is a combination of several timeseries. postpone the choice. GPP automatically selects all locations into the data set. T If the file contains named locations, it is known as a history file. You can: DR AF If the file does not contain named locations, it is considered a map file or a grid file. In the first case, you can: select a single time to get a data set that is defined on some grid. postpone the choice. GPP automatically selects all times into the data set. (It is not possible to select several times for technical reasons.) In the second case, there is no time to select. The parameter has uniquely identified the data that should be imported from the file. The data set will be known by a unique name: it is up to you to accept the name constructed by default or to type in one yourself. The name is important because whenever you need to chose a data set, this name is presented. 4.4 Available presentations Depending on the type of data several presentation forms will be available. Table 4.2 provides some examples (a more elaborate overview is given in Appendix K): During the creation of the data set you may want to postpone the choice of, say, a location. When you select such a data set in the plot dialogue, one of the possible "presentations" will be: Select a location. Besides selections you can also do some operations on data sets. Examples of selections and operations are: Select a single parameter (if the data set contains more than one parameter). Select a single time (used when creating animations, see chapter 7). Select a single layer (if the data set is three-dimensional). Select a fixed M or N grid line. Select an arbitrary transect. Select a vertical profile. Instead of a picture, a dialogue appears which shows the possible choices for the selection or details for the operation. By selecting an item you create a new data set, which is actually 40 of 190 Deltares Data sets and presentations Table 4.2: Presentation forms for various types of data sets Presentation form Time-series Plot of values versus time Cumulative histogram of values (so-called balances) Plot limiting factors XY series Plot of y-value versus x-value Scalar data on a two-dimensional grid2 Plot contour map Plot iso-lines Plot thin dams Plot time bar Scalar data on a three-dimensional grid No direct presentation possible, reduce to some form of 2D data first Vector data on a two-dimensional grid Vector plot Plot time bar DR AF T Data set Grid itself Plot of the grid layout a subset of the original one. This new data set is automatically selected and the possible presentation forms are presented. Besides the above mentioned selections you can do also some operations on appropriate data sets: Calculate the magnitude of a vector parameter. Average over a fixed layer (from the surface) (3D data sets only). Averaged squared vector (m2 /s2 ) over a fixed layer (3D data sets only). RMS vector (m/s) over a fixed layer (3D data sets only). 4.4.1 Types of presentations Presentation forms may roughly be divided in three categories: line graphs (like a time-series) surface graphs (like a contour map) all others (like a grid). This is not to be taken too strict: drawing a grid as a collection of short lines outlining the grid cells could be called a line graph and iso-lines belong to the category of contour maps. The main reason for this distinction is that the resources used by the two categories are different. In the first category we are dealing with one or more series of data points in a graph. Each series needs to be distinguished from the others. This can be achieved with: different line styles and line thicknesses different colours different symbols Symbols are especially useful if you want to show the individual data, whereas colours and line styles are very handy to distinguish more or less continuous series. In order to make the Deltares 41 of 190 GPP, User Manual presentation routines work together, they take these settings from a common source. Presentations which belong to the second category are different altogether: there different colours will be used to indicate a continuous distribution. For example: the colours used in a contour map will follow a rainbow-like sequence or perhaps a range of blue shades, not only to please the eye, but also to better present this continuity. To aid the presentation routines in achieving this aim GPP uses so-called colour ramps and contour classes: Colour ramps are sequences of colours which can be selected by selecting the name of that colour ramp. Contour classes are sequences of numbers which can be edited in a dialogue box (see chapter 3) and are used in the order they are given. DR AF T The third category consists of various unrelated presentation forms which do not use either type of resources. They are independent from other presentations. 42 of 190 Deltares 5 Files and filetypes This chapter focuses on some general features of the data files. For specific information on the models and filetypes that are supported and what special considerations may apply, we refer to the appendices. 5.1 Data files in the user-interface To read the data from the data files GPP uses a simple concept, such that the details of the file structure are irrelevant to you. To be able to read the files properly, it does have to know the structure, or put in another way, the filetype. In the user-interface, this is characterised by the model and by the filetype within such a model. T To facilitate the selection of files, GPP uses a file mask. This is a pattern like "∗.hda" that is used to select only those file names that are likely to be of the right type. The asterisk (∗) matches any sequence of characters. You may change this mask when selecting a file or you may supply a different default mask for files of a certain type. DR AF To summarise the properties of a data file that are important to the user-interface: model filetype file mask The numerical model or other source that created the file Indication of the file’s structure A pattern to be used to pre-select the file names, usually fixed by the conventions used by the model. These properties are defined in the file . Only filetypes listed in this file are available in GPP (see Appendix C.2). 5.2 Representing date and time Time in GPP is always a date and time of day. The routines that read the files are supposed to retrieve such a date and time. Some models do not use an absolute time. Instead, the routines may use the following convention (check the addendum on filetypes): A reference date and time may be given via comments. This will be used to reconstruct the actual date and time for the model results. The layout of such a line is: t0= 1993.12.31 12:59:59 (scu= 1 ) ....+....1....+....2....+....3....+....4 (column numbers) The first part is the date and time to which the relative time 0 in the calculation refers, the second is the unit of the system clock in seconds. Note: It is important that the time units are given consistently, otherwise a distorted picture will be drawn! If the files do not contain a reference date (or the date is not of the correct format), the reference date is set to January 1, 1900. 5.3 Formatted data files Measurement data are often stored in text files or databases of various kinds. GPP offers several filetypes to import such data: the so-called TEKAL and Samples files. Deltares 43 of 190 GPP, User Manual TEKAL files (general) Essentially, all TEKAL filetypes share that structure: The file may contain one or more tables of data, which are independent. They are some times referred to as blocks. A short string (the block name) identifies the "block" or table of data. A line should follow to indicate the number of rows and columns. In the case of data on a two-dimensional grid, a third number indicates the number of cells in the first direction. Each line after that contains the data for one row. Comments can be added before the block name, via an asterisk (∗) in the first column. (Examples appear in the various subsections.) T Thus, the structure is (almost) always as described briefly above. It is a very flexible and easyto-handle format. This is partly because it lacks additional information, such as the quantities that are given in these columns, the meaning of the table and so on. This information must be added by the program or the user. DR AF Within GPP, this lacking information is added in three different ways: By selecting the filetype from the list defined in the file. By using the comments to supply names to the columns. For the one-dimensional variant, an extra dialogue will appear. The files can be used for the following purposes: Time-series or data as function of an arbitrary co-ordinate This is a one-dimensional TEKAL file (meaning that the line after the block name has only two numbers, the number of rows and the number of columns. This type of file is handled in a special way in the user-interface (see section 5.3.3). Co-ordinates for land boundaries: This is also a one-dimensional TEKAL file, but it should have two columns, the first for the x-co-ordinate, the second for the y-co-ordinate. All blocks are read at once, though they define individual poly-lines or polygons. Furthermore: The missing value 999.999 for a co-ordinate indicates a break in the line. Polygons are recognised by the fact that the first pair of co-ordinates is identical to the last pair. Scalar quantities on a curvilinear grid: Files that are used for this purpose require at least three columns, the first two being the x- and y-co-ordinates of the vertex of the grid cell, the others quantities that are given on these vertices. Special features: 5.3.1 To make the subtype correspond to values defined on the vertex (VALUE_AT_VERTEX ), the quantities are called "value 1", "value 2" etc. and they are read as extra parameters. You can associate a particular date and time to a block of data by using a comment line before the block: * Use the keyword to set the time to * 1 January 1990, 10:00: * * time : 19900101 100000 * BLOCK (will be ignored) ... 44 of 190 Deltares Files and filetypes The time string must be given exactly as above, with a space before and after the colon. If no such comment is present or recognised, then a default time is used (starting at 1 January 1900, to make clear that actual date time information are missing). The grid information, that is, which cells are active, is defined implicitly, by the value of the first quantity. If this value is equal to the missing value, then the grid cell is considered inactive. Otherwise it is active. A consequence of this is: all quantities in all tables (blocks) must be defined on this same grid. In general, this condition will be satisfied, but it does mean that you can not combine such files arbitrarily. Vector quantities on a curvilinear grid: T The same format can be used to import vector quantities, such as the transport of matter or flow velocity. The difference is only, that the columns appearing after the co-ordinates are grouped in pairs and the vectors are called "vector 1", "vector 2" and so on. All other remarks hold just as in the case of scalar quantities. Text at geographic locations: It is also possible to apply the TEKAL file format, if you want to read in text strings that should appear at a particular geographic location. The current implementation expects three columns, the first two the geographic co-ordinates, the last a string: DR AF * * Just some text to appear in the plot * BLOCK (will be ignored) 3 5 1000.0 2000.0 " Text 1" 999.999 999.999 " is continued" 2200.0 3000.0 Somewhere in the plot 700.0 1000.0 Text 3 3300.0 2020.0 / Text 4 / This type of data is called geographic text (by lack of a more suitable name) and it will be drawn at the location indicated. The plot routine that does this has several options for positioning the strings relative to the location and selecting the angle and text height. We must make a number of remarks about this filetype: Lines can be up to 80 characters long. The strings are read without leading blanks, unless a delimiting character is used: any character that is not a letter or a digit and is repeated within the string (in the example above: the quotation marks (") and the slashes (/)). Only the first block is read from the file. The co-ordinates are grouped together and appear as one parameter, texts, whereas the strings appear as location names. Because of ODS conventions, the location names can be up to 19 characters long. If the string is longer, then it will be split into two, three or more locations. The coordinates associated with these extra locations are so-called missing values (the value 999.999). You may use this internal convention to join text strings (it might come in handy, in special cases). Some caution must be observed: if the file contains empty lines or uncommented lines outside the tables, the reading routines may recognise extra blocks and give somewhat strange lists. So: whenever possible, follow the above format exactly. Deltares 45 of 190 GPP, User Manual Samples files Yet two other filetypes are supported that share some of the characteristics of TEKAL files, in that the structure is very simple and you can edit them manually: the so-called samples files. Samples files are available in two types: Observation points in a geographical area Lines can be up to 80 characters long Comments can be added at the beginning of the file by starting a line with an asterisk (∗) or a pound sign (#) After the comments a line with the names of the columns may appear (they should be enclosed in quotation marks ("). Names for the first two columns will be ignored though, for technical reasons. Unfortunately, no time information can be given yet. Each line after these should have at least three numbers. The first two are the coordinates of the observation point, the rest are the values that were observed. Values are separated by spaces, tabs or commas. Missing values can not be indicated by two consecutive tabs or commas though, a dot (.) or a question mark (?) is called for, to make the missing value visible. A small example: DR AF T These file have the following format: 5.3.2 <------- up to 1000 columns -------> * Lines with * in the first column are comments * Observation points: X,Y, Salinity, Temperature * ’’X’’ ’’Y’’ ’’Salinity’’ ’’Temperature’’ 1000. 1000. 30.0 14.3 1200. 1540. 31.2 14.5 5210. 522. 25.62 17.5 3111. 354. 22.62 18.9 Remarks: Lines that contain one single value, before the lines with actual data (always at least two numbers) are treated specially: the number on the last line is regarded as a scale value for the third column (this was introduced for the SHIPMA model). A line with the names of the columns may appear only once in the file. Data as function of some independent variable: This filetype is very similar to the corresponding one-dimensional TEKAL file, except that it has no header stating the number of columns and rows and the first column is by convention the independent variable. This makes it unnecessary to pose another question to the user. All remarks for the observations points hold for this filetype as well, except that now, only the first column is special. If you want to represent a missing value, use a period (.) or a question mark (?) to indicate that an actual value is missing. The following is an example of such a file: <------- up to 1000 columns -------> * Lines with * in the first column are comments * Data as function of distance * A question mark is a missing value "Distance" "Oxygen" "pH" "Ammonia (mg/l)" 21. 8.8 7.1 0.01 54. 8.0 7.8 0.21 77. 6.8 6.4 0.4 113. ? 6.4 0.4 202. 4.5 6.0 1.2 Data as function of date/time: 46 of 190 Deltares Files and filetypes For this filetype the first two columns are interpreted as date and time, all others are interpreted as the value of some parameter at that date/time. You can use two different formats for the date and time columns, as shown in the example: "DATE" 19990101 20010201 1991/03/02 1998/02/01 "TIME" 200000 210000 21:20:00 11:12:11 "salinity" 30.0 31.0 29.0 29.1 "temperature" 12.0 12.3 ? 11.32 TEKAL time-series files DR AF 5.3.3 T Remark: To enable a smooth transition between the “old” TEKAL format and the “new” observations files, you can include the two lines that distinguish old-style TEKAL formats (without comments for identifying the columns), that is, the block name and the number of rows and columns. These lines are simply ignored. There is one condition though: in order to detect these extra lines, the program assumes that such a line starts with a letter in the first column. As this is typically true for the majority of such files, this was a simple criterion. As stated above, TEKAL time-series files are treated somewhat special by the user-interface. As this format does not include information about what these numbers are, the ODS routines that read these files use the following conventions: The blocks are supposed to refer to one parameter. The various columns refer to different locations. In case of a "time block" the first column contains the date in the so-called yyyymmdd format and the second column in the hhmmss format (see example). The block name may be up to 19 characters. The block name serves as the name of the parameter. Each block may be described by lines starting with an asterisk (∗). If they contain the keyword "column" and a column number in the right position, the text on these lines is used for the names of the locations. (Important: this information is read with a fixed format, see next example.) The user-interface of GPP will ask for the two columns that contain the date and time or it asks for the start time and the increment, depending on the actual type that was chosen (see Figure 5.1). As an example, Table 4.1 has been converted to a TEKAL file: ....+....1....+....2....+....3....+....4 (column numbers) * 1 : Date and time * column 3 : Station\_K4 * column 4 : Station\_QU2 * column * b001 Measurements of bod 7 4\] 19850721 80000 5.0 3.5 19850722 103500 6.5 21.5 19850723 81000 2.0 2.0 19850725 134300 3.4 1.0 19850801 122000 4.0 999.999 19850802 115500 999.999 3.0 Deltares 47 of 190 DR AF T GPP, User Manual Figure 5.1: Specifying time column of a TEKAL file 19850805 72200 11.2 4.0 The table has seven rows and four columns. The date (given as yyyymmdd) and time (hhmmss) are distributed over two consecutive columns. The third and fourth columns contain the BOD concentration at stations K4 and QU2 respectively. The two entries in Table 4.1 that do not contain valid data are replaced by the special value 999.999, the so-called missing value. This value is skipped in all drawing routines. The graph is shown in Figure 4.1. 5.4 Other properties of the filetypes As mentioned GPP uses the file for defining the properties of the filetypes. Each filetype is defined by three sets of properties: Presentation options This set of properties has to do with the way data sets read from these files are plotted. If a database contains measurement data only, it is likely that you want these data to be drawn as symbols, rather than as connected lines, or, on the other hand you may prefer model data always to be represented as lines without symbols. For this a separate section may be included which sets these properties. Properties for the user-interface This set has been explained in the first section. It is the most "visible" one. Special parameters This set of properties has to do with the meaning of the parameters in the file. For instance, vector quantities are defined in this way. The technical documentation contains more details. In general, it is enough to know that this can be done arbitrarily. If you want to change this configuration file, you are free to do so. We suggest that you change things like the description of the filetype or the order in which the filetypes appear, so that they suit your system better: if you never use a model like PHAROS, why have the filetypes associated with that model appear in the list? 48 of 190 Deltares 6 Layouts and plots 6.1 Layouts In GPP you must select a layout to create a plot. By selecting a layout the following items are defined: the size and position of a graph the size and position of a legend to the graph an optional frame around the whole plot the orientation (portrait or landscape) of the plot T These items can not be changed from within the user-interface. They can be changed by editing the session file, though. All layouts are defined in the file which can be adapted to include user-defined layouts. Note that existing plots are not affected by such changes. DR AF A layout is empty: it only defines where items will appear and what size they have (see Figure 6.1). To show a data set you need to define a plot. A plot, you might say, is a filled-in layout (see Figure 6.2). Because a layout may contain more than one area designated for graphical presentations, so-called plot areas, a data set must be assigned to a plot area, together with the appropriate presentation type. It is quite possible to combine more than one presentation type in a single plot area, to show, for instance, a model grid, a contour map and a vector field. What is important, however, is that the order in which the data sets are shown, is the order in which they were assigned to the plot area. So, if you select a contour map after a model grid, you will not see the grid, as the (filled) colour map is drawn on top. There is currently no way to change the layout of a plot interactively and layouts that you define may not always be suitable for all types of plots, for instance because the legend and the text to a time axis overlap. chapter 7, Customising GPP, describes what the layouts are made up of and how to make new layouts yourself. 6.2 How presentation routines co-operate As explained in the introduction, you have to assign data sets together with the appropriate presentation forms to a plot area. You can combine all kinds of data sets in one single plot area, but there are certain restrictions. The routines responsible for the actual plotting are assumed to co-operate: The colours, symbols and so on they use for line graphs are chosen in a consistent way: the user must be able to influence these settings. If two or more data sets are drawn, they are drawn using the same type of axes with the same scaling. If a legend should be drawn, the legend area is used, as determined by the layout. You might say, that the plot routines share the somewhat limited resources (see Figure 6.2): Deltares 49 of 190 DR AF T GPP, User Manual Figure 6.1: Empty layout four axes, one on each side of the plot area a legend area (if there is one) one single colour ramp one single set of line-styles, line colours and so on The implementation is as follows: First, each plot routine will specify the axes (which axes, what type and the scaling) on the basis of the associated data set. This information is combined into a common specification for all axes. Then each plot routine draws the data set: it uses the set of line settings (as defined for that plot area!) it uses the colour ramp (as chosen for that plotarea) it specifies the legend entries When all this is completed, the general routines in GPP plot the axes and plot the legend (if there is one). The actual plotting may be influenced by specific options other than the ones mentioned above. For instance: the routine to plot time-series has an option to use the right axis instead the left. The options to each routine are described in the separate appendices. Note that GPP distinguishes the following types of axes: Linear and logarithmic axis 50 of 190 Deltares DR AF T Layouts and plots Figure 6.2: Filled-in layout: the plot Deltares 51 of 190 GPP, User Manual T These types are used in xy-graphs and for the vertical axis in time-series plots. Time axis This type of axis is used in time-series plots (it can only be horizontal, at the bottom of the plot area). Geographic axes If a plot routine uses this type of axis, then a vertical and a horizontal axis have the same aspect ratio as the plot area. Specifying co-ordinates yourself (after double-clicking on an axis) will lead to unexpected results. Instead use the zoom functionally to achieve this. Polar axes Some plot routines will use a polar co-ordinate system instead of a Cartesian (for instance to draw a spectrum of directions and frequencies). Special axes For instance for plotting so-called limiting factors, a numerical axis is combined with an axis with textual labels. DR AF Which type of axis is used is determined by the first plot routine in the plot area. As the axes are very characteristic of the plot, they should be properly taken care of. Some plot routines provide an option to set the type of axis, others always use the same type. A plot routine like the one for plotting time-series, defines the bottom and left axis or the bottom and right axis, depending on an option. Therefore you can combine left and right vertical axes with different scaling (but with the same bottom axis). The final scaling is the result of a combination of all data sets in the plot that use this particular axis. 52 of 190 Deltares 7 Customising GPP This chapter describes the use of the GPP configuration files and some other points: Defining printers and plotters T 7.1.1 Printing and plotting Under MS Windows the selection and definition of printers is handled directly by the operating system. You can define new printers via MS Windows utilities. Linux workstations on the other hand do not provide such utilities, at least not for ordinary users. Such workstations have no way of knowing what the capabilities are of the printers that are attached and therefore the programs that use the printers or plotters are to a certain extent themselves responsible. DR AF 7.1 How to define printers and plotters (including some platform-dependent details). How to define layouts. How to set the default options for plot routines. How to change colours, line styles and so on. How to use GPP in an integrated environment and fine-tuning by command-line arguments. For this reason the set-up dialogue for the printers and plotters differs on both platforms. For MS Windows, you can set the standard or default printer via Windows’ standard dialogue. For Linux workstations the default printer is identified via the environment variables LPDEST and PRINTER (see Appendix A). When actually printing, the following dialogue comes up (Figure 7.1): The list of printers and plotters in this dialogue, is taken from the configuration file (see section C.1 for details). It contains a list of printers and plotters and their properties. Important, but somewhat awkward properties are the paper size and the margins (see the example below). They differ for each printer type, unfortunately, and for the printer/plotter driver as well. To get correct values for a printer type not included in the installed list, you will have to experiment. Figure 7.1: Print setup dialogue Deltares 53 of 190 GPP, User Manual DR AF T # # \DGPP: definition of printers and plotters (what are their # properties) # # Note: the margins depend on the device driver used. The margins # in this file have been set correctly for the following drivers: # - HP LaserJet III (HP/GL): GHPL300 # - PostScript (A paper size): HPOSTA # device ’print1 (HP LaserJet III (300dpi) )’ type black-white # alternative: colour uniras-driver ’GHPL300’ orientation portrait # alternative: landscape hardcopy-size 270.0 180.0 # long, short side (in mm) left-margin 5.0 right-margin 2.0 top-margin 26.0 bottom-margin 1.0 print-command ’lp -dprint1 -oraw -onb’ # option: -onb = no banner end-device # # PostScript printer # device ’ps2 (Postscript HP laserjet III)’ type black-white # alternative: colour uniras-driver ’HPOSTA’ orientation portrait # alternative: landscape hardcopy-size 297.0 210.0 # width, height in mm left-margin 0.0 right-margin 0.0 top-margin 0.0 bottom-margin 0.0 print-command ’lp -dps2 -opostscript -onb’ end-device For both workstations and PCs you can save the plot in an external file by using the right “printer”. (Note that the “Delete” option for the print file is inoperative under Windows - if you select another printer than the default one, the print file is always saved whereas for the default printer there is ordinarily no print file. Using this mechanism, you can create PostScript files containing the drawing and use them in reports later on. 7.1.2 Configuring printers for GPP GPP uses a configuration file, called , that describes the properties of the printers and plotters that are available to GPP. This file is used under Windows, mainly to define output to PostScript files. The reason for using such a file is simple: Linux systems provide no way, or at least no simple way, for an application to find out which printers and plotters are available and what their properties are. Thus, the configuration file contains the following information per printer: a descriptive string for the user the type of printer or plotter, colour or black-white the UNIRAS driver, which is a string identifying the software driver to be used, e.g. HPOSTA4 for black-white printers using A4-sized paper with postscript. the orientation of the paper (portrait or landscape) the size of the paper the margins to be respected 54 of 190 Deltares Customising GPP the actual print command All this information is necessary: The descriptive string should contain the logical name of the printer, so that GPP can link the printer to the default printer (LPDEST or PRINTER variable). The software driver creates the print file. If there is a mismatch between the printer’s capability and the print file, this will result in a large stack of useless paper. The orientation of the paper is important as this is sometimes an option in the print com- Procedure for configuring a new printer or plotter To configure a new printer or plotter: Find the description of a printer or plotter that resembles this new device. Copy the set of lines describing it and change the descriptive string so that the logical DR AF 7.1.3 T mand. This must match the orientation of the layout. Hence make two descriptions for the printer: one for each orientation. The actual print command and its options differs from system to system. Sometimes, a small correction to the print file is needed, because the offset is wrong. name (the one used in the environment variable LPDEST or PRINTER is contained in it). Change the print command so that the correct device is used. You can use “%s” to substitute the name of the print file (otherwise it is simply appended to the command string). If the printer is of the same type, you are done. Otherwise it is necessary to experiment with the margins (they correct for the bizarre and completely obscure relation between the printer’s logical co-ordinate system and the actual position on paper). If there is no matching description, try the most reliable printer command languages, PostScript and HPGL (the print files are ordinary text files). If your printer or plotter do not support either of these, then filters like GhostScript might be used. Remark: The easiest way to get the margins right is to print an empty plot with a standard frame via GPP: on an A4 paper the frame lines should be positioned 2 cm from the left and 1 cm from the other sides. Then measuring the actual position of the lines on paper and calculating the diference should give you a fair indication of the correct margins. Sometimes however, the useable area simply is not large enough. Then you will have set the margins to whatever values will make the lines visible. Some PostScript printers, especially those that use the HTPIIA4S driver, require a correction of the origin. Check the script files “slpl” and others in the ./gpp directory on how this is done. Deltares 55 of 190 GPP, User Manual Anatomy of a layout This section describes in some detail what a layout is made up of. Together with the description in Appendix C, you should be able to make new layouts yourself. (In future releases it may be possible to interactively make layouts.) In the frame below a simple example is given of one particular layout. The details are explained afterwards. Layouts have four general attributes: The units in which all positions and sizes are given: centimetres, inches or "stretch". T The latter unit requires some explanation. Layouts with this attribute always fit the window or the paper in which they appear. Layouts with centimetres or inches as the unit attribute will keep the same form and thus are not always able to fill the region. Whether or not a frame is present: If there is a standard frame it can be used to add descriptive text to the plot. The frame has a fixed layout which can not be changed (see Figure 7.1). An alternative is the simple frame that consists of a rectangle only. The size: All layouts have a width and height, given in the appropriate units. These are used mainly to determine the aspect ratio. The actual size depends on the medium. For stretch units the width and height determine the scale of the co-ordinates and sizes (the relative measure). The orientation: portrait or landscape The orientation on the screen, that is what is the long side and what is the short side is determined by this parameter. Complications arise because this is unfortunately independent of the actual orientation when printing or plotting on paper (that is determined by the printer or plotter driver). Be careful to choose a consistent combination. DR AF 7.2 # # GPP configuration: layouts # layout ’portrait-legend’ ’One plot area with legend’ units stretch size 18 27 orientation portrait standard frame frame ’company’ ’DELFT HYDRAULICS’ font ’simplex roman’ 3.5 medium ’Black’ ’main text 1’ ’ ’ default-font ’main text 2’ ’ ’ default-font ’main text 3’ ’ ’ default-font ’upper left’ ’ ’ default-font ’upper right’ ’ ’ default-font ’middle’ ’ ’ default-font ’lower left’ ’ ’ default-font ’lower right’ ’ ’ default-font end-frame plot-area ’single-area’ ’Single plot area’ position 3 7 size 12 19 legend use datasetname position 2 3 size 14 2 end-legend end-plot area end-layout 56 of 190 Deltares Customising GPP Within a layout you may define plot areas, text areas and groups, these being convenient collections of other elements: Plot areas: These determine rectangles in the layout that can be used for plotting. The definition may contain a rectangle reserved for the legend as well. Note that legends are logically associated with a plot area, but they may be positioned anywhere. Text areas: Rectangles for putting extra text in the plot. Groups: Collections of layout elements that have the purpose of defining a new origin. All elements belonging to a group are positioned relative to the origin of the group. This allows you to move elements in the layout by changing the position of the group only. 7.3 DR AF T There is no limit to the number of layout elements or the layouts (except memory), but in practice the available space becomes limiting quite fast. As a consequence, certain layouts are more suited for xy-graphs than others. Some are more suited for printing and others are more suited for display on the screen. Default options for plot routines All plot routines use one or more options that influence the appearance of the actual plot. These options can be set for each instance independently. Moreover the defaults can be set for your personal preferences as well. You can not define new options, but you can define "new" plot routines. Suppose you often need plots of time-series with a right vertical axis. You can copy the definition of the plot routine in the file , edit the default value of the "new" plot routine and give it a unique description (see frame below). The name of the plot routine must remain the same, because this is the link to the actual subroutine that does the work. You are quite free to do this, just as with the defaults. Note that you should not change the types of data sets that can be handled, as GPP might crash because of this. The routines expect certain types of data sets and are not always capable of determine whether a data set of the correct type has been supplied. # # Original plot routine "Plot Time series" has been copied # - use right axis by default # # (name is the same) (description is unique) plot-routine ’PlotTimeseries’ ’Plot Time series (right)’ no-topography accepts-data sets ’TIMESERIES’ ’SINGLE’ ’TIMESERIES’ ’MULTIPLE’ end-data sets options \# Changed default logical ’UseAxisRight’ ’Use right axis’ TRUE .... (other options) end-options end-routine Deltares 57 of 190 GPP , User Manual Graphical settings The file , which is explained in detail in Appendix C.5, contains the graphical settings. As with all the other configuration files, you can adjust it according to your wishes. It contains quite some information, but the following items may be of most interest: Colours: T a line type (one of the predefined types) a thickness (in mm) a colour (one of the colours defined in the colours section) a symbol (one of the symbols defined in the symbols section) DR AF The colours section contains the name and the definition (for instance in RGB values from 0 to 255) of the colours to be used. You should not define too many colours, say more than 50, as the internal colour table has only 220 free entries and you need space for the colour ramps as well. Colour ramps: Colour ramps are sequences of colours used by any plot routine that needs such sequences. You can define any number of colour ramps, but the total number of colours in the colour ramps plus the colours from the colours section must not exceed 220 say. If there are too many, the list is truncated. Line-styles: Line-styles are used when a time-series or a similar interconnected series of points is drawn. Each line style can have: Global parameters: There is a collection of “global” parameters that allow you to set values for such things as: 7.4 the colour-ramp to be used with contour maps and isolines the unit for geographic axes (either meters or kilometers) the orientation of polar axes (either clockwise or counter-clockwise, or a nautical versus mathematical orientation) the language for month names what “escape” characters to use for superscripts and subscripts in text the relative sizes for a customised frame Some can be changed via the user-interface, some can not You are free to define or change any of these, but you must be aware that changing the settings may affect the existing plots in the state file. An example of the above mentioned sections is shown below. Apart from these settings themselves, you can control the occurrence of lines, colours and symbols in two other ways: for each type of device (screen, black-white printer or plotter, colour printer or plotter) for each set of filetypes (the presentation section in the definition of the models and their filetypes) The first is meant to help optimise the appearance of the picture on any output device. The latter is meant to help distinguish, for instance, data sets from measurements (typically presented as symbols) and data sets from numerical models (typically presented as lines). # # Colours section - the names are used in the other sections! # colours ’Black’ 0 0 0 58 of 190 Deltares DR AF ’Red’ 255 0 0 ’Darkred’ 127 0 0 ’Green’ 0 255 0 ’Lightgreen’ 200 255 200 ’Darkblue’ 0 0 127 ’Blue’ 0 0 255 ’Cyan’ 0 255 255 ’Magenta’ 255 0 211 ’White’ 255 255 255 ... end-colours ... (sections for fonts, linetypes) colour-ramps colour-ramp ’Rainbow’ ’Darkblue’ ’Blue’ ’Cyan’ ’Green’ ’Lightgreen’ ’Yellow’ ’Orange’ ’Red’ ’Magenta’ end-colour-ramp ... end-colour-ramps ... (several sections left out) default-settings ... (several options left out) colour-ramp ’Rainbow’ # # Unit for geographical axes: # either meters or kilometers # geographic-axis-unit kilometers T Customising GPP # Alternatives: # kilometers or meters # # Orientation for polar axes: # either clockwise or counter-clockwise # orientation-polar-axis clockwise # Alternatives: clock-wise or counter-clockwise # # Language for months on the time axis # either dutch or english # language-for-months english # Alternatives: dutch or english # # Escape characters: # When used in a text string, the next character # will be subscripted or superscripted. # Choose the characters with care - they can # not be used in the text # subscript-escape ’‘’ superscript-escape ’\^{}’ # # Custom frames (text boxes): # Modelled after the standard frame, # but with variable width and height # custom-frame-width 10.0 # custom-frame-height 3.0 # custom-frame-side right # Alternatives: left, right custom-frame-part1 70 # Percentage of total Deltares 59 of 190 GPP, User Manual custom-frame-part2 30 # Percentage of total custom-frame-part3 0 # Percentage of total # # For MS Windows we offer a crude method to influence the # margins used for printing plots with a frame # (as "devices.gpp" is not used for the system printer) # mswindows-margin-left 0.0 # mm mswindows-margin-right 0.0 # mm mswindows-margin-top 0.0 # mm mswindows-margin-bottom 0.0 # mm end-default-settings 7.5.1 black’ red’ black’ black’ black’ green’ ’Black’ ’Red’ ’Black’ ’Black’ ’Black’ ’Green’ # line thickness ’no symbol’ ’solid’ ’no symbol’ ’solid’ ’cross’ ’no line’ ’plus’ ’no line’ ’no symbol’ ’dotted’ ’no symbol’ ’dashed’ Working environment (mm) 0.1 0.1 0.1 0.1 0.1 0.1 DR AF 7.5 x + - T series ’solid ’solid ’noline ’noline ’dotted ’dashed end-series Directories and files for GPP GPP uses a number of so-called configuration files and they have to be located in some known directory. GPP reads data files and stores the session files. Quite often you can just rely on the defaults. But if you want to use specific configuration files, then you can do so by starting GPP with one or more command line arguments like -workdir (see Appendix A). The idea is: The configuration files are found in some fixed directory: the directory where you installed the program. It is called the system directory. You start the program in some arbitrary directory and you want to use the files in that directory. This directory may not be a directory where you can write files (because you are not the owner). So GPP distinguishes a working directory as well. Thus: At start-up the configuration files are read from the system directory. The state file is read from and written to the work directory. Files that you import are found in the current directory, which may change as you move through the directory structure. The current directory is not well-defined under MS Windows or else it is always the Windows system directory, unless you explicitly specify a different location. So you need to specify it yourself, for instance by setting it in the properties of an item in the Start menu. 60 of 190 Deltares Customising GPP 7.5.2 File types and file names The files that GPP can read come in roughly three categories: Ordinary “text” files, that is, files that you can read and write using an ordinary editor like notepad on Windows or vi on Linux. Binary files with a platform-independent structure or a structure that in practice is platform-independent. This means that in practice GPP on Linux can read all files produced on Windows and vice versa.1 File names and their exact location are a different matter: starts with / T Linux uses case-sensitive names for both files and directories. The full directory name Windows uses case-preserving names and the full directory name starts with “c:\” (or some other drive). To make sure that the proper files are read, GPP stores the full name (file name and the 7.5.3 DR AF directory that contains it) internally and in the session files. If you move the files to a different location (a different computer for instance), you may have to edit the session file – GPP does, however, accept relative names, like “..\..\data\myresult.dat”. Description files Apart from a stand-alone program, GPP offers the facility to work in a so-called integrated environment. In such an environment, you are not confronted with the peculiarities of the underlying operating system, but is shown a user-interface from which you operate the programs without having to know precisely which files to edit and which programs to run. In such an environment, you do not know the names of the files or their location. The assumption made by GPP is that the integrated environment organises the files in some sort of hierarchy. For example: the environment supports a simple scenario or case management, keeping track of data files for different models and different cases. One possible classification can be: Files from different models, but belonging to the same case, are recognised by a short description of the case. Files should also be grouped for the different models as not everybody is interested in all model output all of the time. Hence, some hierarchy is used, which appears "natural" to the user of the system. This hierarchy can be made clear to GPP by passing it the name of a so-called description file: gpp -descfile exmpl.dsc Instead of showing the raw file names, it will show you the files listed in the description file only. A simple example is shown below. # # Example description file # 1 Currently, the Solaris and SGI platforms ares not supported anymore. On these platforms it is possible to produce files with an incompatible internal structure, due to the different byte ordering. The different line endings in Linux and Windows do not matter however Deltares 61 of 190 GPP, User Manual DR AF T begin ’Water quality results’ "del01.his" ’case 1: basic situation’ "del02.his" ’case 2: 10\% growth of waste loads’ "del03.his" ’case 3: realisation of all policies’ end begin ’Waste loads’ "../waste/inp01.tek" ’case 1: basic situation’ "../waste/inp5a.tek" ’case 3: realisation of all policies’ "../data/meas\_r2.tek" ’measured waste loads (1993)’ end ... 62 of 190 Deltares 8 Advanced features This chapter describes a number of features that are useful when you want to: standardise the pictures or use batch editing, in general, create large numbers of pictures with as little actions as possible create animation files that are useful for presentations 8.1 Standardising pictures 8.1.1 Batch processing T In many cases, certainly when evaluating the results of several model calculations, or preparing a report with a large number of plots, you will want to minimise the effort to produce these pictures. Another requirement is that they be uniform - use the same plot layout, graphical settings etc. GPP has several features that can be employed. We will discuss them one by one. DR AF Within GPP, batch processing is loosely defined as printing without you having to select the plots manually. This can be achieved by the command-line option -batch, followed by the name of a session file. If this is specified, GPP will read the session file, print all pictures it contains to the default printer and terminate when this is done. You need do nothing, except wait for it finish. We must make some remarks about the usage of this option: On Linux the printer or plotter can be specified by a second option: -printer, followed by a printer name defined in the file. Unfortunately, this can not be done on PC: the printer that will be used is the default printer. Though you can not do anything, for technical reasons, the program will still come up with the start-up screen and the main window. If, under Linux, the window manager asks you to place windows interactively, then the appearance of the main window necessitates at least this action from you. The cause is the policy of the window manager. If you want to use this facility, make sure the windows appear on screen without interaction. (Under the Motif window manager, this is the InteractivePlacement property which should be false.) 8.1.2 Editing the session file A second step in reducing the effort to produce pictures is editing a state/session file outside the user-interface of GPP. To understand this, note the following: The state/session file is a text file which is divided in blocks. Each block contains other blocks defining parts of a data set or a plot. By manipulating these blocks you can create a new session file that contains different data sets from different files in different plots. Because the session file is made up of blocks, an edit program could manipulate individual lines as well as blocks of lines. For example: replace the list of class values for contours by a standard list or add the lines defining a land boundary data set to each plot area of interest, so that each plot will contain the land boundary. We will list a number of possible edit actions in detail: If you have prepared plots from one data file and you want to get the same sort of plots for another file (of the same type), then you can replace the name of the file(s) in the definition Deltares 63 of 190 GPP , User Manual of the data sets. For instance: The original data set is defined as (results from calculation 1): dataset-def ’NH4’ model ’DELWAQ’ filetype ’ODS_DELWAQ_HIS_BIN’ file "scen1.his" "" "" end-files parameter ’NH4’ all-times location ’noordw 4/10’ end-dataset-def You can simply change the file name and read the new session file: DR AF Warnings: T dataset-def ’NH4’ model ’DELWAQ’ filetype ’ODS_DELWAQ_HIS_BIN’ file "scen2.his" "" "" end-files parameter ’NH4’ all-times location ’noordw 4/10’ end-dataset-def This can only be done with files of the same type. GPP will not verify this, nor in some cases would be able to do so. If a parameter is asked for that does not exist in the new file, then the data set can not be defined. Similarly, locations have to match. Times are matched by looking for the one equal or just later than the one asked for. If you have data from one location, parameter, layer or time and you want to see the data for another location, parameter, layer or time. One way to proceed is: Create a data set that contains all locations, parameters, layers or times that you might be interested in: ◦ For locations and times, this is simple: do not select a single location or time, but click Create directly. ◦ For parameters, this will depend on the file type: some file types can produce so- called hierarchical parameters, such as the D-Water Quality balances file and the PHAROS files. ◦ For layers you need not do anything special. Insert a block for creating a resultant dataset. For instance: resultant-dataset ’NH4 (tersch 4/10)’ selection ’SelectLocation’ operand ’NH4’ options logical ’Interactive’ false string ’SelectedString1’ ’tersch 4/10’ end-options end-resultant-dataset Another way is: Copy the definition of a data set and change the name of the parameter, the location or the time value. Adjust the name of the data set (as they must be unique) For example: dataset-def ’NO3’ model ’DELWAQ’ 64 of 190 Deltares Advanced features filetype ’ODS_DELWAQ_HIS_BIN’ file "scen1.his" "" "" end-files parameter ’NO3’ all-times location ’noordw 4/10’ end-dataset-def Warning: You need to give the new data set a unique name and use that whenever you use it in a plot. If you want to use a different data set in a plot, but with the same plot routine and the same The new data set must be of the same type and subtype as the previous one. GPP will assume that is the case. Difficulties arise, from strange plots to program crashes, should this not be the case.1 T options, then you can simply replace the name of the old data set with the new one. Warning: If you use a different data set, the axes may not have an appropriate scaling or the contour By setting the axis type of any axis to unknown-axis, rather than to linear-axis and so on, you force a re-scaling of the axis. By replacing the list of values for contour classes by the single keyword automaticscaling, you force re-evaluation of the contour classes. DR AF classes may not match the values: If you require a uniform zoom area for contour plots and such, you can copy the axis definitions for a plot area that is to your liking to any others using similar type axes. Warnings: The sizes of the plot area are important, as the limits for the horizontal and vertical geographic axes are coupled. Use this only for plot areas with the same aspect ratio. If the aspect ratio is slightly off, you may change the type of the axes into linear in stead of geographic. By doing so you break the connection (the risk is that the picture gets distorted a bit). It may be safer to try and resize the plot area itself. An alternative method is to create a dedicated layout. The layout will then contain the axes definitions and they will be copied in directly by the user-interface (see the next section). If you want to add a set of standard data sets (like land boundaries) to each plot area, you can do so by copying the lines dataset ... to end-dataset that put such a data set with the associated plot routine into the plot. The order in which such blocks appear in the plot definition is the order in which they will be drawn. Warning: When you edit a session file yourself, you must make sure that the syntax is correct. GPP will warn about syntax errors and stop reading the file. Something GPP will not do is check whether data sets are indeed compatible: When a link to a topographical data set (better known as a grid data set) is encountered in the definition of a data set, there is no check if this is indeed compatible with the data set itself. When a binary operation, like addition, is specified, again there is no check whether the two data sets are indeed compatible. 1 Actually, the condition is a bit more relaxed than this. The given condition is the simplest and the safest. To check the type and subtype: see the definition of the data set in the state/session file. Unfortunately, this does not work with the resultant data sets. Deltares 65 of 190 GPP , User Manual There is, in general, no way to make sure that the data files are of the same type as stated in the definition. These checks should be built in to make the editing of session files safer. Right now, these are the caveats you must deal with. Especially the last one is of importance! Using dedicated layouts T A layout defines the position of plot areas, the (default) contents of the frame and so on. Internally, the data structure for a layout is also used for keeping information about the plots. As the plots need to retain information about the extreme axis co-ordinates and other parameters for the plot area, this information is actually part of the data structure for the layout. In other words, layouts may now also define the default axis settings: colours, visibility, but also the extreme co-ordinates, in fact anything there is to tell about plot areas and the associated axes except for the data sets and plot routines. Using this new feature, the layouts may be specialised in such a way that you can zoom in on a fixed area, if you specify default axis settings via the layout. Simply copy the lines that define the axis settings from a plot definition into a (new) layout and any data set that is drawn in that particular plot area will be plotted using these very same co-ordinates. This works not only with geographical axes, but in fact with any axes. DR AF 8.1.3 It does have one drawback: the layout becomes dedicated to a particular type of plot, and you will be forced to be careful about the sort of presentations you use in it. (Currently, there is no fully operational auxiliary program that helps you with the editing.2 ) Below is an example of a filled-in layout: layout ’portrait-filledin’ ’Partly filled in, with legend’ units stretch size 18 27 orientation portrait no frame plotarea ’single-area’ ’Single plot area’ position 3 7 size 12 19 legend position 2 3 size 14 2 end-legend # # Define the default axes # default-area-settings axis bottom type time-axis visible yes text ’’ start 1997/02/05 12:00:00 stop 1997/02/11 12:00:00 stepsize 1:00:00:00 default-axis-settings end-axis axis left type linear-axis 2 You can use scripting languages like AWK or Perl to achieve the automated editing via small dedicated programs. This is the most practical solution, but thus require some programming skill. An example is shown in Appendix E. 66 of 190 Deltares Advanced features visible yes text ’’ start 7100 stop 7350 stepsize 25 default-axis-settings end-axis end-plotarea end-layout Note that this is simply an example and has no particular meaning. T This makes a layout more specific. The reverse situation occurs with the definition of plots. These specify precisely what numbers to use on the axes. It would be nice, to allow some automatic scaling, when putting in a different data set than the one(s) used to define the plot. This can now be done: by replacing the type of the axis in question by the keyword “unknownaxis”. This triggers the scaling algorithm to use the actual scaling information from the data sets in the plot area, rather than rely on the values from the definition. DR AF The last remark about layouts concerns the positioning of the legend. Normally, the position is given with respect to the lower-left corner of the whole plot, as is the position of the plot area to which it belongs. By using the keyword relative-position instead of position you can place it with respect to the lower left corner of the plot area. Thus it is easier to vary the layout: plotarea ’single-area’ ’Single plot area’ position 3 7 size 12 19 legend relative-position -1 -4 size 14 2 end-legend 8.2 Creating animations Creating animation files is relatively simple, but the procedure is a bit special and there are some pitfalls some of which are platform dependent. This section will clarify both the procedure and the pitfalls. The procedure can be divided in three steps: create data sets that contain several time steps so that the results can be drawn for these times prepare individual pictures (or frames) for each time create the animation file from the individual frames Suppose you have a file that contains the salinity over a whole model grid and several times. Rather than selecting the parameter and a time in the dialogue to add new data sets (click Add in the Data Group Datasets), you simply select the parameter and do not select a time. This will result in a data set defined over the grid with more than one time. Such a data set can not be drawn directly, instead you are asked to select a time when adding the data set to a plot. Select a time (this needs not be the first time), prepare the whole plot, by adding a land boundary, changing the plot options etc. When you are satisfied (see the pitfalls), then click Start animation (Step 2). The result of this action is that the data for the first time are drawn and the picture is stored in a bitmap file, then the data for the next time are retrieved and Deltares 67 of 190 GPP, User Manual drawn. The new picture is stored in another file and so on. When the hourglass disappears, all times will have been treated this way and a series of picture files results. These files are called , , <. . . > (on Linux) and , , <. . . > (on MS Windows). They are found in the work directory. The files are either in XWD-format or in the Windows bitmap format. Specialised programs, such as ImageMagick’s convert can be used to create a very compact animation file (Step 3)3 Other programs create AVI-files, a file format popular with Windows multimedia applications. The drawback is that the file seems to be about as large as the sum of the original bitmaps. It is beyond the intentions of this manual to discuss further the advantages and disadvantages of the various programs. Many freeware and shareware programs exist, but the tools from ImageMagick give very good results. T It is more important at the moment to know the pitfalls of the procedure within GPP: Once started, the animation can not be stopped in an elegant way. You can stop it, though, by closing the window from the system menu. Data sets that are used in an animation do not, currently, retain the original time, but rather DR AF refer to the last time. When preparing a different plot, you should keep this in mind. Automatic scaling of, for instance, contour classes is based on the first time step shown, not on the data in the whole time frame. So either choose a representative time or change the contour levels manually. Existing animation files will not be overwritten, rather the count is increased until a gap is found. GPP does not give any warnings about it. When making an animation of different data sets in the same plotarea, the various data sets should have the same time information (i.e. start and stop time, and time interval). When making an animation of a plot with more than one plotarea, all plotareas should be filled-in. 8.3 Facilities for making animations It has long been possible within GPP to create picture files for each timestep in a data set. However, converting these picture files into a single animation file, such as an AVI file or an MPEG file was not supported via GPP. The reason for this is that there are many programs available that can do this conversion and every user was supposed to find an appropriate solution for themselves. For the Linux platform, a popular choice for such a conversion program is ImageMagick’s convert (http://www.imagemagick.org). For MS Windows there are many free and commercial products available. Unfortunately most come with a GUI that helps you select and order the individual frames but they do not allow you to specify them via a batch file. The solution described below does make it possible to automate the conversion process on MS Windows. It relies on a program called VideoMach. As this is a commercial product, you will have to get a trial version yourself and decide if this is something you want to continue to use (http://www.gromada.com/videomach.html). But it at least gives a smooth procedure to turn the frames into an AVI file. The procedure is simple:4 Create a session file with the data sets you want to show Prepare the picture that is to be animated as the first plot 3 4 The procedure for creating an animation is described in more detail in Appendix D. By courtey of S. Luger, CSIR South Africa. 68 of 190 Deltares Advanced features Store the data sets and the plot in a session file Then run the batch file "gpp_animate.bat" with the name of the session file as its argument (you will find this batch file in the directory ...\delft3d\w32\gpp\bin\): C:\> gpp-animate.bat filename.ssn This will start GPP with a number of command-line options: -animate to start the animation for the first plot -plotsize to set the width and height of the plot window to convenient values Automatically exporting data sets It is possible to automate the export of data sets. This is especially useful if you need the data from several data sets in a different format for further analysis. The method for doing this consists of the following steps: DR AF 8.4 T When the animation is completed, one or more frames remain on disk and the conversion program is started. The end result is an AVI file. Define the data sets and store the definitions in a session file Insert blocks like the one below into the session file (by using an ordinary text editor), these blocks should come after the data set they refer to: export dataset ’name of dataset’ to-file ’filename’ export-routine ’WriteTimeseries’ options # If needed end-options end-export Load the session file into GPP. During the loading process, the export functions will be executed as indicated by the export blocks. (You can of course do this via the batch option too.) The format of the export blocks is straightforward: A block starts with the keyword export and ends with the keyword end-export. Within the block you need to indicate what data set to export, what export routine to use and to what file to write the data. Because several export routines have options that control their operation, you need to specify a block of options too. The names of the export routines (not the descriptions) and the corresponding options can be found in the routines.gpp file. For completeness, here are a few examples: Exporting a timeseries to a file which uses spaces to separate the values: export dataset ’name of dataset’ to-file ’filename’ export-routine ’WriteTimeseries’ options end-options end-export Deltares 69 of 190 GPP, User Manual Exporting a time-series to a file which uses tabs to separate the values (a format commonly used by such programs as MicroSoft Excel): export dataset ’name of dataset’ to-file ’filename’ export-routine ’WriteTimeseries’ options list ‘SeparatorType’ ’tab’ end-options end-export (If you want a comma instead, use ‘comma’ as the value to the option ‘SeparatorType’.) export dataset ’name of dataset’ to-file ’filename’ export-routine ’WriteTSTekal’ options end-options end-export T Exporting a time-series to a “TEKAL” file (one with a simple tabular structure): (If you want a comma instead, use ‘comma’ as the value to the option ‘SeparatorType’.) DR AF Exporting a 2D data set to a “TEKAL” file: export dataset ’name of dataset’ to-file ’filename’ export-routine ’WriteMAP2DTekal’ options end-options end-export (In most cases, there is no option required.) Though the list above is not exhaustive, it does include the most common types of output. 8.5 Automating tasks As of version 2.11 GPP provides several so-called scripting interfaces, which enable sophisticated automation and customisation of tasks. For this it uses the Tool Command Language or Tcl, which is a very simple yet flexible and powerful language. Scripts are interpreted rather than compiled programs or routines and this makes it possible to extend the program without having to recompile and link. Instead the program reads the source code at start-up and executes it when asked. Another advantage of scripting is that it can hide many of the tedious details from the casual programmer, making the source code more concise and easier to read and write. You can distinguish two sets of scripting capabilities. The first set is more or less an alternative to the user-interface: rather than interactively define data sets and plot, you can use the scripting interface to programmatically define them and thereby automate the tasks. This has not been implemented to its full potential yet and we mention it pro memorie. The other set allows you to define your own routines for presenting and exporting the data sets. This is the subject of the next section. 8.6 Defining your own plot and export routines Via the scripting interface you can define a routine to plot a particular data set or to export the contents to a file. For instance: GPP does not contain a plot routine that draws a truncated Fourier series (that is: the time-series is fitted to a Fourier series with only a few terms and 70 of 190 Deltares Advanced features that series is then drawn). With the scripting interface, you can define such a routine yourself and add it to GPP. When you use the scripting interface to define new plotting or exporting routines, you need to follow a simple protocol: For plotting routines, there are two steps: Specify the co-ordinates for the axes and what kind of axes should be used Draw the data set T The reason for these two steps is simple: the axes are a common resource, they are shared by all the data sets that are plotted within the plot area – this way you can combine two or more time series for instance in one graph. The first step allows GPP to make a common scaling and the second step allows the individual routines to use this scaling. For exporting routines, there is only one step: Write the data in the form you want to the external file DR AF The file to which the data should be written is managed by GPP, so there is no need to open or close it. The routines must be registered within GPP. For this, there is a simple mechanism: Use the plot-routine command to register a new plotting routine Use the export-routine command to register a new export routine Both commands have the same interface (modelled after the blocks in – see section C.4): ◦ ◦ ◦ ◦ ◦ ◦ A formal name (for recognition in the session file, this must be unique) A title (for display in the user-interface) A list of acceptable types for topographical data sets A list of acceptable types for ordinary data sets A list of options The code for the routine Here is an example: plot-routine PlotTest "Plot Cumulative Distribution" {} \ {TIMESERIES SINGLE} {} { PlotTest $mode } Let us examine a simple example: a routine to draw the (estimated) cumulative distribution for a time-series: First step (mode “specify”): We need to determine the range for the horizontal axis. So we get the values from the data set via the command “dataset data” and examine them in the “foreach” loop. We take the range for the vertical axis to be 0 to number of values. Second step (mode “draw”): We need to determine the rank of each value in the time-series – get the values and sort them in ascending order (via the lsort command). We then loop over the sorted values and draw the line segments, where the vertical coordinate is the index in the list. This way we get a raw estimate of the cumulative distribution. Deltares 71 of 190 GPP , User Manual proc PlotCumulativeDistribution {mode} { # # Determine the extremes # if { mode == "specify" } { set vmin 1.0e20 set vmax -1.0e20 set count 0 foreach value [dataset data] { if { $vmin > $value } { set $vmin $value } if { $vmax < $value } { set $vmax $value } incr count } } DR AF # # Define the axes that we want to use # setaxis bottom linear vmin vmax setaxis left linear 0 count T Here is the code: # # The actual drawing part # if { \mode == "draw" } { # # Select the axes, so that we can use ’’natural’’ coordinates # useaxes bottom left;# in that order set count 0 set sorted [lsort --real [dataset data]] foreach value $sorted { if { count == 0 } { set xend $value set yend $count } else { set xbgn $xend set ybgn $yend set xend $value set yend $count plotline $xbgn $ybgn $xend $yend } incr count } } } If we want to export this distribution to an external file, then we could do this via the following routine (its one argument is the handle to the output file): proc WriteCumulativeDistribution {outfile} { set count 0 set sorted [lsort --real [dataset data]] foreach value $sorted { puts outfile ’’$count\t$value’’ incr count 72 of 190 Deltares Advanced features } } Note that we use a tab (\t) to separate the two values. The routine could be enhanced by also writing information about the data set in question and so on. Script commands For plotting the following commands are available, besides the general commands of the scripting language: plotline x1 y1 x2 y2 Plot a straight line segment from (x1,y1) to (x2,y2) Plot the text string at position (x,y) setcolour colour T plottext x y string Set the colour for drawing or filling. The colour argument can be a name or an index as returned for colour options. setthickness thickn Set the line thickness (in mm). getarea Returns a list of four numbers: the minimum x and y co-ordinates of the plot area and the width and height (all in mm). getworldcoords Returns a list of four numbers: the minimum and maximum x co-ordinates and the minimum and maximum y co-ordinates of the current world co-ordinate system. setaxis which type min max step Let the axis at which side (bottom, left, right or top) from min to max (at least) with optionally a stepsize of step. The type of axis is type (linear, logarithmic, time, geographic or polar). useaxes horiz vert Select which axes to use when drawing (where horiz is either “bottom” or “top” and vert is either “left” or “right”) dataset subcommand Get information about the data set to be drawn. The subcommand determines what information is returned: DR AF 8.6.1 name: return the name of the data set parameters: return the names of the parameters it contains (as a list) locations: return the names of the locations it contains (if any, as a list) times: return the times it contains (as a list) data: return the data it contains (as a list) getoption name Return the value of the named option. If there is no such option, an error is raised. For exporting only the dataset and the getoption commands are available (as they have nothing to do with plotting). Deltares 73 of 190 DR AF T GPP, User Manual 74 of 190 Deltares 9 Installation Installing GPP is simple: most of it is taken care when you install the Delft3D package. A few items remain and they are described separately for each platform. 9.1 Installing on the PC The first step in the installation is taken care of by the Delft3D installation procedure. You will find that the GPP executable is stored in a directory under Delft3D (the name is . . . \w32\gpp\bin) and the configuration files can be found in . . . \w32\gpp\lib. There remain these two issues: You may want to run GPP outside Delft3D. DR AF T In that case, making a short-cut in the standard MS Windows way will suffice. Note that the start-up directory for the short-cut will be the system and working directory for GPP, unless you give the proper command-line options. You may want to customise the configuration files. As explained in chapter 7, the configuration files are read from the GPP system directory. Simply create a separate directory and copy the files (*.gpp) in the lib directory to this new one. You can then set the start-up directory for the short-cut to that same directory. Or you can use the command-line options to make GPP read the customised versions. Remark: When you use GPP via the Delft3D menu system, it will read the set of configuration files found in the ..\w32\gpp\lib directory, as no special system directory will be specified. 9.2 Installing under Linux The first step in the installation is taken care of by the Delft3D installation procedure. You will find that the GPP executable is stored in a directory under Delft3D (the name is $D3D_HOME/$ARCH/gpp/bin) and the configuration files can be found in $D3D_HOME/$ARCH/gpp/lib.1 There remain these two issues: You may want to run GPP outside Delft3D. Simply start the program via: > gpp (with or without additional command-line arguments) You may want to customise the configuration files. The script gpp_install will create a directory /̃gpp if it does not already exist and copy the default configuration files to that directory. The script will make a backup of any existing configuration files. Simply type: > gpp_install Of course, if you want to use specific configuration files, you can do so by copying these configuration files to a separate directory and edit them. Then run GPP via: > gpp -sysdir some directory Remark: Under Linux GPP is started via a shell script, even in the Delft3D menu system. This means that it will read the set of configuration files found in the directory $HOME/gpp, 1 The environment variables are set by the Delft3D login script or profile. Deltares 75 of 190 GPP, User Manual DR AF T if you have such a directory (run gpp_install for this) or from the central directory if you do not. 76 of 190 Deltares 10 Glossary Below is a list of terms commonly used in the context of GPP: colour ramp command-line argument configuration file contour classes data set Delft3D devices.gpp dialogue File that contains certain information important to the working of Delft3Dgpp Sequence of numbers that are used to create contour maps and such Collection of data, identified by a unique name Comprehensive user-interface for multi-dimensional models Configuration file, contains definition of printers and plotters User-interface element, an area on the screen meant to enter data in some way or other. It can be moved, but in most cases it can not be resized Subroutine to export the data in a data set to an external file. May have options Output file from a model, containing results, or a database ods type of an output file Configuration file, contains models and associated filetypes File containing previous data set and plot definitions (the last state is saved in it) Representation of date and time in year, month, day of the month etc. File containing time-series for quantities at separate locations Internal representation of date and time, as the number of days since a reference date and time. Specification of the position and size of plot areas, legends additional texts etc. Operating system that resembles UNIX User-interface element that allows selection from a list User-interface element that allows selection from a list, but the list has to be opened first Configuration file, contains definitions of layouts Location in the area that is studied, such as a monitoring station File containing information on the value of a quantity in the whole model area, such as the concentration distribution at several times. User-interface element, represents one or more tasks that can be selected with the left mouse button User-interface element, collections of pull-down menus. Selecting an item shows the pull-down menu Computer program which produces the output files (or any other source of datafiles) Special parameter, handles the grid used by models but can also contain geographical data Windowing system commonly used on PC’s. In this manual the term covers Windows 95, 98, NT and XP Open Data Structure, a set of concepts and subroutine definitions to deal with a wide variety of filetypes DR AF export routine Time given in the form of calendar date and time Routine in GPP designed to perform a certain task using data sets, such as plotting or exporting the data to an external file Sequence of colours that are used for instance in contour maps Options that can be specified at start-up T absolute time action routine file filetype filetype.gpp gppstate.0 gregorian date history file julian date layout Linux list box list button layouts.gpp location map file menu menubar model model-grid MS Windows ODS Deltares 77 of 190 GPP, User Manual operation routine options parameter plot plot area plotroutine presentation push button relative time routines.gpp Options for action routines (defined in file routines.gpp) Quantity for which data can be imported Layout plus data sets and associated presentation forms Area in a layout or plot designated for plotting data sets Subroutine that plots the data set in some form. May have several options to customise the appearance of the plot. Form of graphical presentation of a data set User-interface element to make an action start (or finish) Time given as the number of time units since a reference time Configuration file, contains the definitions of action routines with their options Method of creating a subset of a particular data set Subroutine that takes care of the selection (including the necessary dialogue) File containing the definitions of data sets and plots Configuration file, contains graphical settings Name of a general plot package that defines one particular file format User-interface element to enter a text string (in the case of GPP only single-line texts can be entered) Time (date and time) for which the imported value holds User-interface element, area on the screen that acts as a unit. Can be moved and resized. DR AF selection selection routine session file setting.gpp TEKAL text field Operation on the data in one or more data sets, like adding two parameters or calculating the average over time. This will result in a new data set Subroutine that takes care of a particular operation T operation time window 78 of 190 Deltares Glossary DR AF T Deltares, 2016. “BIBTEX key with no entry, needed if no citations are made in the document.” Deltares 79 of 190 DR AF T GPP, User Manual 80 of 190 Deltares A Command-line arguments GPP recognises the following command-line arguments (see below for some examples): This indicates which X-terminal or console to use. It is a standard X command line argument and hence has no meaning under MS Windows. (Other X arguments are recognised as well, but they are much less common.)1 -sysdir Specify the directory where the configuration files can be found (different from the default directory). -workdir Specify the directory where the state file (gppstate.0) can be found and will be written to. Any other files produced by GPP will also be written to this directory, unless the name explicitly refers to a different location. -descfile Specify a so-called description file. This allows GPP to link to integrated model systems where you do not deal with files directly but with scenario names and such. The actual data files are hidden from you and therefore they should not appear in GPP either (see chapter 7) DR AF T -display -session Specify the session file to read instead of the default state file -batch Specify the session file to read and print all the plots it contains. After that, the program will finish. -animate Specify the session file for which to automatically start the animation. Note only the first plot is animated in this way. The program will automatically stop when the animation is completed. -convertto Convert the raw bitmap file to a file of the type indicated by the extension (like: gif). This option relies on ImageMagick and for valid extensions we refer to the ImageMagick documentation (see ). -printer Specify the name of the default printer. This makes sense under Linux only, as on PC a different method is used. This option overrides the values from the LPDEST and PRINTER environment variables. -plotsize Specify the initial size of plot windows as width and height in pixels. For instance: -plotsize 600x400. Useful for controlling the result of an animation. -noprint Do not send the print files to the printer. This is useful in combination with the -batch and -savefile options. Printing will be suppressed and instead the print files are saved. This is useful under Linux only. 1 Sometimes it is useful to specify a foreground and background colour, if the display can not allocate the colours from the resource database. This would look like: gpp -fg black -bg white. Such arguments are not taken care of by GPP explicitly and cause it to complain about unknown arguments. Simply ignore these messages. Deltares 81 of 190 GPP, User Manual -savefile When printing, save the print file (that is do not delete it after the print command has finished). This is useful under Linux only. -scriptfile Instruct GPP to run a script file after initialisation. This enables you to automate certain tasks, like opening a plot window. -verbose Instruct GPP to print additional information on the screen, such which command-line options are used and where all the files come from. This should help you to identify possible problems with the configuration. Examples: -sysdir $HOME/gpp DR AF gpp -display foo:0.0 -workdir . T Note that the arguments are evaluated from left to right and that they take immediate effect. If you rely on relative directory names, you must be aware of this. This is used under Linux to make GPP use the X-terminal called "foo", get the statefile (if any) from the current directory and use the configuration files from the directory $HOME/gpp. gpp -printer laser1 -savefile -noprint -batch scen1.ssn Select the "laser1" printer from the file as the printer to prepare print files for, leave the print files, do not send them to the printer. Use the session file and process this in batch mode, so that we get all the pictures in it in a bunch of print files. GPP uses a small number of environment variables. They are listed in Table A.2. You do not need to define them, as appropriate defaults are supplied. Remark: On PC, GPP uses a number of dlls, notably the XVT dlls. When loading the program, MS Windows will search for any such libraries and uses the PATH variable for this. It is safest, however, to install these libraries in the same directory as the executable. Table A.2: Environment variables used by GPP Environment able vari- DISPLAY GPPHOME LD_LIBRARY_PATH LM_LICENSE_FILE LPDEST PATH PRINTER UIDPATH 82 of 190 Platform Meaning Linux Linux Linux Both Linux MSWindows Linux Linux Name of X-terminal to be used Directory where GPP has been installed Path for locating the shared objects Full name of the license file Name of the standard printer Used for locating the DLLs Also name of the standard printer Path for Motif UID file Deltares B ODS error codes The table below gives the meaning of the ODS error codes. Sometimes the code is displayed instead of an explanatory text: Description Name 0 1 2 3 10 11 12 13 14 15 16 17 20 21 30 31 32 35 36 37 40 41 42 43 44 45 91 92 99 Okay Unable to determine filetype File type not implemented in this version File is not of indicated type File does not exist No free handle (too many open files) File already open File locked by other program Access denied/file is read-only Record locked by other program Cannot lock file/record/share not installed File not new File does not contain wanted information Unexpected end of file Too many parameters found for array space Too many locations found for array space Too many times found for array space No. of parameters < 1 No. of locations < 1 No. of times < 1 Bad date/time format RunId not equal Par. not equal Loc. not equal Time not equal Time-step too small (time can not be represented) Buffer space too small (warn WL technical support) No space left on device Other error IEOK IEUNDE IEUNKN IETYPE IENOFI IENOHA IEFIAO IEFLCK IEFIRO IERLCK IENLCK IEFNNW IEINFO IEUEOF IEPMNY IELMNY IETMNY IEPLOW IELLOW IETLOW IETIME IERUNI IEPARI IELOCI IETIMI IESTEP IEBUFF IEDISK IEOTHR DR AF T Error code Deltares 83 of 190 DR AF T GPP, User Manual 84 of 190 Deltares C Description of files used by GPP GPP uses the following configuration files: Which printers and plotters are defined for the system (used only on workstations) Description of the filetypes and the models or information sources in general they belong to Layouts of the plots that can be used Plot routines and such and their properties Script library Graphical settings for (new) plots T It also uses a so-called state file, , which contains the data sets and the plot routines that were defined during the last session and session files which serve the same purposes. They can be explicitly selected via the user-interface. DR AF In this appendix the format of these configuration files is explained, as well as that of the state or session file. All these files are simple text files (or ASCII files) so that if you want to, you can edit them via a standard text editor. This appendix also describes the X resources files for GPP that are used under Linux. C.1 Description of the file GPP uses a device definition file to define the properties of the printers and plotters. This file is used only under UNIX/X Window, as X Window or indeed the UNIX operating system itself provides no way to identify the printers, plotters and their capabilities. Under MS Windows the operating system itself is responsible for the printer and its capabilities. Under Linux the method of printing and plotting is simply this: produce a file which can be printed or plotted (taken care of by agX/UNIRAS ROUTINES and device drivers) issue a command to send the file to the printer or plotter. As the workstation itself provides no method to check the capabilities of the device, you must yourself take some care: a PostScript file on an ordinary printer simply produces a large stack of paper with a lot of print commands. The above way of working allows you to save the plot file, something which can only be achieved in MS Windows or Windows NT with screen grabbers (we will work on it, it is not that hard). The following is a description of the format of the file containing these definitions: Any text following and including a hash (#) is considered comment and is ignored up to the end of the line. Any number of blanks can appear between keywords and values. They are used as separators. The file starts with a version string in the following format: version 2 minor 00 Each printer or plotter is defined by a separate block. The order of the blocks is irrelevant, though the order of the statements within the block is fixed. Each block starts with a descriptive string, which will be shown to the user. The string Deltares 85 of 190 GPP, User Manual includes the name of the printer or plotter as it is known by the system as the first word. For instance, if the system has a fast printer called "prt1" and you would print to it via a command like: lp -dprt1 file, then the description might look like: device ’prt1 (fast printer)’ Other useful information may include: the type of printer or its location. The printer’s name is used to determine the default printer (LPDEST or PRINTER) in the list of devices. The following properties are important: can it print or plot colours? what paper size and orientation? what print command? # Description useful for user # Either black/white or colour # Consult uniras documentation! # # # # in mm, note the order the actual paper size may require correction: seldom the whole sheet is useable DR AF device ’ ’ type black-whitetextbar colour uniras-driver ’ ’ orientation portraittextbar landscape hardcopy-size left-margin right-margin top-margin bottom-margin print-command ’ ’ T In the file: # how to put the print file # on the printer/plotter end-device This block may be repeated as often as necessary. The following is an example, defining a typical HP LaserJet printer, capable of PostScript: device ’in2las4-P Portrait (HP Laserjet 4M; PS)’ type black-white # alternative: colour uniras-driver ’HPOSTA4’ orientation portrait # alternative: landscape hardcopy-size 0.0 0.0 # long, short side (in mm) left-margin 9.0 right-margin 1.0 top-margin 3.0 bottom-margin 2.5 print-command ’lp -c -din2las4 -onb -opostscript’ end-device Remarks: The margins are used to make sure that the size and origin of the plot correspond to the definition. This depends, unfortunately, on the specific properties of the printer. Also, they depend on the orientation. So create two entries, one for portrait and one for landscape orientation. The option -c in the print command makes sure that the print file is copied rather than linked to, so that when GPP removes the print file, the print command will not fail. The file distributed with GPP contains several examples that you can use as a template. 86 of 190 Deltares Description of files used by GPP Description of the file GPP uses a configuration file for the supported filetypes. This file provides the user-interface with a means to use the ODS-routines and to select the files containing the data. Whether such files can actually be read is determined by the ODS library. The following is a description of this file: Any text following and including a hash (#) is considered comment and is ignored up to the end of the line. Any number of blanks can appear between keywords and values. They are used as separators. The file starts with a version string in the following format: version 2 minor 10 Each filetype is assigned to a model: a model is in general the source of information or T data (in many cases a numerical model, hence the name). A model may contain several filetypes. It is a means of grouping the filetypes. In the file: model ’ ’ ’ ’ presentation no | use colours # Whether or not to use these no | use linetypes # features. Default: use all no | use lines # No required order or keyword no | use symbols end-presentation DR AF C.2 filetype ... ... end-filetype # any number of file types allowed # though zero is not useful filetype ... ... end-filetype ... end-model You can repeat this block for all the models you want to specify. The block with presentation options may be empty or may be left out. With these options you can make sure for instance that measurement data are presented by symbols only. The name of the model is used to identify the type of file, the description is shown to the user. Each file type is defined by a block of the following type: filetype ’ ’ ’ ’ mask ’ ’ containstextbar no topography Deltares [default-subtype ’ ’] # statement may be left out implicit-components parameter ’ ’ ... end-implicit-components hidden-parameters parameter ’ ’ # block may be left out # block may be left out 87 of 190 GPP , User Manual ... end-hidden-parameters extra-parameter ’ ’ ’ ’ subtype ’ ’ component ’ ’ ... end-extra-parameter ... # more than one extra parameter # may be defined end-filetype This block requires some explanation: The name of the filetype is a description of the ods filetype (a string indicating the model T DR AF and the meaning of the filetype). The description is a more elaborate version of this, which is presented to the user. A file is recognised as being of the specified type by means of the file mask: a string like ∗.his that the filename should match. The string can contain several asterisks, both on workstation and PC, so that a string like ∗admin∗ is also accepted. A file may contain the definition of the model grid or other so-called topographical information. Topographical data sets are supposed to contain the parameter model-grid. The meaning of the keyword contains topography is, that the files of this type contain not only co-ordinate data, but also an administration array to describe the actual grid. GPP normally defines a data set to be of subtype SINGLE, that is, the quantities are scalar. To import vector quantities and discern them from other data sets, you can define an extra parameter : this may contain more than one component (e.g. the x- and y -components of the flow velocity) and it may have a distinct subtype. It is also possible to set the subtype explicitly. This can be useful if all parameters require a subtype different from SINGLE. Some data sets and plot routines require an extra component, an example is the attribute for a grid cell in FLOW files that indicates the status of the cell. This attribute may be used by the plot routine to indicate dry cells and such. To prevent you from having to select that parameter yourself, the filetype may be defined to require an implicit parameter. GPP will create an implicit component to the data set for the same time and location. In a similar way, some parameters are meaningless for you. Hence they may be hidden. Remark: You can define any number of models and any number of filetypes per model, as long as within a model block the ODS-type is unique. C.3 Description of the file GPP uses a configuration file for layouts: the organisation of plots into separate areas. The following is a description of this file: Any text following and including a hash (#) is considered comment and is ignored up to the end of the line. Any number of blanks can appear between keywords and values. They are used as separators. The file starts with a version string in the following format: version 2 minor 10 Each layout is defined by a block of the following type: layout ’ ’ ’ ’ units cm | inches | stretch size orientation portrait | landscape suppress | simple | standard | custom frame 88 of 190 # in units Deltares Description of files used by GPP frame # only if "contains frame" ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ... (nine such lines in total!) end-frame (alternatively a line like: ’ ’ ’ ’ default-font can be specified. The default font is the text font in the settings file.) After this, one or more of the following sub-blocks which all define a layout element, follow: DR AF T plotarea ’ ’ ’ ’ position size legend position # relative to same point as # plot area! size font ’ ’ ’ ’ # size in mm! end-legend (or: "no legend" or leave it out. Note: = normal, medium or bold) end-plotarea text ’ ’ ’ ’ position size font ’ ’ # size in mm! justify lefttextbar righttextbar centred end-text group ’ ’ position size ... (other blocks defining elements) end-group Close the layout definition with: end-layout Remarks: You can define any number of layouts. A layout has both a name and a description. The name uniquely identifies the layout, whereas the description is shown to the user. The units keyword specifies how to interpret the sizes of the layout and the sizes and positions of layout elements. The stretch option means that the plot will always fill up the window or the paper and that the actual sizes will be relative to the given layout size. There are four options for plotting or not plotting a frame around the plot: suppress: do not draw a frame at all simple: draw a simple rectangle standard: draw a standard frame containing nine texts custom: draw a line around the plot and use the custom-frame settings from the settings file to position the part with the text The first option is especially useful if you want to draw your own frame, for instance via a land boundary data set (this is the easiest way to get arbitrary lines in the plot). Deltares 89 of 190 GPP, User Manual If you use the custom frame, you can: The custom frame text is oriented in the same way as the plot, instead of always along the short side. The description for a text element is the text to be shown. Sizes are always given in the unit defined for the layout, except for font sizes which are expressed in mm. A plot area is a viewport within the rectangle on screen or paper, which is designated to contain data sets. You can have any number of plot areas and you may group them in every way you want, the main restriction is readability. Axes are drawn on the four sides of the plot area, the axis labels and text are usually drawn outside the area. This restricts the useful width of the plot area. A legend is logically connected to a plot area, even though the physical position may suggest otherwise. In other words, this particular legend area is used by any plot routines in that plot area. The position of the legend can also be given via: DR AF relative-position T Set the total width and height of the part with the text. Set the relative width of the three sections. Position it either to the left- or to the right-hand side. in which case the x- and y -co-ordinates are relative to the plot area, not to the same whole plot (or the group in which it is contained). Below is an example, taken from the standard file: layout ’portrait-legend’ ’1 plot portrait’ units stretch size 18 27 orientation portrait standard frame frame ’company’ ’WL | Delft Hydraulics’ font ’simplex roman’ 3.5 normal ’Black’ ’main text 1’ ’ ’ default-font ’main text 2’ ’ ’ default-font ’main text 3’ ’ ’ default-font ’upper left’ ’ ’ default-font ’upper right’ ’ ’ default-font ’middle’ ’ ’ default-font ’lower left’ ’ ’ default-font ’lower right’ ’ ’ default-font end-frame plotarea ’single-area’ ’Single plot area’ position 3 7 size 12 18 legend position 3 3 size 14 2 font ’simplex roman’ 1.3 normal ’Black’ end-legend end-plotarea end-layout It defines a single plot area (with a size of 12 cm wide and 18 cm high). This plot area has a legend just below it. The frame is a standard frame, with one text, the company name, filled in. A font is specified to make it appear in a convenient way. For all other texts, a blank is given and the default font is used. 90 of 190 Deltares Description of files used by GPP Description of the file GPP uses a definition file for the supported action routines. This file provides the userinterface with a means to select the relevant plot, selection and transformation routines for a given data set. The following is a description of this file: Any text following and including a hash (#) is considered comment and is ignored up to the end of the line. Any number of blanks can appear between keywords and values. They are used as separators. The file starts with a version string in the following format: version 2 minor 10 Each routine is defined by a block of the following type: DR AF T ’ ’ ’ ’ accepts-topography # or: no-topography ’ ’ ’ ’ ... end-topography accepts-data sets ’ ’ ’ ’ ... end-data sets options # or: no-options ’ ’ ’ ’ ... end-options end-routine The type of routine is one of: Routine to actually plot a data set Routine to write the data to an external file Routine to create a new data set by selecting a subset (selecting a single layer for instance) operation-routine Routine to create a new data set by manipulating a data set (such as calculating the magnitude of a vector) binary-operation Routine to combine two data sets into a new one (such as calculating the sum of two data sets) The blocks "accepts-topography" and "accept-data sets" contain lists of data set types that are accepted by the routine. The block "options" contains one or more options of the following types: plot-routine export-routine selection-routine integer : an integer number real: a real number logical: a logical option, with the value TRUE or FALSE string: a text string colour : a colour from the list of colours defined in symbol: similarly a symbol from the list of symbols line style: a line style from the list of line styles Two further option types are available, but they are more complicated: list: specify a user-defined list Definition: list ’ ’ ’ ’ ’ ’ from ’ - ’ ... end-values C.4 classes-list: specify a list of reals Definition: Deltares 91 of 190 GPP, User Manual classes-list ’
’ ’ ’ values ’ - ’ ... end-values or: classes-list ’
’ ’ ’ automatic-scaling Each routine is known internally by the routine name. The description is shown to you. You may copy the block to define a "new" routine with different default settings. Each option is known internally by the option name. The description is shown to you. You may change the default value or delete the option. You can also add new options if you like, but they will not have any effect, unless you change the implementation of the routine. Below is an example from the standard file: C.5 DR AF T plot-routine ’PlotContours’ ’Plot contour map’ no-topography accepts-data sets ’MAP2D’ ’SINGLE’ ’MAP2D’ ’VALUE_AT_VERTEX’ end-data sets options logical ’PlotAreaBord’ ’Border around plotarea’ FALSE classes-list ’ContourClasses’ ’Contour classes’ automatic-scaling logical ’UseClassesFile’ ’Use classes file’ FALSE string ’ClassesFile’ ’Name classes file’ ’default.cls’ real ’ExtraMissVal’ ’Extra missing value’ -999.0 list ’TypeAxes’ ’Axis type’ ’Geographic axes’ from ’Geographic axes’ ’Linear axes’ ’Polar axes’ end-values end-options end-routine Description of the file GPP uses a settings file to define the graphical settings by default. It should be noted that the actual usage of these settings is taken care of by the agX/UNIRAS graphics library, so that it may be necessary to consult the agX/UNIRAS manuals. The standard file which is distributed with GPP can be edited to better fit your purposes. For examples, we refer to that file. Note that not all keywords are described in detail, but their purpose should be clear from their names. The following is a description of the format of this file: Any text following and including a hash (#) is considered comment and is ignored up to the end of the line. Any number of blanks can appear between keywords and values. They are used as separators. The file starts with a version string in the following format: version 2 minor 10 The file is divided in a number of parts which should come in the given order (some blocks need information that is defined in another block): 1 A block defining the colours that can be used 2 A block defining the fonts that can be used 3 A block defining line types 92 of 190 Deltares Description of files used by GPP 4 5 6 7 8 9 10 11 A block defining colour ramps A block defining symbols A block defining the names of the months (∗) A block defining the names of the various types of axis (∗) A block defining the names of the various types of label formats (∗) A block defining preferences for printer/plotter and screen A block defining certain defaults A block defining the combinations of colour, line type and symbol for individual data sets (∗) These blocks are meant for internationalisation. T Each block starts with a line like series, which identifies the block and ends with a line to close the block, end-series. It should be noted that each of the above blocks can be defined only once and in this order. DR AF The philosophy behind the file is, that it is much easier to use meaningful names than encoding. So, all items that can appear in lists are represented by names that you may give yourself. If the item (a colour or a line type for instance) needs to be referred to it is always by this name. Note that this does not mean that you should never consult the agX/UNIRAS manuals for certain things. We refer to the listing at the end of this document for some information about fonts, line types and symbols that are standard available from agX/UNIRAS. Detailed description 1. Block for colours: This block contains lines that define the colour by name and by RGB, CMY or HLS components. The default is RGB with values ranging from 0 to 255, the three numbers after the colour name then represent the amount of red, green and blue in the colour. Alternatively, you may specify all colours via the CMY method, that is the amounts of cyan, magenta and yellow are given (also ranging from 0 to 255). The last method utilises the hue (from 0 to 360◦ ), lightness (0 to 100 %) and saturation (from 0 to 100 %) of the colours on a colour cone. In the file: colours [RGB | CMY | HLS] ’name’ ’name’ ... end-colours 2. Block for fonts: This block contains lines that define the font in the graphs by name. Each font has a userdefined name, a UNIRAS code and the code 1 or 0 (meaning whether to use a software or hardware font; this can best be set to 1). In the file: fonts ’font-name’ ’font-name’ ... end-fonts Deltares ’UNIRAS-code’ ’UNIRAS-code’ 1 1 93 of 190 GPP, User Manual 3. Block for line types This block contains lines that define the line type by name and its UNIRAS code. We have chosen to support only the predefined line types in the graphics library, as some hardware seems to have trouble with other line types (see the agX/UNIRAS manuals). So you have 20 line types at your disposal. A special line type (not defined by agX/UNIRAS) is the type no line, the code for this is -1. You may want to use it for plotting measurement data. linetypes ’name’ ’name’
... end-linetypes T In the file: Note: DR AF 4. Block for colour ramps This block contains zero or more sub-blocks which each define sets of colours to be used (in the given order) in contour plots, histograms and such: in some cases you might prefer continuous ramps, rainbow-like or grey-scales. In others you may want to see different colours. That is why you can define more than one colour ramp. In principle there is no limit to the number of colour ramps you can define nor to the number of colours that they can contain. However, we had to make some compromises with the implementation of these settings in GPP and decided that it is unlikely that you want more than 20 classes or data sets in a drawing. So, in practice: Legends will contain no more than 20 items, which means that you should not define more than 20 colours per colour ramp. The sum of the number of colour names (from the first section) and the total number of colours referred in the colour ramps must not exceed 220. In the file: colour-ramps colour-ramp ’name’ ’colourname’ ’colourname’ ... end-colour-ramp colour-ramp ’name’ ’colourname’ ’colourname’ ... end-colour-ramp ... end-colour-ramps 5. Block for symbols This block contains lines that define the symbols or markers by name and UNIRAS code. We have chosen to support only the predefined symbols in the graphics library, as defining new symbols is troublesome. So you have 22 symbols at your disposal. 94 of 190 Deltares Description of files used by GPP A special symbol (not defined by agX/UNIRAS) is the symbol no symbol, the code for this is -1. You may want to use it for plotting lines only. In the file: symbols ’name’
’name’
... end-symbols T 6. Block for names of months This block contains lines that define the months of the year: both the full name and the threecharacters abbreviation that is used as a shorthand notation with axes and dates. It is not currently used, but it is expected to be present in the file. As there are twelve months in the Gregorian calendar, you are assumed to specify twelve months in this block. DR AF In the file: months ’
’ ’ ’ ... end-months ’ ’ ’ ’ \# Example: ’janvier’ ’jan’ \# Example: ’fevrier’ ’fev’ 7. Block with the names of axis types The plot routines in GPP use different sorts of axes for different purposes. In some case you can interactively change the axis type, so that it is convenient to have a list of names for these types. This list is read from the settings file, as this allows later translation to other user languages. In the file: axis-types ’Unknown axis’ ’No axis’ ’Special axis’ ’Linear axis’ ’Logarithmic axis’ ’Time axis’ ’Geographical axis’ end-axis-types # To be given in this order! 8. Block with the names of label formats The axes may be plotted using different label formats, so it is convenient to have a list of names for these formats. This list is read from the settings file, as this allows later translation to other user languages. In the file: label-formats ’Exponential’ ’Floating’ Deltares # To be given in this order! 95 of 190 GPP , User Manual ’Size-dependent’ end-label-formats 9. Block for preferences for plotter/printer and screen This block contains lines in a fixed order that indicate which abilities lack in the graphics device: Black-and-white printers will use dithering or grey-scales to represent colours. In many a case the quality is not satisfactory. Screens have limited resolution, so that text should not appear too small and line types (certainly intricate ones, with lots of dashes and dots) are not easily recognised. In the file: T To overcome these problems to some extent, you may specify whether a colour printer/plotter, a black-and-white printer/plotter or a screen should use such features at all. DR AF general-settings bw-printer: no colours # or: use colours bw-printer: no linetypes # or: use linetypes bw-printer: no symbols # or: use symbols bw-printer: minimum-text-size colour-printer: no colours # or: use colours colour-printer: no linetypes # or: use linetypes colour-printer: no symbols # or: use symbols colour-printer: minimum-text-size screen no colours # or: use colours screen no linetypes # or: use linetypes screen no symbols # or: use symbols screen minimum-text-size end-general-settings 10. Block for defaults for plot areas This block contains lines in a fixed order that indicate which defaults to use with plot areas. Most of these names are quite descriptive, so that it is not necessary to describe them in detail. In the file: default-settings symbol-size symbol-distance text-size text-font ’ ’ text-colour ’ ’ axis-text-size axis-text-font ’ ’ axis-text-colour ’ ’ # Note: label size can not be set independently from # axis text size (limitation of agx/uniras) # axis-label-font ’ ’ axis-label-colour ’ ’ axis-numeric-format floating\textbar exponential\textbar size-dependent axis-decimals major-tick-size major-tick-orientation in\textbar out 96 of 190 Deltares Description of files used by GPP major-tick-lines yes\textbar no minor-tick-number minor-tick-size minor-tick-orientation in\textbar out minor-tick-lines yes\textbar no axis-line-thickness axis-line-colour ’ ’ colour-ramp ’ ’ geographic-axis-unit orientation-polar-axis language-for-months Escape characters: When used in a text string, the next character will be subscripted or superscripted. Choose the characters with care - they can not be used in the text DR AF subscript-escape ’‘’ superscript-escape ’\^{}’ T # # # # # # # kilometers\textbar meters clockwise\textbar counter-clockwise english\textbar dutch # # Custom frames (text boxes): # Modelled after the standard frame, but with variable # width and height # custom-frame-width 10.0 # custom-frame-height 3.0 # #custom-frame-side right # Alternatives: left, right custom-frame-side left # Alternatives: left, right custom-frame-part1 70 # Percentage of total custom-frame-part2 20 # Percentage of total custom-frame-part3 10 # Percentage of total # # For MS Windows we offer a crude method to influence the # margins used for printing plots with a frame # (as "devices.gpp" is not used on these platforms) # mswindows-margin-left 0.0 # mm mswindows-margin-right 0.0 # mm mswindows-margin-top 0.0 # mm mswindows-margin-bottom 0.0 # mm end-default-settings The last three options can not be changed via the user-interface, so they act as global settings. 11. Block for the combinations of colour, line type and symbol This block contains lines that define for each series to be shown in a line graph (or a presentation form much like that) what colour, line type and symbol to use, even what the width of the line must be. You can specify up to 20 of these combinations. The order in which you specify them is the default order of usage. Later you can specify the order in which they should be used in detail, for each plot area individually. In the file: series ’ ’ ’ ’ Deltares ’ ’ ’ ’ 97 of 190 GPP, User Manual ’ ’ ’ ’ ... end-series ’ ’ ’ ’ Additional: Symbols, line types and fonts in Toolmaster/agX Symbols are defined in Toolmaster/agX by numbers. This is a listing of the symbols and the corresponding numbers: Table C.1: Symbols in Toolmaster/agX Code Hollow square Hollow octagon Hollow triangle (up) Plus sign Cross Hollow square (point up) Wide arrow (up) "Picknick table" Hollow hexagon Capital-Y Four-pointed star Star Double triangle Vertical line David’s star Dot Small circle Medium circle Large circle Filled circle Filled square Filled triangle (down) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 DR AF T Symbol If you do not want a symbol to be plotted, use the code -1. Line styles are also defined by numbers. 21 line styles are predefined in agX/UNIRAS and more could be defined. Because defining new line styles may give problems with some hardware devices, GPP uses only those predefined line styles. The following list indicates these line styles: Table C.2: Line types in Toolmaster/agX Line style Code Example Solid Dot Dot, medium-spaced 0 1 2 _________________ ................. ......... continued on next page 98 of 190 Deltares Description of files used by GPP Table C.2 – continued from previous page Code Example Dot, wide-spaced Short dash Medium dash Longer dash Very long dash Longer-medium dash Very long-medium dash Very long dash - dot Dot, medium-spaced Dot, widest-spaced Medium dash, mediumspaced Longer dash, wide-spaced Medium dash, two spaces Longest dash, mediumspaced Longest dash, dot Longest dash, two dots Longest dash, three dots Longest dash, four dots 3 4 5 6 7 8 9 10 11 12 13 ...... —————– —————– —————– —————– —————– —————– —.—.—.—.. . . . . . . . . (seems identical to 2) ..... --------- 14 15 16 ––––------—- —- —- – DR AF T Line style 17 18 19 20 —-.—-.—-.– —-..—-..—-. —-...—-...— —-....—-....- If you do not want a line to be plotted, use the code -1. Fonts are defined in agX/UNIRAS by a code of four characters. Below is a list of font codes and a description of the fonts. We refer to the agX/UNIRAS manuals for examples of the fonts: the agX User’s Guide (volume 2) provides tables of the fonts. SIMP COMP ITAL DUPL TRIP CART SMAL SCRI SIMS TRII SMAI GREE SIMG CARG SMAG CYRI GOTG GOTE GOTI VSIM PSIM FUTU Deltares Simplex Roman Complex Roman Italic Complex Duplex Roman Triplex Roman Cartographic Small Complex Script Complex Script Simplex Italic Triplex Small Italic Complex Greek Complex Greek Simplex Greek Cartographic Greek Small Complex Cyrillic Complex Gothic German Gothic English Gothic Italian Vector Simplex Polygon Simplex Futura 99 of 190 GPP , User Manual CENB SWIL SWIM SWIB Century Bold Swiss Light Swiss Medium Swiss Bold Remarks: The symbol size and distance have as yet no effect, nor have the names of the months. There is no way to define what to do with contour maps on a black/white device. Even though it is easier to represent coloured patches than coloured lines in grey tones, it is not possible to guarantee that the contours will indeed look different on paper. Currently, the most effective way to solve this is to use a colour ramp consisting of greys. Description of the file T GPP uses a so-called state file to store and retrieve the latest information on data sets and plots. It contains all the information needed to restore the last session, except any commandline arguments that were given: A list of the data sets that were defined when the session was finished. A list of so-called resultant data sets (the results of operations, but also of selections, if DR AF C.6 appropriate). A list of the defined plots. The state file has the name and is always written to the directory that was current at start-up or the work directory specified by the command-line argument -workdir. Session files are essentially the same as the state file, except that a more concise format is used. The reason for this is that this allows you to change the session files and define new data sets based on the same things you would select via the user-interface. For some file types, this concise format is not suitable for technical reasons. This will be indicated in the discussion. Remark: Though, normally, the definitions of the data sets appear separately from the definitions of the plots, this is not necessary: the only condition is that a data set be defined before it is referenced (in the definition of a resultant data set or in a plot). The following is a description of the format of the state files: Any text following and including a hash (#) is considered comment and is ignored up to the end of the line. Any number of blanks can appear between keywords and values. They are used as separators. The file starts with a version string in the following format: version 2 minor 10 Each data set is defined by the following block (the text after the hash indicates the meaning of the item): dataset-def ’ ’ defining ’ ’ # normally ’NONE’ - no parent dataset type ’ ’ # type of dataset - note: from list! subtype ’ ’ # subtype of dataset - note: normally # ’SINGLE’ topography ’ ’ # name of topographical dataset or # ’NONE’ model ’ ’ # name of the model/data source filetype ’ ’ # ODS type of file containing the data files # names of the files: at most three 100 of 190 Deltares Description of files used by GPP DR AF T " " # NOTE: double quotes distinguish file " " # names from ordinary strings " " end-files parameters # names of the parameters, code is ’ ’ # the ID given to the parameter by ’ ’ # the ODS routines ... end-parameters times number # number of time steps start-time