Skip to contents

Retrieve rasters from a PostGIS table into a terra SpatRaster object

Usage

pgGetRast(
  conn,
  name,
  rast = "rast",
  bands = 1,
  boundary = NULL,
  clauses = NULL,
  returnclass = "terra",
  progress = TRUE
)

Arguments

conn

A connection object to a PostgreSQL database

name

A character string specifying a PostgreSQL schema and table/view name holding the geometry (e.g., name = c("schema","table"))

rast

Name of the column in name holding the raster object. Defaults to "rast".

bands

Index number(s) for the band(s) to retrieve (defaults to 1). The special case (bands = TRUE) returns all bands in the raster. See also 'Details'

boundary

sf object, SpatVector object, or numeric. If a spatial object is provided, its bounding box will be used to select the part of the raster to import. Alternatively, a numeric vector (c([top], [bottom], [right], [left])) indicating the projection-specific limits with which to clip the raster. If not value is provided, the default boundary = NULL will return the full raster.

clauses

character, optional SQL to append to modify select query from table. Must begin with 'WHERE'.

returnclass

'terra' by default; or 'raster' for raster objects.

progress

whether to show a progress bar (TRUE by default). The progress bar mark the progress of reading bands from the database.

Value

SpatRaster; raster; or RasterStack object

Details

Since version 1.5.0, this function retrieve SpatRaster objects from terra package by default. The argument returnclass can be used to return raster objects instead.

The argument bands can take as argument:

* The index of the desirable band (e.g. bands = 2 will fetch the second band of the raster).

* More than one index for several bands (e.g. bands = c(2,4) will return a SpatRaster with two bands).

* All bands in the raster (bands = TRUE).

Author

David Bucklin david.bucklin@gmail.com and Adrián Cidre González adrian.cidre@gmail.com

Examples

if (FALSE) { # \dontrun{
pgGetRast(conn, c("schema", "tablename"))
pgGetRast(conn, c("schema", "DEM"), boundary = c(55,
    50, 17, 12))
} # }