Mercurial > dive4elements > gnv-client
comparison doc/config-manual/generating_maps.tex @ 946:dd6102eae823
Added content for generating maps
doc/trunk@1090 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Hans Plum <hans.plum@intevation.de> |
---|---|
date | Mon, 10 May 2010 21:47:24 +0000 |
parents | 2d84fc30ab58 |
children | 9a28846dfb9c |
comparison
equal
deleted
inserted
replaced
945:491b8d6cd291 | 946:dd6102eae823 |
---|---|
1 \subsection{Generating Maps-- Background Information and Configuration} | 1 \subsection{Generating Maps-- Background Information and Configuration} |
2 | 2 |
3 %% TODO: principle of generating maps | 3 The artifact-server is able to process geographic data and provide them |
4 for a WMS service rendering maps via a HTTP-based interface. The | |
5 following process chains are covered. For generating horizontal-cross sections, | |
6 the following steps have to be processed: | |
4 | 7 |
5 %% This section describes the possibilities to configure the | 8 \begin{enumerate} |
6 %% artifact-server. The following properties do affect mostly technical | 9 %% FIXME: When do we clip? Sequence will influence the interpolation |
7 %% funtions of the server. | 10 \item Selecting the data from datawarehouse |
8 %% | 11 \item Clipping the datasets along the passed polygon |
9 %% This section describes the possibilities in a kind of a reference | 12 \item Calculating interpolation in the plane |
10 %% manual. Information for the process of installing and integration can be | 13 \item Generating contour lines |
11 %% found in the Administration Manual of the GNV-System (FIXME reference). | 14 \item Matching processed parameter data to the corresponding style |
12 %% The following elements are covered here: | 15 \item Rendering requested map |
16 \end{enumerate} | |
17 | |
18 For generating maps from object-based datamodels like CONTIS, NAUTHIS | |
19 and Marine Features, just the following steps are needed: | |
20 | |
21 \begin{enumerate} | |
22 \item Selecting the data from datawarehouse | |
23 \item Clipping the datasets along the passed polygon | |
24 \item Matching processed object data to the corresponding style | |
25 \item Rendering requested map | |
26 \end{enumerate} | |
27 | |
28 %% FIXME: box it | |
29 In order to understand the configuration facilities for generating maps | |
30 in more detail, the internal | |
31 interaction of the artifact-server and the mapserver is described below | |
32 for the use case when a user parameterizes a horizontal-cross-section | |
33 profile and visualizes it as a map (without regarding the caching | |
34 facilities) | |
35 | |
36 \begin{enumerate} | |
37 \item After finishing the parameterization, the artifact-server | |
38 requests the data from the database-backend and processes the data | |
39 (see above). | |
40 | |
41 \item By requesting a map in the GNV-WebClient, the artifact-server writes a ESRI | |
42 shapefile with (clipped) geometries, attribute data, projection | |
43 information and a special file storing meta information ({\tt | |
44 meta.xml}) for this artifact in the a corresponding directory in the | |
45 {\tt shapefile-directory}. | |
46 | |
47 \item After that the so called {\tt map-generator} | |
48 is triggered. The map-generator searches the {\tt shape-directory} | |
49 and its subfolders with all existing {\tt meta.xml} files and | |
50 generates a central configuration file for the mapserver at {\tt | |
51 map-generator/mapfile@path}. Each shapefile will be published as a WMS | |
52 layer. \\ | |
53 The generated mapfile is constructed out of a base template from {\tt | |
54 map-generator/templates/maptemplate} and a parameter-/layer-specific | |
55 part generated from {\tt map-generator/templates/path}. The | |
56 selection of the correct file-based templates is extracted out of | |
57 the {\tt meta.xml}-file. | |
58 | |
59 \item The matching between the generated geograpic data and the corresponding | |
60 style files is been done by the artifact-server, constructing | |
61 filenames of maptemplates out of parameter-information. For | |
62 horizontal-cross-sections the schema looks like this {\tt | |
63 horizontalcrosssection\_\$NAME-OF-PARAMETER}; for layer-orientated | |
64 FIS like e.g. NAUTHIS and CONTIS like this {\tt | |
65 layer\_\$ID\_MAPSERVICE\_\$ID\_LAYER} e.g. | |
66 {\tt layer\_BSH\_IMS\_CONTIS\_Resources\_2}. | |
67 %% FIXME@TE: Marine Feature? Name of WMS? | |
68 In order to set at least title, geometry-type and path to the | |
69 corresponding shapefile dynamically a templating language, called | |
70 {\tt velocity} is used. | |
71 | |
72 \item The corresponding subfolder of an artifact in {\tt | |
73 shape-directory} with their shapefiles | |
74 and {\tt meta.xml}-document will be deleted after the time of | |
75 expiry. By triggering the {\tt map-generator} the next time, the | |
76 geographic data and the central configuration of the mapserver will | |
77 be updated. | |
78 | |
79 \end{enumerate} | |
80 | |
81 The coupling of the artifact-server and mapserver is free of | |
82 maintenance. The artifact-server as master cares about deleting and | |
83 updating the configuration of the mapserver. | |
13 | 84 |
14 \begin{lstlisting} | 85 \begin{lstlisting} |
15 artifact-database | 86 artifact-database |
16 |-- gnv # charts, palettes, interpolation parameters | 87 |-- gnv # charts, palettes, interpolation parameters |
17 | |-- map-generator | 88 | |-- map-generator |
19 | `-- horizontal-cross-section | 90 | `-- horizontal-cross-section |
20 |-- mapserver | 91 |-- mapserver |
21 `-- velocity | 92 `-- velocity |
22 \end{lstlisting} | 93 \end{lstlisting} |
23 | 94 |
24 \paragraph*{} | 95 \paragraph*{mapserver} |
25 {\em Function}: | 96 {\em Function}: URL of the mapserver where request can be send to. The |
97 URL will be used for displaying the location e.g. in the GNV-WebClient and in | |
98 the {\tt meta.xml}-file. | |
26 | 99 |
27 \begin{itemize} | 100 \begin{itemize} |
28 \item {\tt }: | 101 \item {\tt server}: URL of the mapserver where request can send to. |
29 \end{itemize} | 102 \end{itemize} |
30 | 103 |
31 \paragraph*{} | 104 \paragraph*{velocity} |
32 {\em Function}: | 105 {\em Function}: Templating language used in the maptemplates at {\tt |
106 map-generator/templates/path} for accessing the parameters from | |
107 dynamically generated {\tt meta.xml}-configuration of artifacts | |
33 | 108 |
34 \begin{itemize} | 109 \begin{itemize} |
35 \item {\tt }: | 110 \item {\tt logfile}: Setting the path to write log files. |
111 Preconfigured to {\tt /var/log/artifacts/velocity.log}. {\bf Just | |
112 absolute pathes are allowed here!} | |
36 \end{itemize} | 113 \end{itemize} |
37 | 114 |
38 \paragraph*{} | 115 \paragraph*{map-generator} |
39 {\em Function}: | 116 {\em Function}: Mechanism for generating configuration for the {\tt |
117 mapserver} dynamically. For background information about the interaction | |
118 between artifact-server and mapserver, see above. | |
40 | 119 |
41 \begin{itemize} | 120 \begin{itemize} |
42 \item {\tt }: | 121 \item {\tt mapfile}: path to the mapfile accessed by the WMS wrapper |
122 {\tt gnv-wms} | |
123 \item {\tt templates}: \\ {\tt path} to the directory where | |
124 parameter-specific mapconfiguartions (as *.vm) are stored. | |
125 \\ {\tt | |
126 maptemplate} containing the WMS instance-specific configurations and | |
127 metadata, like overall boundingbox, spatial reference systems and | |
128 contact data. | |
129 \end{itemize} | |
130 | |
131 \paragraph*{shapefile-directory} | |
132 {\em Function}: Pointer where shapefiles for map-generation are stored | |
133 | |
134 \begin{itemize} | |
135 \item {\tt path}: path to the directory where shapefiles are stored | |
136 and accessed by {\tt mapserver} | |
43 \end{itemize} | 137 \end{itemize} |
44 | 138 |
45 \paragraph*{} | 139 \paragraph*{horizontal-cross-section} |
46 {\em Function}: | 140 {\em Function}: Parameterization for the interpolation algorithm for |
141 horizontal-cross-sections (maps). | |
142 | |
47 | 143 |
48 \begin{itemize} | 144 \begin{itemize} |
49 \item {\tt }: | 145 \item {\tt sample}: The attribute {\tt number} sets the number of |
146 steps for the interpolation grid. | |
147 \item {\tt ground}: {\tt interpolation} method for calculating the | |
148 interpolation from the last measured value in meshes against the seafloor. | |
149 Available methods are {\tt nearest-neighbor | bilinear | bicubic}. | |
150 %% FIXME: Could not find nn and bicubic in the code ... | |
50 \end{itemize} | 151 \end{itemize} |
51 | |
52 \paragraph*{} | |
53 {\em Function}: | |
54 | |
55 \begin{itemize} | |
56 \item {\tt }: | |
57 \end{itemize} |