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 @@ + + + + + + + + Index: pcraster/bin/asc2map.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/asc2map.exe.config =================================================================== diff -u --- pcraster/bin/asc2map.exe.config (revision 0) +++ pcraster/bin/asc2map.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/bin/col2map.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/col2map.exe.config =================================================================== diff -u --- pcraster/bin/col2map.exe.config (revision 0) +++ pcraster/bin/col2map.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/bin/legend.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/legend.exe.config =================================================================== diff -u --- pcraster/bin/legend.exe.config (revision 0) +++ pcraster/bin/legend.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/bin/map2asc.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/map2asc.exe.config =================================================================== diff -u --- pcraster/bin/map2asc.exe.config (revision 0) +++ pcraster/bin/map2asc.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/bin/map2col.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/map2col.exe.config =================================================================== diff -u --- pcraster/bin/map2col.exe.config (revision 0) +++ pcraster/bin/map2col.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/bin/mapattr.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/mapattr.exe.config =================================================================== diff -u --- pcraster/bin/mapattr.exe.config (revision 0) +++ pcraster/bin/mapattr.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/bin/oldcalc.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/oldcalc.exe.config =================================================================== diff -u --- pcraster/bin/oldcalc.exe.config (revision 0) +++ pcraster/bin/oldcalc.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/bin/pcraster_modflow.xml =================================================================== diff -u --- pcraster/bin/pcraster_modflow.xml (revision 0) +++ pcraster/bin/pcraster_modflow.xml (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,554 @@ + + + + initialise + + + + createBottomLayer + + + Spatial + + + + Spatial + + + + Spatial + + + + addLayer + + + Spatial + + + + Spatial + + + + addConfinedLayer + + + Spatial + + + + Spatial + + + + setDISParameter + + + Spatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + + setBoundary + + + Spatial + + + + Spatial + + + + NonSpatial + + + + setInitialHead + + + Spatial + + + + Spatial + + + + NonSpatial + + + + setNoFlowHead + + + Spatial + + + + NonSpatial + + + + getHeads + + + Spatial + + + + NonSpatial + + + + + setConductivity + + + Spatial + + + + NonSpatial + + + + Spatial + + + + Spatial + + + + NonSpatial + + + + setHorizontalAnisotropy + + + Spatial + + + + NonSpatial + + + + NonSpatial + + + + setDryHead + + + Spatial + + + + NonSpatial + + + + setWettingParameter + + + Spatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + setStorage + + + Spatial + + + + Spatial + + + + Spatial + + + + NonSpatial + + + + setWetting + + + Spatial + + + + Spatial + + + + NonSpatial + + + + getStorage + + + Spatial + + + + NonSpatial + + + + getConstantHead + + + Spatial + + + + NonSpatial + + + + getRightFace + + + Spatial + + + + NonSpatial + + + + getFrontFace + + + Spatial + + + + NonSpatial + + + + getLowerFace + + + Spatial + + + + NonSpatial + + + + + setRecharge + + + Spatial + + + + Spatial + + + + NonSpatial + + + + setIndicatedRecharge + + + Spatial + + + + Spatial + + + + Spatial + + + + getRecharge + + + Spatial + + + + NonSpatial + + + + + setDrain + + + Spatial + + + + Spatial + + + + Spatial + + + + NonSpatial + + + + getDrain + + + Spatial + + + + NonSpatial + + + + + setRiver + + + Spatial + + + + Spatial + + + + Spatial + + + + Spatial + + + + NonSpatial + + + + getRiverLeakage + + + Spatial + + + + NonSpatial + + + + + setWell + + + Spatial + + + + Spatial + + + + NonSpatial + + + + + setSOR + + + Spatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + setSIP + + + Spatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + setPCG + + + Spatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + setDSP + + + Spatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + NonSpatial + + + + + run + + + Spatial + + + + Index: pcraster/bin/pcrcalc.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/pcrcalc.exe.config =================================================================== diff -u --- pcraster/bin/pcrcalc.exe.config (revision 0) +++ pcraster/bin/pcrcalc.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/bin/pcrmf2k.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/pcrmf2k.exe.config =================================================================== diff -u --- pcraster/bin/pcrmf2k.exe.config (revision 0) +++ pcraster/bin/pcrmf2k.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/bin/pigz.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/resample.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/resample.exe.config =================================================================== diff -u --- pcraster/bin/resample.exe.config (revision 0) +++ pcraster/bin/resample.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/bin/table.exe =================================================================== diff -u Binary files differ Index: pcraster/bin/table.exe.config =================================================================== diff -u --- pcraster/bin/table.exe.config (revision 0) +++ pcraster/bin/table.exe.config (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ + + + + + + + + Index: pcraster/doc/aguila/.buildinfo =================================================================== diff -u --- pcraster/doc/aguila/.buildinfo (revision 0) +++ pcraster/doc/aguila/.buildinfo (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 372c4e709712b5fc8942f554174ea78e +tags: fbb0d17656682115ca4d033fb2f83ba1 Index: pcraster/doc/aguila/AguilaOnMac.html =================================================================== diff -u --- pcraster/doc/aguila/AguilaOnMac.html (revision 0) +++ pcraster/doc/aguila/AguilaOnMac.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,114 @@ + + + + + + + + + + Aguila on Mac — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Aguila on Mac

+
+_images/AguilaOnMac.png +

Aguila on the Mac.

+
+

The Aguila source code is portable:

+
    +
  • Aguila is developed on Linux.
  • +
  • Most Aguila users use the Windows version.
  • +
  • But Aguila also compiles on Mac.
  • +
+
+ + +
+
+
+
+
+

Previous topic

+

Vector data

+

Next topic

+

Downloads

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Building.html =================================================================== diff -u --- pcraster/doc/aguila/Building.html (revision 0) +++ pcraster/doc/aguila/Building.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,145 @@ + + + + + + + + + + Building — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Building

+
+

Note

+

This page is work in progress. Lots of stuff is missing.

+
+
+

Prerequisites

+

Prerequisites (http://pcraster.sourceforge.net and http://sourceforge.net/projects/pcraster):

+
    +
  • DevEnv-1.3
  • +
  • RasterFormat-1.2
  • +
  • Xsd-1.2
  • +
  • Dal-1.2
  • +
+

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):

+
    +
  • Boost
  • +
  • Geos
  • +
  • Gdal
  • +
  • Qwt
  • +
  • Icu
  • +
  • Python
  • +
  • Qt
  • +
  • Xerces
  • +
  • Xsd
  • +
  • CMake
  • +
+

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.

+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

License

+

Next topic

+

Support

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Data.html =================================================================== diff -u --- pcraster/doc/aguila/Data.html (revision 0) +++ pcraster/doc/aguila/Data.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,441 @@ + + + + + + + + + + Data — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Data

+
+

Data sets

+

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

+

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.

+
+

Space

+

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.

+
+
+

Time

+

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.

+
+
+

Uncertainty

+

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.

+
+
+

Scenarios

+

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.

+
+
+
+
+

Data set types

+

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.

+

+digraph DataSetTypes {
+  constantValues[
+         label="Constant values",
+         color="grey55",
+         fontcolor="grey55"]
+  uncertainValues[
+         label="Uncertain values",
+         color="grey55",
+         fontcolor="grey55"]
+  uncertainTemporalValues[
+         label="Uncertain temporal values",
+         color="grey55",
+         fontcolor="grey55"]
+  spatialValues[
+         label="Spatial values"]
+  temporalValues[
+         label="Temporal values"]
+  spatioTemporalValues[
+         label="Spatio-temporal values"]
+  uncertainSpatialValues[
+         label="Uncertain spatial values"]
+  uncertainSpatioTemporalValues[
+         label="Uncertain spatio-temporal values"]
+
+  constantValues -> spatialValues[
+         label="+space"];
+  constantValues -> temporalValues[
+         label="+time"];
+  constantValues -> uncertainValues[
+         label="+uncertainty",
+         color="grey55",
+         fontcolor="grey55"];
+  spatialValues -> spatioTemporalValues[
+         label="+time"];
+  spatialValues -> uncertainSpatialValues[
+         label="+uncertainty"];
+  spatioTemporalValues -> uncertainSpatioTemporalValues[
+         label="+uncertainty"];
+  temporalValues -> uncertainTemporalValues[
+         label="+uncertainty",
+         color="grey55",
+         fontcolor="grey55"];
+  temporalValues -> spatioTemporalValues[
+         label="+space"];
+} +

+ +
+

Constant values

+

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:

+
    +
  • An empirical constant.
  • +
  • A boundary value, not to be exceeded.
  • +
+
+

Note

+

Not implemented.

+
+
+
+

Uncertain values

+

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

+

Temporal values vary in time, but they have no spatial variation or even spatial reference.

+

Examples:

+
    +
  • Rainfall for a relatively small area and assumed te be constant for the whole area
  • +
+

Aguila has support for reading temporal values from many table data formats.

+
+
+

Uncertain temporal values

+

TODO

+
+

Note

+

Not implemented.

+
+
+
+

Spatial values

+

Spatial values vary in space, but not in time.

+

Examples:

+
    +
  • Raster with elevation values.
  • +
  • Feature layer with population density per administrative area.
  • +
+

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

+

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

+

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

+

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.

+
+
+

Scenario values

+

TODO

+
+
+
+

Data formats

+

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.
+
+

Raster data formats

+

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:

+
    +
  • VS_BOOLEAN: boolean attribute
  • +
  • VS_NOMINAL: nominal attribute
  • +
  • VS_ORDINAL: ordinal attribute
  • +
  • VS_SCALAR: scalar attribute
  • +
  • VS_DIRECTION: directional attribute
  • +
  • VS_LDD: ldd attribute
  • +
+

The folowing color interpretation values are recognized:

+
    +
  • GCI_GrayIndex: scalar attribute
  • +
+
+

Naming conventions

+

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:

+ + ++++ + + + + + + + + + + + + + + + + +
Raster file format conventions
DimensionConvention
ScenariosData 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 probabilitiesThe 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.
TimeTime 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.

+
+
+
+

Feature layer formats

+

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.

+
+

Naming conventions

+

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.

+
+
+
+
+

Vector data formats

+

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.

+
+

Naming conventions

+

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 data formats

+

Table file formats supported are the text and geoEAS formatted files and formats supported by the QtSql module.

+
+

Naming conventions

+

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).

+
+
+
+
+
+ + +
+
+
+
+ +
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Dialogs.html =================================================================== diff -u --- pcraster/doc/aguila/Dialogs.html (revision 0) +++ pcraster/doc/aguila/Dialogs.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,154 @@ + + + + + + + + + + Dialogs — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Dialogs

+

In this section the various Aguila dialogs are described.

+
+

Animation Dialog

+

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.

+_images/AnimationDialog.png +
+
+

Draw Properties Dialog

+

What properties are show in the properties dialog depends on the attribute type, not all properties are applicable for all types of data.

+
+
Palette
+
The colours used in the view
+
Exact legend borders
+
Should the minimum and maximum value of the legend, exactly match the data minimum and maximum. The values are rounded otherwise
+
Number of colours
+
Numbers of colours sampled from the colour palette.
+
Maximum cutoff
+
This value will set the upper range used in the colour assignment. Data values above this value are drawn using the same colour as the one used for the maximum cutoff value. Reset will set this back to the default case of the data maximum.
+
Minimum cutoff
+
This value will set the lower range used in the colour assignment. Data values below this value are drawn using the same colour as the one used for the mimimum cutoff value. Reset will set this back to the default case of the data minimum.
+
Colour assignment
+
Mode of how colours are assigned by dividing the data range in Number of colours intervals. The per colour interval size can be fixed (linear) or increasing from small to large (logarithmic).
+
Draw mode
+
+
Fill
+
Show values as solid filled pixels.
+
Contour
+
Draw as contours.
+
+
+
+

For an uncertain attribute, the folowing options are also available:

+
+
Colour assignment
+
If a value is selected in the probability graph, an additional colour assignment mode is available: Confidence interval.
+
Confidence level (1 - alpha)
+
If the Confidence interval colour assignment mode is selected, this option can be used to configure the confidence level.
+
Exceedance probabilities
+
When this option is selected, exceedance probabilities will be shown, instead of cumulative probabilities.
+
+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

Views

+

Next topic

+

Data

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Downloads.html =================================================================== diff -u --- pcraster/doc/aguila/Downloads.html (revision 0) +++ pcraster/doc/aguila/Downloads.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,103 @@ + + + + + + + + + + Downloads — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Downloads

+

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.

+
+ + +
+
+
+
+
+

Previous topic

+

Aguila on Mac

+

Next topic

+

Manual

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Enhancements.html =================================================================== diff -u --- pcraster/doc/aguila/Enhancements.html (revision 0) +++ pcraster/doc/aguila/Enhancements.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,178 @@ + + + + + + + + + + Enhancements — Aguila 1.3.3 documentation + + + + + + + + + + + + + + +
+
+
+
+ +
+

Enhancements

+

Some ideas for improving Aguila. Improvements can be new features or redesigns of existing features.

+
+

Attribute browser

+

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.

+
+

Requirements

+
    +
  • User must be able to select different locations:
      +
    • Directories of the local filesystem.
    • +
    • Url’s (WFS, WCS).
    • +
    +
  • +
  • It must be obvious what the characteristics of the found attributes are (spatial, temporal, uncertain, scenarios).
  • +
  • Found attributes may have the same name. It must be obvious which dataset each attribute is part of.
  • +
  • Since browsing for attributes may be slow:
      +
    • There must be some progress indicator.
    • +
    • The user must be able to cancel (or stop) the browse.
    • +
    • Browse results must be cached and there must be an option to force a rebrowse.
    • +
    +
  • +
  • It must be possible to drag found attributes onto running visualisations.
  • +
  • The rest of the application must remain usable while the dialog scans for attributes.
  • +
  • It must be possible to open more than one attribute browser at the same time.
  • +
  • It must be possible to start a new visualisation from the context menu of the attribute. Only valid visualisations should be listed in the menu.
  • +
  • Found attributes must be added to the window incrementally, not after the browse is finished.
  • +
  • The attribute browser must be usable by other clients as well (Nutshell, Script editor, ...). It may even be useful on its own, as a smarter replacement of gdalinfo. It can be developed as an independent component and added to Aguila once it becomes usable. It probably should only depend on Dal, not on Aguila. Aguila depends on the attribute browser.
  • +
  • The most recently visited locations must be available for selection within and between sessions.
  • +
  • The attribute view mode must be selectable (icons, details, ...).
  • +
+
+
+

Design

+

From the requirements folows that the folowing graphical elements are part of the dialog:

+
    +
  • The location being browsed.
  • +
  • A means to change the browse location, eg:
      +
    • Push button which starts a dialog for selecting a directory in the local filesystem.
    • +
    • Push button which starts a dialog for entering urls of WCS and WFS servers.
    • +
    +
  • +
  • A push button to start the browse. In case chached data is used, this button may double as a ‘Refresh’ button.
  • +
  • A push button to stop the browse.
  • +
  • A table with information about the attributes found:
      +
    • Name
    • +
    • Dataset
    • +
    • Dimensional properties
    • +
    • Format
    • +
    +
  • +
  • A progress indicator. Probably a progressbar. Amount of work is equal to number of drivers used. Current progress equals the number of drivers finished.
  • +
+
+
+

Implemenation

+
    +
  • The dialog must run in a seperate thread.
  • +
  • The attribute browser is a Widget which can be put in a dialog or in any other widget type.
  • +
  • When rebrowsing the a location another time, use the driver information of the previous browse to see whether that data can still be opened with it. Most probably it can. Drivers are tried in a sequence, and can be ordered based on previous experiences. Try to get a small set of files ASAP by using existing knowledge.
  • +
+

Signals for high-level browse class:

+
attributeClicked(size_t id);
+attributeDoubleClicked(size_t id);
+customContextMenuRequested(size_t id);
+
+
+
+
+

2.5D View

+

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, ...).

+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

Links

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Faq.html =================================================================== diff -u --- pcraster/doc/aguila/Faq.html (revision 0) +++ pcraster/doc/aguila/Faq.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,117 @@ + + + + + + + + + + FAQ — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

FAQ

+
+

Why can’t my dataset be opened?

+

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.

+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

Xml Startup Configuration

+

Next topic

+

Support

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/History.html =================================================================== diff -u --- pcraster/doc/aguila/History.html (revision 0) +++ pcraster/doc/aguila/History.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,157 @@ + + + + + + + + + + History — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

History

+
+

1.3

+
+
+

1.2

+
    +
  • 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)

    +
  • +
  • ...

    +
  • +
+
+
+

1.1

+
    +
  • Added support for visualizing feature data.
  • +
+
+
+

1.0

+

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.

+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

Support

+

Next topic

+

License

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Installation.html =================================================================== diff -u --- pcraster/doc/aguila/Installation.html (revision 0) +++ pcraster/doc/aguila/Installation.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,185 @@ + + + + + + + + + + Installation — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Installation

+
+

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.

+
+

Microsoft Windows

+

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:

+
    +
  1. Right-click on My Computer and select Properties.
  2. +
  3. Go to Advanced tab and select Environment Variables.
  4. +
  5. Edit the PATH variable from the User variables for user list, or add it if it not already exists.
  6. +
  7. Insert the path to the Aguila binary into the edit field (separate paths using a semicolon).
  8. +
  9. Open a new command prompt which will have the new environment setting.
  10. +
+
+
+

GNU Linux

+
+

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:

+
    +
  • i686 / Debian testing
  • +
  • i686 / Ubuntu 8.04
  • +
  • i686 / Ubuntu 9.04
  • +
  • x86_64 / Debian testing
  • +
  • x86_64 / Ubuntu 8.04
  • +
+
+ + + + + +
[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.

+
+
+
+

Mac OS X

+

Aguila compiles on Mac OS X too, but since we currently do not have a development machine available with this operating system installed, we cannot provide binary packages, unfortunately.

+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

Introduction

+

Next topic

+

Quick start

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Introduction.html =================================================================== diff -u --- pcraster/doc/aguila/Introduction.html (revision 0) +++ pcraster/doc/aguila/Introduction.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,117 @@ + + + + + + + + + + Introduction — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Introduction

+

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.

+ +
+ + +
+
+
+
+
+

Previous topic

+

Manual

+

Next topic

+

Installation

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/License.html =================================================================== diff -u --- pcraster/doc/aguila/License.html (revision 0) +++ pcraster/doc/aguila/License.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,105 @@ + + + + + + + + + + License — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

License

+

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.

+
+ + +
+
+
+
+
+

Previous topic

+

History

+

Next topic

+

Building

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Links.html =================================================================== diff -u --- pcraster/doc/aguila/Links.html (revision 0) +++ pcraster/doc/aguila/Links.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,113 @@ + + + + + + + + + + Links — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + +
+
+ +
+
+
+

Table Of Contents

+ + +

Previous topic

+

Publications

+

Next topic

+

Enhancements

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Manual.html =================================================================== diff -u --- pcraster/doc/aguila/Manual.html (revision 0) +++ pcraster/doc/aguila/Manual.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,164 @@ + + + + + + + + + + Manual — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + +
+
+ +
+
+
+

Previous topic

+

Downloads

+

Next topic

+

Introduction

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/MultiMap2DView.html =================================================================== diff -u --- pcraster/doc/aguila/MultiMap2DView.html (revision 0) +++ pcraster/doc/aguila/MultiMap2DView.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,108 @@ + + + + + + + + + + Multiple 2D maps — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Multiple 2D maps

+
+_images/MultiMap2DView.png +

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.

+
+
+ + +
+
+
+
+
+

Previous topic

+

Uncertain spatio-temporal data

+

Next topic

+

Vector data

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Publications.html =================================================================== diff -u --- pcraster/doc/aguila/Publications.html (revision 0) +++ pcraster/doc/aguila/Publications.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,102 @@ + + + + + + + + + + Publications — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Publications

+

TODO

+
+ + +
+
+
+
+
+

Previous topic

+

Support

+

Next topic

+

Links

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/QuickStart.html =================================================================== diff -u --- pcraster/doc/aguila/QuickStart.html (revision 0) +++ pcraster/doc/aguila/QuickStart.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,413 @@ + + + + + + + + + + Quick start — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Quick start

+
+

Displaying attributes

+

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
+
+_images/dem_Map.png +
# Show time series.
+aguila rain.tss
+
+_images/rain_TimeGraph.png +
# 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
+
+_images/dem+soil_Drape.png +

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.

+
+
+

Required information

+

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.

+
+
+

Program options

+

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.

+ + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Command line options
OptionDescription
-f [ –config ] argRead options from the configuration file +named arg.
-x [ –xml ] argRead options from the xml file named +arg, see section +Xml Startup Configuration.
-h [ –help ]Show the command synopsis and exit.
-l [ –lock ] argCreate 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.
–licenseShow the software license and exit.
-v [ –version ]Show the software version and exit.
-2 [ –mapView ] argShow 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 ] argShow 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 ] argShow 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 ] argShow attribute named arg in a +probability graph view. arg +can contain the names of more than +one attribute.
–valueOnly argShow attribute named arg only +in the value cursor matrix. arg +can contain the names of more than +one data set.
+ + ++++ + + + + + + + + + + + + + + + + + + + + + + +
Command line and configuration file options
OptionDescription
-n [ –scenarios ] argConfigures the scenario dimension using the set +of scenarios in arg. Multiple scenarios +options are merged into one scenario +dimension.
-s [ –timesteps ] argConfigures 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] argConfigures 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 argTells 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 ] argWhen 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.
+
+
+

Examples

+

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.

+
+

2D raster

+

Visualise a raster in 2D. Default view for rasters is 2D map.

+
aguila dem
+
+

See also section Map view.

+
+
+

2D rasters on top of each other

+

Stack rasters on each other. Spaces around the +-sign.

+
aguila dem + ldd
+
+

See also section Map view.

+
+
+

2.5D raster draped

+

2.5D is also possible.

+
aguila -3 dem + ldd
+
+

See also section Drape View.

+
+
+

2D raster stack

+

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.

+
+
+

Time series

+

Visualise all time series in one time series plot.

+
aguila discharge
+
+

See also section Time Graph View.

+
+
+

Time series selection

+

Select some time series (the fifth and seventh columns) from discharge.

+
aguila discharge{1,5} + discharge{1,7}
+
+

See also section Time Graph View.

+
+
+

2D raster draped and time series

+

Combine rasters and time series data.

+
aguila dem + ldd discharge
+
+

See also sections Map view, Time Graph View.

+
+
+

Scenarios of temporal quantiles

+

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.

+
+
+
+

Environment variables

+

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.

+
+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

Installation

+

Next topic

+

Views

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Screenshots.html =================================================================== diff -u --- pcraster/doc/aguila/Screenshots.html (revision 0) +++ pcraster/doc/aguila/Screenshots.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,143 @@ + + + + + + + + + + Screenshots and videos — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Screenshots and videos

+
+
+ +++++ + + + + + + + + + + + + + + + + + + +
+_images/UncertainSpatioTemporal.png +
+
+_images/MultiMap2DView.png +
+
+_images/Vector1.png +
+
Uncertain spatio-temporal data.Multiple 2D maps in a single view.Vector data.
+_images/AguilaOnMac.png +
+
+_images/AguilaVideo.png +
+
 
Aguila on the Mac.Aguila video. 
+
+ + +
+
+
+
+
+

Previous topic

+

Welcome to Aguila’s documentation!

+

Next topic

+

Uncertain spatio-temporal data

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Support.html =================================================================== diff -u --- pcraster/doc/aguila/Support.html (revision 0) +++ pcraster/doc/aguila/Support.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,137 @@ + + + + + + + + + + Support — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Support

+
+

Comments, questions, ideas, etc

+

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.

+
+
+

Report a bug

+

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:

+
    +
  • Describe the bug in as much detail as possible.
  • +
  • Provide (a link to) a zip or archive file with all data and scripts so we can reproduce the bug. If you have a large model (long script and/or much data) try to make a simpler model that still gives the same error.
  • +
  • Try sending an attachment of your screen showing possible error messages:
      +
    1. Press PrntScrn (PrintScreen) on your Keyboard.
    2. +
    3. Open Paint: Start->All Programs->Accessories->Paint.
    4. +
    5. Copy Screen in untitled: Paint Menu->Edit->Paste.
    6. +
    7. Save graphics File: File->Save (type .PNG is preferred).
    8. +
    9. Attach the saved file to your email.
    10. +
    +
  • +
+
+
+

Request a feature

+

You can use the same Bugs and feature requests tracker as for reporting bugs.

+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

Building

+

Next topic

+

Publications

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/UncertainSpatioTemporal.html =================================================================== diff -u --- pcraster/doc/aguila/UncertainSpatioTemporal.html (revision 0) +++ pcraster/doc/aguila/UncertainSpatioTemporal.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,111 @@ + + + + + + + + + + Uncertain spatio-temporal data — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Uncertain spatio-temporal data

+
+_images/UncertainSpatioTemporal.png +

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.

+
+ + +
+
+
+
+
+

Previous topic

+

Screenshots and videos

+

Next topic

+

Multiple 2D maps

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Vector.html =================================================================== diff -u --- pcraster/doc/aguila/Vector.html (revision 0) +++ pcraster/doc/aguila/Vector.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,112 @@ + + + + + + + + + + Vector data — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Vector data

+
+_images/Vector1.png +

Vector data

+
+
+_images/Vector2.png +

Vector data

+
+
+ + +
+
+
+
+
+

Previous topic

+

Multiple 2D maps

+

Next topic

+

Aguila on Mac

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/Videos/2009-10-08_2222.swf =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/Views.html =================================================================== diff -u --- pcraster/doc/aguila/Views.html (revision 0) +++ pcraster/doc/aguila/Views.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,426 @@ + + + + + + + + + + Views — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Views

+

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:

+ + ++++ + + + + + + + + + + +
Attribute context menu actions
Menu itemEffect
Edit draw propertiesShows 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.

+
+

Cursor And Values 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.

+ + ++++ + + + + + + + + + + + + + + + + +
Cursor slider actions
Change positionSlider action
Set slider one position backwardsClick on the slider part left from the +knob
Set slider one position forwardClick on the slider part right from the +knob
Set slider to specific positionDrag 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.

+_images/CursorAndValuesView.png +
+
+

Map view

+

A map view shows spatial attributes by a map. This map visualises the spatial variation of the attribute, given the current cursor position.

+
+

Map Controls

+ + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Map controls.
EffectControl
change spatial cursorleft mouse click
panleft mouse drag
continuously change +spatial cursor (prevents +panning)Ctrl+left mouse drag
move map to the righth / left mouse drag right
move map to the leftl / left mouse drag left
move map to the bottomk / left mouse drag down
move map to the topj / left mouse drag up
zoom inCtrl+k / left mouse double click / +scroll mouse
zoom outforward +Ctrl+j / scroll mouse backward
Zoom by rectangleShift+left mouse drag
resetr
+
+
+
+

Time Graph View

+

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.

+
+
+

Drape View

+

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.

+
+

Drape Controls

+

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.

+ + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Controls for changing the position and orientation of the camera.
EffectControl
look lefth / left mouse drag left / right mouse drag left
look rightl / left mouse drag right / right mouse drag right
look upk / right mouse drag forwards
look downj / right mouse drag backwards
roll clockwisen
roll counter-clockwisem
move leftShift+h / left-right mouse drag left
move rightShift+l / left-right mouse drag left
move upShift+k / left-right mouse drag forwards
move downShift+j / left-right mouse drag backwards
move forwardShift+Up / Ctrl+k / left mouse drag forwards
move backwardsShift+Down / Ctrl+j / left mouse drag +backwards
resetr
+ + ++++ + + + + + + + + + + + + + + + + + + + + + + +
Controls for changing the orientation of the scene.
EffectControl
rotate clockwise around z-axisLeft
rotate counter-clockwise around z-axisRight
rotate clockwise around x-axisUp
rotate counter-clockwise around x-axisDown
resetr
+

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!

+
+
+

Camera’s

+

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’s.
CameraShortcut
Top5
Front2
Left4
Back8
Right6
Mobile0
+
+
+

Shortcuts

+ + ++++ + + + + + + + + + + + + + + + + + + + +
Shortcuts.
EffectShortcut
exaggerate heightsPlus (+)
understate heightsMinus (-)
enlarge quad lengthShift+q
decrease quad lengthq
+
+
+
+

2D Multimap View

+

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.

+
+
+

Probability Graph View

+

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).

+_images/krige_ProbabilityGraph.png +

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.

+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

Quick start

+

Next topic

+

Dialogs

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/XmlStartupConfiguration.html =================================================================== diff -u --- pcraster/doc/aguila/XmlStartupConfiguration.html (revision 0) +++ pcraster/doc/aguila/XmlStartupConfiguration.html (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,510 @@ + + + + + + + + + + Xml Startup Configuration — Aguila 1.3.3 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Xml Startup Configuration

+

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:

+
    +
  • Specify draw properties per data item.
  • +
  • Specify real dates (e.g. 2005-02-10T18:15:00) and real time intervals (e.g. 24 hours).
  • +
  • Map data with different time dimensions to a single time line.
  • +
+

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

+
+

Basic structure

+

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.

+
+
view
+

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:

+
    +
  • The first appearance yields the position in the cursor and values matrix. Use a valueOnly element to obtain the preferred order (dem.map).
  • +
  • Time series file and cursor value graphs can be combined. See runoff and runoff.tss combined in a view in example1.xml.
  • +
+
+
data
+
A data element is used to tag a dataset name used in a view element with additional specifications: its draw properties and dataSpace. For example, in example1.xml the colour assignment of upstreamArea.map is set to shifted logarithmic.
+
searchSpace
+
With the searchSpace element one can describe the dimensions in which all data should be found if the data itself has no dataSpace sub element. In example1.xml the 28 model steps are set in the searchSpace and the timesteps are mapped to a real calendar date with a 6 hour time increment.
+
cursorValueMonitorFile
+
See the section called Program options.
+
fileToGetCursorValue
+
This element defines what file is read to set the applications cursor at each time Get is pressed in the Cursor Value Window. Currently only the x and y (space dimensions) are read. The file should be an XML file with the aguilaCursor element as root. See get.xml set in example1.xml.
+
+
+
+

Aguila.xsd

+
<?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>
+
+
+
+
+ + +
+
+
+
+
+

Table Of Contents

+ + +

Previous topic

+

Data

+

Next topic

+

FAQ

+ + +
+
+
+
+ + + + \ No newline at end of file Index: pcraster/doc/aguila/_images/AguilaOnMac.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/AguilaVideo.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/AnimationDialog.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/CursorAndValuesView.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/MultiMap2DView.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/UncertainSpatioTemporal.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/Vector1.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/Vector2.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/dem+soil_Drape.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/dem_Map.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/graphviz-03584fb0c4ecf80c4f2b310a7c1e73bee4110f1f.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/graphviz-03584fb0c4ecf80c4f2b310a7c1e73bee4110f1f.png.map =================================================================== diff -u --- pcraster/doc/aguila/_images/graphviz-03584fb0c4ecf80c4f2b310a7c1e73bee4110f1f.png.map (revision 0) +++ pcraster/doc/aguila/_images/graphviz-03584fb0c4ecf80c4f2b310a7c1e73bee4110f1f.png.map (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,2 @@ + + Index: pcraster/doc/aguila/_images/krige_ProbabilityGraph.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_images/rain_TimeGraph.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_sources/AguilaOnMac.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/AguilaOnMac.txt (revision 0) +++ pcraster/doc/aguila/_sources/AguilaOnMac.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,13 @@ +************* +Aguila on Mac +************* + +.. figure:: Images/AguilaOnMac.png + + Aguila on the Mac. + +The Aguila source code is portable: + +* Aguila is developed on Linux. +* Most Aguila users use the Windows version. +* But Aguila also compiles on Mac. Index: pcraster/doc/aguila/_sources/Building.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Building.txt (revision 0) +++ pcraster/doc/aguila/_sources/Building.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,43 @@ +.. _building: + +******** +Building +******** + +.. note:: + + This page is work in progress. Lots of stuff is missing. + +Prerequisites +============= +Prerequisites (http://pcraster.sourceforge.net and http://sourceforge.net/projects/pcraster): + +* DevEnv-1.3 +* RasterFormat-1.2 +* Xsd-1.2 +* Dal-1.2 + +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): + +* Boost +* Geos +* Gdal +* Qwt +* Icu +* Python +* Qt +* Xerces +* Xsd +* CMake + +Checkout/configure/build:: + + $ svn checkout https://pcraster.svn.sourceforge.net/svnroot/pcraster/Aguila/branches/1.1.0 Aguila-1.1.0 + $ export AGUILA=/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. Index: pcraster/doc/aguila/_sources/Data.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Data.txt (revision 0) +++ pcraster/doc/aguila/_sources/Data.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,380 @@ +.. _data: + +**** +Data +**** + +.. _dataSets: + +Data sets +========= +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 :ref:`dimensions`). Unique combinations of such dimensions give rise to different data set types (see section :ref:`dataSetTypes`). And various data formats are used to store data set values (see section :ref:`dataFormats`). + +.. _dimensions: + +Dimensions +========== +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. + +.. _space: + +Space +----- +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. + +.. _time: + +Time +---- +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 :ref:`xmlStartupConfiguration`. + +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. + +.. _uncertainty: + +Uncertainty +----------- +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. + +.. _scenarios: + +Scenarios +--------- +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 :ref:`2DMultimapView`. This view shows spatial attributes from different scenarios in a single window. + +.. note:: + + When scenarios are used, we still speak of a single attribute. + +.. _dataSetTypes: + +Data set types +============== +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. + +.. + TODO Add a label and refer to it from the text. + TODO Add links from the nodes to the sections. + TODO Color the non-implemented nodes differently and remove them from the text. + +.. graphviz:: + + digraph DataSetTypes { + constantValues[ + label="Constant values", + color="grey55", + fontcolor="grey55"] + uncertainValues[ + label="Uncertain values", + color="grey55", + fontcolor="grey55"] + uncertainTemporalValues[ + label="Uncertain temporal values", + color="grey55", + fontcolor="grey55"] + spatialValues[ + label="Spatial values"] + temporalValues[ + label="Temporal values"] + spatioTemporalValues[ + label="Spatio-temporal values"] + uncertainSpatialValues[ + label="Uncertain spatial values"] + uncertainSpatioTemporalValues[ + label="Uncertain spatio-temporal values"] + + constantValues -> spatialValues[ + label="+space"]; + constantValues -> temporalValues[ + label="+time"]; + constantValues -> uncertainValues[ + label="+uncertainty", + color="grey55", + fontcolor="grey55"]; + spatialValues -> spatioTemporalValues[ + label="+time"]; + spatialValues -> uncertainSpatialValues[ + label="+uncertainty"]; + spatioTemporalValues -> uncertainSpatioTemporalValues[ + label="+uncertainty"]; + temporalValues -> uncertainTemporalValues[ + label="+uncertainty", + color="grey55", + fontcolor="grey55"]; + temporalValues -> spatioTemporalValues[ + label="+space"]; + } + +* `Constant values`_ +* `Uncertain values`_ +* `Temporal values`_ +* `Uncertain temporal values`_ +* `Spatial values`_ +* `Uncertain spatial values`_ +* `Spatio-temporal values`_ +* `Uncertain spatio-temporal values`_ +* `Scenario values`_ + +.. _constantValues: + +Constant values +--------------- +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: + +* An empirical constant. +* A boundary value, not to be exceeded. + +.. Note:: + + Not implemented. + +.. _uncertainValues: + +Uncertain values +---------------- +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. + +.. _temporalValues: + +Temporal values +--------------- +Temporal values vary in time, but they have no spatial variation or even spatial reference. + +Examples: + +* Rainfall for a relatively small area and assumed te be constant for the whole area + +Aguila has support for reading temporal values from many `table data formats`_. + +.. + For temporal values the folowing fields must be present in the table: + * ``date`` + * + +.. _uncertainTemporalValues: + +Uncertain temporal values +------------------------- +TODO + +.. Note:: + + Not implemented. + +.. _spatialValues: + +Spatial values +-------------- +Spatial values vary in space, but not in time. + +Examples: + +* Raster with elevation values. +* Feature layer with population density per administrative area. + +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`. + +.. _uncertainSpatialValues: + +Uncertain spatial values +------------------------ +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. + +.. _spatioTemporalValues: + +Spatio-temporal values +---------------------- +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. + +.. _uncertainSpatioTemporalValues: + +Uncertain spatio-temporal values +-------------------------------- +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. + +.. _scenarioValues: + +Scenario values +--------------- +TODO + +.. _dataFormats: + +Data formats +============ +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 [#]_. + +__ http://pcraster.svn.sourceforge.net/viewvc/pcraster/devenv/trunk/scripts/buildPcrTeamExtern.sh?view=markup + +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. + +.. [#] Eventually Aguila will be able to list the formats built in. + +.. _rasterDataFormats: + +Raster data formats +------------------- +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. + +__ http://www.gdal.org + +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. + +__ http://www.gdal.org/gdal_datamodel.html + +The folowing values for the ``PCRASTER_VALUESCALE`` meta data item are recognized: + +- ``VS_BOOLEAN``: boolean attribute +- ``VS_NOMINAL``: nominal attribute +- ``VS_ORDINAL``: ordinal attribute +- ``VS_SCALAR``: scalar attribute +- ``VS_DIRECTION``: directional attribute +- ``VS_LDD``: ldd attribute + +The folowing color interpretation values are recognized: + +- ``GCI_GrayIndex``: scalar attribute + +.. _rasterDataFormatsNamingConventions: + +Naming conventions +^^^^^^^^^^^^^^^^^^ +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: + +.. table:: Raster file format 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_{.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_{.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. + +.. _featureLayerFormats: + +Feature layer formats +--------------------- +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. + +__ http://www.gdal.org/ogr + +Naming conventions +^^^^^^^^^^^^^^^^^^ +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 :ref:`tableDataFormats` 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. + +.. _vectorDataFormats: + +Vector data formats +------------------- +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 :ref:`rasterDataFormats` can be used to store vector magnitude values. + +Naming conventions +^^^^^^^^^^^^^^^^^^ +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 :ref:`rasterDataFormatsNamingConventions`. + +.. _tableDataFormats: + +Table data formats +------------------ +Table file formats supported are the text and geoEAS formatted files and formats supported by the `QtSql module`__. + +__ http://doc.trolltech.com/qtsql.html + +Naming conventions +^^^^^^^^^^^^^^^^^^^ +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``. + +.. Depending on the application, extra information about the columns to select from the table can be given in the name of the dataset. To select the first and fifth column from a dataset you can use: ``mytable{1,5}``. The selection specification consists of a list of column numbers, seperated by a comma and optional whitespace, and surrounded by curly braces. + +The table must contain a field named after the attribute. The values of this field will be visualized. + +.. TODO How about table formats without a header. Default take the first two columns? The default should make PCRaster's timeseries files useable. Get rid of the selection stuff in the above paragraph(?). + +.. TODO pick info from mail. Here, only info for joining the attribute. Info about the table layout can be described in the next section. + +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``). + Index: pcraster/doc/aguila/_sources/Dialogs.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Dialogs.txt (revision 0) +++ pcraster/doc/aguila/_sources/Dialogs.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,52 @@ +.. _dialogs: + +******* +Dialogs +******* +In this section the various Aguila dialogs are described. + +.. Main menu +.. ========= +.. To change the background of all windows choose ``Edit | Preferences``. + +.. _animationDialog: + +Animation Dialog +================ +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. + +.. image:: Images/AnimationDialog.png + +.. _drawPropertiesDialog: + +Draw Properties Dialog +====================== +What properties are show in the properties dialog depends on the attribute type, not all properties are applicable for all types of data. + +Palette + The colours used in the view +Exact legend borders + Should the minimum and maximum value of the legend, exactly match the data minimum and maximum. The values are rounded otherwise +Number of colours + Numbers of colours sampled from the colour palette. +Maximum cutoff + This value will set the upper range used in the colour assignment. Data values above this value are drawn using the same colour as the one used for the maximum cutoff value. ``Reset`` will set this back to the default case of the data maximum. +Minimum cutoff + This value will set the lower range used in the colour assignment. Data values below this value are drawn using the same colour as the one used for the mimimum cutoff value. ``Reset`` will set this back to the default case of the data minimum. +Colour assignment + Mode of how colours are assigned by dividing the data range in ``Number of colours`` intervals. The per colour interval size can be fixed (linear) or increasing from small to large (logarithmic). +Draw mode + ``Fill`` + Show values as solid filled pixels. + ``Contour`` + Draw as contours. + +For an uncertain attribute, the folowing options are also available: + +Colour assignment + If a value is selected in the probability graph, an additional colour assignment mode is available: ``Confidence interval``. +Confidence level (1 - alpha) + If the ``Confidence interval`` colour assignment mode is selected, this option can be used to configure the confidence level. +Exceedance probabilities + When this option is selected, exceedance probabilities will be shown, instead of cumulative probabilities. + Index: pcraster/doc/aguila/_sources/Downloads.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Downloads.txt (revision 0) +++ pcraster/doc/aguila/_sources/Downloads.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,10 @@ +.. _downloads: + +========= +Downloads +========= +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. + +.. Building from source Index: pcraster/doc/aguila/_sources/Enhancements.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Enhancements.txt (revision 0) +++ pcraster/doc/aguila/_sources/Enhancements.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,80 @@ +.. _enhancements: + +************ +Enhancements +************ + +Some ideas for improving Aguila. Improvements can be new features or redesigns of existing features. + +Attribute browser +================= +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. + +Requirements +------------ +- User must be able to select different locations: + + - Directories of the local filesystem. + - Url's (WFS, WCS). + +- It must be obvious what the characteristics of the found attributes are (spatial, temporal, uncertain, scenarios). +- Found attributes may have the same name. It must be obvious which dataset each attribute is part of. +- Since browsing for attributes may be slow: + + - There must be some progress indicator. + - The user must be able to cancel (or stop) the browse. + - Browse results must be cached and there must be an option to force a rebrowse. + +- It must be possible to drag found attributes onto running visualisations. +- The rest of the application must remain usable while the dialog scans for attributes. +- It must be possible to open more than one attribute browser at the same time. +- It must be possible to start a new visualisation from the context menu of the attribute. Only valid visualisations should be listed in the menu. +- Found attributes must be added to the window incrementally, not after the browse is finished. +- The attribute browser must be usable by other clients as well (Nutshell, Script editor, ...). It may even be useful on its own, as a smarter replacement of gdalinfo. It can be developed as an independent component and added to Aguila once it becomes usable. It probably should only depend on Dal, not on Aguila. Aguila depends on the attribute browser. +- The most recently visited locations must be available for selection within and between sessions. +- The attribute view mode must be selectable (icons, details, ...). + +Design +------ +From the requirements folows that the folowing graphical elements are part of the dialog: + +- The location being browsed. +- A means to change the browse location, eg: + + - Push button which starts a dialog for selecting a directory in the local filesystem. + - Push button which starts a dialog for entering urls of WCS and WFS servers. + +- A push button to start the browse. In case chached data is used, this button may double as a 'Refresh' button. +- A push button to stop the browse. +- A table with information about the attributes found: + + - Name + - Dataset + - Dimensional properties + - Format + +- A progress indicator. Probably a progressbar. Amount of work is equal to number of drivers used. Current progress equals the number of drivers finished. + +Implemenation +------------- +- The dialog must run in a seperate thread. +- The attribute browser is a Widget which can be put in a dialog or in any other widget type. +- When rebrowsing the a location another time, use the driver information of the previous browse to see whether that data can still be opened with it. Most probably it can. Drivers are tried in a sequence, and can be ordered based on previous experiences. Try to get a small set of files ASAP by using existing knowledge. + +Signals for high-level browse class:: + + attributeClicked(size_t id); + attributeDoubleClicked(size_t id); + customContextMenuRequested(size_t id); + +2.5D View +========= +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, ...). + + Index: pcraster/doc/aguila/_sources/Faq.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Faq.txt (revision 0) +++ pcraster/doc/aguila/_sources/Faq.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,12 @@ +.. _faq: + +*** +FAQ +*** + +Why can't my dataset be opened? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Did you set PCRASTER_DAL_FORMATS (see section :ref:`environmentVariables`) 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 :ref:`support` for information about how to request a new feature. + Index: pcraster/doc/aguila/_sources/History.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/History.txt (revision 0) +++ pcraster/doc/aguila/_sources/History.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,33 @@ +.. _history: + +******* +History +******* + +1.3 +=== + +1.2 +=== +- 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 :ref:`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 :ref:`mapControls`. +- 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 :ref:`rasterDataFormats`. (`#2873989 `_) +- ... + +1.1 +=== +- Added support for visualizing feature data. + +1.0 +=== +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. Index: pcraster/doc/aguila/_sources/Installation.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Installation.txt (revision 0) +++ pcraster/doc/aguila/_sources/Installation.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,91 @@ +.. _installation: + +************ +Installation +************ + +.. 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. + +__ http://pcraster.sourceforge.net +__ http://sourceforge.net/projects/pcraster/files + +.. _microsoftWindows: + +Microsoft Windows +================= +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: + +#. Right-click on ``My Computer`` and select ``Properties``. +#. Go to ``Advanced`` tab and select ``Environment Variables``. +#. Edit the ``PATH`` variable from the ``User variables for user`` list, or add it if it not already exists. +#. Insert the path to the Aguila binary into the edit field (separate paths using a semicolon). +#. Open a new command prompt which will have the new environment setting. + +.. _gnuLinux: + +GNU Linux +========= + +.. 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 [#]_. Here is a list of Linux platforms for which Aguila is reported to run: + + * i686 / Debian testing + * i686 / Ubuntu 8.04 + * i686 / Ubuntu 9.04 + * x86_64 / Debian testing + * x86_64 / Ubuntu 8.04 + +__ http://www.debian.org +__ http://www.debian.org/releases/testing +__ http://en.wikipedia.org/wiki/Intel_P6 +__ http://en.wikipedia.org/wiki/X86-64 +.. [#] We are in the process of making Aguila LSB__-compliant. +__ http://www.linuxfoundation.org/en/LSB + +The software is distributed as a compressed tar file which can be unzipped as follows:: + + tar zxf Aguila---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. + +Mac OS X +======== +Aguila compiles on `Mac OS X`__ too, but since we currently do not have a development machine available with this operating system installed, we cannot provide binary packages, unfortunately. + +__ http://www.apple.com/macosx + Index: pcraster/doc/aguila/_sources/Introduction.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Introduction.txt (revision 0) +++ pcraster/doc/aguila/_sources/Introduction.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,23 @@ +.. _introduction: + +************ +Introduction +************ + +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 :ref:`formats `, it can be used in combination with other modelling and GIS software. + +__ http://pcraster.geo.uu.nl + +These pages will get you started using Aguila as quickly as possible: + +- :ref:`installation` +- :ref:`quickStart` + +Subsequent pages describe types of visualisations (views) that can be used, the dialogs, and the types of data that can be visualised. + +- :ref:`views` +- :ref:`dialogs` +- :ref:`data` + Index: pcraster/doc/aguila/_sources/License.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/License.txt (revision 0) +++ pcraster/doc/aguila/_sources/License.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,11 @@ +.. _license: + +******* +License +******* + +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. + +__ http://www.gnu.org/licenses/licenses.html +__ http://sourceforge.net/projects/pcraster/ + Index: pcraster/doc/aguila/_sources/Links.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Links.txt (revision 0) +++ pcraster/doc/aguila/_sources/Links.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,10 @@ +.. _links: + +***** +Links +***** + +Courses +======= +http://ifgiweb.uni-muenster.de/~l_gerh01/summerschool2009 + Index: pcraster/doc/aguila/_sources/Manual.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Manual.txt (revision 0) +++ pcraster/doc/aguila/_sources/Manual.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,27 @@ +.. _manual: + +Manual +====== + +.. toctree:: + :maxdepth: 2 + + Introduction + Installation + QuickStart + Views + Dialogs + Data + XmlStartupConfiguration + Faq + Support + History + License + +.. Indices and tables +.. ================== +.. +.. * :ref:`genindex` +.. * :ref:`modindex` +.. * :ref:`search` + Index: pcraster/doc/aguila/_sources/MultiMap2DView.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/MultiMap2DView.txt (revision 0) +++ pcraster/doc/aguila/_sources/MultiMap2DView.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,8 @@ +**************** +Multiple 2D maps +**************** + +.. figure:: Images/MultiMap2DView.png + + 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. + Index: pcraster/doc/aguila/_sources/Publications.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Publications.txt (revision 0) +++ pcraster/doc/aguila/_sources/Publications.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,7 @@ +.. _publications: + +************ +Publications +************ + +TODO Index: pcraster/doc/aguila/_sources/QuickStart.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/QuickStart.txt (revision 0) +++ pcraster/doc/aguila/_sources/QuickStart.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,320 @@ +.. _quickStart: + +*********** +Quick start +*********** + +Displaying attributes +===================== +An attribute that is stored in a single file can be displayed by simply specifying the file name on the command line (see section :ref:`programOptions`). Basic commands for maps and time series are: + +:: + + # Show a map. + aguila dem.map + +.. image:: Images/dem_Map.png + +:: + + # Show time series. + aguila rain.tss + +.. image:: Images/rain_TimeGraph.png + +:: + + # 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 :ref:`views`). To display multiple attributes in a single view insert a ``+``-symbol between the names, with spaces surrounding the ``+``-symbol. + +.. + KDJ: This actually does not work! + # Multiple data items as drape and buildg.map only in the value matrix + aguila --drapeView dem.map + soil.map --valueOnly buildg.map + +:: + + # Multiple data items as drape. + aguila --drapeView dem.map + soil.map + +.. image:: Images/dem+soil_Drape.png + +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. + +Required information +==================== +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 :ref:`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 :ref:`dataFormats`). 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 :ref:`programOptions` 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. + +.. _programOptions: + +Program options +=============== +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 :ref:`xmlStartupConfiguration` 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 :ref:`dataFormats`. + +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`_. + +.. table:: Command line options + + ================================= ============================================ + 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 + :ref:`xmlStartupConfiguration`. + -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. + ================================= ============================================ + +.. table:: Command line and configuration file options + + ============================== =============================================== + 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 + ``x``, eg: + ``2x3``. + ============================== =============================================== + +Examples +======== +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. + +2D raster +--------- +Visualise a raster in 2D. Default view for rasters is 2D map. + +:: + + aguila dem + +See also section :ref:`mapView`. + +2D rasters on top of each other +------------------------------- +Stack rasters on each other. Spaces around the ``+``-sign. + +:: + + aguila dem + ldd + +See also section :ref:`mapView`. + +2.5D raster draped +------------------ +2.5D is also possible. + +:: + + aguila -3 dem + ldd + +See also section :ref:`drapeView`. + +2D raster stack +--------------- +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 :ref:`mapView`, :ref:`timeGraphView`. + +Time series +----------- +Visualise all time series in one time series plot. + +:: + + aguila discharge + +See also section :ref:`timeGraphView`. + +Time series selection +--------------------- +Select some time series (the fifth and seventh columns) from discharge. + +:: + + aguila discharge{1,5} + discharge{1,7} + +See also section :ref:`timeGraphView`. + +2D raster draped and time series +-------------------------------- +Combine rasters and time series data. + +:: + + aguila dem + ldd discharge + +See also sections :ref:`mapView`, :ref:`timeGraphView`. + +Scenarios of temporal quantiles +------------------------------- +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 :ref:`mapView`, :ref:`timeGraphView`, :ref:`cumulativeProbabilitiesView`. + +.. _environmentVariables: + +Environment variables +===================== +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 (:ref:`dataSetTypes`). + +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. + Index: pcraster/doc/aguila/_sources/Screenshots.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Screenshots.txt (revision 0) +++ pcraster/doc/aguila/_sources/Screenshots.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,36 @@ +.. _screenShots: + +********************** +Screenshots and videos +********************** + +.. toctree:: + :hidden: + + UncertainSpatioTemporal + MultiMap2DView + Vector + AguilaOnMac + + + ++------------------------------------------------+---------------------------------------+--------------------------------+ +| .. figure:: Images/UncertainSpatioTemporal.png | .. figure:: Images/MultiMap2DView.png | .. figure:: Images/Vector1.png | +| :width: 100pt | :width: 100pt | :width: 100pt | +| :target: UncertainSpatioTemporal_ | :target: MultiMap2DView_ | :target: Vector_ | ++------------------------------------------------+---------------------------------------+--------------------------------+ +| Uncertain spatio-temporal data. | Multiple 2D maps in a single view. | Vector data. | ++------------------------------------------------+---------------------------------------+--------------------------------+ +| .. figure:: Images/AguilaOnMac.png | .. figure:: Images/AguilaVideo.png | | +| :width: 100pt | :width: 100pt | | +| :target: AguilaOnMac_ | :target: AguilaVideo_ | | ++------------------------------------------------+---------------------------------------+--------------------------------+ +| Aguila on the Mac. | Aguila video. | | ++------------------------------------------------+---------------------------------------+--------------------------------+ + +.. _UncertainSpatioTemporal: UncertainSpatioTemporal.html +.. _MultiMap2DView: MultiMap2DView.html +.. _Vector: Vector.html +.. _AguilaOnMac: AguilaOnMac.html +.. _AguilaVideo: Videos/2009-10-08_2222.swf + Index: pcraster/doc/aguila/_sources/Support.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Support.txt (revision 0) +++ pcraster/doc/aguila/_sources/Support.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,40 @@ +.. _support: + +******* +Support +******* + +Comments, questions, ideas, etc +=============================== +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`__. + +__ http://mailman.geo.uu.nl/mailman/listinfo/pcraster-info/ +__ http://mailman.geo.uu.nl/pipermail/pcraster-info + + +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. + +Report a bug +============ +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. + +__ http://sourceforge.net/tracker/?group_id=205121&atid=992360 + +Here are some guide lines when submitting a bug report: + +* Describe the bug in as much detail as possible. +* Provide (a link to) a zip or archive file with all data and scripts so we can reproduce the bug. If you have a large model (long script and/or much data) try to make a simpler model that still gives the same error. +* Try sending an attachment of your screen showing possible error messages: + + #. Press ``PrntScrn`` (PrintScreen) on your Keyboard. + #. Open Paint: ``Start->All Programs->Accessories->Paint``. + #. Copy Screen in untitled: ``Paint Menu->Edit->Paste``. + #. Save graphics File: ``File->Save`` (type ``.PNG`` is preferred). + #. Attach the saved file to your email. + +Request a feature +================= +You can use the same `Bugs and feature requests tracker`__ as for reporting bugs. + +__ http://sourceforge.net/tracker/?group_id=205121&atid=992360 + Index: pcraster/doc/aguila/_sources/UncertainSpatioTemporal.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/UncertainSpatioTemporal.txt (revision 0) +++ pcraster/doc/aguila/_sources/UncertainSpatioTemporal.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,15 @@ +****************************** +Uncertain spatio-temporal data +****************************** + +.. figure:: Images/UncertainSpatioTemporal.png + + 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. + + Index: pcraster/doc/aguila/_sources/Vector.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Vector.txt (revision 0) +++ pcraster/doc/aguila/_sources/Vector.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,12 @@ +*********** +Vector data +*********** + +.. figure:: Images/Vector1.png + + Vector data + +.. figure:: Images/Vector2.png + + Vector data + Index: pcraster/doc/aguila/_sources/Views.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/Views.txt (revision 0) +++ pcraster/doc/aguila/_sources/Views.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,220 @@ +.. _views: + +***** +Views +***** +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 :ref:`cursorAndValuesView` 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: + +.. table:: Attribute context menu actions + + ======================== ===================================================== + Menu item Effect + ======================== ===================================================== + ``Edit draw properties`` Shows the ``Draw Properties`` dialog, see + section :ref:`drawPropertiesDialog`. + ======================== ===================================================== + +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. + +.. _cursorAndValuesView: + +Cursor And Values 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 :ref:`programOptions`). + +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 :ref:`dimensions`). Each slider has a knob for the current position. + +.. table:: Cursor slider actions + + ================================= ============================================ + 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. + +.. image:: Images/CursorAndValuesView.png + +.. _mapView: + +Map view +======== +A map view shows spatial attributes by a map. This map visualises the spatial variation of the attribute, given the current cursor position. + + +.. _mapControls: + +Map Controls +------------ + +.. table:: Map controls. + + +------------------------------------+---------------------------------------+ + | Effect | Control | + +====================================+=======================================+ + | change spatial cursor | left mouse click | + +------------------------------------+---------------------------------------+ + | pan | left mouse drag | + +------------------------------------+---------------------------------------+ + | continuously change | Ctrl+left mouse drag | + | spatial cursor (prevents | | + | panning) | | + +------------------------------------+---------------------------------------+ + | 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 | + +------------------------------------+---------------------------------------+ + | | forward | + | zoom out | Ctrl+j / scroll mouse backward | + +------------------------------------+---------------------------------------+ + | Zoom by rectangle | Shift+left mouse drag | + +------------------------------------+---------------------------------------+ + | reset | r | + +------------------------------------+---------------------------------------+ + +.. _timeGraphView: + +Time Graph View +=============== +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. + +.. _drapeView: + +Drape View +========== +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. + +Drape Controls +-------------- +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. + +.. table:: Controls for changing the position and orientation of the camera. + + ======================= ================================================== + 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 + ======================= ================================================== + +.. table:: Controls for changing the orientation of the scene. + + ====================================== ======= + 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! + +Camera's +-------- +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). + +.. table:: Camera's. + + ====== ======== + Camera Shortcut + ====== ======== + Top 5 + Front 2 + Left 4 + Back 8 + Right 6 + Mobile 0 + ====== ======== + +Shortcuts +--------- +.. table:: Shortcuts. + + ==================== ============= + Effect Shortcut + ==================== ============= + exaggerate heights Plus (+) + understate heights Minus (-) + enlarge quad length Shift+q + decrease quad length q + ==================== ============= + +.. _2DMultimapView: + +2D Multimap View +================ +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. + +.. _cumulativeProbabilitiesView: + +Probability Graph View +====================== +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 :ref:`dataSetTypes`). + +.. image:: Images/krige_ProbabilityGraph.png + +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. Index: pcraster/doc/aguila/_sources/XmlStartupConfiguration.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/XmlStartupConfiguration.txt (revision 0) +++ pcraster/doc/aguila/_sources/XmlStartupConfiguration.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,68 @@ +.. _xmlStartupConfiguration: + +************************* +Xml Startup Configuration +************************* + +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: + +- Specify draw properties per data item. +- Specify real dates (e.g. 2005-02-10T18:15:00) and real time intervals (e.g. 24 hours). +- Map data with different time dimensions to a single time line. + +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. + +__ http://www.python.org + +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 :ref:`aguilaXsd` + +Basic structure +=============== +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: + +.. highlight:: xml + +:: + + + + + + + + +The elements of the basic structure will be discussed in the reverse order of appearance. + +``view`` + 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: + + - The first appearance yields the position in the cursor and values matrix. Use a ``valueOnly`` element to obtain the preferred order (``dem.map``). + - Time series file and cursor value graphs can be combined. See ``runoff`` and ``runoff.tss`` combined in a view in ``example1.xml``. + +``data`` + A ``data`` element is used to tag a dataset name used in a ``view`` element with additional specifications: its draw properties and ``dataSpace``. For example, in ``example1.xml`` the colour assignment of ``upstreamArea.map`` is set to ``shifted logarithmic``. + +``searchSpace`` + With the ``searchSpace`` element one can describe the dimensions in which all data should be found if the data itself has no ``dataSpace`` sub element. In ``example1.xml`` the 28 model steps are set in the ``searchSpace`` and the timesteps are mapped to a real calendar date with a 6 hour time increment. + +``cursorValueMonitorFile`` + See the section called :ref:`programOptions`. + +``fileToGetCursorValue`` + This element defines what file is read to set the applications cursor at each time ``Get`` is pressed in the ``Cursor Value Window``. Currently only the x and y (space dimensions) are read. The file should be an XML file with the ``aguilaCursor`` element as root. See ``get.xml`` set in ``example1.xml``. + +.. _aguilaXsd: + +Aguila.xsd +========== + +.. literalinclude:: Aguila.xsd + :language: xml Index: pcraster/doc/aguila/_sources/index.txt =================================================================== diff -u --- pcraster/doc/aguila/_sources/index.txt (revision 0) +++ pcraster/doc/aguila/_sources/index.txt (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,42 @@ +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. + +__ http://pcraster.sourceforge.net + +See for more information: + +.. toctree:: + :maxdepth: 1 + + Screenshots and Videos + Downloads + Manual + Building + Support + Publications + Links + Enhancements + +.. The manual is also available as a `PDF `_. + +.. Indices and tables +.. ================== + +.. * :ref:`genindex` +.. * :ref:`modindex` +.. * :ref:`search` + Index: pcraster/doc/aguila/_static/ajax-loader.gif =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_static/basic.css =================================================================== diff -u --- pcraster/doc/aguila/_static/basic.css (revision 0) +++ pcraster/doc/aguila/_static/basic.css (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,540 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + width: 30px; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file Index: pcraster/doc/aguila/_static/comment-bright.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_static/comment-close.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_static/comment.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_static/default.css =================================================================== diff -u --- pcraster/doc/aguila/_static/default.css (revision 0) +++ pcraster/doc/aguila/_static/default.css (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,256 @@ +/* + * default.css_t + * ~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- default theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: sans-serif; + font-size: 100%; + background-color: #11303d; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: #1c4e63; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: #ffffff; + color: #000000; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #ffffff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ffffff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + line-height: 30px; + color: #ffffff; +} + +div.related a { + color: #ffffff; +} + +div.sphinxsidebar { +} + +div.sphinxsidebar h3 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: #ffffff; +} + +div.sphinxsidebar h4 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: #ffffff; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: #ffffff; +} + +div.sphinxsidebar a { + color: #98dbcc; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: #355f7c; + text-decoration: none; +} + +a:visited { + color: #355f7c; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + + + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning tt { + background: #efc2c2; +} + +.note tt { + background: #d6d6d6; +} + +.viewcode-back { + font-family: sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} \ No newline at end of file Index: pcraster/doc/aguila/_static/doctools.js =================================================================== diff -u --- pcraster/doc/aguila/_static/doctools.js (revision 0) +++ pcraster/doc/aguila/_static/doctools.js (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,247 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .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
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=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;f0)for(var j=d;j0},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=/"},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;e0?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=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); Index: pcraster/doc/aguila/_static/minus.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_static/plus.png =================================================================== diff -u Binary files differ Index: pcraster/doc/aguila/_static/pygments.css =================================================================== diff -u --- pcraster/doc/aguila/_static/pygments.css (revision 0) +++ pcraster/doc/aguila/_static/pygments.css (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,62 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #333333 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file Index: pcraster/doc/aguila/_static/searchtools.js =================================================================== diff -u --- pcraster/doc/aguila/_static/searchtools.js (revision 0) +++ pcraster/doc/aguila/_static/searchtools.js (revision a509bea894d88eb107b36f7e83f6bf9b1a36096c) @@ -0,0 +1,560 @@ +/* + * searchtools.js_t + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('