This accessory function extract some useful metadata from a vector of raster paths.
raster_metadata(raster_paths, meta = "all", format = "data.table")
A vector of raster paths.
Vector with the desired metadata: one or more values among 'res', 'size', 'bbox', 'proj', 'unit', 'outformat', 'type'. Alternatively meta = 'all' (default) allows to return all metadata.
One between data.table
(default), data.frame
and list
.
A data.table, data.frame or list of the output metadata.
License: GPL 3.0
L. Ranghetti, M. Boschetti, F. Nutini, L. Busetto (2020). "sen2r": An R toolbox for automatically downloading and preprocessing Sentinel-2 satellite data. Computers & Geosciences, 139, 104473. doi:10.1016/j.cageo.2020.104473 , URL: https://sen2r.ranghetti.info/.
# Define product names
examplenames <- c(
system.file("tif/L7_ETMs.tif", package="stars"),
system.file("extdata/out/S2A2A_20190723_022_Barbellino_BOA_10.tif",
package = "sen2r")
)
# \donttest{
# Return metadata as data.table
raster_metadata(examplenames)
#> path
#> 1: /home/lranghetti/R/x86_64-pc-linux-gnu-library/4.3/stars/tif/L7_ETMs.tif
#> 2: /tmp/RtmpYYDtly/temp_libpath2b43a87fec8ad7/sen2r/extdata/out/S2A2A_20190723_022_Barbellino_BOA_10.tif
#> valid res.x res.y size.x size.y nbands xmin ymin xmax ymax
#> 1: TRUE 28.5 28.5 349 352 6 288776.3 9110729 298722.8 9120761
#> 2: TRUE 10.0 10.0 24 42 11 580560.0 5101700 580800.0 5102120
#> proj unit outformat type
#> 1: EPSG:31985 metre GTiff Byte
#> 2: EPSG:32632 metre GTiff UInt16
# }
# Return some metadata as data.table
raster_metadata(examplenames, c("res", "size", "bbox", "outformat"))
#> path
#> 1: /home/lranghetti/R/x86_64-pc-linux-gnu-library/4.3/stars/tif/L7_ETMs.tif
#> 2: /tmp/RtmpYYDtly/temp_libpath2b43a87fec8ad7/sen2r/extdata/out/S2A2A_20190723_022_Barbellino_BOA_10.tif
#> valid res.x res.y size.x size.y xmin ymin xmax ymax outformat
#> 1: TRUE 28.5 28.5 349 352 288776.3 9110729 298722.8 9120761 GTiff
#> 2: TRUE 10.0 10.0 24 42 580560.0 5101700 580800.0 5102120 GTiff
# Return some metadata as list
raster_metadata(examplenames, c("res", "size", "bbox", "proj"), format = "list")
#> [[1]]
#> [[1]]$path
#> [1] "/home/lranghetti/R/x86_64-pc-linux-gnu-library/4.3/stars/tif/L7_ETMs.tif"
#>
#> [[1]]$valid
#> [1] TRUE
#>
#> [[1]]$res
#> x y
#> 28.5 28.5
#>
#> [[1]]$size
#> x y
#> 349 352
#>
#> [[1]]$bbox
#> xmin ymin xmax ymax
#> 288776.3 9110728.8 298722.8 9120760.8
#>
#> [[1]]$proj
#> Coordinate Reference System:
#> User input: SIRGAS 2000 / UTM zone 25S
#> wkt:
#> PROJCRS["SIRGAS 2000 / UTM zone 25S",
#> BASEGEOGCRS["SIRGAS 2000",
#> DATUM["Sistema de Referencia Geocentrico para las AmericaS 2000",
#> ELLIPSOID["GRS 1980",6378137,298.257222101,
#> LENGTHUNIT["metre",1]]],
#> PRIMEM["Greenwich",0,
#> ANGLEUNIT["degree",0.0174532925199433]],
#> ID["EPSG",4674]],
#> CONVERSION["UTM zone 25S",
#> METHOD["Transverse Mercator",
#> ID["EPSG",9807]],
#> PARAMETER["Latitude of natural origin",0,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8801]],
#> PARAMETER["Longitude of natural origin",-33,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8802]],
#> PARAMETER["Scale factor at natural origin",0.9996,
#> SCALEUNIT["unity",1],
#> ID["EPSG",8805]],
#> PARAMETER["False easting",500000,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8806]],
#> PARAMETER["False northing",10000000,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8807]]],
#> CS[Cartesian,2],
#> AXIS["(E)",east,
#> ORDER[1],
#> LENGTHUNIT["metre",1]],
#> AXIS["(N)",north,
#> ORDER[2],
#> LENGTHUNIT["metre",1]],
#> USAGE[
#> SCOPE["Engineering survey, topographic mapping."],
#> AREA["Brazil - between 36°W and 30°W, northern and southern hemispheres, onshore and offshore."],
#> BBOX[-23.8,-36,4.19,-29.99]],
#> ID["EPSG",31985]]
#>
#>
#> [[2]]
#> [[2]]$path
#> [1] "/tmp/RtmpYYDtly/temp_libpath2b43a87fec8ad7/sen2r/extdata/out/S2A2A_20190723_022_Barbellino_BOA_10.tif"
#>
#> [[2]]$valid
#> [1] TRUE
#>
#> [[2]]$res
#> x y
#> 10 10
#>
#> [[2]]$size
#> x y
#> 24 42
#>
#> [[2]]$bbox
#> xmin ymin xmax ymax
#> 580560 5101700 580800 5102120
#>
#> [[2]]$proj
#> Coordinate Reference System:
#> User input: WGS 84 / UTM zone 32N
#> wkt:
#> PROJCRS["WGS 84 / UTM zone 32N",
#> BASEGEOGCRS["WGS 84",
#> DATUM["World Geodetic System 1984",
#> ELLIPSOID["WGS 84",6378137,298.257223563,
#> LENGTHUNIT["metre",1]]],
#> PRIMEM["Greenwich",0,
#> ANGLEUNIT["degree",0.0174532925199433]],
#> ID["EPSG",4326]],
#> CONVERSION["UTM zone 32N",
#> METHOD["Transverse Mercator",
#> ID["EPSG",9807]],
#> PARAMETER["Latitude of natural origin",0,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8801]],
#> PARAMETER["Longitude of natural origin",9,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8802]],
#> PARAMETER["Scale factor at natural origin",0.9996,
#> SCALEUNIT["unity",1],
#> ID["EPSG",8805]],
#> PARAMETER["False easting",500000,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8806]],
#> PARAMETER["False northing",0,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8807]]],
#> CS[Cartesian,2],
#> AXIS["(E)",east,
#> ORDER[1],
#> LENGTHUNIT["metre",1]],
#> AXIS["(N)",north,
#> ORDER[2],
#> LENGTHUNIT["metre",1]],
#> USAGE[
#> SCOPE["Engineering survey, topographic mapping."],
#> AREA["Between 6°E and 12°E, northern hemisphere between equator and 84°N, onshore and offshore. Algeria. Austria. Cameroon. Denmark. Equatorial Guinea. France. Gabon. Germany. Italy. Libya. Liechtenstein. Monaco. Netherlands. Niger. Nigeria. Norway. Sao Tome and Principe. Svalbard. Sweden. Switzerland. Tunisia. Vatican City State."],
#> BBOX[0,6,84,12]],
#> ID["EPSG",32632]]
#>
#>
# Output with an invalid raster
examplenames <- c(
examplenames,
system.file("extdata/settings/gdal_formats.json", package="sen2r")
)
raster_metadata(examplenames, c("bbox", "proj"))
#> trying to read file: /tmp/RtmpYYDtly/temp_libpath2b43a87fec8ad7/sen2r/extdata/settings/gdal_formats.json
#> path
#> 1: /home/lranghetti/R/x86_64-pc-linux-gnu-library/4.3/stars/tif/L7_ETMs.tif
#> 2: /tmp/RtmpYYDtly/temp_libpath2b43a87fec8ad7/sen2r/extdata/out/S2A2A_20190723_022_Barbellino_BOA_10.tif
#> 3: /tmp/RtmpYYDtly/temp_libpath2b43a87fec8ad7/sen2r/extdata/settings/gdal_formats.json
#> valid xmin ymin xmax ymax proj
#> 1: TRUE 288776.3 9110729 298722.8 9120761 EPSG:31985
#> 2: TRUE 580560.0 5101700 580800.0 5102120 EPSG:32632
#> 3: FALSE NA NA NA NA <NA>