[R] diffusing GIS data in maps
p.hiemstra at geo.uu.nl
Tue Aug 14 16:56:06 CEST 2007
You could use the gstat (geostatistics) package to perform an
interpolation, it also requires the package sp. It offers inverse
distance interpolation and several forms of kriging. Making an
interpolation would look something like:
library(gstat) # Also loads sp
coordinates(geocode) = ~LAT + LONG # make a spatial object out of
grid = spsample(geocode, type = "regular", n = 1000) # make a map of
# Regular grid. n is the number
of cells, increase this for more detail in the resulting map
gridded(grid) = TRUE # Identifying this object as a grid
interpolated = krige(VALUE ~ 1, geocode, grid) # Do inverse distance
interpolation, data is 'geocode', target locations are 'grid'.
spplot(interpolated, "var1.pred", sp.layout = list("sp.points",
geocode)) # Plot the predictions (grid) and the points (geocode)
hope this helps,
Lawrence D. Brenninkmeyer schreef:
> I am trying to find a way to diffuse GIS data on a European map. I have a
> dataset consisting of particular locations scattered across Europe,
> along with magnitude and value information. I can plot these as discrete
> points with something like the following:
> "geocode" is a dataframe with four columns: LAT; LONG; MAGNITUDE;VALUE.
> map("worldHires", regions=c("Germany", "Belgium", "Netherlands"))
> points(geocode$LONG, geocode$LAT, cex=geocode$MAGNITUDE / 2500,
> col=rainbow(length(geocode$VALUE), start=0, end=.4)[rank(geocode$VALUE)])
> This gives me a map of Europe with my datapoints highlighted in two ways:
> magnitude is represented by the size of the point, and value is
> represented by the color.
> However, what I would really like is for there to be some sort of
> diffusion, such that instead of discrete points, the European map is
> covered in color so I can see more clearly whether there are regional
> patterns (something that will presumably look like this contour chart:
> <http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=20> only
> on the European map).
> I have absolutely no idea where to start because I can't find a function
> that will allow me to diffuse the datapoints on a map.
> thank you for any help
> R-help at stat.math.ethz.ch mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
Drs. Paul Hiemstra
Department of Physical Geography
Faculty of Geosciences
University of Utrecht
P.O. Box 80.115
3508 TC Utrecht
More information about the R-help