Dear Garcia,Thank you so much! Before running my data, I have tested your code using "meuse" data. It works fine. But it produce following output like below from V1 to V3103. I do not understand what does the values in rows mean (1 to 4). Here is the code that I used. I have questions How do I plot r-values with coordinates. Is it possible to get p-value for each estimate?
Thanks again Zia *# R code:* #---------- library(gstat) library(sp) library(spdep) data(meuse) data(meuse.grid) coordinates(meuse) <- ~x + y coordinates(meuse.grid) <- ~x + y str(meuse.grid) # GRID 1: v1 <- variogram(log(zinc) ~ 1, meuse) x1<-fit.variogram(v1, vgm(1, "Sph", 800, 1)) G1 <- krige(zinc ~ 1, meuse, meuse.grid, x1, nmax = 30) gridded(G1)<-TRUE # GRID-2: v2 <- variogram(log(lead) ~ 1, meuse) x2<-fit.variogram(v2, vgm(.1, "Sph", 1000, .6)) G2 <- krige(zinc ~ 1, meuse, meuse.grid, x2, nmax = 30) gridded(G2)<-TRUE # Mooving Windows Correlation # Define the size of the moving window, dist = sqrt(2*((40*3)^2)) # Create a list of neighbours for the distance criteria nb <- dnearneigh(coordinates(G1),0, dist) v = sapply(nb, function(i) cor(g...@data[i,], g...@data[i,])) When I run following codes it shows error. coordinates(v) = coordinates(G1) Error in function (classes, fdef, mtable) :unable to find an inherited method for function "coordinates<-", for signature "matrix"
gridded(v) = TRUE Error in `gridded<-`(`*tmp*`, value = TRUE) :gridded<- only works for SpatialPoints[DataFrame] or SpatialGrid[DataFrame]
* # Output #-------- * V1 V2 V3 V4 V5 V6 V71 0.9996752 0.9996896 0.9997172 0.99971074 0.9996085 0.9996784 0.99972521 2 -0.3807374 -0.3576051 -0.2260482 0.05467783 -0.2882067 -0.2124191 -0.08551635 3 -0.3943537 -0.3750882 -0.2435564 0.03511977 -0.3081105 -0.2300869 -0.10426607 4 0.9999324 0.9999349 0.9999442 0.99994815 0.9999047 0.9999104 0.99992347
Jaime R. Garcia M. wrote:
On Tue, 2009-12-08 at 21:54 +0100, Jaime R. Garcia M. wrote:On Tue, 2009-12-08 at 14:32 -0500, Zia Ahmed wrote:I have two grid maps (100 m cell size). I want to a create another raster gird of correlation coefficient ( r value) of two maps using moving windows approach. Has someone any idea how to do it in R?Thanks Zia _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geoDear Zia, Some time ago I did exactly that and the script was based on a earlier post by Prof. Roger Bivand in this list. (Sorry I couldn't find the link anymore) Suppose "G1" and "G2" are the two grid maps. I assume they are "SpatialGridDataFrames" and have exactly the same extent and number of columns and rows. Also that you have libraries (sp) and (spdep) loaded # Define the size of the moving window, for example (7*7) so you have enough neighbors for reliable correlation estimation: dist = sqrt(2*((100*3)^2)) # Create a list of neighbours for the distance criterianb <- dnearneigh(coordinates(G1),0, dist)# And then calculate correlations v <- sapply(nb, function(i) cor(g...@data, g...@data))# Small correction v = sapply(nb, function(i) cor(g...@data[i,], g...@data[i,])) # And in this case the result should be a numeric vector coordinates(v) = coordinates(G1) gridded(v) = TRUE fullgrid(v) = TRUE _______________________________________________R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo
<<attachment: zua3.vcf>>
_______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo