Learn R Programming

⚠️There's a newer version (1.6.0) of this package.Take me there.

rpostgis

The rpostgis package provides an interface between R and PostGIS-enabled PostgreSQL databases to transparently transfer spatial data. Both vector (points, lines, polygons) and raster data are supported in read and write modes. Also provides convenience functions to execute common procedures in PostgreSQL/PostGIS.

Warning Due to retirement of the package rgeos, rpostgis will retire in September 2023.

  • For vector operations, please check package sf, which provides a mechanism to connect to PostGIS databases.
  • For raster operations, no alternative solution is identified yet.
  • For general database operations, use 'RPostgreSQL' directly.

If you are interested in the development and maintenance of rpostgis, please check this issue on the GitHub repository. For more information on R-spatial evolution, visit: https://r-spatial.org/.

Installation of the released versions

You can install the latest released version from CRAN:

install.packages("rpostgis")

You can then use update.packages() to update to the latest CRAN version.

Installation of the development versions

A stable version of the package is always available on the project's GitHub page, and may be ahead of the CRAN version. To install it, use the remotes:

remotes::install_github("mablab/rpostgis")

For the latest (possibly unstable) development version, use:

remotes::install_github("mablab/rpostgis", ref = "dev")

Getting started

rpostgis relies on a working connection provided by the RPostgreSQL package to a PostgreSQL database, e.g.:

conn <- RPostgreSQL::dbConnect("PostgreSQL", host = "localhost",
    dbname = "<DB_NAME>", user = "<USER>", password = "<PASSWORD>")

Note: as of rpostgis 1.4.3 the RPostgres::Postgres() driver is also allowed for connection objects; however, this should be considered experimental and is not recommended for most use cases.

Once the connection is established, the first step is to check if the database has PostGIS already installed (and install it if it's not the case):

pgPostGIS(conn)

If the function returns TRUE, the database is ready and functional. You can check the geometries and rasters present in the database with:

pgListGeom(conn, geog = TRUE)
pgListRast(conn)

To terminate the session, close and clear the connection with:

RPostgreSQL::dbDisconnect(conn)

Documentation

Full documentation with the complete list of functions of the package can be found on rpostgis homepage.

Copy Link

Version

Install

install.packages('rpostgis')

Monthly Downloads

599

Version

1.4.4

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

David Bucklin

Last Published

May 6th, 2023

Functions in rpostgis (1.4.4)

dbColumn

Add or remove a column.
pgCheckGeom

Check if geometry or geography column exists in a table, and return the column name for use in a query.
dbIndex

Create an index.
dbWriteDataFrame

Write/read in data frame mode to/from database table.
pgGetBoundary

Retrieve bounding envelope of geometries or rasters.
dbSchema

Check and create schema.
pgGetRast

Load raster from PostGIS database.
dbComment

Comment table/view/schema.
pgGetSRID

Get SRID(s) from a geometry/geography column in a full table
pgGetGeom

Load a PostGIS geometry from a PostgreSQL table/view/query into R.
pgMakePts

Add a POINT or LINESTRING geometry field.
dbTableInfo

Get information about table columns.
pgGetPts

Load a PostGIS point geometry from a PostgreSQL table/view into R.
pgListGeom

List geometries/rasters
dbTableNameFix

Format input for database schema/table names.
dbVacuum

Vacuum.
pgInsert

Inserts data into a PostgreSQL table.
pgGetPolys

Load a PostGIS polygon geometry from a PostgreSQL table/view into R.
dbVersion

Returns major.minor version of PostgreSQL (for version checking)
pgPostGIS

Check and create PostGIS extension.
pgWriteRast

Write raster to PostGIS database table.
pgSRID

Find (or create) PostGIS SRID based on CRS object.
pgGetLines

Load a PostGIS linestring geometry from a PostgreSQL table/view into R.
pgInsertizeGeom

Format R data objects for insert into a PostgreSQL table.
rpostgis

R interface to a PostGIS database.
pgGetGeomQ

Load geometries from a full query and return a Spatial* object
dbExistsTable

Check if a PostgreSQL table/view exists
dbAsDate

Converts to timestamp.
dbDrop

Drop table/view/schema.
dbAddKey

Add key.
dbGetDefs

Get definitions for data frame mode reading
dbConnCheck

Check if a supported PostgreSQL connection
bs

Return indexes for an exact number of blocks for a raster
dbBuildTableQuery

Builds CREATE TABLE query for a data frame object.