NavigationUser login |
dylan's blogAggregating SSURGO Data in RSubmitted by dylan on Thu, 2009-09-10 15:36.
If you happen to have some of the SSURGO tabular data that includes column names, the following R code may be of general interest for resolving the 1:many:many hierarchy of relationships required to make a thematic map.
mukey clay silt sand water_storage
458581 20.93750 20.832237 20.861842 14.460000
458584 43.11513 30.184868 26.700000 23.490000
458593 50.00000 27.900000 22.100000 22.800000
458595 34.04605 14.867763 11.776974 18.900000
( categories: )
Potential Loss of Arable Land in the Central San Joaquin Valley, CASubmitted by dylan on Mon, 2009-08-17 15:19.
Rapid urban and sub-urban expansion in the San Joaquin Valley have resulted in the loss of millions of acres of prime farmland in the last 100 years. Approximately 11% of class 1 (irrigated) land and 7% of class 2 land have already been paved over in the Fresno-Madera region (first image below). Recent projections in the expansion of urban areas in this region suggests that by 2085 an additional 28% of class 1 and 25% of class 2 land will be paved over (second image below). This is a preliminary summary-- details to follow.
( categories: )
Computing Statistics from Poorly Formatted Data (plyr and reshape packages for R)Submitted by dylan on Thu, 2009-07-09 15:26.
Using R to Create Misc. Patterns [smocking]Submitted by dylan on Sat, 2009-07-04 23:15.
Summarizing Grouped Data in RSubmitted by dylan on Fri, 2009-07-03 18:34.
A colleague of mine recently asked about computing basic summary statistics from grouped data in R. These are a couple examples that I suggested. Additional documentation for the plyr package can be found here. Accessing Soil Survey Data via Web-ServicesSubmitted by dylan on Thu, 2009-05-28 17:46.
Making Sense of Large Piles of Soils Information: Soil TaxonomySubmitted by dylan on Wed, 2009-05-27 18:43.
( categories: )
Simple Approach to Converting GRASS DB-backendsSubmitted by dylan on Sat, 2009-05-23 21:32.
Currently GRASS uses a single SQLite (file-based) database per mapset-- convenient if you are interested in joining attribute tables between vectors; but not set-in-stone as the final approach that will be used by default in GRASS 7. Regardless, converting the back-end is a fairly simple matter. Finally, taking the time to convert to an SQLite or Postgresql back-end will undoubtably save you time and sanity if you ever find yourself working with vector+attribute data on a regular basis. Having access to a complete implementation of SQL can make extracting, summarizing, joining, and re-formatting (column names, types, etc.) tabular data much simpler than what is available in the DBF back-end. Also, there are several convenient graphical SQLite managers available, such as SQLite manager, SQLite data browser, and SQLite Admin. ( categories: )
Interesting R PackagesSubmitted by dylan on Mon, 2009-04-27 15:47.
( categories: )
Comparison of Slope and Intercept Terms for Multi-Level Model II: Using ContrastsSubmitted by dylan on Tue, 2009-02-17 04:43.
PremiseSmall update to a similar thread from last week, on the comparison of slope and intercept terms fit to a multi-level model. I finally figured out (thanks R-Help mailing list!) how to efficiently use contrasts in R. The C() function can be called within a model formula, to reset the base level of an un-ordered factor. The UCLA Stats Library has an extensive description of this topic here. This approach can be used to sequentially test for differences between slope and intercept terms from a multi-level model, by re-setting the base level of a factor. See example data and figure below. Note that the multcomp package has a much more robust approach to this type of operation. Details below. # need these library(lattice) library(Design) # replicate an important experimental dataset set.seed(10101010) x <- rnorm(100) y1 <- x[1:25] * 2 + rnorm(25, mean=1) y2 <- x[26:50] * 2.6 + rnorm(25, mean=1.5) y3 <- x[51:75] * 2.9 + rnorm(25, mean=5) y4 <- x[76:100] * 3.5 + rnorm(25, mean=5.5) d <- data.frame(x=x, y=c(y1,y2,y3,y4), f=factor(rep(letters[1:4], each=25))) # plot xyplot(y ~ x, groups=f, data=d, auto.key=list(columns=4, title='Beard Type', lines=TRUE, points=FALSE, cex=0.75), type=c('p','r'), ylab='Number of Pirates', xlab='Distance from Land') ( categories: )
|