source: trunk/tutorial/model_tutorial.tex @ 12

Revision 12, 6.3 KB checked in by lucsch, 11 years ago (diff)

Updating tutorial (preliminary text)

Line 
1%
2%  HOW TO BUILD TOOLMAP DATAMODEL
3%
4%  Created by Lucien Schreiber on 2013-02-19.
5%  Copyright (c) 2013. All rights reserved.
6%
7
8\documentclass[a4paper, 12pt]{article}
9\usepackage{crealp-report}
10\usepackage{upquote} %to force Latex not substitute ' by `
11\usepackage{tocbibind}
12\usepackage{mdwlist}
13%\usepackage{natbib}
14
15\begin{document}
16\crealptitle {Tutorial} {How to create a ToolMap datamodel using TmDmCreator} {Lucien Schreiber} {lucien.schreiber@crealp.vs.ch}
17\tableofcontents
18\pagebreak
19
20\section{Introduction}
21This tutorial explains how to create a ToolMap project manually. This approach has the following advantages:
22\begin{enumerate*}
23  \item It ensures the IDs used
24  \item It generates a multilingual model
25  \item It allows better monitoring of model changes
26\end{enumerate*}
27The main disadvantage of this approach is the lack of user interface as well as the need for the user to have some knowledge of SQL. Finally, this approach has been developed to meet the need for rigor in the management of the Swiss geological data model.
28
29
30\section{Conceptual Workflow}
31The diagram shown in figure~\ref{fig:conceptual-workflow} illustrates the proposed workflow. User edits the user\_structure.sql and user\_content.txt files. These files as well as base\_structure.sql are used by the software TmDmCreator to produces either:
32\begin{enumerate*}
33  \item a SQL file defining the project (output 1)
34  \item a ToolMap project (output 2)
35\end{enumerate*}
36
37\begin{figure} [htbp]
38        \centering
39    \includegraphics[width=1\textwidth]{img/workflow.pdf}
40    \caption{Conceptual workflow}
41    \label{fig:conceptual-workflow}
42\end{figure}
43
44
45
46\section{Data needed}
47In order to produce a ToolMap project, TmDmCreator needs the following files:
48%\begin{itemize}
49    \begin{description*}
50  \item[base\_structure.sql]\hfill \\ contains the necessary SQL code base for all ToolMap projects. This file should normally not be edited by users
51  \item[user\_structure.sql]\hfill \\ contains the SQL structure describing the layers attributes
52  \item[user\_content.txt]\hfill \\ Is a tabular file (editable in Excel for example) containing the definition of layers, objects, and attribute values.
53\end{description*}
54%\end{itemize}
55The recommended way to work with user\_structure.sql and user\_content.txt is described below
56
57
58\section{Preparing user data}
59
60\subsection{Layers}
61Open user\_content.txt using a spreadsheet and edit the thematic\_layers part. Each of the layers that we want to export should appear here. The structure is as follows (see figure~\ref{fig:layers}):
62\begin{description*}
63  \item [LAYER\_INDEX] unique identifier of the layer
64  \item [TYPE\_CD] layer spatial type as follow
65    \begin{description*}
66      \item [0] = Line
67      \item [1] = Point
68      \item [2] = Polygon
69    \end{description*}
70  \item [LAYER\_NAME] the layer name. This name will be given to the SHP file when exporting
71\end{description*}
72
73\begin{figure} [hbp]
74        \centering
75    \includegraphics[width=.6\textwidth]{img/layers.png}
76    \caption{List of layers as shown in user\_content.txt}
77    \label{fig:layers}
78\end{figure}
79
80\subsection{Objects}
81
82Edit the file user\_content.txt to add objects. They must have the following structure (See figure:~\ref{fig:objects}):
83\begin{description*}
84  \item [OBJECT\_ID] object unique ID.
85  \item [OBJECT\_CD] object code, should not necessarily be unique
86  \item [OBJECT\_TYPE\_CD] object spatial type, uses same values as those described above for TYPE\_CD in thematic\_layers
87  \item [THEMATIC\_LAYERS\_LAYER\_INDEX] the index of the layer that the object refers to. The value 1 shown in the example (Figure 2) therefore relates to the theme Boreholes\_PT.
88  \item [OBJECT\_DESC\_0,1,2,3,4,5] object description in up to 5 languages.
89  \item [OBJECT\_ISFREQ] Set to 1 for frequent objects and 0 otherwise. This parameter is only taken into account for line type objects. Set to 0 for all point or polygon objects.
90  \item [SYMBOL\_CD] leave empty
91  \item [RANK] leave empty
92  \item [REMARK] leave empty
93\end{description*}
94
95\begin{figure} [hbp]
96        \centering
97    \includegraphics[height=.9\textheight]{img/objects.png}
98    \caption{Objects structure as described in user\_content.txt}
99    \label{fig:objects}
100\end{figure}
101
102
103\subsection{Attributes structure}
104Edit the file user\_structure.sql with Notepad (or even better with Notepad + +). For each topic containing attributes, there must be a SQL code of the type:
105
106\crealplisting{SQL}
107\begin{lstlisting}
108-- layer_at1 --
109CREATE TABLE `layer_at1` (
110  `OBJECT_ID` int(10) unsigned NOT NULL,
111  PRIMARY KEY (`OBJECT_ID`),
112  KEY `LAYER_ATX_FKIndex1` (`OBJECT_ID`)
113) ENGINE=MyISAM DEFAULT CHARSET=utf8
114\end{lstlisting}
115This code is the basic template for creating an attribute table. The number after layer\_at (see line 2) indicates the layer index and refers to the LAYER\_INDEX column in user\_content.txt. In our example layer\_at1 describe the attributes for the layer Boreholes\_PT.
116Below are described the five attributes that can be used as well as the corresponding SQL code
117\begin{description*}
118  \item [Enumeration] \hfill \\
119    \crealplisting{SQL}
120    \begin{lstlisting}
121    `D_C_UNDERG` int(11) DEFAULT NULL COMMENT 'ENUMERATION',
122    \end{lstlisting}
123    If you add such fields, then you must also fill the list of supported values (see section~\ref{sec:attribute-values}).
124  \item [Text] \hfill \\
125    \begin{lstlisting}
126    `DESCRIPT` varchar(255) DEFAULT NULL,
127    \end{lstlisting}
128    The number next to the keyword varchar indicates the maximum text length.
129  \item [Integer] \hfill \\
130    \begin{lstlisting}
131    `NUM_REF` int(11) DEFAULT NULL,       
132    \end{lstlisting}
133    There is no special option for integer fields
134  \item [Float]  \hfill \\
135
136    \begin{lstlisting}
137    `TEMP` decimal(5,2) DEFAULT NULL,
138    \end{lstlisting}
139    The two digits next to the keyword decimal indicate the field precision and scale. In this example, 5 is the precision and 2 is the scale. The precision represents the number of significant digits that are stored for values, and the scale represents the number of digits that can be stored following the decimal point. In this case, values that can be stored range from -999.99 to 999.99.
140  \item [Date] \hfill \\
141
142    \begin{lstlisting}
143    `REF_DATE` date DEFAULT NULL,
144    \end{lstlisting}
145    There is no special option for date fields
146\end{description*}
147
148
149\subsection{Value domain of the attributes}
150\label{sec:attribute-values}
151
152
153
154\end{document}
Note: See TracBrowser for help on using the repository browser.