dylan's blog

Compiling rgdal on Mac OS 10.5

Submitted by dylan on Fri, 2012-08-31 19:25.

Why do I always forget how to do this?

R CMD INSTALL rgdal --configure-args="--with-gdal-config=/Library/Frameworks/GDAL.framework/Versions/Current/unix/bin/gdal-config --with-proj-include=/Library/Frameworks/PROJ.framework/Versions/4/Headers/ --with-proj-lib=/Library/Frameworks/PROJ.framework/Versions/Current/unix/lib/"

You will need to adjust the paths based on your version of the GDAL and Proj4 frameworks.

Basic documentation for soilDB package (R) now available

Submitted by dylan on Wed, 2012-08-29 20:14.

A proper introduction to the soilDB package is now available here. Installation and basic usage are covered. More detailed, task-specific documentation on aqp and soilDB will be available soon.

( categories: )

SoilWeb Usage Statistics

Submitted by dylan on Wed, 2012-08-01 17:06.

AQP Demo: Applying a Function to Each Soil Profile in a Collection with profileApply()

Submitted by dylan on Tue, 2012-06-19 23:35.

Here is a quick demonstration of how functionality from the AQP package can be used to answer complex soils-related questions. In these examples the profileApply() function is used to iterate over a collection of soil profiles, and compute several metrics of soil development:

  • depth of maximum clay content
  • clay/RF content within the PCS
  • clay content within the argillic horizon
  • thickness of argillic horizon
  • depth to argillic horizon

Extracting an image chunk from a collection of Large MrSid Images

Submitted by dylan on Mon, 2012-06-04 17:29.

Recently needed to extract a small "chunk" from a collection of adjacent MrSid mosaics, each about 4Gb in size. Once again, GDAL came to the rescue, and saved much time and agony wile working with very large, compressed, and proprietary-format files. Two lessons learned:

  1. The GDAL VRT format can save a lot of time and effort by providing access to a collection of files without actually altering the originals.
  2. ArcGIS 9.x does not like BigTIFF files. When file sizes approach or exceed 4Gb, the HFA format is a nice alternative.

Have patience, subsetting a chunk out of 5 adjacent MrSid files (4Gb each) took about 7 hours. Fun experiment: extract sub-chunks from each of the constituent sid files and distribute across CPU cores.

soilDB Demo: Processing SSURGO Attribute Data with SDA_query()

Submitted by dylan on Thu, 2012-04-26 23:18.

Mapping near Paloma, CAMapping near Paloma, CA This image has nothing to do with the following content.

A quick example of how to use the USDA-NRCS soil data access query facility (SDA), via the soilDB package for R. The following code describes how to get component-level soils data for Yolo County (survey area CA113) from SDA and compute representative sub-order level classification for each map unit. This example requires an understanding of SQL, US Soil Taxonomy and the SSURGO database.

( categories: )

R Quickie: Custom Panel Functions and Default Arguments

Submitted by dylan on Mon, 2012-04-16 16:39.

Sometimes the basic functionality in lattice graphics isn't enough. Custom "panel functions" are one approach to fully customizing the lattice graphics system. Two examples are given below illustrating how to define an (inline) custom panel function for adding a regression line to an entire data set in the presence of grouping variable. The "..." keyword instructs our custom panel function to accept all arguments typically passed to a panel function, and can be re-used in clever ways within our panel function.

AQP Kick-Start

Submitted by dylan on Wed, 2012-03-28 02:41.

A fun kick-starter for anyone interested in working with soil profile data in R, via AQP. See in-line comments for details. Up next, profile slicing and aggregation.

Dissimilarity Between Soil Profiles: A Closer Look

Submitted by dylan on Fri, 2012-03-23 19:35.

Continuing the previous discussion of pair-wise dissimilarity between soil profiles, the following demonstration (code, comments, and figures) further elaborates on the method. A more in-depth discussion of this example will be included as a vignette within the 1.0 release of AQP.

Profile Dissimilarity Demo: MVO SoilsProfile Dissimilarity Demo: MVO Soils

A Graphical Explanation of how to Interpret a Dendrogram

Submitted by dylan on Thu, 2012-03-15 18:16.

Dendrograms are a convenient way of depicting pair-wise dissimilarity between objects, commonly associated with the topic of cluster analysis. This is a complex subject that is best left to experts and textbooks, so I won't even attempt to cover it here. I have been frequently using dendrograms as part of my investigations into dissimilarity computed between soil profiles. Unfortunately the interpretation of dendrograms is not very intuitive, especially when the source data are complex. In addition, pair-wise dissimimlarity computed between soil profiles and visualized via dendrogram should not be confused with the use of dendrograms in the field of cladistics-- where relation to a common ancestor is depicted.

An example is presented below that illustrates the relationship between dendrogram and dissimilarity as evaluated between objects with 2 variables. Essentially, the level at which branches merge (relative to the "root" of the tree) is related to their similarity. In the example below it is clear that (in terms of clay and rock fragment content) soils 4 and 5 are more similar to each other than to soil 2. In addition, soils 1 and 3 are more similar to each other than soils 4 and 5 are to soil 2. Recall that in this case pair-wise dissimilarity is based on the Euclidean distance between soils in terms of their clay content and rock fragment content. Therefore proximity in the scatter plot of frock frags vs. clay is directly related to our simple evaluation of "dissimilarity". Inline-comments in the code below elaborate further.

Data to DendrogramData to Dendrogram

( categories: )