plans.datasets.spatial#

Handle spatial datasets (maps).

Overview#

# todo [major docstring improvement] – overview Mauris gravida ex quam, in porttitor lacus lobortis vitae. In a lacinia nisl. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

Example#

# todo [major docstring improvement] – examples Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla mollis tincidunt erat eget iaculis. Mauris gravida ex quam, in porttitor lacus lobortis vitae. In a lacinia nisl.

import numpy as np
print("Hello World!")

Mauris gravida ex quam, in porttitor lacus lobortis vitae. In a lacinia nisl. Mauris gravida ex quam, in porttitor lacus lobortis vitae. In a lacinia nisl.

Classes

AOI([name])

AOI map dataset

AOICollection(name)

A QualiRasterCollection` for holding AOI maps

Basins([name])

Basins map dataset

DTO([name])

Distance to outlet raster map dataset.

EBA(name, datetime[, q_a])

Equivalent Biodiversity Area raster map dataset.

ET24h(name, date)

ET 24h raster map dataset.

ETSeries(name)

Elevation([name])

Elevation (DEM) raster map dataset.

FAC(name)

Flow Accumulation raster map dataset.

HAND([name])

HAND raster map dataset.

HTWI([name])

HTWI (HAND-TWI) raster map dataset.

HabDegradation(name, datetime)

Habitat Degradation raster map dataset.

HabQuality(name, datetime)

Habitat Quality raster map dataset.

Hydrology(name, varalias, datetime)

Primitive hydrology raster map dataset.

LDD([name])

LDD - Local Drain Direction map dataset

LULC(name, datetime)

Land Use and Land Cover map dataset

LULCChange(name, date_start, date_end, name_lulc)

Land Use and Land Cover Change map dataset

LULCSeries(name)

A QualiRasterSeries for holding Land Use and Land Cover maps

Lithology([name])

Lithology map dataset

NDVI(name, datetime)

NDVI raster map dataset.

NDVISeries(name)

Slope([name])

Slope raster map dataset.

Soils([name])

Soils map dataset

TWI([name])

TWI raster map dataset.

class plans.datasets.spatial.Elevation(name='DEM')[source]#

Bases: SciRaster

Elevation (DEM) raster map dataset.

__init__(name='DEM')[source]#

Initialize dataset

Parameters:

name (str) – name of map

get_tpi(cell_radius)[source]#
get_tpi_landforms(radius_micro, radius_macro)[source]#
class plans.datasets.spatial.Slope(name='Slope')[source]#

Bases: SciRaster

Slope raster map dataset.

__init__(name='Slope')[source]#

Initialize dataset

Parameters:

name (str) – name of map

class plans.datasets.spatial.TWI(name='TWI')[source]#

Bases: SciRaster

TWI raster map dataset.

__init__(name='TWI')[source]#

Initialize dataset

Parameters:

name (str) – name of map

class plans.datasets.spatial.HTWI(name='HTWI')[source]#

Bases: SciRaster

HTWI (HAND-TWI) raster map dataset.

__init__(name='HTWI')[source]#

Initialize dataset

Parameters:

name (str) – name of map

class plans.datasets.spatial.HAND(name='HAND')[source]#

Bases: SciRaster

HAND raster map dataset.

__init__(name='HAND')[source]#

Initialize dataset

Parameters:

name (str) – name of map

class plans.datasets.spatial.DTO(name='DTO')[source]#

Bases: SciRaster

Distance to outlet raster map dataset.

__init__(name='DTO')[source]#

Initialize dataset

Parameters:

name (str) – name of map

class plans.datasets.spatial.FAC(name)[source]#

Bases: SciRaster

Flow Accumulation raster map dataset.

__init__(name)[source]#

Initialize dataset.

Parameters:

name (str) – name of map

class plans.datasets.spatial.NDVI(name, datetime)[source]#

Bases: SciRaster

NDVI raster map dataset.

__init__(name, datetime)[source]#

Initialize dataset.

Parameters:
  • name (str) – name of map

  • datetime (str) – date of map in yyyy-mm-dd

set_data(grid)[source]#

Set the data grid for the raster object. This function allows setting the data grid for the raster object. The incoming grid should be a NumPy array.

Parameters:

grid (numpy.ndarray) – The data grid to be set for the raster.

Notes

  • The function overwrites the existing data grid in the raster object with the incoming grid, ensuring that the data type matches the raster’s dtype.

  • Nodata values are masked after setting the grid.

class plans.datasets.spatial.ET24h(name, date)[source]#

Bases: SciRaster

ET 24h raster map dataset.

__init__(name, date)[source]#

Initialize dataset.

Parameters:
  • name (str) – name of map

  • date (str) – date of map in yyyy-mm-dd

set_data(grid)[source]#

Set the data grid for the raster object. This function allows setting the data grid for the raster object. The incoming grid should be a NumPy array.

Parameters:

grid (numpy.ndarray) – The data grid to be set for the raster.

Notes

  • The function overwrites the existing data grid in the raster object with the incoming grid, ensuring that the data type matches the raster’s dtype.

  • Nodata values are masked after setting the grid.

class plans.datasets.spatial.Hydrology(name, varalias, datetime)[source]#

Bases: SciRaster

Primitive hydrology raster map dataset.

__init__(name, varalias, datetime)[source]#

Initialize dataset

Parameters:

name (str) – name of map

_set_cmaps()[source]#

Sets predefined colormaps for different types of scientific data.

Returns:

None

Return type:

None

_set_vars()[source]#
class plans.datasets.spatial.HabQuality(name, datetime)[source]#

Bases: SciRaster

Habitat Quality raster map dataset.

__init__(name, datetime)[source]#

Initialize dataset.

Parameters:
  • name (str) – name of map

  • datetime (str) – date of map in yyyy-mm-dd

get_biodiversity_area(b_a: float = 1.0) Raster[source]#

Get a raster of Biodiversity Area :param b_a: model parameter :type b_a: float :return: Raster object of biodiversity area :rtype: Raster

class plans.datasets.spatial.HabDegradation(name, datetime)[source]#

Bases: SciRaster

Habitat Degradation raster map dataset.

__init__(name, datetime)[source]#

Initialize dataset.

Parameters:
  • name (str) – name of map

  • datetime (str) – date of map in yyyy-mm-dd

class plans.datasets.spatial.EBA(name, datetime, q_a=1.0)[source]#

Bases: SciRaster

Equivalent Biodiversity Area raster map dataset.

__init__(name, datetime, q_a=1.0)[source]#

Initialize dataset.

Parameters:
  • name (str) – name of map

  • datetime (str) – date of map in yyyy-mm-dd

  • q_a (float) – habitat quality reference

set_data(grid)[source]#

Set the data grid for the raster object. This function allows setting the data grid for the raster object. The incoming grid should be a NumPy array.

Parameters:

grid (numpy.ndarray) – The data grid to be set for the raster.

Notes

  • The function overwrites the existing data grid in the raster object with the incoming grid, ensuring that the data type matches the raster’s dtype.

  • Nodata values are masked after setting the grid.

class plans.datasets.spatial.Basins(name='BasinsMap')[source]#

Bases: QualiRaster

Basins map dataset

__init__(name='BasinsMap')[source]#

Initialize dataset.

Parameters:
  • name (str) – name of map

  • dtype (str) – data type of raster cells, defaults to

static get_upstream_ids(basin_id, topology_df, visited=None)[source]#

Recursive utility function for listing all upstream basins

Parameters:
  • basin_id (int) – basin id to start

  • topology_df (pandas.DataFrame) – dataframe with topology. expected to have Id and Downstream_Id columns

  • visited (list or None) – visited id (default=None)

Returns:

upstream ids

Return type:

list

get_basin_aoi(basin_id)[source]#
class plans.datasets.spatial.LULC(name, datetime)[source]#

Bases: QualiRaster

Land Use and Land Cover map dataset

__init__(name, datetime)[source]#

Initialize LULC` map

Parameters:
  • name (str) – name of map

  • datetime (str) – date of map in yyyy-mm-dd

class plans.datasets.spatial.LULCChange(name, date_start, date_end, name_lulc)[source]#

Bases: QualiRaster

Land Use and Land Cover Change map dataset

__init__(name, date_start, date_end, name_lulc)[source]#

Initialize LULCChange` map

Parameters:
  • name (str) – name of map

  • date_start (str) – date of map in yyyy-mm-dd

  • date_end (str) – date of map in yyyy-mm-dd

  • name_lulc (str) – name of lulc incoming map

class plans.datasets.spatial.Lithology(name='LitoMap')[source]#

Bases: QualiRaster

Lithology map dataset

__init__(name='LitoMap')[source]#

Initialize Lithology` map

Parameters:

name

class plans.datasets.spatial.Soils(name='SoilsMap')[source]#

Bases: QualiRaster

Soils map dataset

__init__(name='SoilsMap')[source]#

Initialize dataset.

Parameters:
  • name (str) – name of map

  • dtype (str) – data type of raster cells, defaults to

set_hydro_soils(map_lito, map_hand, map_slope, n_hand=2, n_slope=10)[source]#

Set hydrological soils based on lithology, Hand and Slope maps.

Parameters:
  • map_lito (datasets.Lithology) – Lithology raster map

  • map_hand (datasets.HAND) – HAND raster map

  • map_slope (datasets.Slope) – Slope raster map

  • n_hand (float) – HAND threshold for alluvial definition

  • n_slope (float) – Slope threshold for colluvial definition

Returns:

None

Return type:

None

class plans.datasets.spatial.AOI(name='AOIMap')[source]#

Bases: QualiHard

AOI map dataset

__init__(name='AOIMap')[source]#

Initialize dataset.

Parameters:
  • name (str) – name of map

  • dtype (str) – data type of raster cells, defaults to

update()[source]#

Refresh all mutable attributes based on data (includins paths). Expected to be incremented downstream.

Returns:

None

Return type:

None

get_table()[source]#

Retrieves a sample DataFrame representing an AOI classification table.

Returns:

A DataFrame with sample AOI classification data.

Return type:

pandas.DataFrame

set_area()[source]#
get_metadata()[source]#

Get a dictionary with object metadata. Expected to increment superior methods.

Note

Metadata does not necessarily inclue all object attributes.

Returns:

dictionary with all metadata

Return type:

dict

view(show=True, folder='./output', filename=None, dpi=150, fig_format='jpg')[source]#

Plot a basic pannel of raster map.

Parameters:
  • show (bool) – boolean to show plot instead of saving, defaults to False

  • folder (str) – path to output folder, defaults to ./output

  • filename (str) – name of file, defaults to None

  • dpi (int) – image resolution, defaults to 96

  • fig_format (str) – image fig_format (ex: png or jpg). Default jpg

class plans.datasets.spatial.LDD(name='LDDMap')[source]#

Bases: QualiHard

LDD - Local Drain Direction map dataset

LDD uses wbt convention derived from the WhiteboxTool.

wbt convention#

64

128

1

32

0

2

16

8

4

__init__(name='LDDMap')[source]#

Initialize dataset.

Parameters:
  • name (str) – name of map

  • dtype (str) – data type of raster cells, defaults to

get_table()[source]#

Retrieves a sample DataFrame representing a classification table.

Returns:

A DataFrame with sample classification data.

Return type:

pandas.DataFrame

class plans.datasets.spatial.NDVISeries(name)[source]#

Bases: RasterSeries

__init__(name)[source]#

Deploy RasterSeries

Parameters:
  • name (str) – RasterSeries.name` name attribute

  • varname (str) – Raster.varname` variable name attribute, defaults to None

  • varalias (str) – Raster.varalias` variable alias attribute, defaults to None

  • units (str) – Raster.units` units attribute, defaults to None

load_data(name, datetime, file_data, prj_file)[source]#

Load a NDVI` object from a raster file.

Parameters:
  • name (str) – name attribute

  • datetime (str) – Raster.date` date attribute, defaults to None

  • file_data (str) – path to .asc raster file

  • prj_file (str) – path to .prj projection file

Returns:

None

Return type:

None

class plans.datasets.spatial.ETSeries(name)[source]#

Bases: RasterSeries

__init__(name)[source]#

Deploy RasterSeries

Parameters:
  • name (str) – RasterSeries.name` name attribute

  • varname (str) – Raster.varname` variable name attribute, defaults to None

  • varalias (str) – Raster.varalias` variable alias attribute, defaults to None

  • units (str) – Raster.units` units attribute, defaults to None

load_data(name, datetime, file_data, prj_file)[source]#

Load a ET24h` object from a raster file.

Parameters:
  • name (str) – name attribute

  • datetime (str) – datetime attribute, defaults to None

  • file_data (str) – path to raster file

  • prj_file (str) – path to projection file

Returns:

None

Return type:

None

class plans.datasets.spatial.AOICollection(name)[source]#

Bases: QualiRasterCollection

A QualiRasterCollection` for holding AOI maps

__init__(name)[source]#

Deploy Qualitative Raster Series

Parameters:
  • name (str) – RasterSeries.name` name attribute

  • varname (str) – Raster.varname` variable name attribute, defaults to None

  • varalias (str) – Raster.varalias` variable alias attribute, defaults to None

load_data(name, file_data, file_prj=None)[source]#

Load a AOI` object from raster file.

Parameters:
  • name (str) – name attribute

  • file_data (str) – path to raster file

  • file_prj (str) – path to projection file

  • file_table (str) – path to table file

Returns:

None

Return type:

None

class plans.datasets.spatial.LULCSeries(name)[source]#

Bases: QualiRasterSeries

A QualiRasterSeries for holding Land Use and Land Cover maps

__init__(name)[source]#

Deploy Qualitative Raster Series

Parameters:
  • name (str) – RasterSeries.name` name attribute

  • varname (str) – Raster.varname variable name attribute, defaults to None

  • varalias (str) – Raster.varalias variable alias attribute, defaults to None

load_data(name, datetime, file_data, file_prj=None, file_table=None)[source]#

Load a LULC` object from raster file.

Parameters:
  • name (str) – name attribute

  • datetime (str) – date attribute

  • file_data (str) – path to raster file

  • file_prj (str) – path to projection file

  • file_table (str) – path to table file

Returns:

None

Return type:

None

get_lulcc(date_start, date_end, by_lulc_id)[source]#

Get the LULCChange` of a given time interval and LULC class Id

Parameters:
  • date_start (str) – start date of time interval

  • date_end (str) – end date of time interval

  • by_lulc_id (int) – LULC class Id

Returns:

map of LULC Change

Return type:

LULCChange

get_lulcc_series(by_lulc_id)[source]#

Get the QualiRasterSeries of LULC Change for the entire LULC series for a given LULC Id

Parameters:

by_lulc_id (int) – LULC class Id

Returns:

Series of LULC Change

Return type:

QualiRasterSeries

get_conversion_matrix(date_start, date_end, talk=False)[source]#

Compute the conversion matrix, expansion matrix and retraction matrix for a given interval

Parameters:
  • date_start (str) – start date of time interval

  • date_end (str) – end date of time interval

  • talk (bool) – option for printing messages

Returns:

dict of outputs

Return type:

dict