5 votos

El problema de la proyección lat/long en el CRS de mi raster en R

Estoy trabajando con una trama en la .e00 formato, que se encuentra aquí:

ftp://ftp.epa.gov/castnet/tdep/grids/n_dw/n_dw-2000.zip

Yo descomprimir, y luego cargar esta trama en R:

require(raster)
require(rgdal)
require(sp)
r <- raster('/path/to/n_dw-2000.e00')

Que funciona bien:

> r.d.2000
class       : RasterLayer 
dimensions  : 775, 1440, 1116000  (nrow, ncol, ncell)
resolution  : 4134.383, 4134.383  (x, y)
extent      : -2950369, 3003143, 115686.8, 3319834  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=aea +lat_1=0 +lat_2=29.5 +lat_0=45.5 +lon_0=0 +x_0=0 +y_0=-96 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs 
data source : /Users/colin/Documents/Talbot Lab/FIA_2016_manuscript_EM-ndep/extracting_e00.files_dec2016/dry_dep/n_dw-2000.e00 
names       : n_dw.2000 
values      : 0.4092157, 72.94985  (min, max)

Entonces me carga algunos lat/long valores que desea extraer los valores del ráster.

Aquí hay 6 sitios, con columnas correspondientes a la longitud y latitud:

points <- structure(c(-86.030373, -85.990492, -85.847991, -87.954285, -87.674475, 
-85.138866, 46.414597, 46.137664, 42.258794, 46.567187, 45.730901, 
44.383864), .Dim = c(6L, 2L))
> points
          [,1]     [,2]
[1,] -86.03037 46.41460
[2,] -85.99049 46.13766
[3,] -85.84799 42.25879
[4,] -87.95428 46.56719
[5,] -87.67448 45.73090
[6,] -85.13887 44.38386

Necesito proyecto de estas lat/long valores en el sistema de referencia de coordenadas (CRS) de mi trama. Para hacer esto primero se convierte la lat/long a SpatialPoints marco de datos:

points.2 <- SpatialPoints(points, proj4string = CRS("+init=epsg:4326"))

Entonces me re-proyecto de estos puntos en el CRS de la trama usando spTransform

points.3 <- spTransform(points.2, projection(r))  

Por último, me gustaría utilizar el extract función para valores de extracción de la trama para todos mis puntos utilizando:

out <- extract(r, points.3)

Sin embargo esto sólo devuelve NA's, para mi consternación:

> out
     [,1]
[1,]   NA
[2,]   NA
[3,]   NA
[4,]   NA
[5,]   NA
[6,]   NA

Creo que el problema es cómo estoy re-proyección de los puntos, como si me marca los puntos frente a la trama, parecen estar en una orientación diferente.

Además, si voy a graficar los puntos en la fiscalía de la trama no tengo suerte. No estoy seguro de qué es exactamente lo que va mal, sin embargo.

5voto

Shog9 Puntos 340

El sistema de coordenadas de información es incorrecta. Generalmente, usted puede encontrar la información en una .e00 archivo. He aquí lo que dice:

spheroid = GRS80
central meridian/longitude of origin = -96.0
standard parallel 1 = 29.5
standard parallel 2 = 45.5
latitude of origin = 23.0
false easting/false northing = 0.0

así que el PROJ.4 cadena debe ser:

+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23.0 +lon_0=-96.0 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unidades=m +no_defs

Para cambiar el CRS de su trama uso de la crs comando:

crs(r) <- '+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23.0 +lon_0=-96.0 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'

A continuación, continuar con la re-proyección de las coordenadas de los sitios en el CRS de la trama con el código que ha escrito.

Llegar Nan ("NA") de vuelta a veces es un signo de que la entrada de coordenadas no pueden ser no proyectados/reproyectado que a su vez puede significar que el sistema de coordenadas de información es incorrecta. He visto a los valores de los parámetros antes, pero no eran asignados a los parámetros que yo esperaba.

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