--- title: "Maps" output: html_vignette vignette: > %\VignetteIndexEntry{Maps} %\VignetteEngine{knitr::rmarkdown} --- Map ======================================================== (all code chunks are disabled because vignette build was throwing errors. TODO: debug and re-enable.) ```{r,eval=FALSE} require(raster) require(sp) require(ggplot2) require(PEcAn.visualization) data(yielddf, package = "PEcAn.visualization") #pecan.worldmap(yielddf, outfile=file.path(tempdir(), 'foo.png')) spdf <- SpatialPointsDataFrame( data.frame( x = testdf$y , y = testdf$x ) , data = data.frame( z = testdf$z ) ) # Plotting the points reveals the unevenly spaced nature of the points spplot(spdf) ``` ### Plot all maps for BETYdb ```{r,eval=FALSE} files <- dir("~/dev/bety/local/modelout", pattern="grid.csv", full.names=TRUE) yieldfiles <- files[!grepl("evapotranspiration", files)] etfiles <- files[grepl("evapotranspiration", files)] for(file in yieldfiles){ df.in <- read.csv(file) outfile <- gsub("csv", "png", file) #pecan.worldmap(df.in, outfile=outfile) } for(file in etfiles){ df.in <- read.csv(file, skip = 1) outfile <- gsub("csv", "png", file) #pecan.worldmap(df.in, outfile=outfile) } ``` ### Misc additional code ```{r,eval=FALSE} # Make an evenly spaced raster, the same extent as original data e <- extent( spdf ) # Determine ratio between x and y dimensions ratio <- ( e@xmax - e@xmin ) / ( e@ymax - e@ymin ) # Create template raster to sample to r <- raster( nrows = 56 , ncols = floor( 56 * ratio ) , ext = extent(spdf) ) rf <- rasterize( spdf , r , field = "" z, fun = mean ) # Attributes of our new raster (# cells quite close to original data) rf # We can then plot this using `geom_tile()` or `geom_raster()` rdf <- data.frame( rasterToPoints( rf ) ) ggplot( NULL ) + geom_raster( data = rdf , aes( x , y , fill = layer ) ) ``` ```{r,eval=FALSE} # from http://gis.stackexchange.com/a/20052/3218 require(rgdal) proj4string(spdf) <- CRS("+init=epsg:4326") pts <- spTransform(spdf ,CRS("+proj=longlat +datum=WGS84")) gridded(spdf) <- TRUE p2g <- points2grid(spdf, tolerance = 0.95) r <- raster(p2g) plot(p2g) ```