Table of Contents

Design and Implementation of TerraLib 5

This document presents the TerraLib 5 design and it gives an overview of its architecture.

Architecture Overview

TerraLib Platform Modules

In TerraLib a module1) encapsulates a set of related functionalities. The following modules are provided in the TerraLib Platform:

Color

Common

The Common Runtime module contains the foundation classes and functions for all TerraLib modules:

Data Access

This module provides the fundamental layer for applications that handle spatial data from different sources, ranging from traditional DBMSs to OGC Web Services.

Data Types

The data type module implements the type system supported by TerraLib for dealing with data that comes from different data sources. The basic classes/concepts in this module are:

Geometry

The geometry module is responsible for providing:

Graph

The graph module provides a set of classes for the storage and manipulation of graphs:

Layout

The layout module provides a set of classes for creation maps.

MapTools

The MapTools module contains some basic abstractions for handling spatial data in the form of a map:

Metadata

<color red> This module as well as its documentation are under construction </color>

OGC

Besides the OGC SFS standard, TerraLib also provides implementations for the following OGC standards:

Plugin

TerraLib comes with a simple framework to help in dynamic module management. It provides support for the startup and shutdown of modules loaded at run time, like DLLs, Shared Objects (SO) or scripts written in Lua, JavaScript, PHP, Python or any other supported language. See the section below for a deep discussion about this module.

Qt

TerraLib provides some geosptial components and a framework based on Qt. You can read more about the design of this support in the basic concepts section. The Qt support is organized as follows:

Raster

This module can be used to manage geographical data with raster representation.

General Concepts

Raster drivers:

Raster Processing

This module provides classes and functions with raster processing capabilities. See the general concepts here.

They are organized as follows:

Resources

Schemas

Spatial Reference System (SRS)

See also the description of a Qt component that represents the concepts of the SRS here.

Spatiotemporal (ST)

This module contains classes to deal with spatiotemporal information.

Spatial Statistics

TerraView

Tools

The TerraLib Platform accompanies some utility applications that can be run in command line interface (CLI) or graphical enviroments (GUI):

Tools Integration

Vector Processing

This module provides classes and functions with vector processing capabilities. See the general concepts here.

They are organized as follows:

Bindings

<color red>!!This module as well as its documentation are under construction!!</color>

Bindings for Other Languages

Versioning

This topic discuss the TerraLib's change management and control.

Installation and Build System

Tests

Scheduling

We have planned some milestones for the Development Team. You can see this schedule here.

TerraLib 5 Status

This section shows the current status of the development of each module. Here you will find our TODO list and general notes about each module Precisa ser atualizado

Click here to view the current status

1) Sometimes, according to the programming language or software platform, people prefer to use other names for a module, like: package, unit, component, service, micro-kernel.