Skip to main content

Fido client for SunPy to access CloudCatalog data holdings

Project description

sunpy-cloudcatalog

PyPI License SunPy Affiliated

A SunPy-affiliated package providing a sunpy.net.Fido client for querying file manifests from the CloudCatalog service.

This package integrates CloudCatalog datasets directly into the SunPy data discovery ecosystem.


Overview

sunpy_cloudcatalog implements a SunPy BaseClient that allows:

  • Searching CloudCatalog datasets via Fido.search()
  • Returning results as QueryResponseTable
  • Generating CSV manifest files via Fido.fetch()
  • Using custom query attributes (Bucket, DataID)

The package follows the official SunPy Fido extension mechanism: https://docs.sunpy.org/en/stable/topic_guide/extending_fido.html


Installation

From PyPI

pip install sunpy_cloudcatalog

Development Installation

git clone https://github.com/<org>/sunpy-cloudcatalog.git
cd sunpy-cloudcatalog
pip install -e .

Usage

Importing the package registers the client with SunPy automatically.

import sunpy_cloudcatalog

from sunpy.net import Fido, attrs as a
from sunpy_cloudcatalog import Bucket, DataID

Example Search

res = Fido.search(
    a.Time("2012-01-01", "2012-01-02"),
    Bucket("s3://gov-nasa-hdrl-data1/"),
    DataID("aia_0094"),
)

print(res[0][:2])

Fetch a Manifest

manifest = Fido.fetch(res)
print(list(manifest))

This writes a CSV manifest file describing the matching CloudCatalog entries.


Query Attributes

Bucket

CloudCatalog bucket URI:

Bucket("s3://gov-nasa-hdrl-data1/")

DataID

Dataset identifier within the CloudCatalog bucket:

DataID("aia_0094")

Returned Columns

Search results contain:

  • Start Time
  • End Time
  • Bucket
  • DataID
  • URL
  • Key
  • Size

Testing

Run unit tests:

pytest

Run integration tests (network required):

pytest -m integration

Project Structure

sunpy-cloudcatalog/
├── pyproject.toml
├── pytest.ini
├── src/
│   └── sunpy_cloudcatalog/
│       ├── __init__.py
│       ├── main.py
└── tests/

SunPy Affiliated Package Status

This project follows the SunPy affiliated package guidelines:

  • Uses the official Fido extension interface
  • Provides documentation and tests
  • Is versioned and distributed via PyPI
  • Maintains compatibility with supported SunPy releases

Affiliation information: https://sunpy.org/affiliated/


Contributing

Contributions are welcome. Please:

  1. Open an issue to discuss changes.
  2. Submit pull requests with tests.
  3. Ensure pytest passes locally.

License

The MIT License (MIT)

Project details


Download files

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

Source Distribution

sunpy_cloudcatalog-1.0.1.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

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

sunpy_cloudcatalog-1.0.1-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file sunpy_cloudcatalog-1.0.1.tar.gz.

File metadata

  • Download URL: sunpy_cloudcatalog-1.0.1.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for sunpy_cloudcatalog-1.0.1.tar.gz
Algorithm Hash digest
SHA256 159c9e7ce7d2641496d5a0714fed48dc3b77398836fd7a74c9fde46ae9eaf8fb
MD5 6259bbcca8285400bc2500ef59fe2a81
BLAKE2b-256 ef8dcc3c92895a32c794b75c8028cb04e754f7f2f02fd8e2502039323d864b67

See more details on using hashes here.

File details

Details for the file sunpy_cloudcatalog-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for sunpy_cloudcatalog-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a2517cee8fd5e41b3c7f2449e15413ed9b4fe076a18ef838a53456dd11b399ba
MD5 16065f350db64f0c1dd8168e4d91d09d
BLAKE2b-256 4fd853ebf36deef5969b225bb176e4c3ebae1a40020191b6e0e573fbd264cb5d

See more details on using hashes here.

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