Extracting x,y-coordinates from a SGDF

2 messages Options
Embed this post
Permalink
Johannes Signer

Extracting x,y-coordinates from a SGDF

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)

Dear List-Members,

I encountered a problem with with importing data from GRASS to R. I found a work around to my problem, but maybe someone is aware of a more elegant solution.

I imported a raster from GRASS to R with the readRAST6() method. My ultimate goal is to get a a new data.frame which looks like this:

x-coordinate | y-coordinate | z-value



I managed to extract the z-value from the data slot of the SGDF, but I did not manage to extract the x and y values.

My current work around is to write a function recalculating the grid points from the information provided within the SGDF. However if anyone is aware of a easier method of how to extract x and y values from a SGDF I would be very interested.

Many thanks in advance

Johannes


_______________________________________________
grass-stats mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/grass-stats
Roger Bivand

Re: Extracting x,y-coordinates from a SGDF

Reply Threaded More More options
Print post
Permalink
On Tue, 14 Jul 2009, Johannes Signer wrote:

> Dear List-Members,
>
> I encountered a problem with with importing data from GRASS to R. I found a
> work around to my problem, but maybe someone is aware of a more elegant
> solution.
>
> I imported a raster from GRASS to R with the readRAST6() method. My
> ultimate goal is to get a a new data.frame which looks like this:
>
> x-coordinate | y-coordinate | z-value
>

For example:

library(sp)
data(meuse.grid)
coordinates(meuse.grid) <- c("x", "y")
gridded(meuse.grid) <- TRUE
fullgrid(meuse.grid) <- TRUE
class(meuse.grid)
df <- as(as(meuse.grid, "SpatialPointsDataFrame"), "data.frame")
str(df)

Because this example coerces to SpatialGridDataFrame, on the way back
raster cells with no attribute values are dropped.

str(coordinates(meuse.grid))

retrieves all the cells, whether missing attribute values or not. So
assuming you want "soil":

df1 <- data.frame(coordinates(meuse.grid), soil=meuse.grid$soil)
str(df1)

will do that.

Hope this helps,

Roger

>
>
> I managed to extract the z-value from the data slot of the SGDF, but I did
> not manage to extract the x and y values.
>
> My current work around is to write a function recalculating the grid points
> from the information provided within the SGDF. However if anyone is aware of
> a easier method of how to extract x and y values from a SGDF I would be very
> interested.
>
> Many thanks in advance
>
> Johannes
>

--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: [hidden email]

_______________________________________________
grass-stats mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/grass-stats
Roger Bivand
Economic Geography Section
Department of Economics
Norwegian School of Economics and Business Administration
Helleveien 30
N-5045 Bergen, Norway