1 votos

Cómo convertir una salida raster en una pila en R en ArcGIS

Estoy modelizando la respuesta de un ave (alondra) a diversas variables climáticas y topográficas en el programa R. Utilizando la función predict he predicho la abundancia por píxel (ver código más abajo). Ahora me gustaría exportar mis tres rásters a ArcGIS 10.2? ¿Cómo puedo hacerlo?

¿Puedo añadir las coordenadas de referencia utilizando ArcGis o es fácil hacerlo en R? ¿Hay una forma más rápida de predecir la densidad? (Estoy feliz de mapa de densidad sin los errores inicialmente?

library(raster)
 # Load the raster layers of the predictors for the entire landscape as a stack.
nsw.stack <- stack(list.files(pattern="tif$", full.names=FALSE))
names(nsw.stack) <- c("riv","lake","ndvi","temp","prec","dem")
summary(nsw.stack)

class       : RasterStack 
dimensions  : 2129, 1905, 4055745, 6  (nrow, ncol, ncell, nlayers)
resolution  : 0.008926991, 0.008926991  (x, y)
extent      : 55.99709, 73.003, 43.99541, 63.00097  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
names       : riv,     lake,    ndvi,    temp,    prec,      dem 

A continuación, utilicé la función predecir para asignar los datos utilizando mi modelo mejor clasificado (t5)

skylark.psi <- predict(t5, type="state", newdata=nsw.stack)

plot(skylark.psi, ylab="psi - GLM")

> skylark.psi
class       : RasterStack 
dimensions  : 2129, 1905, 4055745, 4  (nrow, ncol, ncell, nlayers)
resolution  : 0.008926991, 0.008926991  (x, y)
extent      : 55.99709, 73.003, 43.99541, 63.00097  (xmin, xmax, ymin, ymax)
coord. ref. : NA 
names       :    Predicted,           SE,        lower,        upper 
min values  : 2.987641e-05, 1.275741e-05, 1.293780e-05, 6.899167e-05 
max values  :    779.48502,     85.93247,    675.88093,    898.97033

1voto

xenny Puntos 670

Puede escribir su objeto raster en un archivo utilizando writeRaster del paquete raster. La mayoría de los formatos de archivo son compatibles con ArcGIS.

writeRaster(skylark.psi, file="skylark.tif")

Esto creará una trama multibanda. Puede utilizar bylayer=TRUE para múltiples salidas de trama de banda única .

Su proyección podría especificarse posteriormente utilizando Definir proyección en ArcGIS cuando lo añada al marco de datos (o puede utilizar "proj4string" en R).

proj4string(skylark.psi) <- CRS("+init=epsg:4326") 

tenga en cuenta que 4326 es el código epsg para su CRS WGS84. Consulte spatialreference.org para obtener el código PROJ4 o epsg de su CRS.

0voto

Dan Puntos 16

Puede utilizar el argumento "filename" en la función raster::predict. Para obtener ayuda específica sobre raster predict, utilice ?raster::predict y podrá ver los argumentos adicionales disponibles. Puede ser confuso porque predict es un genérico de R y usted está llamando a dos funciones predict, con dos conjuntos de argumentos, uno para su modelo actual y otro para raster.

predict(t5, type="state", newdata=nsw.stack, filename = "skylark.tiff", progress="window") 

Esto omitirá el paso de crear un objeto temporal y luego usar writeRaster para escribirlo en un archivo y formato diferentes. Usar la extensión del archivo es suficiente para definir los formatos más comunes y no debería tener que usar el argumento format. Si la proyección se define para la pila raster, también se asignará al archivo de salida. El argumento "..." permite pasar argumentos específicos a una determinada función de predicción de modelos.

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