# HG changeset patch # User Hans Plum # Date 1273528044 0 # Node ID dd6102eae8232470792fd584868cafb8e9d55620 # Parent 491b8d6cd2918456a2e5f1ffadf35eb1458d3981 Added content for generating maps doc/trunk@1090 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 491b8d6cd291 -r dd6102eae823 doc/ChangeLog --- a/doc/ChangeLog Mon May 10 19:41:15 2010 +0000 +++ b/doc/ChangeLog Mon May 10 21:47:24 2010 +0000 @@ -1,3 +1,10 @@ +2010-05-10 Hans Plum + + * config-manual/generating_maps.tex: + Added content about generating maps with extensive background + information about the interaction between artifact-server and + mapserver. + 2010-05-10 Hans Plum * config-manual/model_of_transitions.tex, diff -r 491b8d6cd291 -r dd6102eae823 doc/config-manual/generating_maps.tex --- a/doc/config-manual/generating_maps.tex Mon May 10 19:41:15 2010 +0000 +++ b/doc/config-manual/generating_maps.tex Mon May 10 21:47:24 2010 +0000 @@ -1,15 +1,86 @@ \subsection{Generating Maps-- Background Information and Configuration} -%% TODO: principle of generating maps +The artifact-server is able to process geographic data and provide them +for a WMS service rendering maps via a HTTP-based interface. The +following process chains are covered. For generating horizontal-cross sections, +the following steps have to be processed: -%% This section describes the possibilities to configure the -%% artifact-server. The following properties do affect mostly technical -%% funtions of the server. -%% -%% This section describes the possibilities in a kind of a reference -%% manual. Information for the process of installing and integration can be -%% found in the Administration Manual of the GNV-System (FIXME reference). -%% The following elements are covered here: +\begin{enumerate} +%% FIXME: When do we clip? Sequence will influence the interpolation + \item Selecting the data from datawarehouse + \item Clipping the datasets along the passed polygon + \item Calculating interpolation in the plane + \item Generating contour lines + \item Matching processed parameter data to the corresponding style + \item Rendering requested map +\end{enumerate} + +For generating maps from object-based datamodels like CONTIS, NAUTHIS +and Marine Features, just the following steps are needed: + +\begin{enumerate} + \item Selecting the data from datawarehouse + \item Clipping the datasets along the passed polygon + \item Matching processed object data to the corresponding style + \item Rendering requested map +\end{enumerate} + +%% FIXME: box it +In order to understand the configuration facilities for generating maps +in more detail, the internal +interaction of the artifact-server and the mapserver is described below +for the use case when a user parameterizes a horizontal-cross-section +profile and visualizes it as a map (without regarding the caching +facilities) + +\begin{enumerate} + \item After finishing the parameterization, the artifact-server + requests the data from the database-backend and processes the data + (see above). + + \item By requesting a map in the GNV-WebClient, the artifact-server writes a ESRI + shapefile with (clipped) geometries, attribute data, projection + information and a special file storing meta information ({\tt + meta.xml}) for this artifact in the a corresponding directory in the + {\tt shapefile-directory}. + + \item After that the so called {\tt map-generator} + is triggered. The map-generator searches the {\tt shape-directory} + and its subfolders with all existing {\tt meta.xml} files and + generates a central configuration file for the mapserver at {\tt + map-generator/mapfile@path}. Each shapefile will be published as a WMS + layer. \\ + The generated mapfile is constructed out of a base template from {\tt + map-generator/templates/maptemplate} and a parameter-/layer-specific + part generated from {\tt map-generator/templates/path}. The + selection of the correct file-based templates is extracted out of + the {\tt meta.xml}-file. + + \item The matching between the generated geograpic data and the corresponding + style files is been done by the artifact-server, constructing + filenames of maptemplates out of parameter-information. For + horizontal-cross-sections the schema looks like this {\tt + horizontalcrosssection\_\$NAME-OF-PARAMETER}; for layer-orientated + FIS like e.g. NAUTHIS and CONTIS like this {\tt + layer\_\$ID\_MAPSERVICE\_\$ID\_LAYER} e.g. + {\tt layer\_BSH\_IMS\_CONTIS\_Resources\_2}. + %% FIXME@TE: Marine Feature? Name of WMS? + In order to set at least title, geometry-type and path to the + corresponding shapefile dynamically a templating language, called + {\tt velocity} is used. + + \item The corresponding subfolder of an artifact in {\tt + shape-directory} with their shapefiles + and {\tt meta.xml}-document will be deleted after the time of + expiry. By triggering the {\tt map-generator} the next time, the + geographic data and the central configuration of the mapserver will + be updated. + +\end{enumerate} + +The coupling of the artifact-server and mapserver is free of +maintenance. The artifact-server as master cares about deleting and +updating the configuration of the mapserver. \begin{lstlisting} artifact-database @@ -21,37 +92,60 @@ `-- velocity \end{lstlisting} -\paragraph*{} -{\em Function}: +\paragraph*{mapserver} +{\em Function}: URL of the mapserver where request can be send to. The +URL will be used for displaying the location e.g. in the GNV-WebClient and in +the {\tt meta.xml}-file. \begin{itemize} - \item {\tt }: -\end{itemize} - -\paragraph*{} -{\em Function}: - -\begin{itemize} - \item {\tt }: + \item {\tt server}: URL of the mapserver where request can send to. \end{itemize} -\paragraph*{} -{\em Function}: +\paragraph*{velocity} +{\em Function}: Templating language used in the maptemplates at {\tt +map-generator/templates/path} for accessing the parameters from +dynamically generated {\tt meta.xml}-configuration of artifacts \begin{itemize} - \item {\tt }: + \item {\tt logfile}: Setting the path to write log files. + Preconfigured to {\tt /var/log/artifacts/velocity.log}. {\bf Just + absolute pathes are allowed here!} \end{itemize} -\paragraph*{} -{\em Function}: +\paragraph*{map-generator} +{\em Function}: Mechanism for generating configuration for the {\tt +mapserver} dynamically. For background information about the interaction +between artifact-server and mapserver, see above. \begin{itemize} - \item {\tt }: + \item {\tt mapfile}: path to the mapfile accessed by the WMS wrapper + {\tt gnv-wms} + \item {\tt templates}: \\ {\tt path} to the directory where + parameter-specific mapconfiguartions (as *.vm) are stored. + \\ {\tt + maptemplate} containing the WMS instance-specific configurations and + metadata, like overall boundingbox, spatial reference systems and + contact data. + \end{itemize} + +\paragraph*{shapefile-directory} +{\em Function}: Pointer where shapefiles for map-generation are stored + +\begin{itemize} + \item {\tt path}: path to the directory where shapefiles are stored + and accessed by {\tt mapserver} \end{itemize} -\paragraph*{} -{\em Function}: +\paragraph*{horizontal-cross-section} +{\em Function}: Parameterization for the interpolation algorithm for +horizontal-cross-sections (maps). + \begin{itemize} - \item {\tt }: + \item {\tt sample}: The attribute {\tt number} sets the number of + steps for the interpolation grid. + \item {\tt ground}: {\tt interpolation} method for calculating the + interpolation from the last measured value in meshes against the seafloor. + Available methods are {\tt nearest-neighbor | bilinear | bicubic}. +%% FIXME: Could not find nn and bicubic in the code ... \end{itemize}