[Soiltexture-commits] r89 - in pkg/soiltexture: . vignettes
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Thu Jan 9 11:08:31 CET 2014
Author: jmoeys
Date: 2014-01-09 11:08:31 +0100 (Thu, 09 Jan 2014)
New Revision: 89
Added:
pkg/soiltexture/vignettes/
pkg/soiltexture/vignettes/soiltexture_vignette.Rnw
pkg/soiltexture/vignettes/soiltexture_vignette.bib
Log:
Added: pkg/soiltexture/vignettes/soiltexture_vignette.Rnw
===================================================================
--- pkg/soiltexture/vignettes/soiltexture_vignette.Rnw (rev 0)
+++ pkg/soiltexture/vignettes/soiltexture_vignette.Rnw 2014-01-09 10:08:31 UTC (rev 89)
@@ -0,0 +1,3654 @@
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+% | Document header |
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+
+\documentclass[a4paper]{article}
+
+\title{The soil texture wizard:\\R functions for plotting,
+ classifying, transforming and exploring soil texture data}
+
+\author{Julien Moeys}
+% In case of changes, also change the 'PDF setup' and
+% 'cited as follow'
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+% | Nodifications of the Sweave style |
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+
+% Load Sweave and color, in order to modify
+% sweave's environments:
+
+\RequirePackage{Sweave} % ,sweave,color,placeins,rotating,subfig
+%\usepackage{underscore}
+\SweaveOpts{width=14,height=14,keep.source=TRUE}
+% Also modified in the document
+
+% \VignetteIndexEntry{The soil texture wizard: a tutorial}
+% \VignetteDepends{soiltexture}
+% \VignetteDepends{xtable}
+% \VignetteKeyword{soil}
+% \VignetteKeyword{texture}
+% \VignetteKeyword{plot}
+% \VignetteKeyword{classification}
+% \VignetteKeyword{transformation}
+
+% Define new colors used in the document:
+% \definecolor{BrickRed}{rgb}{0.502,0.000,0.000}
+% \definecolor{MidnightBlue}{rgb}{0.000,0.000,0.502}
+% NB: no space after the colors
+
+% Modify the definition of the 'Sinput' environment:
+\RecustomVerbatimEnvironment{Sinput}{Verbatim}{%
+% formatcom = \color{red}, % new text color
+ frame = leftline, % vert line on the left
+ framerule = 0.50mm % width of the vert line
+} %
+
+% Modify the definition of the 'Scode' environment:
+\RecustomVerbatimEnvironment{Scode}{Verbatim}{%
+% formatcom = \color{red}, % new text color
+ frame = leftline, % vert line on the left
+ framerule = 0.50mm % width of the vert line
+} %
+
+% % Modify the definition of the 'Soutput' environment:
+% \RecustomVerbatimEnvironment{Soutput}{Verbatim}{%
+% formatcom = \color{blue} % new text color
+% } %
+
+% Modify the spacing between R code and R outputs:
+\fvset{listparameters={\setlength{\topsep}{0pt}}}
+\renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}}
+
+\renewcommand\floatpagefraction{1.0}
+\renewcommand\topfraction{1.0}
+\renewcommand\bottomfraction{1.0}
+\renewcommand\textfraction{0.0}
+\setcounter{topnumber}{4}
+\setcounter{bottomnumber}{4}
+\setcounter{totalnumber}{12}
+
+
+
+%%% PDF setup -- fill in the title
+% \usepackage[dvipdfm, bookmarks, colorlinks, breaklinks, %
+% pdftitle={The soil texture wizard:R functions for plotting, classifying, transforming and exploring soil texture data},%
+% pdfauthor={Julien MOEYS}]{hyperref}
+% \hypersetup{linkcolor=MidnightBlue, citecolor=MidnightBlue,
+% filecolor=MidnightBlue,urlcolor=MidnightBlue}
+% From: http://malecki.wustl.edu/sweaveTemplate.Rnw
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+% | Beginning of the real document |
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+
+% Don't forget to add this to path:
+% C:\Program Files\_SCIENCE\R_PROJECT\share\texmf
+
+\usepackage{Sweave}
+\begin{document}
+\bibliographystyle{plain}
+
+
+% \graphicspath{{INOUT/}}
+
+
+%INVISIBLY sets a few options for Sweave :: KEEP THIS
+<<echo=FALSE>>=
+# Set a few Sweave options:
+options(
+ width = 65, # width of R output
+ prompt = " ", # Sign preceding R input in R-GUI
+ continue = " " # same, but after 2nd line
+) #
+
+# The working directory:
+# setwd("C:/_RTOOLS/SWEAVE_WORK/SOIL_TEXTURES/rforge/pkg/soiltexture/inst/doc/INOUT")
+
+# And load the xtable package:
+if( !"xtable" %in% .packages(all.available = TRUE) )
+{ #
+ message( paste( sep = "",
+ "The xtable package is not present in your R install:\n",
+ "R will now try to connect to one package server\n",
+ "and propose you a list of package to download\n",
+ "and install: Choose 'xtable' from the list"
+ ) ) #
+ utils:::menuInstallPkgs()
+} #
+require( "xtable" )
+@
+
+% \SweaveOpts{width=14,height=14,keep.source=TRUE}
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+% | Front page TITLE
+\maketitle
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+% | Edit here |
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+
+
+
+<<echo=FALSE,results=hide,quiet=TRUE>>=
+old.wd <- getwd()
+
+# setwd("C:/_RTOOLS/SWEAVE_WORK/SOIL_TEXTURES/rforge/pkg/soiltexture/inst/doc/INOUT")
+
+if( !("soiltexture" %in% as.character( installed.packages()[,1] )) )
+{ #
+ suppressMessages(
+ install.packages(
+ pkgs = "soiltexture"
+ # repos = "http://R-Forge.R-project.org"
+ ) #
+ ) #
+} #
+
+require(
+ package = "soiltexture",
+ character.only = TRUE,
+ quietly = TRUE
+) #
+
+# setwd(old.wd)
+@
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+% | Front page image:
+
+<<COVERFIG,include=false,echo=FALSE,fig=TRUE>>=
+TT.plot(class.p.bg.col=T,class.sys="USDA.TT",main=NA)
+@
+
+\begin{figure}[b]
+\centering
+\includegraphics{soiltexture_vignette-COVERFIG}
+\end{figure}
+
+\clearpage
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+% | Table of Content:
+\tableofcontents
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\section{About this document}
+
+
+
+\subsection{Why creating 'The soil texture wizard'?}
+
+\textbf{Officially}: \textit{The Soil Texture Wizard} R functions
+are an attempt to provide a generic toolbox for soil texture data
+in R. These functions can (1) plot soil texture data (2) classify
+soil texture data, (3) transform soil texture data from and to
+different systems of particle size classes, and (4) provide some
+tools to 'explore' soil texture data (in the sense of a
+statistical visual analysis). All there tools are designed to be
+inherently multi-triangles, multi-geometry and multi-particle
+sizes classification\\
+
+\textbf{Officiously}: What was initially a slight reshape of R
+PLOTRIX package (by J. Lemon and B. Bolker), for my personal use%
+\footnote{It was also an excellent way to learn R.},
+to add the French 'Aisne' soil texture triangle, gradually
+skidded and ended up in a totally reshaped and extended code
+(over a 3 year period). There is unfortunately no compatibility
+at all between the two codes.\\
+
+
+
+\subsection{About R}
+
+
+This document is about functions (and package project) written in
+R "language and environment for statistical computing" (\texttt{http://www.R-project.org})
+(\cite{RDCT2009}), and has been generated with
+\Sexpr{R.Version()$version.string}.\\
+
+R website: <\texttt{http://www.R-project.org}>\\
+
+If you don't know about R, it is never too later to start...\\
+
+
+
+\subsection{About the author}
+
+I am an agriculture engineer, soil scientist and R programmer.
+See my website for more details (\texttt{http://julienmoeys.free.fr/}).\\
+
+The R functions presented in this document may not always conform
+to the 'best R programming practices', they are nevertheless
+programmed carefully, well checked, and should work efficiently
+for most uses.\\
+
+At this stage of development, some bugs should still be expected.
+The code has been written in 3 years, and tested quite extensively
+since then, but it has never been used by other people. If you
+find some bugs, please contact me at: \texttt{jules\_78-soiltexture at AT@yahoo.fr}.
+
+
+% \begin{figure}[h]
+% \centering
+% \includegraphics[width=108px,viewport=0 0 382 25]{%
+% julienmoeysmailaddress-382-25.png}
+% \end{figure}
+
+
+
+\subsection{Credits and License}
+
+This document, as well as this \textbf{document} source code
+(written in Sweave \footnote{\texttt{http://en.wikipedia.org/wiki/Sweave}},
+R \footnote{\texttt{http://www.r-project.org}} and
+\LaTeX \footnote{\texttt{http://en.wikipedia.org/wiki/LaTeX}}) are
+licensed under a \textbf{Creative
+Commons By-SA 3.0 unported \footnote{\texttt{http://creativecommons.org/licenses/by-sa/3.0/}}}.
+
+
+% \begin{figure}[h]
+% \centering
+% \includegraphics[width=88px,viewport=0 0 88 31]{%
+% CC-By-SA-nonported-88x31.PNG}
+% \end{figure}
+
+
+In short, this means (\textit{extract from the abovementioned url at
+creativecommons.org}):
+
+\begin{itemize}
+ \item You are free to:
+ \begin{itemize}
+ \item \textbf{to Share} - to copy, distribute and
+ transmit the work;
+ \item \textbf{to Remix} - to adapt the work.
+ \end{itemize}
+ \item Under the following conditions:
+ \begin{itemize}
+ \item \textbf{Attribution} - You must attribute the work
+ in the manner specified by the author or licensor (but
+ not in any way that suggests that they endorse you or
+ your use of the work);
+ \item \textbf{Share Alike} - If you alter, transform, or
+ build upon this work, you may distribute the resulting
+ work only under the same, similar or a compatible
+ license.
+ \end{itemize}
+\end{itemize}
+
+'The soil texture wizard' R \textbf{functions} are licensed under
+a Affero GNU General Public License Version 3 (\texttt{http://www.gnu.org/licenses/agpl.html}).\\
+
+Given the fact that a lot of the work presented here has been done
+on my free time, and given its highly permissive license, \textbf{%
+this document is provided with NO responsibilities, guarantees or
+supports from the author or his employer} (Swedish University of
+Agricultural Sciences).\\
+
+Please notice that the R software itself is licensed under a GNU
+General Public License Version 2, June 1991.\\
+
+This tutorial has been created with the (great) \textbf{Sweave}
+tool, from Friedrich Leisch (\cite{SWEAVE2002}). Sweave allows the
+smooth integration of R code and R output (including figures) in
+a \LaTeX document.
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\section{Introduction: About soil texture, texture triangles
+ and texture classifications}
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\subsection{What are soil granulometry and soil texture(s)?}
+
+\textbf{Soil granulometry} is the repartition of soil solid
+particles between (a range of) particle sizes. As the range of
+particle sizes is in fact continuous, they have been subdivided
+into different \textbf{particle size classes}.\\
+
+The most common subdivision of soil granulometry into classes is
+the \textbf{fine earth}, for particles ranging from \textbf{0 to
+2mm (2000$\mu$m)}, and \textbf{coarse particles}, for
+particles bigger than \textbf{2mm}. Only the fine earth interests
+us in this document, although the study of soil granulometry can
+be extended to the coarse fraction (for stony soils).\\
+
+\textbf{Fine earth} is generally (but not always; see below) divided
+into \textbf{3 particle size classes: clay (fine particles), silt
+(medium size particles) and sand (coarser particles in the fine
+earth)}. All soil scientists use the range \textbf{0-2$\mu$m} for
+\textbf{clay}. So silt lower limit is also always
+\textbf{2$\mu$m}. But the convention for \textbf{silt / sand}
+particle size limit \textbf{varies from country to country}.
+\textbf{Silt} particle size range can be \textbf{2-20$\mu$m}
+(Atterberg system\cite{MINASNY2001AJSR}\cite{RICHER2008INRA};
+'International system'; ISSS\footnote{ISSS: International Society
+of Soil Science. Now IUSS (\texttt{www.iuss.org}), International
+Union of Soil Science}\label{ISSSSIZE}. The ISSS particle size
+system should not be confused with the ISSS texture triangle (See
+\ref{ISSSTRIANGLE}, p. \pageref{ISSSTRIANGLE}); Australia\footnote{%%%
+Strangely, only a
+small number of countries have adopted the so called
+'international system'}\cite{MINASNY2001AJSR}; Japan%
+\cite{RICHER2008INRA}), \textbf{2-50$\mu$m} (FAO\footnote{%
+Food and Agriculture Organization of the United Nations
+(\texttt{www.fao.org})}; USA; France\cite{MINASNY2001AJSR}%
+\cite{RICHER2008EGS}), \textbf{2-60$\mu$m}
+(UK and Sweden\cite{RICHER2008INRA}) or \textbf{2-63$\mu$m}
+(Germany, Austria, Denmark and The Netherlands%
+\cite{RICHER2008INRA}). Logically, \textbf{sand} particle size
+range also varies accordingly to these systems:
+\textbf{20-2000$\mu$m}, \textbf{50-2000$\mu$m},
+\textbf{60-2000$\mu$meters} or \textbf{63-2000$\mu$meters}.\\
+
+\textbf{Silt} class is sometimes divided into \textbf{fine silts}
+and \textbf{coarse silts}, and \textbf{sand} class is sometimes
+divided into \textbf{fine sand} and \textbf{coarse sand}, but in
+this document / package, we only focus on clay / silt / sand
+classes.\\
+
+Below is a scheme representing the different particle size
+classes used in France (with Cl for Clay, FiSi for Fine Silt,
+CoSi for Coarse Silt, FiSa for Fine Sand, CoSa for Coarse Sand,
+Gr for Gravels and St for Stones). The figure is adapted
+from Moeys 2007\cite{MOEYS2007}, and based on information from
+Baize \& Jabiol 1995\cite{BAIZE1995}. The particle size axis
+(abscissa) is log-scale:
+
+
+\SweaveOpts{width=14,height=4,keep.source=TRUE}
+<<echo=FALSE,fig=TRUE,include=TRUE>>=
+bornes <- c(0,2,20,50,200,2e3,20e3)
+noms <- c("Cl","FiSi","CoSi","FiSa","CoSa","Gr","St")
+txt.b <- expression( 0*mu*m, 2*mu*m, 20*mu*m, 50*mu*m, 200*mu*m, 2*'mm', 2*'cm')
+
+tmp <- data.frame(bornes,noms) # ,txt.b
+#tmp$"txt.b" <- as.character(tmp$"txt.b")
+
+par( "mar"=c(4,1,1,1)+0.1 ) # c(bottom, left, top, right)
+
+plot(
+ x = tmp$"bornes"[-1],
+ y = rep(1,dim(tmp[-1,])[1]),
+ type = "n",
+ main = "",
+ xlab = "Soil particule sizes",
+ ylab = "",
+ yaxt = "n", xaxt = "n",
+ log = "x",
+ xlim = c(0.2,75e3),
+ bty = "n",
+ cex.lab = 2
+) #
+
+abline(v=tmp$"bornes",lty=3,lwd=c(2,4,2,4,2,4,2))
+abline(h=par("usr")[3:4],lty=1,lwd=4)
+
+mtext(
+ text = txt.b[-1],
+ side = 1,
+ line = rep(
+ c(0.5,1.25),
+ (dim(tmp)[1]-1)/2
+ ), #
+ at = tmp$"bornes"[-1],
+ cex = 2
+) #
+
+xtxt <- (tmp$"bornes"[1:(length(tmp$"bornes"))]+c(tmp$"bornes"[2:length(tmp$"bornes")],75e3))/2
+
+text(x=xtxt,y=rep(1,length(xtxt)),labels=tmp$"noms",cex=2)
+@
+\SweaveOpts{width=14,height=14,keep.source=TRUE}
+
+
+Soil particles -- and each soil particle size class -- occupy a
+given volume in the soil, and have a given mass. They are
+nevertheless generally not expressed as 'absolute' volumetric
+quantities\footnote{for instance kilograms of clay per liters of
+soil', or 'liters of clay per liter of soil'}. They are expressed
+as \textbf{'relative abundance'}, that is \textbf{kilograms of
+particles of a given class per kilograms of fine earth}. These
+measurements are also always made on dehydrated soil samples
+(dried slightly above $100^{\circ}\mathrm{C}$), in order to be
+independent from soil water content (which varies a lot in time
+and space).\\
+
+\textbf{Soil texture} is defined as the relative abundance of the
+3 particle size classes: clay, silt and sand\footnote{But some
+systems define for than 3 particle size classes for soil texture}.\\
+
+\textit{In summary}, important information to know when talking
+about soil texture (and using these functions):
+
+\begin{itemize}
+ \item Soil's fine earth is generally (but not always) divided
+ into 3 soil texture classes:
+ \begin{itemize}
+ \item Clay;
+ \item Silt;
+ \item Sand.
+ \end{itemize}
+ \item The silt / sand limit varies:
+ \begin{itemize}
+ \item 20$\mu$m; or
+ \item 50$\mu$m; or
+ \item 60$\mu$m; or
+ \item 63$\mu$m.
+ \end{itemize}
+ \item Soil texture measurement do have a specific unit and a
+ corresponding 'sum of the 3 texture classes', that is
+ constant:
+ \begin{itemize}
+ \item in \% or $g.100g^{-1}$ (sum: 100); or
+ \item in fraction $[-]$ or $kg.kg^{-1}$ (sum: 1); or
+ \item in $g.kg^{-1}$ (sum: 1000);
+ \end{itemize}
+\end{itemize}
+
+
+\textbf{More than 3 particle size classes?}\\
+
+Some country have a particle size classes system that differ from
+the common 'clay silt sand' triplet. Sweden is using a system
+with 4 particle size classes: Ler [0-2$\mu$m], Mj\"ala [2-20$\mu$m],
+Mo [20-200$\mu$m] and Sand [200-2000$\mu$m] (See table 1 p.9 in
+Lidberg 2009\cite{LIDBERG2009}).
+Ler corresponds to clay. When considering the International or
+Australian particle size system (silt-sand limit 20$\mu$m), Mj\"ala
+is silt, and 'Mo + Sand' is sand. When considering other systems
+with a silt-sand limit at 50$\mu$m, 60$\mu$m or 63$\mu$m, Mj\"ala
+is ~fine-silt, Mo is ~'coarse-silt + fine sand', and Sand is
+~coarse-sand.\\
+
+'The Soil Texture Wizard' has been made for systems with 3
+particle size classes (clay, silt and sand), \textbf{because soil
+texture triangles have 3 sides, and thus can only represent
+texture data that are divided into 3 particle size classes}.
+There are methods to estimate 3 particle size classes when more
+classes are presented in the data (although the best is to
+measure texture so it also can fit a system with 3 particle size
+classes system).
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\subsection{What are soil texture triangle and classes}
+
+Soil texture triangles are also called \textbf{soil texture
+diagrams}.\\
+
+Soil texture can be plotted on a \textbf{ternary plot} (also
+called triangle plot). In a ternary plot, 3D coordinates, which
+sum is constant, are projected in the 2D space, using simple
+trigonometry rules. The texture of a soil sample can be plotted
+inside a texture triangle, as shown in the example below for
+the texture 45\% clay, 38\% silt and 17\% sand:
+
+
+<<echo=FALSE,fig=TRUE,include=TRUE>>=
+TT.plot(
+ class.sys = "none",
+ tri.data = data.frame(
+ "CLAY" = 45,
+ "SILT" = 38,
+ "SAND" = 17
+ ), #
+ main = NA
+) #
+@
+
+
+When mapping soil, field pedologists usually estimate texture by
+manipulating a moist (but not saturated) soil sample in their
+hand. Depending on the relative importance of clay silt and sand,
+the mechanical properties of the soil (plasticity, stickyness,
+roughness) varies. Pedologists have 'classified' clay silt and
+sand relative abundance as a function of what they could feel in
+the field: they have divided the 'soil texture space' into
+classes.\\
+
+\textbf{Soil particle size classes (clay, silt and sand)} should
+not be confused with \textbf{soil texture classes}. While the
+first are ranges of particle sizes, the latter are defined by a
+'range of clay, silt and sand' (see the graph below). Soil
+texture should not be confused with the concept of \textbf{soil
+structure}, that concerns the way these particles are arranged
+together (or not) into peds, clods and aggregates (etc.) of
+different size and shape\footnote{In the same way bricks and
+cement (the texture) can be arranged into a house (the structure)}.
+This document does not deal with soil structure.\\
+
+Soil texture classes are convenient to represent soil texture
+on soil maps\footnote{It is more easy to represent 1 variable,
+soil texture class, than 3 variables: clay silt and sand}, and
+there use is quite broad (soil description, soil classification,
+pedogenesis, soil functional properties, pedotransfer functions,
+etc.). One of these texture classification systems is the FAO
+system. Here is the representation of the same point as in the
+graph above, but with the FAO soil classification system on the
+background.
+
+<<echo=FALSE,fig=TRUE,include=TRUE>>=
+TT.plot(
+ class.sys = "FAO50.TT",
+ tri.data = data.frame(
+ "CLAY" = 45,
+ "SILT" = 38,
+ "SAND" = 17
+ ), #
+ main = NA
+) #
+@
+
+The soil texture class symbols are:
+
+<<echo=FALSE>>=
+library( "xtable" )
+@
+
+<<echo=FALSE,results=tex>>=
+tex.tbl <- TT.classes.tbl( class.sys = "FAO50.TT" )
+xtable(
+ x = tex.tbl[,-3], #
+ caption = "Texture classes of the FAO system / triangle",
+ label = NULL
+) #
+@
+
+The main characteristics of the graph (texture triangle) are:
+
+\begin{itemize}
+ \item 3 Axis, graduated from 0 to 100\%, each of them
+ carrying 1 particle size class.
+ \begin{itemize}
+ \item Sand on the bottom axis;
+ \item Clay on the left axis;
+ \item Silt on the right axix.
+ \end{itemize}
+ \item It is possible to permute clay, silt and sand axis, but
+ this choice depend on the particle size classification used.
+ \item Inside the triangle, the lines of equi-values for a
+ given axis/particle size class are ALWAYS parallel to the
+ (other) axis that intersect the axis of interest at 'zero'
+ (minimum value).
+ \item The 3 axis intersect each other in 3 submits, that are
+ characterized by an \textbf{angle}. In the example above, all
+ 3 angles are 60 degrees. But other angles are possible,
+ depending on the soil texture classification used. It is for
+ instance possible to have a 90 degrees angle on the left, and
+ 45 degrees angles on the top and on the right (right-angled
+ triangle).
+ \item The 3 axis have a \textbf{direction} of increasing
+ texture abundance. This direction is often referred as
+ 'clock' or 'anticlock', but they can also be directed 'inside'
+ the triangle in some cases. In the example
+ above, all the axis are clockwise: texture increase when
+ rotating in the opposite direction as a clock.
+ \item \textbf{Labeled ticks} are placed at regular intervals
+ (10\%) on the texture triangle axes, apart if the axis is
+ directed inside the triangle. Ticks can be placed at irregular
+ intervals if they are placed at each value taken by the
+ texture class polygons vertices (This is a smart
+ representation, unfortunately not implemented here).
+ \item An \textbf{broken arrow} is drawn 'parallel' to each
+ axis. The first part indicate the direction of increasing
+ value, and the second, broken, part indicates the direction of
+ the equi-value for that axis/texture class.
+ \item The \textbf{axis labels} indicates the texture class
+ concerned, and should ideally remind the particle size limits,
+ because these limits are of crucial importance when (re)using
+ soil texture data (Silt and Sand does not exactly mean the
+ same particle size limits everywhere).
+ \item \textbf{Soil texture class boundaries} are drawn inside
+ the triangle. They are 2D representation of 3D limits. They
+ are generally \textbf{labeled} with soil texture class
+ abbreviations (or full names).
+ \item Inside the triangle frame, a grid can be represented,
+ for each ticks and ticks label drawn outside the triangle.
+\end{itemize}
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\section{Installing the package}
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\subsection{Installing the package from r-forge}
+
+
+The Soil Texture Wizard is now available on CRAN
+\footnote{\texttt{http://cran.r-project.org/package=soiltexture}}
+and r-forge \footnote{\texttt{http://r-forge.r-project.org/}}, under
+the project name "soiltexture". The package can be installed from
+CRAN with the following commands:
+
+
+<<echo=TRUE,eval=FALSE>>=
+install.packages( pkgs = "soiltexture" )
+@
+
+
+And \textbf{if you have the latest R version} installed, and want
+the latest development version of the package, from r-forge, type
+the following commands:
+
+
+<<echo=TRUE,eval=FALSE>>=
+install.packages(
+ pkgs = "soiltexture",
+ repos = "http://R-Forge.R-project.org"
+) #
+@
+
+
+It can then be loaded with the following command:
+
+
+<<echo=TRUE>>=
+require( soiltexture )
+@
+
+
+If you get bored of the package, you can unload it and uninstall
+it with the following commands:
+
+
+<<echo=TRUE,eval=FALSE>>=
+detach( package:soiltexture )
+remove.packages( "soiltexture" )
+@
+
+
+If you don't have the latest R version, please try to install the
+package from the binaries. In the next section, an example is given
+for R under MS Windows systems (Zip binaries).
+
+
+
+% % +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+% \subsection{Installing the package from Windows binaries (.zip)}
+
+
+% To install and load the package directly from
+% \href{"http://r-forge.r-project.org/bin/windows/contrib/2.10/soiltexture_1.0.zip"}%%%
+% {r-forge zip binaries},
+% you can type the following command:
+
+
+% <<echo=TRUE,eval=FALSE>>=
+% download.file(
+% url =
+% "http://r-forge.r-project.org/bin/windows/contrib/2.10/soiltexture_1.0.zip",
+% destfile = file.path( getwd(), "soiltexture_1.0.zip" )
+% ) #
+% #
+% install.packages(
+% pkgs = file.path( getwd(), "soiltexture_1.0.zip" ),
+% repos = NULL
+% ) #
+% #
+% file.remove( "soiltexture_1.0.zip" )
+% @
+
+
+% \textbf{Where 2.10 should be replaced by the latest stable R
+% version and 1.0 by the latest package version on r-forge}.
+
+
+
+% % +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+% \subsection{Load the latest package sources}
+
+
+% If all the options above failed to intall the soiltexture package,
+% you can still load the
+% \href{http://r-forge.r-project.org/plugins/scmsvn/viewcvs.php/*checkout*/pkg/soiltexture/R/soiltexture.r?root=soiltexture}%%%
+% {latest package sources} in R by using the
+% following command:
+
+
+% <<echo=TRUE,eval=FALSE>>=
+% source(
+% paste(
+% sep = "",
+% "http://r-forge.r-project.org/scm/viewvc.php/*checkout*",
+% "/pkg/soiltexture/R/soiltexture.R?&root=soiltexture"
+% ) #
+% ) #
+% @
+
+
+% The examples shown in this vignette are ran with these sources.
+
+
+
+% % +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+% \subsection{Set the work directory}
+
+
+% Here is the working directory we are using in this package vignette
+% (choose the one you like...):
+
+% <<echo=TRUE>>=
+% # setwd("C:/_RTOOLS/SWEAVE_WORK/SOIL_TEXTURES/rforge/pkg/soiltexture/inst/doc/INOUT")
+% @
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\section{Plotting soil texture triangles and classification
+ systems}
+
+The package comes with 8 predefined soil texture triangles. Empty %%% THINGS TO CHECK HERE: NB TRIANGLES
+(i.e. without soil textures data) soil texture triangles can be
+plotted, in order to obtain smart representation of the soil
+texture classification. Of course, it is also possible to plot
+'classification free' texture triangles.
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\subsection{An empty soil texture triangle}
+
+Below is the code to display an empty triangle (without
+classification and without data):
+
+
+<<echo=TRUE,fig=TRUE,include=TRUE>>=
+TT.plot( class.sys = "none" )
+@
+
+
+The option \texttt{class.sys} (characters) determines the soil
+texture classification system used. If set to \texttt{'none'},
+an empty soil texture triangle is plotted.\\
+
+Without further options, the plotted default soil texture
+triangle has the same geometry as the FAO, USDA or French 'Aisne'
+soil texture triangles (i.e. all axis are clockwise, all angles
+are 60 degrees, sand is on the bottom axe, clay on the left and
+silt on the right).\\
+
+The default unit is always percentage (0 to 100\%). It is also
+equivalent to $g.100g^{-1}$.
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\subsection{The USDA soil texture classification}
+
+To display a USDA texture triangle, type:
+
+
+<<echo=TRUE,fig=TRUE,include=TRUE>>=
+TT.plot( class.sys = "USDA.TT" )
+@
+
+
+When the option \texttt{class.sys} is set to \texttt{"USDA.TT"},
+a soil texture triangle with USDA classification system is used.\\
+
+The USDA soil texture triangle has been built considering a
+silt - sand limit of
+\Sexpr{TT.get("USDA.TT")[["base.css.ps.lim"]][3]}$\mu$meters.\\
+
+See the table for soil texture classes symbols.\\
+
+
+<<echo=FALSE,results=tex>>=
+tex.tbl <- TT.classes.tbl( class.sys = "USDA.TT" )
+xtable(
+ x = tex.tbl[,-3], #
+ caption = "Texture classes of the USDA system / triangle",
+ label = NULL
+) #
+@
+
+
+The reference used to digitize this triangle is the Soil Survey
+Manual (Soil Survey Staff 1993\cite{USDA1993}).
+
+\clearpage % otherwise the table may 'eats' next triangle
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\subsection{The FAO soil texture classification (also known as
+ 'European Soil map', or 'HYPRES')}
+
+To display a FAO / HYPRES texture triangle, type:
+
+
+<<echo=TRUE,fig=TRUE,include=TRUE>>=
+TT.plot( class.sys = "FAO50.TT" )
+@
+
+
+De Forges et al. 2008\cite{RICHER2008EGS} pointed out the fact
+that the silt-sand particle size limit that is officially related
+to the FAO soil texture triangle has changed over time, 50$\mu$m,
+then 63$\mu$m, and then again 50$\mu$m for some projects.
+We here consider that the FAO / EU Soil map / HYPRES soil texture
+triangle has a silt - sand limit of
+\Sexpr{TT.get("FAO50.TT")[["base.css.ps.lim"]][3]}$\mu$m. As this
+choice is somehow arbitrary, we have named the 'FAO' option
+\texttt{"FAO50.TT"} in order to avoid any confusion. It will be
+explained later in the document how it is possible to add a custom
+texture triangle to the existing list, that could for instance be
+used to configure an FAO texture triangle with another silt -
+sand limit.\\
+
+See the table for soil texture classes symbols.\\
+
+
+<<echo=FALSE,results=tex>>=
+tex.tbl <- TT.classes.tbl( class.sys = "FAO50.TT" )
+xtable(
+ x = tex.tbl[,-3], #
+ caption = "Texture classes of the FAO system / triangle",
+ label = NULL
+) #
+@
+
+
+The references used to digitize this triangle is the texture
+triangle provided by the HYPRES project web site
+(\cite{HYPRES2009}). The The Canadian Soil Information System
+(CanSIS) also provides some details on this triangle
+(\cite{CANSIS2009}).
+
+\clearpage % otherwise the table may 'eats' next triangle
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\subsection{The French 'Aisne' soil texture classification}
+
+To display a French 'Aisne' texture triangle, type:
+
+
+<<echo=TRUE,fig=TRUE,include=TRUE>>=
+TT.plot( class.sys = "FR.AISNE.TT" )
+@
+
+
+The French Aisne soil texture triangle has been built
+considering a silt - sand limit of
+\Sexpr{TT.get("FR.AISNE.TT")[["base.css.ps.lim"]][3]}$\mu$meters.\\
+
+See the table for soil texture classes symbols\footnote{In
+classes 14 and 15, 'leger' should be replaced by 'l\'eger'. R (and
+Sweave) can not display french accents easily, and I found no easy
+trics for displaying them.}.\\
+
+
+<<echo=FALSE,results=tex>>=
+tex.tbl <- TT.classes.tbl( class.sys = "FR.AISNE.TT" )
+xtable(
+ x = tex.tbl[,-3], #
+ caption = "Texture classes of the French 'Aisne' system / triangle",
+ label = NULL
+) #
+@
+
+The references used for digising this triangle is Baize and
+Jabiol 1995\cite{BAIZE1995} and Jamagne 1967\cite{JAMAGNE1967}.
+This triangle may be referred as the 'Triangle des textures de la
+Chambre d'Agriculture de l'Aisne' (en: texture triangle of the
+Aisne extension service).
+
+\clearpage % otherwise the table may 'eats' next triangle
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\subsection{The French 'GEPPA' soil texture classification}
+
+To display a French 'GEPPA' texture triangle, type:
+
+
+<<echo=TRUE,fig=TRUE,include=TRUE>>=
+TT.plot( class.sys = "FR.GEPPA.TT" )
+@
+
+
+The French GEPPA soil texture triangle has been built
+considering a silt - sand limit of
+\Sexpr{TT.get("FR.GEPPA.TT")[["base.css.ps.lim"]][3]}$\mu$meters.\\
+
+See the table for soil texture classes symbols.\\
+
+
+<<echo=FALSE,results=tex>>=
+tex.tbl <- TT.classes.tbl( class.sys = "FR.GEPPA.TT" )
+xtable(
+ x = tex.tbl[,-3], #
+ caption = "Texture classes of the French 'GEPPA' system / triangle",
+ label = NULL
+) #
+@
+
+
+This triangle has been digitized after
+\texttt{sols-de-bretagne.fr} 2009\cite{SOLBRETAGNE2009}. The
+website refers to an illustration from Baize and Jabiol 1995%
+\cite{BAIZE1995}. 'GEPPA' means 'Groupe d'Etude pour les
+Probl\`emes de P\'edologie Appliqu\'ee' (en: Group for the study of
+applied pedology problems / questions).
+
+\clearpage % otherwise the table may 'eats' next triangle
+
+
+
+% +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
+\subsection{The German Bodenartendiagramm (B.K. 1994) soil
+ texture classification}
+
+To display a German Bodenartendiagramm (BK 1994) texture triangle,
+type:
+
+
+<<echo=TRUE,fig=TRUE,include=TRUE>>=
+TT.plot( class.sys = "DE.BK94.TT" )
+@
+
+
+The German Bodenartendiagramm (BK 1994) soil texture triangle has
+been built considering a silt - sand limit of
+\Sexpr{TT.get("DE.BK94.TT")[["base.css.ps.lim"]][3]}$\mu$meters.\\
+
+See the table for soil texture classes symbols.\\
+
+
+<<echo=FALSE,results=tex>>=
+tex.tbl <- TT.classes.tbl( class.sys = "DE.BK94.TT" )
+xtable(
+ x = tex.tbl[,-3], #
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/soiltexture -r 89
More information about the Soiltexture-commits
mailing list