fields: fields - tools for spatial data

Description Examples


Fields is a collection of programs for curve and function fitting with an emphasis on spatial data and spatial statistics. The major methods implemented include cubic and thin plate splines, universal Kriging and Kriging for large data sets. One main feature is any covariance function implemented in R code can be used for spatial prediction. Another important feature is that fields will take advantage of compactly supported covariance functions in a seamless way through the spam package. See library( help=fields) for a listing of all the fields contents.

fields stives to have readable and tutorial code. Take a look at the source code for Krig and mKrig to see how things work "under the hood". To load fields with the comments retained in the source use keep.source = TRUE in the library command. We also keep the source on-line: browse the directory for commented source. is a page for html formatted help files. (If you obtain the source version of the package (file ends in .gz) the commented source code is the R subdirectory.)

Major methods

  • Tps Thin Plate spline regression including GCV and REML estimates for the smoothing parameter.

  • spatialProcess An easy to use method that fits a spatial process model ( e.g. Kriging) but also estimates the key spatial parameters: nugget variance, sill variance and range by maximum likelihood. Default covariance model is a Matern covariance function.

  • Krig Spatial process estimation that is the core function of fields.

    The Krig function allows you to supply a covariance function that is written in native R code. See (stationary.cov) that includes several families of covariances and distance metrics including the Matern and great circle distance.

  • mKrig (micro Krig) are fastTps fast efficient Universal Kriging and spline-like functions, that can take advantage of sparse covariance functions and thus handle very large numbers of spatial locations. QTps A easy to use extension of thin plate splines for quantile and robust surface fitting.

  • mKrigMLEGrid for maximum likelihood estimates of covariance parameters. This function also handles replicate fields assumed to be independent realizations at the same locations.

Other noteworthy functions

  • vgram and vgram.matrix find variograms for spatial data (and with temporal replications.

  • Generates space-filling designs where the distance function is expresed in R code.

  • as.image, image.plot, drape.plot, quilt.plot add.image, crop.image, half.image, average.image, designer.colors, color.scale, in.poly Many convenient functions for working with image data and rationally (well, maybe reasonably) creating and placing a color scale on an image plot. See also grid.list for how fields works with grids and US and world for adding a map quickly.

  • sreg splint Fast 1-D smoothing splines and interpolating cubic splines.

Generic functions that support the methods

plot - diagnostic plots of fit
summary- statistical summary of fit
print- shorter version of summary
surface- graphical display of fitted surface
predict- evaluation fit at arbitrary points
predictSE- prediction standard errors at arbitrary points.
sim.rf- Simulate a random fields on a 2-d grid.

Getting Started

Try some of the examples from help files for Tps or spatialProcess.

Graphics tips

help( fields.hints) gives some R code tricks for setting up common legends and axes. And has little to do with this package!

Testing See help(fields.tests) for testing fields.

Some fields datasets

  • CO2 Global satelite CO2 concentrations (simulated field)

  • RCMexample Regional climate model output

  • lennon Image of John Lennon

  • COmonthlyMet Monthly mean temperatures and precip for Colorado

  • RMelevation Digital elevations for the Rocky Mountain Empire

  • ozone2 Daily max 8 hour ozone concentrations for the US midwest for summer 1987.

  • PRISMelevation Digital elevations for the continental US at approximately 4km resolution

  • NorthAmericanRainfall 50+ year average and trend for summer rainfall at 1700+ stations.

  • Small paired study on rat food intake over time.

  • WorldBankCO2 Demographic and carbon emission data for 75 countries and for 1999.

DISCLAIMER: The authors can not guarantee the correctness of any function or program in this package.


# some air quality data, daily surface ozone measurements for the Midwest:
y<- ozone2$y[16,] # June 18, 1987

# pixel plot of spatial data
quilt.plot( x,y)
US( add=TRUE) # add US map

fit<- Tps(x,y)
# fits a GCV thin plate smoothing spline surface to ozone measurements.
# Hey, it does not get any easier than this!

summary(fit) #diagnostic summary of the fit 
plot(fit) # four diagnostic plots of fit and residuals.

# quick plot of predicted surface
surface(fit) # contour/image plot of the fitted surface
US( add=TRUE, col="magenta", lwd=2) # US map overlaid
title("Daily max 8 hour ozone in PPB,  June 18th, 1987")

fit2<- spatialProcess( x,y)
# a "Kriging" model. The covariance defaults to a Matern with smoothness 1.0.
# the nugget, sill and range parameters are found by maximum likelihood
# summary, plot, and surface also work for  fit2 !

Search within the fields package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.