[R-sig-Geo] Error: identicalCRS(x, y) is not TRUE after using the over() command

Angel Ferrero aaf11 at psu.edu
Fri Oct 24 17:12:43 CEST 2014


Hi everyone, 

I am new to doing this kind of thing in R, but I have been trying to perform co-kriging for a set of datapoints in relation to climate from the worldclim project based on a previous example I found using the meuse shp.

This is my code, and at the end of it, you can see the error I get: identicalCRS(x, y) is not TRUE after using the over() command.

I would appreciate if anybody could help me out this this.

Best

Ángel


#Let's first create a prediction grid for the interpolation, starting from the shape file


setwd(“*")
data<-read.table(“/*",header=T) 
 
coordinates(data)=~long+lat

proj4string(data)=CRS("+proj=longlat +ellps=WGS84 +datum=WGS84")

border0<-readOGR("country.shp","country")
border <- spTransform(border0, CRS("+proj=longlat +ellps=WGS84 +datum=WGS84"))
proj4string(border)=CRS("+proj=longlat +ellps=WGS84 +datum=WGS84")

bio <- getData("worldclim", var="bio", res=10)   # this will download global data on minimum temperature at 10 min resolution
# can also get other climatic data, elevation, administrative boundaries, etc
bio1 <- raster(“*/wc10/bio1.bil")   # Tmin for January
fromDisk(bio1)  # values are stored on disk instead of memory! (useful for
bio1 <-bio1/10    # Worldclim temperature data come in decimal degrees
bio1
proj4string(bio1)=CRS("+proj=longlat +ellps=WGS84 +datum=WGS84")


data <- spTransform(data, CRS("+proj=longlat +ellps=GRS80"))
border <- spTransform(border, CRS("+proj=longlat +ellps=GRS80"))


vals <-border at bbox
deltaLong <- as.integer((vals[1,2] - vals[1,1]) + 1.5)
deltaLat <- as.integer((vals[2,2] - vals[2,1]) + 1.5)
gridRes <-20   #change this value to change the grid size (in metres)
gridSizeX <- deltaLong / gridRes
gridSizeY <- deltaLat / gridRes
grd <- GridTopology(vals[,1],c(gridRes,gridRes),c(gridSizeX,gridSizeY))
pts <- SpatialPoints(coordinates(grd))
pts1 <- SpatialPointsDataFrame(as.data.frame(pts), data=as.data.frame(rep(1,nrow(as.data.frame(pts)))))
Over=over(pts1,border)
pts$border=Over
espinete<-na.exclude(as.data.frame(pts1))
coordinates(nona)=~x+y
gridded(espinete) <- TRUE
proj4string(espinete)=CRS("+proj=longlat +ellps=GRS80")  
writeAsciiGrid(nona,"prediction_grid.asc")

When I run the
Over=over(pts1,border)
command, I get this error:
Error: identicalCRS(x, y) is not TRUE



More information about the R-sig-Geo mailing list