## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup-------------------------------------------------------------------- library(vaster) ## ----------------------------------------------------------------------------- dimension <- c(10, 5) extent <- c(0, 100, 0, 50) gt <- geo_transform0(dimension, extent) gt ## ----------------------------------------------------------------------------- gt <- c(0, 10, 0, 50, 0, -10) dimension <- c(10, 5) gt_dim_to_extent(gt, dimension) ## ----------------------------------------------------------------------------- extent_dim_to_gt(c(0, 100, 0, 50), c(10, 5)) ## ----------------------------------------------------------------------------- dimension <- c(10, 5) extent <- c(0, 100, 0, 50) wf <- geo_world0(dimension, extent) wf ## ----------------------------------------------------------------------------- ## Full grid dimension <- c(360, 180) extent <- c(-180, 180, -90, 90) ## Subregion to read (Australia) subextent <- c(110, 155, -45, -10) rio <- rasterio0(dimension, extent, subextent) rio ## ----eval = FALSE------------------------------------------------------------- # ## With vapour package # library(vapour) # data <- vapour_read_raster( # "my_raster.tif", # window = rasterio0(dimension, extent, subextent) # ) # # ## With stars package # library(stars) # rio <- rasterio0(dimension, extent, subextent) # data <- stars::read_stars( # "my_raster.tif", # RasterIO = list( # nXOff = rio[1] + 1, # stars uses 1-based # nYOff = rio[2] + 1, # nXSize = rio[3], # nYSize = rio[4] # ) # ) ## ----------------------------------------------------------------------------- rio <- rasterio0(dimension, extent, subextent) sfio <- rasterio_to_sfio(rio) sfio ## ----eval = FALSE------------------------------------------------------------- # ## Parse VRT and get extent # vrt_file <- "path/to/mosaic.vrt" # ext <- extent_vrt(vrt_file) # ext ## ----------------------------------------------------------------------------- ## Known raster properties (e.g., from gdalinfo) full_dimension <- c(43200, 21600) # global 30 arc-second grid full_extent <- c(-180, 180, -90, 90) ## Regions of interest regions <- list( europe = c(-10, 40, 35, 70), australia = c(110, 155, -45, -10), amazon = c(-80, -45, -20, 5) ) ## Pre-compute RasterIO parameters for each region read_params <- lapply(regions, function(roi) { aligned <- align_extent(roi, full_dimension, full_extent) crop_dim <- extent_dimension(aligned, full_dimension, full_extent) list( rasterio = rasterio0(full_dimension, full_extent, aligned), dimension = crop_dim, extent = aligned ) }) ## Check Amazon parameters read_params$amazon ## ----------------------------------------------------------------------------- ## Design a 1-degree global grid target_res <- 1 # 1 degree cells global_extent <- c(-180, 180, -90, 90) ## Compute dimensions from extent and resolution dimension <- c( diff(global_extent[1:2]) / target_res, diff(global_extent[3:4]) / target_res ) dimension ## Generate GeoTransform for GDAL gt <- geo_transform0(dimension, global_extent) gt ## Generate world file content wf <- geo_world0(dimension, global_extent) cat(wf, sep = "\n")