# butler_attributes

value: 1.0.0
name:
version:lsst.daf.butler.registry.datasets.byDimensions._manager.ByDimensionsDatasetRecordStorageManager


value: 9cbbe42835190384c9e20669ed40690d
name:
schema_digest:lsst.daf.butler.registry.datasets.byDimensions._manager.ByDimensionsDatasetRecordStorageManager


name: config:dimensions.json
value:
{"version": 0, "skypix": {"common": "htm7", "htm": {"class": "lsst.sphgeom.HtmPixelization", "max_level": 24}}, "elements": {"instrument": {"doc": "An entity that produces observations.  An instrument defines a set of physical_filters and detectors and a numbering system for the exposures and visits that represent observations with it.\n", "keys": [{"name": "name", "type": "string", "length": 16}], "metadata": [{"name": "visit_max", "type": "int", "doc": "Maximum value for the 'visit' field for visits associated with this instrument (exclusive).\n"}, {"name": "exposure_max", "type": "int", "doc": "Maximum value for the 'exposure' field for exposures associated with this instrument (exclusive).\n"}, {"name": "detector_max", "type": "int", "doc": "Maximum value for the 'detector' field for detectors associated with this instrument (exclusive).\n"}, {"name": "class_name", "type": "string", "length": 64, "doc": "Full class name of the Instrument class associated with this instrument.\n"}], "governor": true, "storage": {"cls": "lsst.daf.butler.registry.dimensions.governor.BasicGovernorDimensionRecordStorage"}}, "band": {"doc": "A filter that is not associated with a particular instrument.  An abstract filter can be used to relate similar physical filters, and is typically the filter associated with coadds.\n", "keys": [{"name": "name", "type": "string", "length": 32}], "storage": {"cls": "lsst.daf.butler.registry.dimensions.caching.CachingDimensionRecordStorage", "nested": {"cls": "lsst.daf.butler.registry.dimensions.query.QueryDimensionRecordStorage", "view_of": "physical_filter"}}}, "physical_filter": {"doc": "A filter associated with a particular instrument.  physical_filters are used to identify datasets that can only be associated with a single observation.\n", "keys": [{"name": "name", "type": "string", "length": 32}], "requires": ["instrument"], "implies": ["band"], "storage": {"cls": "lsst.daf.butler.registry.dimensions.caching.CachingDimensionRecordStorage", "nested": {"cls": "lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage"}}}, "subfilter": {"doc": "A mathematical division of an band. Subfilters are used to model wavelength-dependent effects such as differential chromatic refraction.\n", "keys": [{"name": "id", "type": "int"}], "requires": ["band"], "storage": {"cls": "lsst.daf.butler.registry.dimensions.caching.CachingDimensionRecordStorage", "nested": {"cls": "lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage"}}}, "detector": {"doc": "A detector associated with a particular instrument (not an observation of that detector; that requires specifying an exposure or visit as well).\n", "keys": [{"name": "id", "type": "int"}, {"name": "full_name", "type": "string", "length": 32}], "requires": ["instrument"], "metadata": [{"name": "name_in_raft", "type": "string", "length": 32}, {"name": "raft", "type": "string", "length": 32, "doc": "A string name for a group of detectors with an instrument-dependent interpretation.\n"}, {"name": "purpose", "type": "string", "length": 32, "doc": "Role of the detector; typically one of \"SCIENCE\", \"WAVEFRONT\", or \"GUIDE\", though instruments may define additional values.\n"}], "storage": {"cls": "lsst.daf.butler.registry.dimensions.caching.CachingDimensionRecordStorage", "nested": {"cls": "lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage"}}}, "visit": {"doc": "A sequence of observations processed together, comprised of one or more exposures from the same instrument with the same pointing and physical_filter. The visit table contains metadata that is both meaningful only for science exposures and the same for all exposures in a visit.\n", "keys": [{"name": "id", "type": "int"}, {"name": "name", "type": "string", "length": 64}], "requires": ["instrument"], "implies": ["physical_filter", "visit_system"], "metadata": [{"name": "day_obs", "type": "int", "doc": "Day of observation as defined by the observatory (YYYYMMDD format). If a visit crosses multiple days this entry will be the earliest day of any of the exposures that make up the visit.\n"}, {"name": "exposure_time", "type": "float", "doc": "The total exposure time of the visit in seconds.  This should be equal to the sum of the exposure_time values for all constituent exposures (i.e. it should not include time between exposures).\n"}, {"name": "target_name", "type": "string", "length": 64, "doc": "Object of interest for this visit or survey field name."}, {"name": "observation_reason", "type": "string", "length": 32, "doc": "The reason this visit was taken. (e.g. science, filter scan, unknown, various).\n"}, {"name": "science_program", "type": "string", "length": 64, "doc": "Observing program (survey or proposal) identifier."}, {"name": "zenith_angle", "type": "float", "doc": "Approximate zenith angle in degrees during the visit. Can only be approximate since it is continuously changing during and observation and multiple visits can be combined from a relatively long period.\n"}], "storage": {"cls": "lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage"}}, "exposure": {"doc": "An observation associated with a particular instrument.  All direct observations are identified with an exposure, but derived datasets that may be based on more than one exposure (e.g. multiple snaps) are typically identified with visits instead, even for instruments that don't have multiple exposures per visit.  As a result, instruments that don't have multiple exposures per visit will typically have visit entries that are essentially duplicates of their exposure entries.\nThe exposure table contains metadata entries that are relevant for calibration exposures, and does not duplicate entries in visit that would be the same for all exposures within a visit with the exception of the exposure.group entry.\n", "keys": [{"name": "id", "type": "int"}, {"name": "obs_id", "type": "string", "length": 64}], "requires": ["instrument"], "implies": ["physical_filter"], "metadata": [{"name": "exposure_time", "type": "float", "doc": "Duration of the exposure with shutter open (seconds)."}, {"name": "dark_time", "type": "float", "doc": "Duration of the exposure with shutter closed (seconds)."}, {"name": "observation_type", "type": "string", "length": 16, "doc": "The observation type of this exposure (e.g. dark, bias, science)."}, {"name": "observation_reason", "type": "string", "length": 32, "doc": "The reason this observation was taken. (e.g. science, filter scan, unknown).\n"}, {"name": "day_obs", "type": "int", "doc": "Day of observation as defined by the observatory (YYYYMMDD format).\n"}, {"name": "seq_num", "type": "int", "doc": "Counter for the observation within a larger sequence. Context of the sequence number is observatory specific. Can be a global counter or counter within day_obs.\n"}, {"name": "group_name", "type": "string", "length": 64, "doc": "String group identifier associated with this exposure by the acquisition system.\n"}, {"name": "group_id", "type": "int", "doc": "Integer group identifier associated with this exposure by the acquisition system.\n"}, {"name": "target_name", "type": "string", "length": 64, "doc": "Object of interest for this observation or survey field name."}, {"name": "science_program", "type": "string", "length": 64, "doc": "Observing program (survey, proposal, engineering project) identifier.\n"}, {"name": "tracking_ra", "type": "float", "doc": "Tracking ICRS Right Ascension of boresight in degrees. Can be NULL for observations that are not on sky.\n"}, {"name": "tracking_dec", "type": "float", "doc": "Tracking ICRS Declination of boresight in degrees. Can be NULL for observations that are not on sky.\n"}, {"name": "sky_angle", "type": "float", "doc": "Angle of the instrument focal plane on the sky in degrees. Can be NULL for observations that are not on sky, or for observations where the sky angle changes during the observation.\n"}, {"name": "zenith_angle", "type": "float", "doc": "Angle in degrees from the zenith at the start of the exposure.\n"}], "storage": {"cls": "lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage"}}, "skymap": {"doc": "A set of tracts and patches that subdivide the sky into rectangular regions with simple projections and intentional overlaps.\n", "keys": [{"name": "name", "type": "string", "length": 64}, {"name": "hash", "type": "hash", "nbytes": 40, "doc": "A hash of the skymap's parameters.\n"}], "metadata": [{"name": "tract_max", "type": "int", "doc": "Maximum ID for tracts in this skymap, exclusive.\n"}, {"name": "patch_nx_max", "type": "int", "doc": "Number of patches in the x direction in each tract.\n"}, {"name": "patch_ny_max", "type": "int", "doc": "Number of patches in the y direction in each tract.\n"}], "governor": true, "storage": {"cls": "lsst.daf.butler.registry.dimensions.governor.BasicGovernorDimensionRecordStorage"}}, "tract": {"doc": "A large rectangular region mapped to the sky with a single map projection, associated with a particular skymap.\n", "keys": [{"name": "id", "type": "int"}], "requires": ["skymap"], "storage": {"cls": "lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage"}}, "patch": {"doc": "A rectangular region within a tract.\n", "keys": [{"name": "id", "type": "int"}], "requires": ["skymap", "tract"], "metadata": [{"name": "cell_x", "type": "int", "nullable": false, "doc": "Which column this patch occupies in the tract's grid of patches.\n"}, {"name": "cell_y", "type": "int", "nullable": false, "doc": "Which row this patch occupies in the tract's grid of patches.\n"}], "storage": {"cls": "lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage"}}, "visit_detector_region": {"doc": "A many-to-many join table that provides region information for visit-detector combinations.\n", "requires": ["visit", "detector"], "storage": {"cls": "lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage"}}, "visit_system": {"doc": "A system of self-consistent visit definitions, within which each exposure should appear at most once.\n", "keys": [{"name": "id", "type": "int"}, {"name": "name", "type": "string", "length": 32}], "requires": ["instrument"], "storage": {"cls": "lsst.daf.butler.registry.dimensions.caching.CachingDimensionRecordStorage", "nested": {"cls": "lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage"}}}, "visit_definition": {"doc": "A many-to-many join table that relates exposures to the visits they belong to.\n", "requires": ["exposure", "visit_system"], "implies": ["visit"], "always_join": true, "storage": {"cls": "lsst.daf.butler.registry.dimensions.table.TableDimensionRecordStorage"}}}, "topology": {"spatial": {"observation_regions": ["visit_detector_region", "visit"], "skymap_regions": ["patch", "tract"]}, "temporal": {"observation_timespans": ["exposure", "visit"]}}, "packers": {"visit_detector": {"fixed": ["instrument"], "dimensions": ["instrument", "visit", "detector"], "cls": "lsst.daf.butler.instrument.ObservationDimensionPacker"}, "exposure_detector": {"fixed": ["instrument"], "dimensions": ["instrument", "exposure", "detector"], "cls": "lsst.daf.butler.instrument.ObservationDimensionPacker"}, "tract_patch": {"fixed": ["skymap"], "dimensions": ["skymap", "tract", "patch"], "cls": "lsst.skymap.packers.SkyMapDimensionPacker"}, "tract_patch_band": {"fixed": ["skymap"], "dimensions": ["skymap", "tract", "patch", "band"], "cls": "lsst.skymap.packers.SkyMapDimensionPacker"}}}


