steadfastasart/geoscience-skills/pooch

Claude Code and agent skill by steadfastasart/geoscience-skills

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Data file fetching and caching for geoscience applications. Download sample datasets with automatic caching, checksum verification, and multiple download sources. Use when the agent needs to: (1) Download datasets from URLs or DOIs, (2) Cache files locally with automatic verification, (3) Verify file integrity with SHA256/MD5 hashes, (4) Extract compressed archives (ZIP, TAR, GZIP), (5) Create data registries for reproducible workflows, (6) Fetch from Zenodo or other repositories.

Install

npx vskill@latest install steadfastasart/geoscience-skills/pooch

SKILL.md

Pooch - Data File Fetching

Quick Reference

python
import pooch
# Download single file
file_path = pooch.retrieve(
url="https://example.com/data.csv",
known_hash="sha256:abc123...", # None to skip verification
fname="data.csv",
path=pooch.os_cache("myproject")
)
# Create registry for multiple files
REGISTRY = pooch.create(
path=pooch.os_cache("myproject"),
base_url="https://example.com/data/",
registry={"data.csv": "sha256:abc123...", "model.nc": "sha256:def456..."}
)
data_file = REGISTRY.fetch("data.csv")
# Generate hash for local file
file_hash = pooch.file_hash("/path/to/file.csv")

Key Functions

FunctionPurpose
pooch.retrieve()Download single file with caching
pooch.create()Create custom data registry
pooch.file_hash()Generate SHA256/MD5 hash of file
pooch.os_cache()Get OS-specific cache directory

Essential Operations

Download Files
python
# With hash verification
file_path = pooch.retrieve(
url="https://example.com/data.nc",
known_hash="sha256:abc123..."
)
# Without verification (development only)
file_path = pooch.retrieve(url="https://example.com/data.nc", known_hash=None)
# From Zenodo DOI
file_path = pooch.retrieve(
url="doi:10.5281/zenodo.1234567/data.zip",
known_hash="sha256:abc123..."
)
Extract Archives
python
# ZIP archive
files = pooch.retrieve(
url="https://example.com/data.zip",
known_hash="sha256:abc123...",
processor=pooch.Unzip()
)
# Decompress single gzip file
file_path = pooch.retrieve(
url="https://example.com/data.csv.gz",
known_hash="sha256:abc123...",
processor=pooch.Decompress(name="data.csv")
)
Additional Options
python
# Progress bar for large downloads
file_path = pooch.retrieve(url=url, known_hash=hash, progressbar=True)
# HTTP authentication
file_path = pooch.retrieve(
url="https://example.com/protected/data.csv",
known_hash=None,
downloader=pooch.HTTPDownloader(auth=("user", "pass"))
)

Processor Options

ProcessorPurpose
Unzip()Extract ZIP archives
Untar()Extract TAR/TAR.GZ archives
Decompress()Decompress gzip, bz2, lzma, xz

Cache Locations

OSDefault Path
Linux~/.cache/<project>
macOS~/Library/Caches/<project>
WindowsC:\Users\<user>\AppData\Local\<project>\Cache

Error Handling

python
try:
file_path = pooch.retrieve(url=url, known_hash=hash)
except pooch.exceptions.HTTPDownloadError:
print("Download failed - check URL")
except pooch.exceptions.DownloadError:
print("Network issue")

When to Use vs Alternatives

ToolBest ForLimitations
poochReproducible data downloads, hash verification, cachingNot a version control system
urllib/requestsSimple one-off downloads, custom HTTP logicNo caching, no hash verification
DVCData version control alongside gitHeavier setup, requires remote storage
wgetQuick command-line downloadsNo Python integration, no caching logic

Use pooch when you need reproducible data downloads with automatic caching and integrity verification, especially for scientific data registries.

Consider alternatives when you need full data version control with git integration (use DVC), simple one-off downloads without caching needs (use requests), or command-line batch downloads (use wget).

Common Workflows

Set up reproducible data download with registry
  • [ ] Identify all required data files and their URLs
  • [ ] Generate SHA256 hashes with pooch.file_hash() for each file
  • [ ] Create registry with pooch.create() specifying base URL and file hashes
  • [ ] Fetch files with REGISTRY.fetch() in analysis scripts
  • [ ] Add processors for compressed files (Unzip(), Untar(), Decompress())
  • [ ] Test registry by clearing cache and re-fetching
  • [ ] Document registry in project README for collaborators

References

  • [Registry Configuration](references/registry.md) - Create and manage file registries

Scripts

  • [scripts/create_registry.py](scripts/create_registry.py) - Generate registry from local files

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/steadfastasart/geoscience-skills/pooch/badge)](https://verified-skill.com/skills/steadfastasart/geoscience-skills/pooch)

Something wrong with this skill or its page? Tell us.