Daniel Victoria: > I'm trying to do a randomForest classification in a MODIS NDVI time > series. So far I've been able to generate the randomForest and get the > Grass NDVI images inside grass as a SpatialGridDataFrame. Then, > following some notes from Markus Neteler [1], I converted the > SpatialGridDataFrame to a DataFrame and sucessfully applied the > randomForest classifier. The problem is that now I'm struglling to > transform the DataFrame back to a grass image. What is giving me a > headach is that the images contains lots of null values (I need to > have a MASK in place) so, each NDVI image has 1023701 cells but the > DataFrame has only 264647 values since the conversion from SpatialGrid > to DataFrame skips the nulls.
> So, the question is, how to convert my DataFrame back to a Grass image? Daniel, so far I used the following steps: # import raster data in R using "readRAST6" of course x.raw <- readRAST6 (SomeRasterMap) # or readRAST6 (SomeRasterMap , NODATA = -999999 ) # use complete cases to deal with NA's x.nonas <- complete.cases ( x...@data ) # get values x <- x....@data[x.nonas,] # add new columns to "x.raw" that will be fed with... "newvalues" x....@data$column1 <- NA x....@data$column2 <- NA [etc.] # do something with your data or create new data.frame(s) # fill in the new (empty) columns of xraw x....@data$column1[x.nonas] <- new.data.frame$newslot[,"newcolumn"] [etc.] # write back to grass writeRAST6(x.raw, zcol= NumberOfNewColumn, vname="SomeNameForTheRaster", overwrite=TRUE) Something like that... Hope it helps, Nikos --- > [1] http://mpa.fbk.eu/markus/shortcourse/notes7.html --- > PS - For completion sake... > Using Grass 6.4.0RC6 in Ubuntu 9.10 > R 2.11 > > commands used in R: > > # open images > ndvi <- readRAST6(<list of 23 ndvi images>) > > # convert to dataframe > ndvi.df <- as.data.frame(ndvi) > > class <- predict(RFmodel, ndvi.df) > > # class contains 264647 classified pixels - how to get them back to an > image? _______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user