3 votos

Error al obtener el argumento del sistema de referencia de coordenadas de una imagen rasterizada en R

Me dio un error cuando quise obtener el CRS de stacklayer. No sé qué puede ser. Necesito algún consejo o ayuda para obtenerlo. Este es mi código.

#LOAD RASTER LIBRARY
>library(rgdal)
>library(raster)
>ndvi<-raster('ndvi2005.tif')
>ndvi2<-raster('ndvi2006.tif')

#RASTER STACK
>stk <- stack(ndvi1, ndvi2)
#DISPLAY STK
>stk
class       : RasterStack 
dimensions  : 1160, 1573, 1824680, 2  (nrow, ncol, ncell, nlayers)
resolution  : 0.008627311, 0.008627319  (x, y)
extent      : -74.49244, -60.92168, -20.00769, -10  (xmin, xmax, ymin,    ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
names       : ndvi2005, ndvi2006 
min values  :       NA,       NA 
max values  :       NA,       NA

entonces cambié los valores NA

>stk[stk==0]<- NA
>stk
class       : RasterBrick 
dimensions  : 1160, 1573, 1824680, 2  (nrow, ncol, ncell, nlayers)
resolution  : 0.008627311, 0.008627319  (x, y)
extent      : -74.49244, -60.92168, -20.00769, -10  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
data source : in memory
names       : ndvi2005, ndvi2006 
min values  :     -0.3,     -0.3 
max values  :   0.9990,   0.9993

entonces cuando quise obtener el sistema de referencia de coordenadas con CRS() Recibí el siguiente mensaje

>cord<-CRS(stk)
>Error in !is.na(projargs) && !nzchar(projargs) : 
 invalid 'x' type in 'x && y'

Sé que mi proyección es +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 pero tengo en total 100 apiladores en diferentes proyecciones que necesito analizar cada uno, pero no se cual es mi error o hay algo mal en mi código porque entonces quiero usar la salida de CRS(stk) en la función raster(...., CRS=cord) como entrada.

1voto

Farid Cher Puntos 5306

CRS es una clase de interfaz y no se supone que funcione así. Utilice projection(raster) o proj4string(raster) .

0voto

LogicX Puntos 21

Debido a los comentarios he hecho esto.

>cord<-projection(stk, asText = F)
>cord
CRS arguments:
 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 

Pero ahora cuando usé cord como entrada en la función raster(nrows,ncols,CRS=cord) Tengo un error porque cord tenía que ser un texto, así que hice esto.

>cord<-projection(stk, asText = T)

y finalmente funciona.

-1voto

Duke Puntos 107

Utilice crs en lugar de CRS .
Lea el paquete rgdal para ver las diferencias.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X