Skip to main content

jrsrpname

Pipeline Status Security Python License Latest Release

A Python implementation of the QVF file-naming convention for large satellite imagery archives, as described in:

Flood, N. and Danaher, T. (2013). A File Naming Convention for a Large Satellite Imagery Archive: QVF -- a case study. doi:10.6084/m9.figshare.875298.v1

@article{Flood2013,
    author = "Neil Flood and Tim Danaher",
    title = "{A File Naming Convention for a Large Satellite Imagery Archive: QVF - a case study}",
    year = "2013",
    month = "12",
    url = "https://figshare.com/articles/journal_contribution/A_File_Naming_Convention_for_a_Large_Satellite_Imagery_Archive_QVF_a_case_study/875298",
    doi = "10.6084/m9.figshare.875298.v1"
}

Provenance

jrsrpname is an independent reimplementation, built from the naming-convention description published in the paper above. It is not a port of, and shares no code with, any existing implementation.

The author has prior familiarity with an existing closed-source implementation of this convention (also referred to as qvf.py), whose copyright ownership is not clearly established. To avoid any ambiguity about derivation, jrsrpname deliberately uses a different name and a different internal design, and was written directly from the published paper rather than from that source.

Most of the implementation was written with the assistance of Claude (Anthropic). Unlike the author, Claude was never given, and did not access, view, or otherwise reference qvf.py or any other prior implementation of this convention at any point -- its only source for the naming/parsing specification was the published paper above, fetched directly from figshare.

Installation

python3 -m pip install jrsrpname

Usage

Usage follows closely to that as described in Flood, N. and Danaher, T. (2013), but uses a more object oriented approach. The basic approach is to parse a string representing a QVF filename:

from jrsrpname import QVFName
name = QVFName.parse("l5tmre_p090r079_20090914_dbgm6.img")

The name will then have as members the described what, where, when, processing, suffix components:

print(name.what)
# l5tmre
print(name.where)
# p090r079
print(name.when)
# 20090914
print(name.processing)
# dbgm6
print(name.suffix)
# img

Modifications to any of these are done with the replace method:

newname = name.replace(where='qld')
print(newname)
# l5tmre_qld_20090914_dbgm6.img

Development

This project uses uv.

# install dev deps
uv sync

# run tests
uv run pytest tests/

# lint / format
uv run ruff check .
uv run ruff format .

# install git hooks (required before contributing -- see CONTRIBUTING.md)
uv run pre-commit install

See CONTRIBUTING.md for more.

Metadata

Release files for jrsrpname 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jrsrpname 0.1.0
File Size Uploaded
jrsrpname-0.1.0.tar.gz 73.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jrsrpname 0.1.0
File Interpreter ABI Platform
jrsrpname-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 84.7 kB

Release files / jrsrpname-0.1.0.tar.gz

Download URL jrsrpname-0.1.0.tar.gz
Size 73.8 kB
Tags Source
SHA-256 checksum
How to use checksums
142ad74b272c794f02b46f64603b229ecde1b9d0b435d9ae4bcc0b571bc4709f
BLAKE2b-256 checksum
How to use checksums
3a74b3343a20fb70a674472fda73d9f1277b4a1db735b2c87f3faf71ee84b3c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.24

Release files / jrsrpname-0.1.0-py3-none-any.whl

Download URL jrsrpname-0.1.0-py3-none-any.whl
Size 10.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
73de5e7fb16afdb2cc9b14a034ffaec3272a9d8b1fc5e29d84f3daf3242edba4
BLAKE2b-256 checksum
How to use checksums
50b8aeb75a51410fc290ff45f37fc21748ab08f81147dc08433cbc9be010fdfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.24

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page