This accessory function interfaces with GDAL utilities (sen2r must be interfaced with a runtime GDAL environment, see check_gdal()). Python-based utilities are always called from a runtime GDAL; C-based ones are called using sf::gdal_utils().

gdalUtil(
  util = "info",
  source,
  destination = character(0),
  options = character(0),
  quiet = FALSE,
  formula = character(0),
  processing = character(0),
  colorfilename = character(0)
)

Arguments

util

Character: one among "info", "translate", "warp", "demprocessing" ,"buildvrt" (C-based), "calc" and "fillnodata" (Python-based). Other utilities were not implemented, since they are not used by sen2r.

source

path of input layer(s); for calc this can be more than one.

destination

Path of the output layer.

options

Character vector with GDAL options.

quiet

Logical: if TRUE, suppress printing of output for info (this argument is ignored in case package sys is not installed).

formula

(for util = "calc") Calculation in gdalnumeric syntax using +, -, /, *, or any numpy array functions (i.e. log10()).

processing

Character: processing options for util = "demprocessing".

colorfilename

Character: name of colour file for util = "demprocessing" (mandatory if processing="color-relief").

Value

A logical (invisible) indicating success (i.e., TRUE); in case of failure, an error is raised and FALSE is returned (in case of Python-based utilities).

Note

License: GPL 3.0

Examples

# Define product names examplename <- system.file( "extdata/out/S2A2A_20190723_022_Barbellino_BOA_10.tif", package = "sen2r" ) # \donttest{ ## gdalinfo out0 <- gdalUtil("info", examplename, quiet = TRUE) message(out0)
#> Driver: GTiff/GeoTIFF #> Files: /home/lranghetti/share/git/github/ranghetti/sen2r/inst/extdata/out/S2A2A_20190723_022_Barbellino_BOA_10.tif #> Size is 24, 42 #> Coordinate System is: #> PROJCS["WGS 84 / UTM zone 32N", #> GEOGCS["WGS 84", #> DATUM["WGS_1984", #> SPHEROID["WGS 84",6378137,298.257223563, #> AUTHORITY["EPSG","7030"]], #> AUTHORITY["EPSG","6326"]], #> PRIMEM["Greenwich",0, #> AUTHORITY["EPSG","8901"]], #> UNIT["degree",0.0174532925199433, #> AUTHORITY["EPSG","9122"]], #> AUTHORITY["EPSG","4326"]], #> PROJECTION["Transverse_Mercator"], #> PARAMETER["latitude_of_origin",0], #> PARAMETER["central_meridian",9], #> PARAMETER["scale_factor",0.9996], #> PARAMETER["false_easting",500000], #> PARAMETER["false_northing",0], #> UNIT["metre",1, #> AUTHORITY["EPSG","9001"]], #> AXIS["Easting",EAST], #> AXIS["Northing",NORTH], #> AUTHORITY["EPSG","32632"]] #> Origin = (580560.000000000000000,5102120.000000000000000) #> Pixel Size = (10.000000000000000,-10.000000000000000) #> Metadata: #> AREA_OR_POINT=Area #> Image Structure Metadata: #> COMPRESSION=DEFLATE #> INTERLEAVE=PIXEL #> Corner Coordinates: #> Upper Left ( 580560.000, 5102120.000) ( 10d 2'30.01"E, 46d 4' 4.47"N) #> Lower Left ( 580560.000, 5101700.000) ( 10d 2'29.75"E, 46d 3'50.86"N) #> Upper Right ( 580800.000, 5102120.000) ( 10d 2'41.18"E, 46d 4' 4.37"N) #> Lower Right ( 580800.000, 5101700.000) ( 10d 2'40.92"E, 46d 3'50.76"N) #> Center ( 580680.000, 5101910.000) ( 10d 2'35.47"E, 46d 3'57.61"N) #> Band 1 Block=24x15 Type=UInt16, ColorInterp=Gray #> NoData Value=65535 #> Band 2 Block=24x15 Type=UInt16, ColorInterp=Undefined #> NoData Value=65535 #> Band 3 Block=24x15 Type=UInt16, ColorInterp=Undefined #> NoData Value=65535 #> Band 4 Block=24x15 Type=UInt16, ColorInterp=Undefined #> NoData Value=65535 #> Band 5 Block=24x15 Type=UInt16, ColorInterp=Undefined #> NoData Value=65535 #> Band 6 Block=24x15 Type=UInt16, ColorInterp=Undefined #> NoData Value=65535 #> Band 7 Block=24x15 Type=UInt16, ColorInterp=Undefined #> NoData Value=65535 #> Band 8 Block=24x15 Type=UInt16, ColorInterp=Undefined #> NoData Value=65535 #> Band 9 Block=24x15 Type=UInt16, ColorInterp=Undefined #> NoData Value=65535 #> Band 10 Block=24x15 Type=UInt16, ColorInterp=Undefined #> NoData Value=65535 #> Band 11 Block=24x15 Type=UInt16, ColorInterp=Undefined #> NoData Value=65535
## gdal_translate outname1 <- tempfile(fileext = ".tif") gdalUtil( "translate", examplename, outname1, options = c("-tr", "2", "2", "-r", "cubicspline", "-co", "COMPRESS=DEFLATE") ) oldpar <- par(mfrow = c(1,2), mar = rep(0,4)) image(stars::read_stars(examplename), rgb = c(11,8,4)) image(stars::read_stars(outname1), rgb = c(11,8,4))
## gdalwarp outname2 <- tempfile(fileext = ".tif") gdalUtil( "warp", examplename, outname2, options = c("-t_srs", "EPSG:32633", "-co", "COMPRESS=DEFLATE") ) oldpar <- par(mfrow = c(1,2), mar = rep(0,4)) image(stars::read_stars(examplename), rgb = c(11,8,4)) image(stars::read_stars(outname2), rgb = c(11,8,4))
## gdal_calc outname3 <- tempfile(fileext = ".tif") ndvirefname <- system.file( "extdata/out/S2A2A_20190723_022_Barbellino_NDVI_10.tif", package = "sen2r" ) gdalUtil( "calc", rep(examplename,2), outname3, formula = "10000*(A.astype(float)-B)/(A+B)", options = c("--A_band", "8", "--B_band", "4", "--type", "Int16") ) oldpar <- par(mfrow = c(1,2), mar = rep(0,4)) image(stars::read_stars(ndvirefname)) image(stars::read_stars(outname3))
# }