Skip to content

API

Configuration

Configuration Classes

Classes

fct.config.Configuration.Configuration

Configuration singleton, which can be read from a .ini file.

Configuration defines:

  • datasources
  • tilesets
  • datasets
  • shared parameters: workdir, srid
Attributes
srid property readonly

Return SRID

touched property readonly

Return list of datasets which have been accessed or created during processing session

vertical_ref property readonly

Vertical reference system for elevations

workdir property readonly

Return working directory

Methods
auto(self)

Populate configuration from config.ini defined in FCT_CONFIG environment variable. Use .env if exists.

axes(self, name)

Returns all axes defined in named dataset

basename(self, name, **kwargs)

Return Dataset filename relative to workdir

configure(self, workspace, datasources, datasets, tilesets)

Populate configuration

dataset(self, name)

Return Dataset by name/key

datasource(self, name)

Return DataSource definition

default(self)

Populate configuration from default config.ini

filename(self, name, **kwargs)

Return Dataset filename instance

from_file(self, filename)

Populate configuration from .ini file

tileset(self, name='default')

Return Tileset definition

fct.config.Configuration.Dataset

Describes an output dataset

Attributes
ext property readonly

Return file extension

name property readonly

Return dataset's name

Methods
filename(self, **kwargs)

Return filename instance

subdir(self, **kwargs)

Return storage subdirectory

tilename(self, **kwargs)

Return tilename instance

fct.config.Configuration.DataSource

DataSource(name, filename, resolution)

Attributes
filename: None property readonly

itemgetter(item, ...) --> itemgetter object

Return a callable object that fetches the given item(s) from its operand. After f = itemgetter(2), the call f(r) returns r[2]. After g = itemgetter(2, 5, 3), the call g(r) returns (r[2], r[5], r[3])

name: None property readonly

itemgetter(item, ...) --> itemgetter object

Return a callable object that fetches the given item(s) from its operand. After f = itemgetter(2), the call f(r) returns r[2]. After g = itemgetter(2, 5, 3), the call g(r) returns (r[2], r[5], r[3])

resolution: None property readonly

itemgetter(item, ...) --> itemgetter object

Return a callable object that fetches the given item(s) from its operand. After f = itemgetter(2), the call f(r) returns r[2]. After g = itemgetter(2, 5, 3), the call g(r) returns (r[2], r[5], r[3])

Methods
__getnewargs__(self) special

Return self as a plain tuple. Used by copy and pickle.

__new__(_cls, name, filename, resolution) special staticmethod

Create new instance of DataSource(name, filename, resolution)

__repr__(self) special

Return a nicely formatted representation string

fct.config.Configuration.FileParser

Read configuration components form a .ini file

Methods
datasets(data) staticmethod

Read YAML dataset definitions and return a dict of datasets

datasource(name, items) staticmethod

Populate a DataSource object

load_dataset_yaml(configfile) staticmethod

Read dataset definitions from datasets directory or from `datasets.yml

parse(configfile) staticmethod

Main parsing method

tileset(name, items) staticmethod

Populate a Tileset object

fct.config.Configuration.Tileset

Describes a tileset from a shapefile index

Attributes
bounds property readonly

(minx, miny, maxx, maxy) bounds of this tileset

height property readonly

Height in pixels of one tile

name property readonly

Name of this tileset

tiledir property readonly

Tile storage relative to dataset path

tileindex property readonly

Index of tiles belonging to this tileset

width property readonly

Width in pixels of one tile

Methods
__len__(self) special

Return number of tiles in tileindex

filename(self, dataset, **kwargs)

Return dataset main file with tileset qualifier

index(self, x, y)

Return tile coordinates of real world point (x, y)

tilename(self, dataset, row, col, **kwargs)

Return full-path filename instance for specific tile

tiles(self)

Generator of tiles

fct.config.Configuration.Workspace

Shared parameters and output dataset definitions

Attributes
srid property readonly

Return SRID

srs property readonly

Return SRS Identifier

workdir property readonly

Return working directory

Methods
copy(self)

Returns a deep copy of this object

set_srs(self, srs)

Set SRS

descriptors

Classes

fct.config.descriptors.DatasetParameter

A file-based dataset declared in datasets.yml, either tiled or not

fct.config.descriptors.DatasetResolver

Resolves a DatasetParameter according to current configuration.

Attributes
name property readonly

Return dataset's key

none property readonly

Return True if this parameter should resolve to None

Methods
filename(self, mode='r', tileset='default', **kwargs)

Resolves to this datasource filename. If tileset is None, returns a global dataset. Otherwise, returns the single-file dataset for the specified tileset, such as a VRT file for tiled datasets.

tilename(self, mode='r', tileset='default', **kwargs)

Resolves to a specific tilename based on kwargs arguments

fct.config.descriptors.DatasourceParameter

A file-based datasource declared in config.ini

fct.config.descriptors.DatasourceResolver

Resolves a DatasourceParameter according to current configuration.

Attributes
name property readonly

Return datasource's key

none property readonly

Return True if this parameter should resolve to None

Methods
filename(self)

Resolves to this datasource filename

fct.config.descriptors.LiteralParameter

A simple valued (string or numeric) parameter

fct.config.descriptors.WorkflowContext

A context manager that manages workflow execution: - allows specific execution settings - records execution details.

Methods
after_operation(self, operation, *args, **kwargs)

After-execution hook

before_operation(self, operation, *args, **kwargs)

Before-execution hook

record_execution_time(self, operation, elapsed)

Record execution time for operation name

set_outputdir(self, outputdir)

Set output directory within workspace's working directory

set_tiledir(self, tiledir)

Set default tileset's tile directory

set_tileset(self, tileset)

Set current default tileset

set_workdir(self, workdir)

Set current workspace's working directory

Functions

fct.config.descriptors.pretty_time_delta(delta)

See https://gist.github.com/thatalextaylor/7408395

workflows.decorators

Decorators for building workflows

workflows.decorators.operation(fun)

Decorates a workflow operation

Source code in workflows/decorators.py
def operation(fun):
    """
    Decorates a workflow operation
    """

    @wraps(fun)
    def decorated(ctx, *args, **kwargs):

        ctx.before_operation(fun, *args, **kwargs)

        fun(*args, **kwargs)

        ctx.after_operation(fun, *args, **kwargs)

    return decorated

workflows.decorators.parallel(tilefun)

Decorates tilefun to process tiles in parallel using a Multiprocessing wrapper.

Source code in workflows/decorators.py
def parallel(tilefun):
    """
    Decorates `tilefun` to process tiles in parallel
    using a Multiprocessing wrapper.
    """

    @wraps(tilefun)
    def decorated(tileset, *args, processes=1, **kwargs):
        """
        Multiprocessing wrapper
        See https://stackoverflow.com/questions/8804830/python-multiprocessing-picklingerror-cant-pickle-type-function
        """

        def arguments():

            for tile in tileset.tiles():

                yield [
                    tilefun,
                    tile.row,
                    tile.col,
                    *args,
                    kwargs
                ]

        with Pool(processes=processes) as pool:

            pooled = pool.imap_unordered(starcall, arguments())

            with click.progressbar(pooled, length=len(tileset)) as iterator:
                for _ in iterator:
                    # click.echo('\n\r')
                    pass

    return decorated