Skip to main content

postgis

Functions

append_data

def append_data(workspace: str,
layername: str,
data: List[dict],
columns: list,
id_column: str = "id",
connection=aurora)

GIS function to append columns to a PostGIS table. Basically an execute many query wrapper.

Arguments:

  • workspace str - input schema name.
  • layername str - input table name.
  • data List[dict] - input data.
  • columns list - list of column names, names will be alphabetically sorted.
  • id_column str, optional - name of primary key of vector table, or any other unique ID column. . Defaults to "id". connection (psycopg2.connection(), optional): Defaults to aurora.

Raises:

  • KeyError - raised when a specific column does not exist.

Examples:

append_data(
workspace="opusinsights_87_nld_12",
layername="treecount",
data=[
{
"foo": "bar"
}
],
columns=["tree_id", "meanheight"],
id_column="id"
)

generate_geometry

def generate_geometry(layername: str,
options: ProcessOptions,
workspace: str,
connection=aurora)

GIS function to generate geometry from WKT string in PostGIS table

Arguments:

  • layername str - input table name.
  • options ProcessOptions - input processing options.
  • workspace str - input schema name.
  • connection psycopg2.connection() - connection to RDS. Defaults to aurora.

Examples:

generate_geometry(
crs=4326,
layername="treecount",
options=ProcessOptions(foo="bar"),
workspace="opusinsights_87_nld_12"
)

pull_geometries

def pull_geometries(workspace: str,
tile: gdal.Dataset | str,
options: ProcessOptions,
layername: str = "treecount",
connection=aurora) -> List[dict]

Helper function to collect necessary geometries from PostGIS table. The function collects the geometries using either a buffer or a numeric attribute (parameter) in the PostGIS table. Tile bounds are used to create a search window.

Arguments:

  • workspace str - name of the workspace
  • tile gdal.Dataset | str - input raster tile data.
  • options ProcessOptions - processing options.
  • layername str, optional - input layer name. Defaults to "treecount".
  • connection psycopg2.connection, optional - RDS connection. Defaults to aurora.

Raises:

  • ValueError - raised when someone attempts a buffer 0.

Returns:

list | None: list of records.

Examples:

pull_geometries(
workspace="opusinsights_87_nld_12",
tile="/mnt/data/some-0-1.tiff",
layername="treecount",
options=ProcessOptions(foo="bar")
)