[R-sig-Geo] clustering multi band images

Roger Bivand Roger.Bivand at nhh.no
Fri Jun 13 11:21:26 CEST 2008


On Thu, 12 Jun 2008, Edzer Pebesma wrote:

> Roger Bivand wrote:
>>  On Thu, 12 Jun 2008, Laura Poggio wrote:
>> 
>> >  Dear list,
>> >  I am trying to do some clustering on images. And I have two main 
>> >  problems:
>> > 
>> >  1) Clustering multiband images.
>> >  I managed to be successful with a single band image, but when trying to
>> >  apply to a 3 band I get the following warning message:
>> >  In as.matrix.SpatialGridDataFrame(x) :
>> >  as.matrix.SpatialPixelsDataFrame uses first column;
>> >  pass subset or [] for other columns
>> > 
>> > 
>> >  2) saving clustering results as grid or image.
>> >  I get a vector of clusters, but without both coordinates. How it is 
>> >  possible
>> >  to transform it in a grid?
>> > 
>> >  Here the code I use to read the image itself and to do the clustering:
>> > 
>> >  library(rgdal)
>> >  fld <- system.file("E:/data/IMG/fr/", package="rgdal")
>> >  img <- readGDAL("123_rawR.tif")
>> > 
>> >  kl <- kmeans(img, 5)
>>
>>  img is a SpatialGridDataFrame. kmeans() wants a matrix or data frame, so
>>  say:
>>
>>  kl <- kmeans(as(img, "data.frame"), 5)
> this also passes the coordinates to the clustering routine; I'm not sure but 
> I think that was not the initial idea.
> In case img is a 3-band image, use
>
> kl <- kmeans(as(img, "data.frame")[1:3], 5)

Right, I replied too fast without chacking, sorry!

Roger

> --
> Edzer
>
>
>

-- 
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: Roger.Bivand at nhh.no




More information about the R-sig-Geo mailing list