*Ejecutando este código creo un mapa de España en el que el color viene
dado por la altura.*

library(ggplot2)
library(raster)

# orografia de espaÃ±a
dem <- getData('alt', country='ESP')[[1]]
slope <- terrain(dem, opt='slope')
aspect <- terrain(dem, opt='aspect')
hill <- hillShade(slope, aspect, 40, 270)
#fronteras de España
polyEsp<-getData('GADM',country='ESP',level=1)

#Cortando los valores

espHill<-mask(hill,polyEsp)
espHill<-crop(monHill,polyEsp)
espDem<-mask(dem,polyEsp)
espDem<-crop(espDem,polyEsp)

#transformando raster en points
hdf <- rasterToPoints(espHill); hdf <- data.frame(hdf)
colnames(hdf) <- c("X","Y","Hill")
ddf <- rasterToPoints(espDem); ddf <- data.frame(ddf)
colnames(ddf) <- c("X","Y","DEM")

#creando vector para color breaks
b.hs <- seq(min(hdf$Hill),max(hdf$Hill),length.out=100)
b.dem <- seq(min(ddf$DEM),max(ddf$DEM),length.out=100)

#
ggplot(NULL, aes(X, Y)) +
  geom_raster(data = ddf, aes(fill = DEM)) +
  geom_raster(data = hdf, aes(alpha = Hill)) +
  scale_fill_gradientn(name="Altitude",colours = rainbow(20))+
  guides(fill = guide_colorbar()) +
  scale_alpha(range = c(0, 0.5), guide = "none") +
  scale_x_continuous(name=expression(paste("Longitud (",degree,")")),
expand=c(0,0)) +
  scale_y_continuous(name=expression(paste("Latitud (",degree,")")),
expand=c(0,0)) +
  coord_equal()



*Tengo muchos datos de la altura. Si quiero representar un valor del que
tengo menos medidas, varío un poco el código. *

#creo los datos
datos <- replicate(10, 10*rnorm(10))
datosRaster <- raster(datos)
e <- extent(c(-10, 10, 35,43))   # limites latitud y longitud de españa
extent(datosRaster) <- e

# orografia de espaÃ±a
dem <- getData('alt', country='ESP')[[1]]
slope <- terrain(dem, opt='slope')
aspect <- terrain(dem, opt='aspect')
hill <- hillShade(slope, aspect, 40, 270)

dem <- datosRaster  # ahora quiero representar esto

#fronteras de España
polyEsp<-getData('GADM',country='ESP',level=1)

#Cortando los valores

espHill<-mask(hill,polyEsp)
espHill<-crop(monHill,polyEsp)
espDem<-mask(dem,polyEsp)
espDem<-crop(espDem,polyEsp)

#transformando raster en points
hdf <- rasterToPoints(espHill); hdf <- data.frame(hdf)
colnames(hdf) <- c("X","Y","Hill")
ddf <- rasterToPoints(espDem); ddf <- data.frame(ddf)
colnames(ddf) <- c("X","Y","DEM")

#creando vector para color breaks
b.hs <- seq(min(hdf$Hill),max(hdf$Hill),length.out=100)
b.dem <- seq(min(ddf$DEM),max(ddf$DEM),length.out=100)

#
ggplot(NULL, aes(X, Y)) +
  geom_raster(data = ddf, aes(fill = DEM)) +
  geom_raster(data = hdf, aes(alpha = Hill)) +
  scale_fill_gradientn(name="Altitude",colours = rainbow(20))+
  guides(fill = guide_colorbar()) +
  scale_alpha(range = c(0, 0.5), guide = "none") +
  scale_x_continuous(name=expression(paste("Longitud (",degree,")")),
expand=c(0,0)) +
  scale_y_continuous(name=expression(paste("Latitud (",degree,")")),
expand=c(0,0)) +
  coord_equal()




*Me sale con unos píxeles muy grandes. *


*¿Cual sería la manera de que esto no ocurra?*

*si hago*

plot(datosRaster)
plot(datosRaster, interpolate=T)



*Consigo el efecto que quiero, pero no puedo unirlo al mapa de españa. *

*¿Hay algún método para interpolar un objeto Raster y darle más definición?*

*o alternativamente,*



*¿Puedo extrapolar la matriz datos para que tenga más filas y columnas?
Parecido a lo que hace bkde2D o hist2D cuando tengo puntos. *

*Gracias*

	[[alternative HTML version deleted]]

