I'm trying to plot an spatial map from a lon-lat data set. Following the example in https://stackoverflow.com/a/19339663/709777 I am able to almost get the desired result
This is the code used (most of it from the previously cited question)
library(rgdal)
library(ggplot)
# read province limits
CV = readOGR(dsn=".", layer="poligonos_provincia_etrs89")
CV.pr=subset(CV, CV$CODINE == "46" | CV$CODINE == "12" | CV$CODINE == "03" )
# convert object to data.frame
CV2 <- fortify(CV.pr)
# read spatial data
datos.uvi=read.csv("salida-mapa-036.dat",sep=",",header=T,na.strings="-99.9")
uvi.temp<-datos.uvi[,c("longitud","latitud","RGlobal")]
colnames(uvi.temp)<-c("long","lat","RGlobal")
# plot map
ggplot() +
geom_tile(data = uvi.temp, aes(x = long, y = lat, z = RGlobal, fill = RGlobal), alpha = 0.4) +
stat_contour(data = uvi.temp, aes(x = long, y = lat, z = RGlobal)) +
geom_path(data = CV2, aes(x = long, y = lat, group = group),color="black", size=0.6) +
ggtitle("Previsión UVI - CV") + xlab("Longitud") + ylab("Latitud") +
scale_fill_continuous(name = "UVI", low = "white", high = "red") +
theme_bw() +
coord_map()
The point is that I don't want a tile map but a smooth gradient map. This warning appears when running the code:
Warning message: Computation failed in
stat_contour()
: (list) object cannot be coerced to type 'double'
I assume this is because of the data type in the data frame (three columns with lon,lat and data) shown below
dput(uvi.temp)
structure(list(long = c(-1.25, -1, -1.25, -1, -0.75, -0.5, -0.25,
0, 0.25, 0.5, 0.75, -1.25, -1.25, -1, -0.75, -0.5, -0.25, 0,
0.25, 0.5, 0.75, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5,
0.75, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25,
-1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25, -1, -0.75,
-0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25, -1, -0.75, -0.5, -0.25,
0, 0.25, 0.5, 0.75, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5,
0.75, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25,
-1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25, -1, -0.75,
-0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25, -1, -0.75, -0.5, -0.25,
0, 0.25, 0.5, 0.75, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5,
0.75, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25,
-1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25, -1, -0.75,
-0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25, -1, -0.75, -0.5, -0.25,
0, 0.25, 0.5, 0.75, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5,
0.75, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25,
-1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25, -1, -0.75,
-0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25, -1, -0.75, -0.5, -0.25,
0, 0.25, 0.5, 0.75, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5,
0.75, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25,
-1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25, -1, -0.75,
-0.5, -0.25, 0, 0.25, 0.5, 0.75, -1.25, -1, -0.75, -0.5, -0.25,
0, 0.25, 0.5, 0.75), lat = c(37.75, 37.75, 37.75, 37.75, 37.75,
37.75, 37.75, 37.75, 37.75, 37.75, 37.75, 38, 37.75, 37.75, 37.75,
37.75, 37.75, 37.75, 37.75, 37.75, 37.75, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38.25, 38.25, 38.25, 38.25, 38.25, 38.25, 38.25,
38.25, 38.25, 38.5, 38.5, 38.5, 38.5, 38.5, 38.5, 38.5, 38.5,
38.5, 38.75, 38.75, 38.75, 38.75, 38.75, 38.75, 38.75, 38.75,
38.75, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39.25, 39.25, 39.25,
39.25, 39.25, 39.25, 39.25, 39.25, 39.25, 39.5, 39.5, 39.5, 39.5,
39.5, 39.5, 39.5, 39.5, 39.5, 39.75, 39.75, 39.75, 39.75, 39.75,
39.75, 39.75, 39.75, 39.75, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40.25, 40.25, 40.25, 40.25, 40.25, 40.25, 40.25, 40.25, 40.25,
40.5, 40.5, 40.5, 40.5, 40.5, 40.5, 40.5, 40.5, 40.5, 40.75,
40.75, 40.75, 40.75, 40.75, 40.75, 40.75, 40.75, 40.75, 37.75,
37.75, 37.75, 37.75, 37.75, 37.75, 37.75, 37.75, 37.75, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38.25, 38.25, 38.25, 38.25, 38.25,
38.25, 38.25, 38.25, 38.25, 38.5, 38.5, 38.5, 38.5, 38.5, 38.5,
38.5, 38.5, 38.5, 38.75, 38.75, 38.75, 38.75, 38.75, 38.75, 38.75,
38.75, 38.75, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39.25, 39.25,
39.25, 39.25, 39.25, 39.25, 39.25, 39.25, 39.25, 39.5, 39.5,
39.5, 39.5, 39.5, 39.5, 39.5, 39.5, 39.5, 39.75, 39.75, 39.75,
39.75, 39.75, 39.75, 39.75, 39.75, 39.75, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40.25, 40.25, 40.25, 40.25, 40.25, 40.25, 40.25,
40.25, 40.25, 40.5, 40.5, 40.5, 40.5, 40.5, 40.5, 40.5, 40.5,
40.5, 40.75, 40.75, 40.75, 40.75, 40.75, 40.75, 40.75, 40.75,
40.75), RGlobal = c(469.4264, 467.3801, 469.4264, 467.3801, 522.7478,
443.958, 441.283, 509.0632, 435.3009, 432.4717, 566.5648, 527.1168,
469.4264, 467.3801, 522.7478, 443.958, 441.283, 509.0632, 435.3009,
432.4717, 566.5648, 527.1168, 459.3489, 457.781, 439.8998, 437.827,
435.4037, 433.0625, 430.2155, 564.3985, 592.4016, 455.9498, 455.622,
443.1096, 431.0866, 500.2498, 428.5327, 427.8865, 561.918, 626.1251,
456.2038, 458.2242, 459.7855, 431.4439, 492.9174, 425.223, 424.3311,
490.1372, 450.9101, 449.7869, 586.2458, 455.2244, 452.9787, 514.1946,
425.5438, 419.4045, 484.3133, 441.4613, 445.6218, 575.9768, 509.4317,
437.0949, 411.3335, 412.9341, 412.7781, 411.7847, 432.1784, 435.553,
566.9114, 563.8876, 414.4346, 404.6672, 405.9609, 405.5721, 470.3917,
426.5352, 427.227, 552.512, 584.1269, 399.0303, 398.1212, 398.3982,
398.6394, 462.0748, 413.0668, 417.8466, 481.0621, 420.5388, 407.8954,
518.209, 390.5623, 390.4963, 453.643, 405.8642, 405.2392, 464.2149,
413.4183, 409.0698, 525.5512, 447.1689, 383.9111, 384.0972, 400.2987,
403.8821, 405.2475, 405.1649, 402.3291, 519.2192, 517.2463, 379.0551,
379.1682, 393.9954, 396.8607, 454.2946, 394.8534, 386.8805, 498.197,
538.8216, 387.8813, 375.4716, 374.1738, 377.1193, 437.4277, 385.8378,
381.4342, 422.0693, 365.6135, 373.4164, 497.8519, 469.4264, 467.3801,
522.7478, 443.958, 441.283, 509.0632, 435.3009, 432.4717, 566.5648,
527.1168, 459.3489, 457.781, 439.8998, 437.827, 435.4037, 433.0625,
430.2155, 564.3985, 592.4016, 455.9498, 455.622, 443.1096, 431.0866,
500.2498, 428.5327, 427.8865, 561.918, 626.1251, 456.2038, 458.2242,
459.7855, 431.4439, 492.9174, 425.223, 424.3311, 490.1372, 450.9101,
449.7869, 586.2458, 455.2244, 452.9787, 514.1946, 425.5438, 419.4045,
484.3133, 441.4613, 445.6218, 575.9768, 509.4317, 437.0949, 411.3335,
412.9341, 412.7781, 411.7847, 432.1784, 435.553, 566.9114, 563.8876,
414.4346, 404.6672, 405.9609, 405.5721, 470.3917, 426.5352, 427.227,
552.512, 584.1269, 399.0303, 398.1212, 398.3982, 398.6394, 462.0748,
413.0668, 417.8466, 481.0621, 420.5388, 407.8954, 518.209, 390.5623,
390.4963, 453.643, 405.8642, 405.2392, 464.2149, 413.4183, 409.0698,
525.5512, 447.1689, 383.9111, 384.0972, 400.2987, 403.8821, 405.2475,
405.1649, 402.3291, 519.2192, 517.2463, 379.0551, 379.1682, 393.9954,
396.8607, 454.2946, 394.8534, 386.8805, 498.197, 538.8216, 387.8813,
375.4716, 374.1738, 377.1193, 437.4277, 385.8378, 381.4342, 422.0693,
365.6135, 373.4164, 497.8519)), .Names = c("long", "lat", "RGlobal"
), class = "data.frame", row.names = c(NA, -246L))
Any idea?
Thanks in advance