Skip to main content

A Python package for track and forecasting configurable clusters.

Project description

pyForTraCC - Python library for Forecasting and Tracking the Evolution of Configurable Clusters

stable pypi Documentation Downloads Contributors License

Overview

pyForTraCC is a Python library developed for identifying, tracking, and forecasting clusters in diverse datasets. Its modular structure enables flexible integration, supporting user-defined configurations and compatibility with multiple input formats.

Algorithm Workflow

The algorithm is divided into two main modules: Track and Forecast.

  1. Track: This module identifies and tracks clusters in a time-sequenced field. It follows four steps:

    • Feature Extraction: Identifies relevant features using multi-thresholding on a time-varying field, clusters contiguous pixels above thresholds, and vectorizes clusters as geospatial objects.
    • Spatial Operations: Establishes spatial relationships between features and computes vector displacements between feature centroids.
    • Cluster Linkage: Links features across time steps by indexing current features with those from the previous time step, generating unique cluster identifiers, tracking trajectories, and recording the cluster lifetime.
    • Concatenation: Combines all identified features and trajectories into a single Parquet file, forming a consolidated tracking table with complete tracking data.
  2. Forecast: This module will predict future cluster positions through:

    • Virtual Image: A persistence-based forecast of cluster positions by shifting clusters in the current time step to a specified future position based on average vector displacement.
    • Track Routine: Applies the tracking routine to the virtual image, projecting cluster identification to the anticipated time step.

Documentation

For detailed instructions and usage, refer to the pyForTraCC Documentation.

Installation

The pyForTraCC package can be installed in two ways: Directly by via the pip package manager or cloning the official GitHub repository.

Installing with Pip (Directly)

To install or update pyForTraCC directly from the Python Package Index (PyPI), use:

pip install -U pyfortracc

Installing from GitHub

Download the package directly from the official GitHub repository by cloning it:

git clone https://github.com/fortracc/pyfortracc/

After downloading, you can install the package directly. It is recommended to use Python 3.12 and a virtual environment (such as Anaconda3, Miniconda, or Mamba) to avoid dependency conflicts.

  • Installing with Conda If you are using Conda, you can install the package dependencies as follows:

    cd pyfortracc
    conda env create -f environment.yml
    conda activate pyfortracc
    
  • Installing with pip Alternatively, you can install the package with pip:

    cd pyfortracc
    python3 -m venv venv
    source venv/bin/activate  # On Linux/macOS
    .venv\bin\activate  # On Windows
    pip install .
    

Running pyFortracc

To use pyForTraCC, install and import the library, then create a custom data-reading function, read_function, tailored to your data’s format. This function should return a two-dimensional matrix as required by the library. Define a dictionary, name_list, with necessary configuration parameters for tracking, including data paths, thresholds, and time intervals. Finally, run the tracking function.

Here is an example script:

import pyfortracc
import xarray as xr

# Custom data reading function
def read_function(path):
    """
    This function reads data from the given path and returns a two-dimensional matrix.
    """
    data = xr.open_dataarray(path).data
    return data

# Parameter dictionary for tracking configuration
name_list = {
    'input_path': 'input/',  # Path to input data
    'output_path': 'output/',  # Path to output data
    'thresholds': [20, 30, 45],  # Intensity thresholds
    'min_cluster_size': [10, 5, 3],  # Minimum cluster size (in number of points)
    'operator': '>=',  # Comparison operator (>=, <=, or ==)
    'timestamp_pattern': '%Y%m%d_%H%M%S.nc',  # Timestamp file naming pattern
    'delta_time': 12  # Time interval between frames, in minutes
}

# Execute tracking with parameters and custom reading function
pyfortracc.track(name_list, read_function)

WORCAP Minicourse (Portuguese)

Educational tutorial series developed for the WORCAP 2025 (Workshop on Applied Computing at INPE 2025), providing step-by-step introduction to pyForTraCC concepts and applications in Portuguese:

Minicurso
Open in Colab 1 - Exemplo Introdutório (Basic Tracking)
Open in Colab 2 - Rastreamento em Tempo Real (Real-Time Tracking)
Open in Colab 3 - Rastreamento de Mudanças Antropogênicas (Anthropogenic Change Tracking)

Example Gallery

=====================================================================

Library have a gallery of examples that demonstrate the application of the algorithm in different situations.
You can run the examples in Google Colab:

Example
Open in Colab 01 - Introducing Example
Open in Cola 02 - Radar Data Example
Open in Cola 03 - Infrared Satellite Example (Realtime Track)
Open in Cola 04 - Global Precipitation Example

Citation

=====================================================================

If you use pyForTraCC in your research, please cite the following reference:

LEAL, Helvecio B. et al. Impact of Multi-Thresholds and Vector Correction for Tracking Precipitating Systems over the Amazon Basin. Remote Sensing, v. 14, n. 21, p. 5408, 2022.

BibTeX

@article{leal2022impact,
  title={Impact of Multi-Thresholds and Vector Correction for Tracking Precipitating Systems over the Amazon Basin},
  author={Leal, Helvecio B and Calheiros, Alan JP and Barbosa, Henrique MJ and Almeida, Adriano P and Sanchez, Arturo and Vila, Daniel A and Garcia, S{\^a}mia R and Macau, Elbert EN},
  journal={Remote Sensing},
  volume={14},
  number={21},
  pages={5408},
  year={2022},
  publisher={MDPI}
}

Related Works

=====================================================================

The following publications demonstrate various applications and developments of pyForTraCC:

  • LEAL NETO, H. B., e Milton, A. J. P. C., & da Silva, B. (2025) TRACKING PRECIPITATION SYSTEMS OVER BRAZIL: ANALYSIS OF DENSITY, INTENSITY, DURATION AND SIZE OVER TWO DECADES. In: ANAIS DO XXI SIMPÓSIO BRASILEIRO DE SENSORIAMENTO REMOTO, Salvador. Anais eletrônicos..., Galoá.
    📄 View Paper

  • SILVA, Milton Borges da et al. (2025). AVALIAÇÃO DAS ESTIMATIVAS DE CHUVA DA MISSÃO GPM SOBRE MATO GROSSO DO SUL. In: ANAIS DO XXI SIMPÓSIO BRASILEIRO DE SENSORIAMENTO REMOTO, Salvador. Anais eletrônicos..., Galoá.
    📄 View Paper

  • LEAL NETO, H. B., & James, P. C. A. (2022). Application of the DBSCAN algorithm for identifying morphological features of atmospheric systems over the amazon basin. Authorea Preprints.
    📄 View Paper

  • LEAL NETO, H. B. (2021). Rastreio e previsão de sistemas precipitantes e convectivos na Bacia Amazônica utilizando aprendizado de máquina não-supervisionado. Dissertação (Mestrado em Computação Aplicada) - Instituto Nacional de Pesquisas Espaciais (INPE), São José dos Campos. 142 p.
    📄 View Thesis

  • LEAL NETO, H. B., Almeida, A. P., & Calheiros, A. J. (2020). As dificuldades no rastreio de tempestades com uso de refletividade radar a partir de técnicas de geoprocessamento: Um estudo de caso sobre a região Amazônica. In GEOINFO (pp. 240-245).
    📄 View Paper

Support and Contact

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfortracc-1.2.8.tar.gz (99.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyfortracc-1.2.8-py3-none-any.whl (117.7 kB view details)

Uploaded Python 3

File details

Details for the file pyfortracc-1.2.8.tar.gz.

File metadata

  • Download URL: pyfortracc-1.2.8.tar.gz
  • Upload date:
  • Size: 99.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyfortracc-1.2.8.tar.gz
Algorithm Hash digest
SHA256 2bbae3e2172ae127a1a7d399fa66b7031b7fd3aa355abe608d4cb14686a4fbc0
MD5 1d6b214478c41066817840a015c409ae
BLAKE2b-256 f52bf35b5b952458f8273db8740da2e108735da92139e9b88de378137b06baec

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfortracc-1.2.8.tar.gz:

Publisher: python-publish.yml on fortracc/pyfortracc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfortracc-1.2.8-py3-none-any.whl.

File metadata

  • Download URL: pyfortracc-1.2.8-py3-none-any.whl
  • Upload date:
  • Size: 117.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyfortracc-1.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 1ee293ddbe1ae2e1071269c36ec9a24f8273046dc8af3c03846e9cfbdf0f242e
MD5 59cae7db67e29e4bb195e61b6ae4860f
BLAKE2b-256 f66ed8d1594e136c8caf7d4c2cf3579ebf1977ac70dcde30285a4f7543d38704

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfortracc-1.2.8-py3-none-any.whl:

Publisher: python-publish.yml on fortracc/pyfortracc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page