Source code for coronagraphoto.datasets
"""Data management utilities for coronagraphoto.
Fetches example data files for testing and documentation. The example
coronagraph YIP is delegated to ``yippy.fetch_yip`` so there is exactly
one canonical YIP hosting location across the workspace; example
ExoVista scenes still come from the coronalyze raw data folder.
Example:
>>> from coronagraphoto.datasets import fetch_coronagraph, fetch_scene
>>> coro_path = fetch_coronagraph()
>>> scene_path = fetch_scene()
"""
import pooch
from pooch import Unzip
from yippy import fetch_yip
REGISTRY = {
"scenes.zip": "md5:c777aefb65887249892093b1aba6d86a",
}
PIKACHU = pooch.create(
path=pooch.os_cache("coronagraphoto"),
base_url="https://github.com/CoreySpohn/coronalyze/raw/main/data/",
registry=REGISTRY,
)
[docs]
def fetch_coronagraph() -> str:
"""Fetch and unpack the example coronagraph YIP.
Delegates to ``yippy.fetch_yip("eac1_aavc_2d")`` so coronagraphoto
reuses yippy's canonical YIP cache instead of duplicating hosting.
Returns:
Path to the coronagraph directory.
"""
return fetch_yip("eac1_aavc_2d")
[docs]
def fetch_scene() -> str:
"""Fetch and unpack example ExoVista scene data.
Downloads a modified Solar System scene for demonstration.
Returns:
Path to the ExoVista FITS file.
"""
PIKACHU.fetch("scenes.zip", processor=Unzip())
return str(
PIKACHU.abspath / "scenes.zip.unzip" / "scenes" / "solar_system_mod.fits"
)
[docs]
def fetch_all() -> tuple[str, str]:
"""Fetch all example data.
Returns:
Tuple of (coronagraph_path, scene_path).
"""
return fetch_coronagraph(), fetch_scene()