$npx skillfedfor your agent

lsst-daf-butler

An abstraction layer for reading and writing astronomical data to datastores.

With conditionsPyPI AstronomyReleased Aug 2026176.6K downloads / moBSD-3-Clause OR GPL-3.0-or-laterPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — lsst_daf_butler-30.2026.3300-py3-none-any.whl
v30.2026.3300 · released 2026-08-13 · Python >=3.11.0 · 11 runtime deps: astropy, pyyaml, sqlalchemy, click, lsst-sphgeom, lsst-utils, lsst-resources, deprecated

Yes, if you are working within the LSST/Rubin Observatory ecosystem or need to integrate with their data pipelines. The package is actively maintained, has no known security vulnerabilities, and installs cleanly. However, it is a specialized tool tightly coupled to a specific observatory's data model; it is not a general-purpose data access layer. Verify that your use case aligns with LSST's data organization before adopting it.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.11 or higher.
  • If using PyArrow version 18 or later, set ARROW_DEFAULT_MEMORY_POOL=jemalloc environment variable to avoid memory leaks when reading Parquet files.
  • Active maintenance with a release within the last day.

License · maintenance · safety

BSD-3-Clause OR GPL-3.0-or-later (unclear) — Dual-licensed under GPL-3.0-or-later and BSD-3-Clause with unclear license treatment in the package metadata. Users may choose which license to apply, but should review both gpl-3.0.txt and bsd_license.txt files to understand their obligations.

last release 2026-08-13 (1 days) · last repo commit 2026-08-14 · 15 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 176,601 downloads/mo, #10,239 on PyPI

Verify before relying

pip install lsst-daf-butler

from lsst.daf.butler import Butler

butler = Butler(config='path/to/butler.yaml')
dataset = butler.get('dataset_type', dataId={})
  • Whether the memory leak workaround (ARROW_DEFAULT_MEMORY_POOL=jemalloc) is still necessary for current PyArrow versions
  • Whether the package is suitable for non-LSST/Rubin Observatory use cases or if it is tightly coupled to that ecosystem
Same gist for agents: .md · .json

What it is and what it does

lsst-daf-butler is a data access framework designed for the Vera C. Rubin Observatory's LSST project, providing a Python abstraction layer that sits between scientific applications and underlying datastores. It handles the storage and retrieval of astronomical image data and related metadata, allowing researchers to work with large datasets without needing to know the details of the underlying storage system—whether files are stored locally, in cloud buckets, or in databases.

The package is built on a stack of mature dependencies: SQLAlchemy for database operations, PyArrow for efficient columnar data handling, NumPy for numerical work, and Pydantic for data validation. It requires Python 3.11 or higher and is actively maintained by the LSST collaboration. The documentation notes a known memory leak issue in PyArrow version 18 and later when reading Parquet files with the default allocator; the workaround is to set the ARROW_DEFAULT_MEMORY_POOL environment variable to jemalloc.

Use it for

  • Access and query large astronomical survey datasets from the Rubin Observatory without managing storage details directly
  • Build data pipelines that read and write image metadata and provenance information in a standardized way
  • Integrate with LSST processing systems that rely on the butler for consistent data organization
  • Retrieve Parquet-formatted astronomical data while managing memory efficiently in long-running analysis jobs

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you are working within the LSST/Rubin Observatory ecosystem or need to integrate with their data pipelines.

The package is actively maintained, has no known security vulnerabilities, and installs cleanly. However, it is a specialized tool tightly coupled to a specific observatory's data model; it is not a general-purpose data access layer. Verify that your use case aligns with LSST's data organization before adopting it.

Install

lsst-daf-butler on PyPI

Before you install

Active maintenance with a release within the last day. Low install friction with a pure-Python wheel. Requires Python 3.11 or higher and depends on a moderately sized stack of scientific and database libraries (SQLAlchemy, PyArrow, NumPy, Pydantic).

Requires Python 3.11 or higher. If using PyArrow version 18 or later, set ARROW_DEFAULT_MEMORY_POOL=jemalloc environment variable to avoid memory leaks when reading Parquet files.

License in practice

Dual-licensed under GPL-3.0-or-later and BSD-3-Clause with unclear license treatment in the package metadata. Users may choose which license to apply, but should review both gpl-3.0.txt and bsd_license.txt files to understand their obligations.

Quickstart

pip install lsst-daf-butler

from lsst.daf.butler import Butler

butler = Butler(config='path/to/butler.yaml')
dataset = butler.get('dataset_type', dataId={})

Verify before relying

  • Whether the memory leak workaround (ARROW_DEFAULT_MEMORY_POOL=jemalloc) is still necessary for current PyArrow versions
  • Whether the package is suitable for non-LSST/Rubin Observatory use cases or if it is tightly coupled to that ecosystem

Package facts

LicenseBSD-3-Clause OR GPL-3.0-or-later unclear
Python supportSupports the current Python release >=3.11.0
Install frictionLow. Pure-Python wheel
Runtime dependencies
11 packages
astropypyyamlsqlalchemyclicklsst-sphgeomlsst-utilslsst-resourcesdeprecatedpydanticpyarrownumpy
MaintenanceActively maintained 1 days since the last release
Last repo commit
First released
Downloads176,601 / month, #10,239 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Intended Audience :: Science/ResearchOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Scientific/Engineering :: Astronomy

Evidence: lsst_daf_butler-30.2026.3300-py3-none-any.whl

Tags

Capabilities
astronomical data access frameworkdatastore abstraction layerlsst data butlerscientific data managementrubin observatory data accessparquet data retrievalastronomy data pipeline
Topics
astronomydata-accesslsst
PyPI keywords
lsst

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “astronomical data access framework”

  • lsst-daf-butlerProvides an abstraction layer for reading and writing astronomical…
  • astroqueryAstroquery provides a Python interface to query and retrieve data…
  • specutilsSpecutils provides Python representations of astronomical spectra and…

Give your agent the search over MCP, or paste the wish link into any chat.

More Astronomy packages

albumentations Worth it
PyPI · Libraries · released May 2025

Albumentations applies image transformations to training data, supporting classification, segmentation, object detection, and pose estimation with a unified API for images, masks, bounding boxes, and keypoints.

Install it if you need a unified, production-grade augmentation API for computer vision tasks.

MITpure Python · 3.9+aging
5.5Mdownloads / mo
convertdate With conditions
PyPI · Astronomy · released Feb 2026

Converts dates between the Gregorian calendar and 15+ alternative calendar systems including Hebrew, Islamic, Julian, French Republican, Mayan, and others, plus calculates holidays across North American, Jewish, and other traditions.

Install only if you actually need multi-calendar support; the single pymeeus dependency is manageable.

MITpure Pythonaging
4.4Mdownloads / mo
jdcal With conditions
PyPI · Astronomy · released Apr 2019

Converts between Julian dates and Gregorian or Julian calendar dates, storing Julian dates as pairs of floating-point numbers for maximum precision.

However, be aware that it will not receive bug fixes or updates—verify that its behavior matches your requirements before committing to it in a production system.

BSD-3-Clausepure Pythonabandoned
3.8Mdownloads / mo
pyerfa Worth it
PyPI · Physics · released Nov 2024

PyERFA wraps the ERFA C library (Essential Routines for Fundamental Astronomy) as NumPy universal functions, exposing key astronomy algorithms for scalar or array inputs.

Install it if you need fundamental astronomy calculations or if another package depends on it.

BSD-3-Clausecompiled wheel · 3.9+
3.4Mdownloads / mo
PyMeeus With conditions
PyPI · Astronomy · released Dec 2022

PyMeeus implements astronomical algorithms from Jean Meeus's classical reference, providing Python classes for computing celestial positions, lunar phases, planetary phenomena, and time conversions with minimal dependencies.

However, verify Python version compatibility first and consider whether other libraries better suit production-grade use cases.

LGPL-3.0-onlybuilds from source
2.8Mdownloads / mo
ephem Worth it
PyPI · Astronomy · released Feb 2026

PyEphem computes high-precision positions of planets, moons, stars, comets, and asteroids in the sky for any observer location and date, using C-based numeric routines from the XEphem astronomy application.

MITcompiled wheel
1.6Mdownloads / mo

See also astroquery · skyfield-data · asdf-standard · asdf-astropy · pyds9 · pyvo · datasets · photutils · specutils · regions