GE_SpatialGrid.Rd
The function sets up metadata in the form of a SpatialGrid object for defining the size and placing of a PNG image overlay in Google Earth. The internal function Sobj\_SpatialGrid
can also be called to build a grid for arbitrary Spatial* objects.
GE_SpatialGrid(obj, asp = NA, maxPixels = 600) Sobj_SpatialGrid(obj, asp=1, maxDim=100, n=NULL)
obj | a Spatial* object |
---|---|
asp | if NA, will be set to the latitude corrected value |
maxPixels | the maximum dimension of the output PNG |
maxDim | the maximum dimension of the output grid; ignored if |
n | if not NULL, the minimum number of cells in the returned grid |
The function is used together with kmlOverlay
to wrap around the opening of a PNG graphics device, plotting code, and the closing of the device. The computed values take account of the adjustment of the actual data bounding box to an integer number of rows and columns in the image file.
The approach may be used as an alternative to writing PNG files from SpatialGrid and SpatialPixel objects in rgdal using writeGDAL
, and to writing KML files using writeOGR
for vector data objects. The output PNG files are likely to be very much smaller than large vector data KML files, and hinder the retrieval of exact positional information.
Note that the geometries should be in geographical coordinates with datum WGS84 for export to KML.
returns an S3 object of class GE_SG
with components:
Integer raster height for png call
Integer raster width for png call
a SpatialGrid object with the grid topology of the output PNG
the aspect value used
xlim taken from SG
ylim taken from SG
Duncan Golicher, David Forrest and Roger Bivand
opt_exask <- options(example.ask=FALSE) qk <- SpatialPointsDataFrame(quakes[, c(2:1)], quakes) summary(Sobj_SpatialGrid(qk)$SG)#> Object of class SpatialGrid #> Coordinates: #> min max #> x 165.67 188.2447 #> y -38.59 -10.7200 #> Is projected: NA #> proj4string : [NA] #> Grid attributes: #> cellcentre.offset cellsize cells.dim #> x 165.80935 0.2787 81 #> y -38.45065 0.2787 100#> Object of class SpatialGrid #> Coordinates: #> min max #> x 165.67 188.3144 #> y -38.59 -10.7200 #> Is projected: NA #> proj4string : [NA] #> Grid attributes: #> cellcentre.offset cellsize cells.dim #> x 165.79442 0.2488393 91 #> y -38.46558 0.2488393 112#> [1] 10192proj4string(qk) <- CRS("+proj=longlat +ellps=WGS84")#> Warning: Discarded datum Unknown based on WGS84 ellipsoid in Proj4 definition#> Warning: CRS object has comment, which is lost in outputpng(file=paste(tf, ".png", sep=""), width=SGqk$width, height=SGqk$height, bg="transparent") par(mar=c(0,0,0,0), xaxs="i", yaxs="i") plot(qk, xlim=SGqk$xlim, ylim=SGqk$ylim, setParUsrBB=TRUE) dev.off()#> agg_png #> 2#> Warning: CRS object has comment, which is lost in output#> [1] "<?xml version='1.0' encoding='UTF-8'?>" #> [2] "<kml xmlns='http://earth.google.com/kml/2.0'>" #> [3] "<GroundOverlay>" #> [4] "<name>R image</name>" #> [5] "<Icon><href>/tmp/Rtmpe6erim/file28a0a2a8f53ba.png</href><viewBoundScale>0.75</viewBoundScale></Icon>" #> [6] "<LatLonBox><north>-10.72</north><south>-38.59</south><east>188.158103454744</east><west>165.67</west></LatLonBox>" #> [7] "</GroundOverlay></kml>"if (FALSE) { qk0 <- quakes qk0$long <- ifelse(qk0$long <= 180, qk0$long, qk0$long-360) qk0a <- SpatialPointsDataFrame(qk0[, c(2:1)], qk0) proj4string(qk0a) <- CRS("+proj=longlat +ellps=WGS84") # writeOGR(qk0a, paste(tf, "v.kml", sep=""), "Quakes", "KML") # system(paste("googleearth ", tf, ".kml", sep="")) } options(example.ask=opt_exask)