R Plotear celdas de cuadrícula de latitud-longitud en el mapa

Tengo un dataframe que contiene un número de puntos de datos (x,y,z) , (x,y) es la coordenada inferior derecha de una celda de longitud-latitud de tamaño w (por ejemplo, una cuadrícula de 1 grado). El valor de z ha sido promediado sobre esta celda.

Me gustaría trazar estos puntos en R para que toda la celda de la cuadrícula se llene con algún color derivado de z .

El resultado se vería como una de estas imágenes: celdas de cuadrícula de latitud y longitud llenadas

La proyección en sí (p. Ej. Cónica conforme Lambert, equirrectangular) no es importante, solo el trazado de la celda de la grilla.

Mis datos son escasos: no todas las celdas de latitud y longitud tendrán datos asociados.

Mi esperanza sería una solución similar a

 library(maps) map("state") grid_points(my_data,c("x","y","z"),0.5) 

donde 0.5 es la resolución de la cuadrícula anterior, lo que indica una celda de 0.5 grados.

¿Alguna idea?

¡Gracias!

Una alternativa para usar spplot o image es usar ggplot2 . Las geometrías relevantes son geom_raster y geom_tile . El primero se supone que rinde mejor y produce archivos más pequeños, y el segundo es más estándar. La siguiente llamada de ejemplo:

 ggplot(aes(x = x, y = y, fill = value), data = dat_grid) + geom_tile() + geom_path(data = ant_ggplot) 

se origina de este blog mío. Además, ggplot2 admite una variedad de proyecciones a través del paquete mapproj , ver coord_map para más detalles.

El siguiente es un ejemplo de trabajo (siempre que haya definido YOUR_DATA para tener columnas x, y, z):

 library(ggplot2) library(maps) us_states <- map_data("state") (ggplot(aes(x=x,y=y,fill=z),data=YOUR_DATA) + geom_tile())+geom_polygon(data=us_states,aes(x=long, y=lat, group=group), colour="black", fill="white", alpha=0) 

Si su data.frame es “x”, intente esto:

 library(sp) coordinates(x) <- c("x", "y", "z") gridded(x) <- TRUE image(x, col = terrain.colors(256), useRaster = TRUE) 

Para obtener una respuesta realmente exacta, debe proporcionar una muestra de sus datos, con suerte un data.frame entero o la fuente donde lo descarga y el código que usó para leerlo en R.

Si el código anterior falla en el paso de gridded()<- entonces es probable que sus valores y no proporcionen una cuadrícula regular, lo cual está implícito en sus trazados. Si realmente son valores de longitud / latitud reticulados y necesita proyectarlos a los que están en su imagen, entonces vea el paquete de raster , o más generalmente el paquete rgdal .

 library(raster) ?projectRaster library(rgdal) ?project ?spTransform 

(Las ttwigs me parecen una de las "Proyecciones cónicas conformes a Albers Equal Area y Lambert de Norteamérica", como se muestra en este sitio: http://www.colorado.edu/geography/gcraft/notes/mapproj/mapproj_f.html )

Consulte http://spatialreference.org para obtener la cadena PROJ.4 para su proyección, que puede usar en sp o raster .

Traté de hacer ese tipo de mapa recientemente y terminé usando interp de funciones de la biblioteca akima para intrapolar mis datos z en una cuadrícula regular antes de trazar (cualquier tipo de proyecciones deberán hacerse antes del uso de interp ):

 library(akima) interp(x,y,z,xo=seq(min(x),max(x),by=0.5),yo=seq(min(y),max(y),by=0.5),extrap=FALSE,linear=TRUE) -> xygrid image(xygrid,breaks=seq(min(z),max(z),length=10), col=1:10) 

Puedes hacerlo:

 library(raster) r <- rasterFromXYZ(xyz) plot(r)