obs_base v30.0.0 (2026-01-16)¶
New Features¶
Added
lsst.obs.base.utils.TableVStackfor efficient Astropy Table concatenation from dataset refs.This utility class was made for consolidating object tables in
pipe_tasksbut is broadly useful. Whileobs_baseisn’t the most logical place to put it, it’s the lowest level package it can go right now. (DM-52169)
Bug Fixes¶
The
FitsExposureFormatternow forces the data type returned to match the storage class, overriding the default type associated with the FITS file. (DM-52873)
Other Changes and Additions¶
Moved camera geometry parity flips (relative to sky) into camera geometry (between the
FOCAL_PLANEandFIELD_ANGLEcoordinate systems).Raw formatters still track whether a parity flip is needed in order to support old camera definitions. This may change in the future. (DM-20746)
Added
transmission_filter_detectorto curated calibration types. (DM-46526)Added new
lsst.obs.base.utils.iso_date_to_curated_calib_file_rootto unify the logic for converting an ISO date string to a curated calibrations file name. (DM-49900)Adjusted the logic for visit definition such that a visit will not be defined if it is known that the observation was not looking at the sky (such as with closed-dome tests). (DM-50167)
When defining visits, always update visit-detector regions if
update_records=True.Previously, we only updated visit-detector regions when the visit record itself changed, which made it impossible to fix cases where the code for the detector regions was changing but the visit record was not, as well as more mysterious cases where some visit-detector regions were not originally inserted at all. (DM-50446)
Dropped support for old dimension universes (and stopped requiring
rawdataset existence) inbutler define-visits. (DM-50661)Adapt
FitsExposureFormatterto the new interfaces for FITS compression. (DM-52879)Added
--skip-existingcommand line option tobutler ingest-raws. Skip existing raws is now the default (previously re-ingesting was an error). (DM-53163)Capped the number of input provenance datasets recorded in Exposure FITS files to 3,000 inputs. (DM-53326)
Modified
DefineVisitsTask.runto return a struct of visit counts. (DM-53622)Added timer log messages to raw ingest to allow reporting of metadata gathering and butler ingest times separately. (DM-53679)
obs_base v29.0.0 (2025-03-26)¶
New Features¶
Other Changes and Additions¶
Fixed problem ingesting on-sky raws into a Postgres database with numpy 2. (DM-49845)
obs_base v28.0.0 (2024-11-21)¶
API Changes¶
The
butler write-curated-calibrationscommand now requires at least one “label” to be included for the collection name.This prevents the common mistake of setting up
<instrument>/calibas aCALIBRATIONcollection rather than a more maintainableCHAINEDcollection. (DM-46297)
obs_base v27.0.0 (2024-06-05)¶
New Features¶
Added support for ingesting raw data into a version 6 dimension universe. This universe includes
day_obsandgroupas dimensions.Modified visit definition to allow a visit to be defined by
groupdimension.Added
Instrument.translatorClassclass property that can be used to specify the relevantastro_metadata_translator.MetadataTranslatorto use.Added
Instrument.group_name_to_group_idmethod to convert a group name string to an integer suitable for use as a visit ID. (DM-42636)
Added a
--update-recordsoption to thebutler ingest-rawscommand-line tool. This can be used if there has been a change in the metadata translator resulting in a change of definition of theexposurerecord. Only use this option if you understand why a change has occurred. (DM-43135)Corrected and clarified docstrings for
read_curated_calibs,read_one_calibandread_allfunctions, ensuring variable name consistency between these two andcheck_metadata. (DM-22465)
obs_base v26.0.0 (2023-08-03)¶
New Features¶
Added support for defining visits incrementally as exposures are ingested. This allows files from the telescope to be ingested one at a time whilst redefining the existing visits. Additionally
--update-recordsand--incrementalhave been added to thebutler define-visitscommand-line. (DM-36395)Added
transmission_curve dataset types to the set of curated calibrations.Updated the curated calibration code in the
Instrumentdefinition to allow for flexibility in required dimensions.Updated the read curated calibration code to allow for the same flexibility in dimensions. (DM-36597)
Raw ingest can now ask the
Instrumentclass for the raw dataset type definition. This means it is no longer required to subclass thegetDatasetTypemethod and allows various instruments to be ingested with the base class implementation. (DM-37950)DefineVisitsTasknow calls ObsCore table manager to update exposure regions after visit is defined. New configuration fieldupdateObsCoreTablefor that task can be set toFalseto disable exposure updates. (DM-38205)
An API Removal or Deprecation¶
Bug Fixes¶
Fixed curated calibration reading to check parent directory if there are no sub-directories. (DM-36598)
Other Changes and Additions¶
Modified the raw ingest task to use resolved
DatasetRef. (DM-38779)
obs_base v25.0.0 (2023-03-02)¶
New Features¶
Removed Gen2 code from package, including 2to3 conversion code. Use an older release to convert any remaining Gen2 repositories to Gen3.
Moved support for reading curated calibrations for
obs_*_datapackages frompipe_tasksand added unit tests for this code. (DM-35035)
Added
focusZtoMakeRawVisitInfoViaObsInfo. (DM-35186)
API Changes¶
The
ingest-rawsanddefine-visitssubcommands no longer allow multiple config settings within a single--configoption. We have decided that it is too dangerous to split on comma in the general case and so have removed that facility to be consistent with other commands. Use multiple--configoptions instead. (DM-35917)
An API Removal or Deprecation¶
Removed deprecated
filterLabelexposure component access. (DM-27811)
obs_base v24.0.0 (2022-08-30)¶
New Features¶
Visits will now be defined for all on-sky observations regardless of the observation type.
Changed
butler define-visitsso that it now takes a--whereoption. This can be used to restrict the visit definition to specific exposures. (DM-33848)
Add a
--fail-fastoption tobutler ingest-raws(DM-33891)Modify
ingest-rawsto support new schema for exposure records.Change
define-visitsto support new and old schema.Visit system is now an enum rather than a configuration value.
Add new visit system to group by
seq_startandseq_endand also allocate one-to-one visits for every exposure. (DM-33942)
lsst.obs.base.Instrumentis now a subclass oflsst.pipe.base.Instrument. This simplifies the dependencies ofctrl_mpexecby removing any need to understand camera geometry or curated calibrations.As part of this move the
butler register-instrumentcommand has been moved topipe_base.The
PackagesFormatterhas been moved todaf_butlerand thePexConfigFormatterhas been moved topipe_basesince both of these are required byctrl_mpexec.lsst.obs.base.utils.getInstrumenthas been replaced withInstrument.from_string. (DM-34105)
Made choice of required
ObservationInfoproperties configurable throughRawIngestTask.getObservationInfoSubsets.Added the concept of “dependency” records to be added to the registry before adding the exposure record; this makes it easier to satisfy foreign key constraints when the exposure relates to dimensions beyond the standard set.
Added
RawIngestTaskmethodsmakeExposureRecordandmakeDependencyRecordsto provide hooks for subclasses to provide values for additional columns. (DM-34175)
API Changes¶
Add a new option
--track-file-attrstobutler ingest-raws. This controls whether the ingested files should have file sizes and checksums tracked by the datastore. Use--no-track-files-attrsto disable size tracking. (DM-33086)
An API Removal or Deprecation¶
FilterDefinitionno longer supportslsst.afw.image.Filter. ThedefineFiltersandresetmethods have been removed, as have all wavelength parameters to theFilterDefinitionconstructor.The old
filtercomponent for exposures has been removed, and replaced with a newfiltercomponent backed bylsst.afw.image.FilterLabel. It functions identically to thefilterLabelcomponent, which has been deprecated. (DM-27177)Remove the
processesandpoolarguments and the--processescommand-line argument fromlsst.obs.base.DefineVisitsTask.runandbutler define-visits(respectively). These were already broken forprocesses > 1, and internal parallelization here is no longer useful now that this task just does database I/O, not raw metadata reads. (DM-33783)
obs_base v23.0.0 (2021-12-10)¶
New Features¶
2to3 conversion has been improved to add a dry run facility, to defer dataId expansion when not required, and to allow templates to be overridden. (DM-28636)
Reorganize the base
Exposureand raw formatters to improve efficiency and clarify component handling. (DM-28698)Add
ampparameter to the formatters for theExposureStorageClass, allowing single-amplifier subimage reads. (DM-29370)Change raw ingest to use a reproducible UUID5 dataset ID. This means that the dataset ID for a raw ingested in one repository will be identical to that used in another. For integer-based registries this change will have no effect. (DM-29950)
Add support for updating exposure and visit definitions in
RawIngestTaskandDefineVisitsTask. (DM-30866)Add support for forced updates of
instrument,detector, andphysical_filterdefinitions during instrument registration. (DM-31903)
Bug Fixes¶
Not all PSFs are persistable and now if one is encountered as part of composite disassembly it will be ignored. These types of PSFs were already silently dropped when writing a full
Exposure. (DM-29794)The
butler define-visitscommand now correctly uses the--collectionsoption to constrain the exposures that will be processed into visits. (DM-31079)
obs_base v22.0 (2021-04-01)¶
New Feature¶
Enhance raw data ingest such that there is no longer a need for a special subclass when ingesting DECam data. The metadata translator can now find additional headers itself. [DM-29166]
Add progress reporting to raw ingest, visit definition, and 2to3 conversion.
Change raw data ingest to support remote object stores. [DM-25965]
Raw data ingest now supports external metadata sidecar files or JSON per-directory index files. Creating these sidecar files in advance (using
astrometadata write-indexorastrometadata write-sidecar) can significantly improve ingest performance. This is especially useful if a particular test data set is commonly re-ingested. [DM-27476]Raw data ingest has been modified to provide a callback feature when files fail to be ingested or are successfully ingested. This allows reporting tools to make detailed reports when doing bulk ingest. [DM-29071]
2to3 conversion has been significantly improved. [DM-27147]
Other¶
When reading exposures the formatter now checks that the filter label in the DataId is consistent with the filter label read from the file. [DM-28583]