Index: doc/pcraster-for-doc-only/pcraster/__init__.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/aguila.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/Timeoutput.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/__init__.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/aggregationfunctions.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/dynamicBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/dynamicFramework.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/dynamicPCRasterBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/forkscript.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/frameworkBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/generalfunctions.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/kalmanFilterFramework.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/kfBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/kfPCRasterBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/mcBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/mcFramework.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/mcPCRasterBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/particleFilterFramework.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/pcr.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/pfBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/pfPCRasterBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/regression.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/shellscript.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/staticBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/staticFramework.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/staticPCRasterBase.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/framework/system.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/numpy_operations.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/operations.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: doc/pcraster-for-doc-only/pcraster/operators.pyc
===================================================================
diff -u -rfb61db22f9e62d823e3e128620846c4e762d43d6 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
Binary files differ
Index: examples/wflow_rhine_sbm_nc/wflow_sbm_NC.ini
===================================================================
diff -u -ra60252674c7e7ee5a5f6016dd1117b6e6593bda8 -ra509bea894d88eb107b36f7e83f6bf9b1a36096c
--- examples/wflow_rhine_sbm_nc/wflow_sbm_NC.ini (.../wflow_sbm_NC.ini) (revision a60252674c7e7ee5a5f6016dd1117b6e6593bda8)
+++ examples/wflow_rhine_sbm_nc/wflow_sbm_NC.ini (.../wflow_sbm_NC.ini) (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c)
@@ -81,6 +81,7 @@
#netcdfstaticinput = staticmaps.nc
netcdfwritebuffer=100
netcdf_least_significant_digit=2
+#netcdf_format=NETCDF3_CLASSIC
@@ -136,24 +137,3 @@
samplemap=staticmaps/wflow_gauges.map
self.ActLeakage=lek.tss
# Save and sample these at gauge locations
-
-[outputcsv_1]
-samplemap=staticmaps/area.map
-#samplemap=staticmaps/wflow_subcatch.map
-
-# Alle runoff in mm
-self.InwaterMM=specrun.csv
-
-
-# Neerslag in mm
-self.Precipitation=prec.csv
-
-# totale verdamping in mm
-self.ActEvap+self.Interception=teact.csv
-
-# Totale storage in mm
-self.UStoreDepth + self.FirstZoneDepth + self.CanopyStorage = store.csv
-
-# water budget not taking Delta S and GW flux into account
-self.Precipitation - self.ActEvap - self.Interception - self.InwaterMM = watbalnostore.csv
-
Index: pcraster/bin/aguila.exe
===================================================================
diff -u
Binary files differ
Index: pcraster/bin/aguila.exe.config
===================================================================
diff -u
--- pcraster/bin/aguila.exe.config (revision 0)
+++ pcraster/bin/aguila.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c)
@@ -0,0 +1,8 @@
+
+
+Aguila on the Mac.
+The Aguila source code is portable:
+Note
+This page is work in progress. Lots of stuff is missing.
+Prerequisites (http://pcraster.sourceforge.net and http://sourceforge.net/projects/pcraster):
+Make sure these projects are configured and built.
+Make sure the folowing 3rd party libraries and tools are installed (see DevEnv’s configuration/Versions.sh for verion information):
+Checkout/configure/build:
+$ svn checkout https://pcraster.svn.sourceforge.net/svnroot/pcraster/Aguila/branches/1.1.0 Aguila-1.1.0
+$ export AGUILA=<checkout path>/Aguila-1.1.0
+$ source $AGUILA/environment/configuration/bash_profile
+$ configurecmakeproject.py release Aguila
+$ make -C $AGUILA
+You may want to checkout another version of the source code.
+Attributes are stored in data sets. Depending on the data set formats, data sets are stored in a single file in the local or in a remote filesystem, or in multiple files, or in tables in a database, or are part of a single file containing multiple data sets, for example. Whatever is needed to store the values of a single attribute comprises the data set.
+Attribute values in a data set describe the variation of a single attribute (e.g.: height, concentration, temperature). Dimensions are used to structure data set values (see section Dimensions). Unique combinations of such dimensions give rise to different data set types (see section Data set types). And various data formats are used to store data set values (see section Data formats).
+Dimensions structure data set values. Attribute values (potentially) vary along dimensions. For example, a raster contains spatially varying attribute values. Similar, a time series contains temporally varying attribute values.
+A data set lacking attribute values for a certain dimension is taken to be constant along that dimension. For example, a single raster contains values that vary in space, but not in time. Its values are constant in time because the data set contains no information about the temporal variation.
+The next sections describe the dimension that are supported by Aguila.
+Aguila supports visualisation of both raster and feature data. Spatial raster data supported by Aguila is formatted as a raster with cells of equal width and height.
+Aguila offers 2D and 2.5D views for rasters and 2D views for features.
+Temporal data supported is data which is defined at discrete integer time steps. Sophisticated schemes to link these discrete time steps to real time are only possible by using the XML interface described in section Xml Startup Configuration.
+Aguila offers time series views for temporal data. Additionally, it adds support for iteration through time (animation) to every view which is able to visualise temporal data, for example the 2D map view.
+If, instead of fixed variables, the available data are random variables (e.g. resulting from a Monte Carlo analysis or statistical modelling), Aguila can view them when they are encoded as (cumulative) probability distribution functions. The encoding is done by supplying maps that have for each location (and optionally for each time step) the attribute value corresponding to a fixed cumulative probability level, a value in [0,1]. The simplest example would be if all variables followed a uniform distribution, in which case we only need to specify the map with the minimum (distribution value 0) and maximum (distribution value 1); Aguila uses linear interpolation for values in between. More complex distributions functions can be specified with maps for a set of distribution values. E.g. for a normal distribution one could specify the maps corresponding to probability distribution values 0.01, 0.05, 0.1, 0.25, 0.5, 0.75, 0.9, 0.95 and 0.99. Aguila assumes then straight lines in between these values.
+Distribution values do not need to be symmetric; if much emphasis is put on the upper tail, the lower tail may be discretized by very few values (like, say, 0.01, 0.5, 0.9, 0.91, 0.92, 0.93, ...).
+The interface of Aguila assumes that all distribution values provided are part of a regular sequence. Both examples above are subsets of the sequence 0.01, 0.02, 0.03, ..., 0.99. Minimum, maximum, and step size need to be specified for a sequence. Aguila will read those values present, and will linearly interpolate inbetween them.
+Different scenarios contain data values for the same attributes which should be visualised at the same time, and with identical topological constraints. When data is loaded from different scenarios, Aguila will create views for each scenario. Scenarios are explicitly supported by the 2D Multimap View. This view shows spatial attributes from different scenarios in a single window.
+Note
+When scenarios are used, we still speak of a single attribute.
+As described above, Aguila supports data sets with various kinds of dimensions. Every unique combination of dimensions gives rise to a data set type.
+For some types of data sets, there are convenient data formats available, for example raster formats. For other data set types, we had to come up with some conventions to be able to store the values. There is, for example, no convenient data format availabe for storing uncertain spatio-temporal values.
+This section describes the various types of data sets, and the next section describes the formats for storing the attribute values and some naming conventions used. The grey nodes in the figure below show data set types are not implemented. They are drawn and mentioned in the text for completeness.
+
+
+
The simplest data set type is the constant. A constant is just a single value, its value does not vary along one of the data dimensions.
+Examples:
+Note
+Not implemented.
+Uncertainty adds information about the probability distribution of values that may represent the attribute. Note that there is no spatial or temporal variation in this case.
+Note
+Not implemented.
+Temporal values vary in time, but they have no spatial variation or even spatial reference.
+Examples:
+Aguila has support for reading temporal values from many table data formats.
+Spatial values vary in space, but not in time.
+Examples:
+Raster, feature and vector data sets contain spatial values. An exception to this rule is that Aguila can also visualise only the geometry of a feature layer.
+Vector attributes are attributes with a direction and a magnitude. They are currently raster based, meaning that two rasters with magnitudes in x- and y-directins are used to store the values.
+Aguila has support for reading spatial data from many raster data formats, feature layer formats and vector data formats.
+Uncertain spatial values are spatial values for which the probability distribution is known.
+Currently, Aguila supports reading quantiles of spatial values, for example a range of the 0.01, 0.05, 0.10, 0.25, 0.50, 0.75, 0.90, 0.95, 0.99 quantile levels.
+Spatio-temporal values are spatial values which also vary in time.
+Currently, Aguila supports reading time steps of spatial values, for example a range of the steps 1 through 1000.
+Uncertain spatio-temporal values are spatio-temporal values for which the probability distribution is known.
+Currently, Aguila supports reading quantiles of spatial values, for example a range of the 0.01, 0.05, 0.10, 0.25, 0.50, 0.75, 0.90, 0.95, 0.99 quantile levels.
+TODO
+Exactly which data formats Aguila supports depends on how Aguila is compiled. Potentially, Aguila can support many formats. The distributed Aguila supports about 50 raster formats (eg: PCRaster raster format, Hdf4, GeoTIFF, GML, ESRI’s binary grid), a dozen feature formats (eg: ESRI’s Shapefile) and a few table formats (eg: text, ODBC, Sqlite). Exactly which formats are supported can be deduced by looking at the script used to build the support libraries [1].
+The data format used to store the data set determines the way the database must be configured. A data format might support data with some dimensions, like raster data with two spatial dimensions, but lack support for other dimensions, like the time dimension. Support for missing dimensions can be added to formats using naming conventions for file names, or by storing this information in an attribute table, for example. Most raster formats do not support more dimensions than the two space dimensions, but using naming conventions, information about the time dimension can be added easily. This results, for example, in a name like dem_1.map for the first time step. If a raster format supports the time dimension, such a naming convention is not needed and the application can read the information about this dimension from the data source.
+| [1] | Eventually Aguila will be able to list the formats built in. |
The raster formats supported are PCRasters CSF 2.0 raster file format and the formats supported by the Geospatial Data Abstraction Library (GDAL). Information about these formats, including free (conversion) software and manuals can be found at the PCRaster website and the GDAL website.
+For formats with default file name extensions there is no need to supply an extension.
+Aguila uses the value scale property to decide how to visualise an attribute. In the CSF raster file format this value scale is stored in the data set. In data sets read using GDAL, this information may or may not be available. If a meta data item named PCRASTER_VALUESCALE is available, it is used to determine the value scale. If it is not available, the color interpretation of the data set is used to determine the value scale. Lastly, the type of the attribute values is used to determine the value scale. Integral types result in a nominal value scale and floating point types result in a scalar value scale to be used.
+The folowing values for the PCRASTER_VALUESCALE meta data item are recognized:
+The folowing color interpretation values are recognized:
+Raster formats store spatial data in seperate files. Each file contains spatial attribute values for one map. To add information about other dimensions Aguila supports the folowing naming conventions:
+| Dimension | +Convention | +
|---|---|
| Scenarios | +Data for different scenarios must be stored in sub +directories. When a scenarios dimension +is configured Aguila searches its data in +directories named after the scenarios. | +
| Cumulative probabilities | +The different quantile levels are reflected in the +filename. The filenaming rule is +name_<level>{.extension}. The quantile level +must be a floating point value between 0 and +1.0. The file name extension is optional. | +
| Time | +Time steps are reflected in the filename. The +filenaming rule is name_<step>{.extension}. The +time step must be a positive integral value +greater than 0. The file name extension is +optional. | +
This means that, for example, a raster data source with scenarios simple and complex, and temporal quantile levels has rasters named simple/co2_1_0.001.map and complex/co2_100_0.5.map.
+The PCRaster convention for naming spatio-temporal raster data is also supported. PCRaster uses the 8.3 DOS convention where each member of a stack is named by its name, possibly 0’s and a time step number. So, a PCRaster model might output dem00000.001, dem00000.002, etc. When the time dimension is set up right, the name (dem in this case) can be used to name such a stack. Also supported is the (depricated) convention of naming a stack by the first member, folowed by a +-sign and the last time step of the stack, dem00000.001+1000 for example.
+The feature layer formats supported are the formats supported by the OGR Simple Feature Library (OGR). Information about these formats, including free (conversion) software and manuals can be found at the OGR website.
+Aguila visualises attributes, not whole data sources. Feature data sources contain one or more feature layers and each layer contains zero or more attributes. The folowing naming rule must be used to tell Aguila which attribute to visualize:
+datasource/layer{/attribute}
+When the attribute is not provided, Aguila will show the geometry of the layer. For example, given a ESRI Shapefile with information about countries, the folowing command will draw the country borders:
+aguila countries.shp/countries
+And the folowing command will draw each country’s population:
+aguila countries.shp/countries/population
+Known file name extensions are optional and can be left out.
+Note
+In the case of the Shapefile feature format, directories can be used as data sources too. In that case the names of the individual shape files (without extension) must be used as layer names.
+Each feature layer attribute contains information about the spatial variation of the attribute. To add information about other dimensions, Aguila supports the use of an external attribute table in a database. The attribute table must be named after the feature layer and contain a field called fid (which is short for feature id). Aguila will join the internal attribute table of the feature layer data source to the external table using the feature id fields present in both tables.
+See Table data formats for more information about setting up the external attribute table.
+Note
+Currently, only SQLite databases have been used for storing external attribute tables for feature layers. In principle, all other table formats should also be supported. Also, since the name of the database and table are the same as the datasource and feature layer, it is not possible to pass server name and/or user credentials.
+Two raster datasets are used to hold the magnitude values for the x- and y-direction of a vector attribute. Because of this, all formats described in section Raster data formats can be used to store vector magnitude values.
+There is a simple naming scheme for vector datasets:
+name_(x|y){.extension}
+So, the values for a vector attribute called flow are stored in two raster datasets called flow_x and flow_y. Default extensions are optional.
+Naming conventions for vector datasets with more dimensions are the same as those described in section Naming conventions.
+Table file formats supported are the text and geoEAS formatted files and formats supported by the QtSql module.
+Naming a table data set depends on the format used to store the table in. For file formats the name of the data set is the name of the file it is stored in. For tables served by database management systems different conventions apply: myname(mypasswd)@myserver:mydatabase/mytable. Some of the elements of this naming conventions might be optional, depending on the configuration of your database server. The server might, for example, grant read access to everybody, which means the account information in the name is redundant: myserver:mydatabase/mytable. The database server might be your production machine, which means the server name is redundant: mydatabase/mytable.
+The table must contain a field named after the attribute. The values of this field will be visualized.
+Attribute variation for one or more dimensions must be stored using a primary key consisting of one or more of the folowing field names: scenario, date, quantile. For each unique combination of these, an attribute value can be stored in the table.
+Note
+In case the table is used as an external attribute table for a feature layer, the primary key must also include the feature id field (fid).
+In this section the various Aguila dialogs are described.
+If you loaded a temporal attribute, than you can start an animation by selecting the Animate menu item from the View menu, or by pressing the Animate toolbutton from the toolbar. A dialog will be shown from which you can control the animation. This will trigger an update of all views that show temporal attributes.
+
+What properties are show in the properties dialog depends on the attribute type, not all properties are applicable for all types of data.
+For an uncertain attribute, the folowing options are also available:
+Aguila installation packages can be found at the files section of the SourceForge project page.
+Information about dowloading the source code can be found at the develop section of the SourceForge project page.
+Some ideas for improving Aguila. Improvements can be new features or redesigns of existing features.
+Attributes are stored in datasets. In a dataset one or more attributes can be stored. A dataset can be stored in many different ways: in a single file, in multiple files, in a database, by a WCS service, etc, etc.
+Currently, users needs to know the names of the attributes, which are not always obvious. For example, attributes in a Shapefile are hidden in layers, which are hidden in Shapefiles. The user needs to use tools like gdalinfo to find out the names of the attributes.
+Aguila needs an Open Attribute ‘dialog’ which is smart enough to find attributes in a certain location, whatever the storage mechanism. For this to work Dal needs to be updated. Each format driver needs some browse functionality that, given a location, returns information about the available attributes.
+Dal’s enhancement doc contains info on Dal’s side of the implementation. Here, we only list some considerations for the user interface.
+From the requirements folows that the folowing graphical elements are part of the dialog:
+Signals for high-level browse class:
+attributeClicked(size_t id);
+attributeDoubleClicked(size_t id);
+customContextMenuRequested(size_t id);
+Current implementation makes use of OpenGL, which is hard to maintain if you don’t use its API regularly. Switch to some higher level library (Ogre, ...).
+Did you set PCRASTER_DAL_FORMATS (see section Environment variables) and is the dataset formatted in a different format than the ones listed by this variable? Solution is to either add the name of this new format to the variable or to unset the variable.
+Another possibility is that Aguila currently does not have support for reading the dataset. Aguila contains support for reading many data formats, but not for all data formats. See section Support for information about how to request a new feature.
+X-axis of the probability graph view now scales when the cutoff values of the attribute values are adjusted. (#2907978)
+Time graph view now correctly shows probability values when appropriate. (#2865535 and #2865536)
+Added support for starting Aguila with the probability graph view. Also added support for configuring the probability graph view in the Xml startup configuration file. (#2796370)
+Added support for visualizing vector data (attributes with a direction and a magnitude).
+Added support for directories when naming attributes that are located somewhere else than the current directory:
+$ aguila --timesteps [1,100] MyProject/MyData/Dem
+Improved panning when a 2D map is zoomed.
+Vector and Ldd attributes are not drawn when there are only a few pixels available per cell (large number of cells and/or zoomed out a lot). In that case a transparant cell is drawn to show the area of non-missing value cells. The vector and ldd directions are shown again when more pixels become available (when the map is zoomed into). This is done to keep Aguila responsive when large data sets are loaded. In such cases vector and ldd directions where not visible anyway.
+Re-added ‘zoom by rectangle’, by popular request. See section Map Controls.
+For all data read using GDAL, the color interpretation is taken into account when determining the value scale of a raster attribute. For example, satellite imagery values stored in a byte geoTiff raster are treated as scalar data when the color interpretation stored in the raster is reported by GDal as being Gray. (#2873963)
+For all data read using GDAL, the PCRASTER_VALUESCALE meta data item is taken into account. If it is set, it overrides the color interpretation and type id that are otherwise used to determine the value scale, see section Raster data formats. (#2873989)
+...
+First release in the 1-series. Since we are about to add some new features we first made an official release of the current version.
+Note
+The information in this section is related to the stand-alone binary Aguila distribution and is not valid when Aguila is distributed as part of a PCRaster distribution. The source code and information about building Aguila can be obtained from the PCRaster Open Source Tools project website on SourceForge.
+Aguila installation packages can be found at the files section of the SourceForge project page.
+The software is distributed as a Windows installer. Install Aguila by executing the installer. After installation there is an option to uninstall Aguila again.
+The following directories are created within the installation directory:
+bin # Contains the executable and the required shared libraries.
+demos # Contains demo data.
+doc # Contains this manual, in pdf format.
+share # Contains support files.
+When you install Aguila as a user with Administrator rights, the search path for executables is automatically updated to include the path to the Aguila binary. Otherwise, you need to update the search path yourself:
+Warning
+The binary distribution of Aguila for Linux is created on the PCRaster development machines. This version of Aguila will run on systems with similar properties (currently Debian testing on i686 and x86_64). On other machines this version may not run [1]. Here is a list of Linux platforms for which Aguila is reported to run:
+| [1] | We are in the process of making Aguila LSB-compliant. |
The software is distributed as a compressed tar file which can be unzipped as follows:
+tar zxf Aguila-<architecture>-<version>-Linux.tar.gz
+This will result in a directory with the following subdirectories:
+bin # Contains the executable.
+demos # Contains demo data.
+doc # Contains this manual, in pdf format.
+lib # Contains the required shared libraries.
+share # Contains support files.
+To be able to use Aguila you need to add the path to the bin directory to the search path for executables (PATH).
+Note
+It is not necessary anymore to add the lib directory to the search path for shared libraries (LD_LIBRARY_PATH).
+Tip
+To debug issues when Aguila fails to start you can look at the output of the following command:
+ldd path_to_aguila/aguila | less
+This command will report whether certain required shared libraries cannot be found.
+Aguila is visualisation software for spatio-temporal data. It can be used to visualise temporal, spatial and/or uncertain data and contains features to aid exploratory data analysis.
+Aguila is the primary visualisation tool of the PCRaster environmental modelling software, but since it can read data in various formats, it can be used in combination with other modelling and GIS software.
+These pages will get you started using Aguila as quickly as possible:
+ +Subsequent pages describe types of visualisations (views) that can be used, the dialogs, and the types of data that can be visualised.
+ +Aguila is licensed according to the GNU General Public License, version 3 and is hosted at SourceForge.net. This means it is open source software and all resources needed to build Aguila yourself can be found at the SourceForge project page.
+
+Here, multiple 2D maps are shown in a single view. This is useful to compare the outcomes of different scenarios, for example. The number of maps in the view can be configured.
+TODO
+An attribute that is stored in a single file can be displayed by simply specifying the file name on the command line (see section Program options). Basic commands for maps and time series are:
+# Show a map.
+aguila dem.map
+
+# Show time series.
+aguila rain.tss
+
+# Show some maps and a time series.
+aguila dem.map soil.map rain.tss
+
+# Show a map in 2.5D.
+aguila --drapeView dem.map
+Each attribute is displayed in a separate window, here called a view (see section Views). To display multiple attributes in a single view insert a +-symbol between the names, with spaces surrounding the +-symbol.
+# Multiple data items as drape.
+aguila --drapeView dem.map + soil.map
+
+Spatio-temporal attributes stored in the PCRaster raster format, is not stored in a single file but as a sequence of numbered rasters. This is true for most raster formats. To show such a spatio-temporal data set, two notations are allowed:
+# Old style: show discharge and rainfall map stack.
+aguila dis00000.001+36 rainfall.001+36
+
+# New style: show discharge and rainfall map stack.
+aguila --timesteps [1,36] dis rainfall
+That is all information you need to display spatio-temporal raster attributes and timeseries. This manual will further instruct you how to create more sophisticated and combined views of data.
+There are three types of information Aguila has to know about before it can visualise your data: 1) the name(s) of the attributes you want to visualise, 2) the dimensions of the attributes in which it is defined (see section Dimensions), and 3) the views you want to use.
+Of course, the name of the data is required. Telling Aguila about the dimensions of the data may be required or not, depending on the data format (see Data formats). For each type of data there is a default view which may be fine or has to be chosen otherwise by configuring specific start up options. See Program options for information about using program options to pass information to Aguila.
+Once Aguila has started visualising data it maintains links between data properties and the views, and between the views. For example, if two spatial data sets are visualised with 2D map views and in one of them the map shown is zoomed into, the other view will also zoom into the same area.
+Aguila can be configured by passing it program options on the command line. For example, the command
+aguila dem.map
+starts Aguila with the name of a dataset to visualise. If Aguila can read the data it will show it in the default view. Type
+aguila --help
+for a list of all command line options supported.
+Since typing long commands with a lot of options can be tedious, some program options can also be read from a configuration file. For example, the command
+aguila --config settings.cfg
+tells Aguila to look for program options in the file settings.cfg.
+Aguila can also be started from an XML specification file, which allows for more fine grained control over the Aguila configuration:
+aguila --xml settings.xml
+See section Xml Startup Configuration for details.
+Command line options and configuration file options can be used at the same time, so
+aguila -f settings.cfg dem.map
+starts Aguila with options on the command line and in a configuration file. Some options will be combined when given more than once and others will be overridden (this is documented in the tables below or obvious). When an option is overridden because it is given both on the command line and in a configuration file, the one on the command line is given precedence. One way to use configuration files is to put common options in them which can be used together with the command line (see also the examples below).
+Some options take a range or a set of values as an argument. The syntax for a range of values is [first, last, step] where first is the first value, last is the last value and step is the interval between individual values between first and last. For example, the range [1,6,2] consists of the values 1, 3, 5 (note that 6 is not used in this case because 5 + step equals 7, which is considered outside the range). The step is optional and the default value is dependent on the kind of range values. The range of timesteps [1,6] consists of the values 1, 2, 3, 4, 5, 6. The syntax for a set of values is {value1, value2, ..., valuen}.
+Warning
+The range and set notations can lead to suprising effects when used in a Unix (or Cygwin) shell (eg: bash). If you use such a shell, you must escape the {, }, [ and ] characters, because these have special meaning to the shell interpreter. Or you may quote the whole argument:
+aguila --scenarios \{a,b,c\} concentration
+aguila --scenarios "{a, b, c}" concentration
+When quoting the argument, you can use spaces between the values, otherwise you cannot.
+Some options take the name of a data set as an argument. Aguila supports certain naming conventions which depend on the format the data is stored in. For example, a table stored in an ASCII column file is named by its filename, but the same table stored by a database management system might be named as myname(mypasswd)@mydbmsserver:mydatabase/mytable or just mydatabase/mytable. For more information about these naming conventions see section Data formats.
+Command line options which can also occur in a configuration file must be named by the long option name, without the leading double dash. So, while -n and --scenarios are equivalent when used on the command line, only scenarios can be used in a configuration file. Furthermore, the value of an option given on the command line is put immediately after the option name or character, optionally separated by white space. In a configuration file the option name and value are separated by an equals sign, optionally surrounded by white space. See also section Examples.
+| Option | +Description | +
|---|---|
| -f [ –config ] arg | +Read options from the configuration file +named arg. | +
| -x [ –xml ] arg | +Read options from the xml file named +arg, see section +Xml Startup Configuration. | +
| -h [ –help ] | +Show the command synopsis and exit. | +
| -l [ –lock ] arg | +Create a lock file named arg. If the +file does not already exists it +is created. When Aguila exits the +file is deleted again. This can be +useful if Aguila is started by another +application which wants to be able to +check whether Aguila is still running. | +
| –license | +Show the software license and exit. | +
| -v [ –version ] | +Show the software version and exit. | +
| -2 [ –mapView ] arg | +Show attribute named arg in a 2D map +view. arg can contain the names +of more than one attribute. When the +names of two attributes are separated +by whitespace + whitespace, +they are stacked on top of each +other in the same view. Otherwise +each attribute is visualised in its +own view. | +
| -3 [ –drapeView ] arg | +Show attribute named arg in a 3D map +view. arg can contain the names +of more than one attribute. When the +names of two attributes are separated +by whitespace + whitespace, +they are stacked on top of each +other in the same view. Otherwise +each attribute is visualised in its +own view. The first attribute is +used for the height values. This +attribute must contain scalar values. | +
| -t [ –timeGraphView ] arg | +Show attribute named arg in a time graph +view. arg can contain the names of +more than one attribute. The optional +selection specification in the attribute +name must contain 2 column numbers of +which the first one is regarded as the +time step column and the second as the +attribute column. | +
| -p [ –probabilityGraphView ] arg | +Show attribute named arg in a +probability graph view. arg +can contain the names of more than +one attribute. | +
| –valueOnly arg | +Show attribute named arg only +in the value cursor matrix. arg +can contain the names of more than +one data set. | +
| Option | +Description | +
|---|---|
| -n [ –scenarios ] arg | +Configures the scenario dimension using the set +of scenarios in arg. Multiple scenarios +options are merged into one scenario +dimension. | +
| -s [ –timesteps ] arg | +Configures the time dimension using the range +or set of time steps in arg. Time steps +must be larger than 0. Multiple time steps +options are merged into one time dimension. | +
| -q [ –quantiles] arg | +Configures the cumulative probability dimension +using the range or set of quantiles in +arg. Quantiles must be larger than 0 +and smaller than 1. Multiple quantiles +options are merged into one cumulative +probability dimension. | +
| –cursorValueMonitorFile arg | +Tells Aguila to append an aguilaCursorValue +element to the value monitor +file named arg each time Save is +pressed in the Cursor Value Window. On +start up, arg is created with 0 +aguilaCursorValue sub-elements. The file +is written in XML conforming to the Aguila +XML Schema. | +
| -m [ –multi ] arg | +When visualising scenarios of a spatial +attribute, this option can be used to +put all scenario’s side by side in one 2D +map view. arg should be formatted as +<number or rows>x<number of columns>, eg: +2x3. | +
These examples assume dem, ldd and erosion are valid names of raster attributes and discharge is a valid name of a time series attribute. These attributes are presented in a format supported by Aguila. Note that attributes in different formats can be combined.
+Visualise a raster in 2D. Default view for rasters is 2D map.
+aguila dem
+See also section Map view.
+Stack rasters on each other. Spaces around the +-sign.
+aguila dem + ldd
+See also section Map view.
+Raster attribute might be temporal. dem00000.001+100 is deprecated. Separate the name of the dataset from the dimension information.
+aguila --timesteps [1,100] dem
+See also sections Map view, Time Graph View.
+Visualise all time series in one time series plot.
+aguila discharge
+See also section Time Graph View.
+Select some time series (the fifth and seventh columns) from discharge.
+aguila discharge{1,5} + discharge{1,7}
+See also section Time Graph View.
+Combine rasters and time series data.
+aguila dem + ldd discharge
+See also sections Map view, Time Graph View.
+Select some more dimensions. For each scenario one 2D map view of the median value of erosion.
+aguila --scenarios {simple,complex} --quantiles [0.01,0.99] --timesteps [1,100] erosion
+This example assumes that two erosion models where created, a simple one and a more complex one. Each of these models was used in a Monte Carlo analysis resulting in a distribution of erosion outcomes. For each timestep the distribution in erosion outcomes was summarised by a range of percentiles, for example the 0.01, 0.05, 0.1, 0.25, 0.5, 0.75, 0.9, 0.95, 0.99 percentiles. Aguila starts by presenting the median value of erosion for each scenario as a 2D map view. Given this attribute it is possible to get a time series plot and a cumulative distribution plot for each location. All views can be animated. Aguila interpolates the data for percentiles that are not provided.
+See also sections Map view, Time Graph View, Probability Graph View.
+Aguila has support for many data set formats. While searching for data, Aguila tries each format driver in turn to see whether it is able to read the data. If you only use a fixed set of formats for your data sets, you can decrease startup time by limiting the number of potential data set formats Aguila considers. For this, define the environment variable called PCRASTER_DAL_FORMATS. Its contents should be a comma separated list of format names. Most of them correspond to the names used in the GDAL and OGR data I/O libraries used by Aguila (Data set types).
+Example:
+$ export PCRASTER_DAL_FORMATS="CSF, HDF4, WCS, ESRI Shapefile"
+Note
+Although GDAL comes with a PCRaster driver built in, Aguila makes use of its own PCRaster driver and skips GDAL’s one. The name of the PCRaster raster format driver is CSF.
+Unknown format names are skipped. If none of the format names are known, Aguila will use all formats it knows of.
+Warning
+Whenever Aguila is unable to read your attributes, make sure the setting of PCRASTER_DAL_FORMATS is not excluding a format driver required for reading the attribute.
+| + | ++ | ++ | +
| Uncertain spatio-temporal data. | +Multiple 2D maps in a single view. | +Vector data. | +
| + | ++ | ++ |
| Aguila on the Mac. | +Aguila video. | ++ |
The pcraster-info mailing list is a discussion platform for users of PCRaster and related software. The PCRaster R&D team also uses the list to announce new software releases. We recommend that every PCRaster user becomes a member of the list. More information can be found at the pcraster-info mailing list page. The archives are on the pcraster-info archives page.
+Once you are subscribed, you can send your comments, questions, ideas and discussion issues to pcraster-info@geo.uu.nl. English is the preferred language. Imperfect English is no problem, it is a mailing list, not a classroom English.
+If you think Aguila did something incorrect please file a bug report. Any error messages containing the phrases: “assertion failed” or “programming error” are always errors in the software we should fix. There is a Bugs and feature requests tracker you can use to file a bug report.
+Here are some guide lines when submitting a bug report:
+You can use the same Bugs and feature requests tracker as for reporting bugs.
+
+Two uncertain spatio-temporal attributes.
+The left-most two views show maps of quantile values. The middle two views show cumulative probability graphs. The right-most two views show time series.
+The three views per row shown, visualize a single uncertain spatio-temporal attribute. The maps show quantile values, given the selected quantile in the cumulative probability graph, and given the selected time step in the time series graph. Similar, both the cumulative probability graph and the time series graph show values for the selected spatial coordinate in the map view.
+The selected spatial coordinate, quantile level and time step, are part of the global cursor. This cursor can be changed interactively and this triggers relevant updates of visualisations.
+Views are attribute visualisations. Every type of attribute supported by Aguila has a default view type which will be shown when no view is explicitly selected when starting up Aguila. For example, a raster attribute will be shown in the map view and a time series in a time graph view. +Some attribute types can be shown in multiple view types. A spatio-temporal raster attribute can be shown in a map view and a time graph view at the same time, for example.
+Aguila uses the notion of a cursor to enable the views to decide which part of an attribute data set to visualise. The cursor consists of a set of coordinates that the user can set, like the current time step and the current spatial x- and y-coordinates. The current time step determines which map of a spatio-temporal attribute is shown, for example. And the current spatial coordinate determines for which spatial location of a spatio-temporal attribute the time graph is shown.
+Views enable the user to change the cursor. For example, in a map view, the spatial coordinates of the cursor can be changed by clicking in the map. And in a time graph view, the time coordinate of the cursor can be changed by clicking in the graph. All views will respond to a change of the cursor. See section Cursor And Values View for a view for viewing and changing the current cursor coordinates.
+Apart from the cursor there are more global properties used by Aguila to maintain links between the views. Examples of those are the scale of a map and the pan position. Because of this, all map views will always show the same area.
+Attributes have draw properties, for example the palette used to select colours used to visualise the attribute. These properties are shared among the views, so each attribute always uses the same properties, no matter in how many views the attribute is shown. Changing the properties of the attribute in one view, also changes the properties of the attribute in the other view(s).
+All views have a similar layout. The largest part is taken up by the visualisation itself, and on the left there is a legend for each attribute visualised. Between the legend and the main visualisation there is a splitter which can be dragged to make the legend larger or smaller relative to the main visualisation. At the top there are a menu bar and a toolbar.
+Right-clicking the legend of an attribute brings up a context menu with actions specific for the selected attribute. Some actions are always available and some actions are available depending on the characteristics of the selected attribute. For example, the action to show an attribute in a time graph view is only available for a temporal attribute.
+Here is a list of common attribute context menu actions:
+| Menu item | +Effect | +
|---|---|
| Edit draw properties | +Shows the Draw Properties dialog, see +section Draw Properties Dialog. | +
Double-clicking the attribute legend shows the draw properties dialog also.
+For spatio-temporal attributes, the attribute context menu has a Show Time Series action. This will show the attribute in a new, linked, time graph view.
+All attributes shown by Aguila are put in the cursor and values view too. This view is normally not visible when the application starts (unless requested with the valueOnly program option (see section Program options).
+This view shows the current global cursor coordinates and the attribute values at the current cursor position.
+The view consists of an upper part with the current cursor coordinates and a lower part with the values of all attributes loaded. The cursor sliders allows navigating through the dimensions such as time and space (see section Dimensions). Each slider has a knob for the current position.
+| Change position | +Slider action | +
|---|---|
| Set slider one position backwards | +Click on the slider part left from the +knob | +
| Set slider one position forward | +Click on the slider part right from the +knob | +
| Set slider to specific position | +Drag knob to position | +
In the value list at the bottom the data names and their values at the current cursor position are shown.
+If Aguila started with the cursorValueMonitorFile program option, the Save button is enabled to append the current data in that file.
+If Aguila started with the fileToGetCursorValue program option, the Get button is enabled to set the coordinate dimensions to that file contents.
+
+A map view shows spatial attributes by a map. This map visualises the spatial variation of the attribute, given the current cursor position.
+| Effect | +Control | +
|---|---|
| change spatial cursor | +left mouse click | +
| pan | +left mouse drag | +
| continuously change +spatial cursor (prevents +panning) | +Ctrl+left mouse drag | +
| move map to the right | +h / left mouse drag right | +
| move map to the left | +l / left mouse drag left | +
| move map to the bottom | +k / left mouse drag down | +
| move map to the top | +j / left mouse drag up | +
| zoom in | +Ctrl+k / left mouse double click / +scroll mouse | +
| zoom out | +forward +Ctrl+j / scroll mouse backward | +
| Zoom by rectangle | +Shift+left mouse drag | +
| reset | +r | +
A time graph view shows temporal attributes by a single line. This line visualises the temporal variation of the attribute, given the current cursor position. +The current time can be changed by clicking or dragging in the graph.
+The attribute context menu has a Save graph data as... action. This enables one to export the data of a single graph line.
+The drape view shows a scalar spatial raster attribute as a surface (or sheet) which floats in space. Additional spatial raster attributes can be shown on top of this surface.
+You can change some properties of the drape view by right clicking your mouse in the map view (the one which shows the sheet) and selecting Properties. The properties dialogue for the map view will be shown.
+There’s a difference between controlling the camera (‘your head’) and the 3D scene. You can control the position and aim of the camera (see the table below). You can only control the orientation of the scene (see the second table below). Together these controls enable you to look at every part of the scene from everywhere.
+| Effect | +Control | +
|---|---|
| look left | +h / left mouse drag left / right mouse drag left | +
| look right | +l / left mouse drag right / right mouse drag right | +
| look up | +k / right mouse drag forwards | +
| look down | +j / right mouse drag backwards | +
| roll clockwise | +n | +
| roll counter-clockwise | +m | +
| move left | +Shift+h / left-right mouse drag left | +
| move right | +Shift+l / left-right mouse drag left | +
| move up | +Shift+k / left-right mouse drag forwards | +
| move down | +Shift+j / left-right mouse drag backwards | +
| move forward | +Shift+Up / Ctrl+k / left mouse drag forwards | +
| move backwards | +Shift+Down / Ctrl+j / left mouse drag +backwards | +
| reset | +r | +
| Effect | +Control | +
|---|---|
| rotate clockwise around z-axis | +Left | +
| rotate counter-clockwise around z-axis | +Right | +
| rotate clockwise around x-axis | +Up | +
| rotate counter-clockwise around x-axis | +Down | +
| reset | +r | +
The camera and the scene have their own coordinate system which can be moved and rotated independently from each other. You should interpret the above controls relative to the direction of the coordinate system of the camera or the scene. For example, moving the camera forward means moving the camera in the direction of the camera. This might be in a direction away from the scene!
+Apart from the camera whose position and orientation can be changed, there are 5 more camera’s in the scene. These static camera’s are positioned in such a way that it is possible to see the relative position of the scene and the mobile camera. The table below gives a list of camera’s you can choose from (note the correspondence between the shortcuts and the layout of the numeric keypad on your keyboard).
+| Camera | +Shortcut | +
|---|---|
| Top | +5 | +
| Front | +2 | +
| Left | +4 | +
| Back | +8 | +
| Right | +6 | +
| Mobile | +0 | +
| Effect | +Shortcut | +
|---|---|
| exaggerate heights | +Plus (+) | +
| understate heights | +Minus (-) | +
| enlarge quad length | +Shift+q | +
| decrease quad length | +q | +
2D Multimap mode can be enabled when multiple scenarios are provided, that need to be compared side by side. Without duplication of window borders, legends, etc., in this mode, multiple maps are organized in panels over a regular lattice, and shown in a single window. Zoom/pan/identify actions, as well as legend modifications are now reflected automatically over all panels.
+Aguila does not provide interactive setting of the panel layout; it needs to be set on the command line or in the configuration file specified on startup. If it is not specified, all maps (scenarios) will be shown in different windows, and e.g. legend changes will only reflect to the window at which it is applied.
+Aguila can show probability distribution functions (cumulative probabilities and exceedance probabilities) for continuous random variables. The probability graph view is available only when the data are specified as a probability distribution, using a set of quantiles (see section Data set types).
+
+For uncertain attributes, the attribute context menu has a Show Probability Plot action. This will show the attribute in a new, linked, probability graph view. This view shows, for the current location and time step, the distribution function for the data, or the set of distribution functions for the set of scenarios.
+The view shows a horizontal line at distribution value 0.5, indicating that the map currently shows the median value. The horizontal line can be dragged to show other quantile values in the map view or time plot.
+As an alternative view, the distribution function values for a given threshold value (one minus the exceedance probability) can be shown by pressing the tool button with the + symbol, or through menu items View | Toggle Marker. This will flip the horizontal line into vertical position, allowing modification of the threshold (attribute) value for which distribution function values (probabilities) will be shown.
+Pressing the + tool button again returns to quantile views.
+Dragging the line may, for larger data sets, be slower in vertical mode than in horizontal mode. The reason is that in vertical mode, besides a linear interpolation, a lookup needs to take place, because the function is specified for a known set of (constant) probability values, and not as probabilities for a known set of attribute (data) values.
+While configuration of Aguila is possible with the use of command line options and a configuration file, a more sophisticated scheme is possible by configuring Aguila with an XML start up file. The XML interface is unique in the following ways:
+The XML interface is intended as an intermediate interface for other applications. For example, from a Python script it is relatively easy to generate the XML file. To use the XML interface a basic understanding of XML is required.
+The XML Schema (Aguila.xsd) and samples of XML script files are distributed with a data set in the demos/xml distribution directory. References to .xml files in this chapter can be found in that directory. Note that the Aguila application does not require the file Aguila.xsd to be present. The correct version of Aguila.xsd is compiled into the Aguila application. For ease of reference, the schema is copied verbatim in section Aguila.xsd
+In this section we only discuss the overall structure of the XML file. The detailed XML structure is documented in element specification within Aguila.xsd. Each Aguila XML file should have the following structure:
+<?xml version="1.0" encoding="UTF-8"?>
+<aguila
+ xmlns="http://www.pcraster.nl/pcrxml"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.pcraster.nl/pcrxml Aguila.xsd">
+ <visualisationGroup>
+ <!-- contents consisting of elements:
+ - cursorValueMonitorFile 0 or 1
+ - searchSpace 0 or 1
+ - data 0 or more
+ - view 0 or more
+ -->
+ </visualisationGroup>
+</aguila>
+The elements of the basic structure will be discussed in the reverse order of appearance.
+A number of views can be specified. All view contents is specified by the dataset name as an item element. That same name may optionally appear as a data element. Example1.xml illustrates a number of points on the view specification:
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Style Guide:
+ See PCRaster.xsd
+-->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:pcr="http://www.pcraster.nl/pcrxml"
+ elementFormDefault="qualified"
+ targetNamespace="http://www.pcraster.nl/pcrxml">
+
+<xs:include schemaLocation="commonTypes.xsd"/>
+
+<!-- document (root) elements -->
+<xs:element name="aguila" type="pcr:Aguila">
+ <xs:annotation>
+ <xs:documentation>Aguila configuration/startup file</xs:documentation>
+ </xs:annotation>
+</xs:element>
+<xs:element name="aguilaCursorValues" type="pcr:AguilaCursorValues">
+ <xs:annotation>
+ <xs:documentation>contents of what is created when starting Aguila
+ with the cursorValueMonitorFile option
+ </xs:documentation>
+ </xs:annotation>
+</xs:element>
+<xs:element name="aguilaCursor" type="pcr:Cursor">
+ <xs:annotation>
+ <xs:documentation>contents expected for fileToGetCursorValue,
+ connected to Get-button in Cursor Value Window
+ </xs:documentation>
+ </xs:annotation>
+</xs:element>
+
+<!--type definitions-->
+<xs:complexType name="Aguila">
+ <xs:annotation>
+ <xs:documentation>Aguila configuration/startup file</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="multiView" type="pcr:NrRowsNrCols"
+ minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>Only used to translate a command line option.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="visualisationGroup" type="pcr:VisualisationGroup"
+ minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="VisualisationGroup">
+ <xs:sequence>
+ <xs:element name="cursorValueMonitorFile" type="xs:string"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="fileToGetCursorValue" type="xs:string"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="searchSpace" type="pcr:DataSpace"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="data" type="pcr:AguilaData"
+ minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>Explictly defined data sources
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="view" type="pcr:AguilaView"
+ minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>
+ Order of elements will define the order in the Cursor Value Dialog.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <!--
+ <xs:element name="initialCursor" type="pcr:Cursor"
+ minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>Define initial cursor</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="namedCursors" type="pcr:NamedCursors"
+ minOccurs="0" maxOccurs="unbounded"/>
+ -->
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="DataSpace">
+ <xs:annotation>
+ <xs:documentation>
+ Note that in practice only the scenarios element can
+ occur more then once. All other maxOccurs value different
+ from 1 are only for internal Aguila reasons (converting command
+ line options to XML internally).
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="scenarios" type="pcr:StringSet"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="quantiles" type="pcr:FloatRangeOrSet"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <!-- Not yet
+ <xs:element name="samples" type="pcr:OneBasedIntegerRange"
+ minOccurs="0" maxOccurs="unbounded"/>
+ -->
+ <xs:element name="timesteps" type="pcr:Timesteps"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+</xs:complexType>
+
+
+<xs:complexType name="Timesteps">
+ <xs:complexContent>
+ <xs:extension base="pcr:OneBasedIntegerRangeOrSet">
+ <xs:sequence>
+ <xs:element name="dateMapper" type="pcr:DateMapper"
+ minOccurs="0" maxOccurs="1"/>
+ <!-- TODO allow dal::StepMapper like here to,
+ choice between dateMapper and stepMapper
+ -->
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+</xs:complexType>
+
+<xs:complexType name="DateMapper">
+ <xs:sequence>
+ <xs:element name="index" type="xs:unsignedInt">
+ <xs:annotation>
+ <xs:documentation>"epoch" of the index range
+ typically 1 or 0.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="timeOfIndex" type="xs:dateTime">
+ <xs:annotation>
+ <xs:documentation>full calendar date of the index sibling element
+ Note that timezone information is not supported
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="duration" type="pcr:TimeDuration">
+ <xs:annotation>
+ <xs:documentation>duration of a timestep
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+</xs:complexType>
+
+
+<xs:complexType name="AguilaView">
+ <xs:choice maxOccurs="1" minOccurs="1">
+ <xs:element name="map" type="pcr:StringSet"/>
+ <xs:element name="drape" type="pcr:StringSet"/>
+ <xs:element name="timeGraph" type="pcr:StringSet"/>
+ <xs:element name="probabilityGraph" type="pcr:StringSet"/>
+ <xs:element name="valueOnly" type="pcr:StringSet"/>
+ <xs:element name="default" type="pcr:StringSet"/>
+ <xs:element name="test" type="pcr:StringSet"/>
+ </xs:choice>
+</xs:complexType>
+
+<xs:complexType name="AguilaData">
+ <xs:annotation>
+ <xs:documentation>
+ TODO name is unique, addressing different datasets
+ with same "name" but yielding different datasets by
+ having a different DataSpace is done by setting another
+ path.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="name" type="xs:string"/>
+ <xs:element name="dataSpace" type="pcr:DataSpace"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="drawProperties" type="pcr:DrawProperties"
+ minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="DrawProperties">
+ <xs:sequence>
+ <xs:element name="legendBorderValuesType" type="pcr:LegendBorderValuesType"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="minimumCutOff" type="xs:double"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="maximumCutOff" type="xs:double"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="numberOfColours" type="pcr:Non0UnsignedInt"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="colourAssignment" type="pcr:ColourAssignment"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="drawMode" type="pcr:DrawMode"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="palette" type="pcr:Palette"
+ minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="Palette">
+ <xs:sequence>
+ <!-- choice
+ <xs:element name="default" type="pcr:DefaultPaletteNames"/>
+ -->
+ <xs:element name="rgb" type="pcr:Rgb" minOccurs="1" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>
+ * For nominal,ordinal,boolean data the element number (0-based) is mapped to the
+ value. Values outside of [0,nr-of-rgb-elements> are mapped to element number:
+ abs(value modulo nr-of-rgb-elements).
+ * for scalar and directional data a colour ramp is created.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="Rgb">
+ <xs:sequence>
+ <xs:element name="r" type="xs:unsignedByte" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="g" type="xs:unsignedByte" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="b" type="xs:unsignedByte" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+</xs:complexType>
+
+<!-- TODO the knows palettes
+<xs:simpleType name="DefaultPaletteNames">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="netscape"/>
+ <xs:enumeration value="greydirectional"/>
+ <xs:enumeration value="etc"/>
+ </xs:restriction>
+</xs:simpleType>
+-->
+
+<xs:complexType name="LegendBorderValuesType">
+ <xs:choice>
+ <xs:element name="rounded" type="pcr:EmptyElement"/>
+ <xs:element name="exact" type="pcr:EmptyElement"/>
+ </xs:choice>
+</xs:complexType>
+
+<xs:complexType name="ColourAssignment">
+ <xs:choice>
+ <xs:element name="linear" type="pcr:EmptyElement"/>
+ <xs:element name="trueLogarithmic" type="pcr:EmptyElement"/>
+ <xs:element name="shiftedLogarithmic" type="pcr:EmptyElement"/>
+ <xs:element name="confidenceLevel" type="pcr:ConfidenceLevel"/>
+ </xs:choice>
+</xs:complexType>
+
+<xs:complexType name="ConfidenceLevel">
+ <xs:sequence>
+ <xs:element name="value" type="xs:double">
+ <xs:annotation>
+ <xs:documentation>
+ (1 - alpha)
+ TODO: range [0,1]
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="DrawMode">
+ <xs:choice>
+ <xs:element name="fill" type="pcr:EmptyElement"/>
+ <xs:element name="contour" type="pcr:EmptyElement"/>
+ </xs:choice>
+</xs:complexType>
+
+<xs:complexType name="AguilaCursorValues">
+ <xs:annotation>
+ <xs:documentation>Contents Aguila cursor dump file</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="aguilaCursorValue" type="pcr:AguilaCursorValue"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="AguilaCursorValue">
+ <xs:annotation>
+ <xs:documentation>Aguila current cursor dump</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="cursor" type="pcr:Cursor"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="dataValue" type="pcr:DataValue"
+ minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>y coordinate
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="Cursor">
+ <xs:annotation>
+ <xs:documentation>Current cursor position in the dimensions
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="time" type="xs:unsignedInt"
+ minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>integer timestep
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="date" type="xs:dateTime"
+ minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>real calendar date
+ Note that timezone information is not supported
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="x" type="xs:double"
+ minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>x coordinate
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="y" type="xs:double"
+ minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>y coordinate
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="DataValue">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string"/>
+ <xs:element name="value" type="xs:string"/>
+ </xs:sequence>
+</xs:complexType>
+
+</xs:schema>
+' + _('Hide Search Matches') + '
') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); Index: pcraster/doc/aguila/_static/down-pressed.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_static/down.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_static/file.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_static/jquery.js =================================================================== diff -u --- pcraster/doc/aguila/_static/jquery.js (revision 0) +++ pcraster/doc/aguila/_static/jquery.js (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l =0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l ";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q =0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f
0)for(var j=d;j 0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e -1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"+d+">"},F={option:[1,""],legend:[1,""],thead:[1," ","
"],tr:[2,"","
"],td:[3,""],col:[2,"
"," "],area:[1,""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
"," ",""];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e 0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===" "&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/ + + + + + + + + + +
++ + + +++ + ++++ ++++ + +Welcome to Aguila’s documentation!¶
+Aguila is an exploratory data analysis tool. It is capable of visualizing various types of data in different ways and it maintains interactive links between these visualisations.
+As an example, you can visualize a spatio-temporal attribute using a map view and a time series view. Aguila allows you to explore the temporal variation of each location on the map by clicking in the map view. This also works the other way around. You can explore the spatial distribution of each moment in time by clicking in the time series view.
+Beside spatio-temporal variation, Aguila has support for scenarios (AKA alternatives) and uncertainty.
+In short, Aguila:
++
+- can visualize various types of data,
+- can read many data set formats,
+- runs at least on the major operating systems,
+- is licensed under the GPL.
+Aguila is part of the PCRaster Open Source Tools collection and is distributed as part of the main PCRaster installation package and as a seperate installation package.
+See for more information:
++ ++