GSoC 2026 Add Spatio-Temporal dataset support to datacatalog in GUI

From GRASS-Wiki
Jump to navigation Jump to search
Student Name Saket Kumar Mall
Organization NumFOCUS
Mentors Name Anna Petrasova, Stefan Blumentrath
GitHub Fork View Repo
LinkedIn Profile View LinkedIn

Abstract

Currently, the GRASS Data Catalog only queries standard spatial maps and bypasses the temporal database and STDS's entirely. As a result, Space Time Datasets are completely invisible in the catalog interface, forcing users to manage them exclusively via the command line.

This project will extend the existing Data Catalog architecture to natively support STDS. A solution will be implemented to show STDS alongside the standard spatial maps, fetching and displaying STRDS, STVDS, and STR3DS objects inside their respective mapset trees. Additionally, the project will enhance Data Catalog functionalities, such as context menus and other operations, to fully recognize, search, and interact with STDS objects in the GRASS GUI. Beyond these GUI integrations, the project will also focus on resolving critical bugs and enhancing the functionality of core temporal tools to improve the overall user workflow.

Proposed Solution

This project will:

  1. Show STRDS, STVDS, STR3DS as expandable nodes under each mapset in GUI.
  2. Nest registered maps inside their STDS.
  3. Add full context menus (rename, delete, etc.) functionalities.
  4. Add search toggle for STDS maps giving user choice to include/exclude those maps in search results.
  5. Apply Lazy loading for large datasets.

Plus few key enhancements in temporal tools like:

  1. Adding JSON output for some tools like t.info.
  2. Modify core temporal modules (t.rast.algebra, t.rast.aggregate, etc.) to allow appending data to existing STDS.
  3. Resolve critical bugs hindering the temporal user experience, such as t.rast.import failing when trying to create a new project and import a STRDS into it.

Timeline

Period Timeline Tasks Status
Community Bonding Period

May 1 - May 24, 2026

  1. Set up a robust local environment with various mapsets, temporal databases, and registered/unregistered time series maps (raster, vector, 3D raster)
  2. Discuss and finalize GUI decisions with mentors (node structure, icon selection, context menu wording, expected tree behavior)
  3. Review Data Catalog files (tree.py, catalog.py, g.gui.datacatalog.py) to map out integration points
  4. Finalize the scope and priority of temporal tasks for Phase 2
Coding Period Phase 1: Core GUI Architecture, STRDS, and STVDS Integration

May 25 - July 5, 2026

  1. STDS Infrastructure - Add a top-level "Space Time Datasets" group under each mapset; establish core logic to query the temporal database
  2. Map Filtering & Nesting - Nest registered maps under their STDS node; unregistered maps reappear as standalone
  3. Context Menus & Interactivity - Metadata, Copy, Move, Rename, Delete with mapset-specific constraints
  4. Raster and Vector Implementation - Fully implement and test STRDS and STVDS support
Midterm Evaluation

July 6 - July 10, 2026

  1. Milestone: STRDS and STVDS fully visible, expandable, and interactive in the Data Catalog
  2. Address mentor and reviewer feedback on Phase 1 pull requests
Coding Period Phase 2: STR3DS, Search Integration, and Temporal Tool Enhancements

July 11 - August 24, 2026

  1. STR3DS Support - Apply Phase 1 logic to Space Time 3D Raster Datasets
  2. Search Integration - UI toggle to include/exclude nested STDS maps in search results
  3. JSON Output Support - Implement JSON output for t.info
  4. Appending to existing STDS - Modify t.rast.algebra, t.rast.aggregate, etc.
  5. Temporal Workflow Fixes - Fix some minor issues; implement lazy loading
  6. Finalization - Edge cases, code cleanup, test coverage, documentation, submit final GSoC report

Reports

Community Bonding Period