Project Structure¶
The project follows a clear and modular directory structure designed to facilitate navigation, maintenance, and collaboration. Each directory and file serves a specific purpose, as detailed below.
rringg/
├── cache/ # Temporary storage for intermediate and cached data (e.g., Station metadata, Cache configuration file, GNSS time series)
├── data/ # Sample datasets
├── doc/ # Project documentation
├── images/ # Project visuals (figures, diagrams, logos, etc.)
├── outputs/ # Generated outputs
├── src/ # Python source code
│ ├── rringg.py # Main entry point of the project
│ └── tools/ # Utility modules (e.g., metadata writing, geoprocessing)
├── tests/ # Unit tests
├── .gitlab-ci.yml # Continuous integration configuration
├── .zenodo.json # Metadata for archiving and citation
├── AUTHORS.rst # List of project contributors
├── CITATION.cff # Citation metadata file
├── LICENSE.txt # Project license
├── README.rst # Main project overview
├── codemeta.json # Code metadata description
├── environment.yml # Conda environment configuration
├── pyproject.toml # Python project configuration (PEP 518)
├── requirements.txt # Python dependencies (pip)
└── setup.py # Installation script and project metadata
Top-Level Directories¶
- cache/
- Temporary storage for intermediate data and caching mechanisms. This directory facilitates efficient handling of frequently accessed data and includes:
.cache_config.json: Configuration file for cache behavior.
time_series/: GNSS time series data sourced from EPOS or NGL.
metadata/: Metadata related to GNSS stations, such as station coordinates or site information.
- data/
Placeholder for raw and processed datasets. This directory should store project-specific data files required for analysis or operations.
- doc/
Contains the project’s documentation in reStructuredText format, designed for Sphinx.
- download/
Contains gnss time series download.
- images/
Repository for visual assets, such as plots, diagrams, and screenshots, used in the documentation.
- output/
Stores generated outputs from the project, such as visualizations, reports, or processed data.
Source Code¶
- rringg/
- The main Python package for the project. This directory contains core functionalities and utilities, organized into the following structure:
- rringg.py
Entry point script to execute the application.
src/ A subdirectory for utility scripts supporting the main application, including:
EPOSjson.py: Connector for EPOS data services. Handles retrieval and management of EPOS metadata and time series.
NGLtenv3.py: Connector for the NGL data portal. Provides tools to download and manage station metadata and time series.
caching.py: Implements caching mechanisms for downloaded and intermediate data.
csv2raster.py: Converts CSV-based InSAR time series (from EPOS ICS portal).
dates.py: Utilities for handling and converting dates and times.
download.py: Tools for downloading data and related metadata from supported providers.
fitting.py: Regression and curve fitting utilities.
geodetic.py: General geodetic and geometric processing tools.
geoprocessing.py: General geospatial processing utilities.
gps.py: GNSS data management helpers.
insar.py: InSAR data handling and utilities.
midas.py: Computes interseismic velocities for GNSS stations using time series analysis.
parameters.py: Centralized management of configuration parameters.
plot.py: Provides plotting and visualization tools for diagnostic and step-by-step evaluation.
reference.py: Utilities to reference InSAR time series in a global reference system (e.g., ITRF).
timeseries.py: Functions for downloading, reading, correcting, and analyzing GNSS time series.
write_meta.py: Generates metadata files describing the outputs, parameters, and evaluation metrics of processing steps.
Testing¶
- tests/
- Directory dedicated to unit tests for ensuring the reliability of the project’s features. Includes:
test_caching.py : Tests for cache-related functions.
test_installation.py : Tests for verifying installation setup and requirements.
Project Metadata Files¶
- .gitlab-ci.yml
GitLab CI configuration file. Defines the continuous integration pipeline, including linting, testing, documentation build, and deployment stages.
- .zenodo.json
Metadata file for Zenodo integration. Provides citation and versioning information to enable proper archival and DOI assignment.
- CITATION.cff
Citation file following the Citation File Format. Allows users and tools to cite the project correctly in academic work.
- LICENSE.txt
The license file defining the legal terms for usage, distribution, and modification of the project.
- README.rst
The main entry point for new users. Contains an overview of the project, installation instructions, usage examples, and references to the documentation.
- codemeta.json
Metadata file in CodeMeta format. Encodes project details in a machine-readable schema for interoperability with digital repositories and software catalogs.
- environment.yml
Conda environment specification. Lists all required dependencies and versions to reproduce the software environment.
- pyproject.toml
Minimal project configuration file. Defines build system requirements, package metadata, and optional tool settings.
- requirements.txt
Flat list of Python dependencies required to run the project. Commonly used with pip install -r requirements.txt.
- setup.py
Setup script for packaging and distributing the project. Provides installation instructions for setuptools and defines the entry points, dependencies, and metadata.