Hello Everyone,
I am trying to run k-means algorithm with R on Landsat images but it is
giving error that the data type is not supported.
My syntax is
juneb1<-readGDAL("G:/landsat/New Landsat/June/2002-06-08/8juneb10.tif")
kmenjuneb<-kmeans(juneb1,10,iter.max = 6, nstart = 1,
algorithm = c("Hartigan-Wong", "Lloyd", "Forgy",
"MacQueen"))
error message
Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)
Is there anyother way to do cluster analysis to spatial data in R?
Any help would be greatly appreciated.
Vikram.
K-means clustering with landsat data
3 messages · Vikram Ranga, Mathieu Rajerison, Roger Bivand
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-sig-geo/attachments/20120111/c41a2446/attachment.pl>
On Wed, 11 Jan 2012, Vikram Ranga wrote:
Hello Everyone,
I am trying to run k-means algorithm with R on Landsat images but it is
giving error that the data type is not supported.
My syntax is
juneb1<-readGDAL("G:/landsat/New Landsat/June/2002-06-08/8juneb10.tif")
Please do check to see what has been read in. Use names(juneb1) to check
the names of the bands/columns/variables in it. The object is a
SpatialGridDataFrame, not a numeric matrix, not a data.frame. kmeans()
takes first argument x:
x: numeric matrix of data, or an object that can be coerced to
such a matrix (such as a numeric vector or a data frame with
all numeric columns).
So:
kmenjuneb<-kmeans(juneb1$band1, centers=10)
may work, if the first name was band1. However, it will not work well on a
single variable. In addition, it does not work on data with missing
values, so you may need to say:
df <- as(juneb1, "data.frame")
df1 <- df[complete.cases(df),]
kmenjuneb<-kmeans(df1, centers=10)
or something like that. Beware that subsetting a single column object may
drop a dimension.
Reading the help pages of readGDAL, SpatialGridDataFrame and kmeans would
have helped.
Hope this clarifies,
Roger
kmenjuneb<-kmeans(juneb1,10,iter.max = 6, nstart = 1,
algorithm = c("Hartigan-Wong", "Lloyd", "Forgy",
"MacQueen"))
error message
Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)
Is there anyother way to do cluster analysis to spatial data in R?
Any help would be greatly appreciated.
Vikram.
_______________________________________________ R-sig-Geo mailing list R-sig-Geo at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Roger Bivand Department of Economics, NHH Norwegian School of Economics, 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