LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
|
Public Member Functions | |
__init__ (self, ApdbSqlConfig config) | |
VersionTuple | apdbImplementationVersion (cls) |
ApdbSqlConfig | init_database (cls, str db_url, *str|None schema_file=None, str|None schema_name=None, int|None read_sources_months=None, int|None read_forced_sources_months=None, bool use_insert_id=False, int|None connection_timeout=None, str|None dia_object_index=None, int|None htm_level=None, str|None htm_index_column=None, list[str]|None ra_dec_columns=None, str|None prefix=None, str|None namespace=None, bool drop=False) |
VersionTuple | apdbSchemaVersion (self) |
ApdbSqlReplica | get_replica (self) |
dict[str, int] | tableRowCount (self) |
Table|None | tableDef (self, ApdbTables table) |
pandas.DataFrame | getDiaObjects (self, Region region) |
pandas.DataFrame|None | getDiaSources (self, Region region, Iterable[int]|None object_ids, astropy.time.Time visit_time) |
pandas.DataFrame|None | getDiaForcedSources (self, Region region, Iterable[int]|None object_ids, astropy.time.Time visit_time) |
bool | containsVisitDetector (self, int visit, int detector) |
bool | containsCcdVisit (self, int ccdVisitId) |
pandas.DataFrame | getSSObjects (self) |
None | store (self, astropy.time.Time visit_time, pandas.DataFrame objects, pandas.DataFrame|None sources=None, pandas.DataFrame|None forced_sources=None) |
None | storeSSObjects (self, pandas.DataFrame objects) |
None | reassignDiaSources (self, Mapping[int, int] idMap) |
None | dailyJob (self) |
int | countUnassociatedObjects (self) |
ApdbMetadata | metadata (self) |
Public Attributes | |
config | |
pixelator | |
metadataSchemaVersionKey | |
metadataCodeVersionKey | |
metadataReplicaVersionKey | |
metadataConfigKey | |
Static Public Attributes | |
ConfigClass = ApdbSqlConfig | |
str | metadataSchemaVersionKey = "version:schema" |
str | metadataCodeVersionKey = "version:ApdbSql" |
str | metadataReplicaVersionKey = "version:ApdbSqlReplica" |
str | metadataConfigKey = "config:apdb-sql.json" |
Protected Member Functions | |
sqlalchemy.engine.Engine | _makeEngine (cls, ApdbSqlConfig config) |
None | _versionCheck (self, ApdbMetadataSql metadata) |
None | _makeSchema (cls, ApdbConfig config, bool drop=False) |
pandas.DataFrame | _getDiaSourcesInRegion (self, Region region, astropy.time.Time visit_time) |
pandas.DataFrame | _getDiaSourcesByIDs (self, list[int] object_ids, astropy.time.Time visit_time) |
pandas.DataFrame | _getSourcesByIDs (self, ApdbTables table_enum, list[int] object_ids, float midpointMjdTai_start) |
None | _storeReplicaChunk (self, ReplicaChunk replica_chunk, astropy.time.Time visit_time, sqlalchemy.engine.Connection connection) |
None | _storeDiaObjects (self, pandas.DataFrame objs, astropy.time.Time visit_time, ReplicaChunk|None replica_chunk, sqlalchemy.engine.Connection connection) |
None | _storeDiaSources (self, pandas.DataFrame sources, ReplicaChunk|None replica_chunk, sqlalchemy.engine.Connection connection) |
None | _storeDiaForcedSources (self, pandas.DataFrame sources, ReplicaChunk|None replica_chunk, sqlalchemy.engine.Connection connection) |
list[tuple[int, int]] | _htm_indices (self, Region region) |
sql.ColumnElement | _filterRegion (self, sqlalchemy.schema.Table table, Region region) |
pandas.DataFrame | _add_obj_htm_index (self, pandas.DataFrame df) |
pandas.DataFrame | _add_src_htm_index (self, pandas.DataFrame sources, pandas.DataFrame objs) |
Protected Attributes | |
_engine | |
_metadata | |
_schema | |
Static Protected Attributes | |
tuple | _frozen_parameters |
Implementation of APDB interface based on SQL database. The implementation is configured via standard ``pex_config`` mechanism using `ApdbSqlConfig` configuration class. For an example of different configurations check ``config/`` folder. Parameters ---------- config : `ApdbSqlConfig` Configuration object.
Definition at line 176 of file apdbSql.py.
lsst.dax.apdb.sql.apdbSql.ApdbSql.__init__ | ( | self, | |
ApdbSqlConfig | config ) |
Definition at line 212 of file apdbSql.py.
|
protected |
Calculate HTM index for each record and add it to a DataFrame. Notes ----- This overrides any existing column in a DataFrame with the same name (pixelId). Original DataFrame is not changed, copy of a DataFrame is returned.
Definition at line 1103 of file apdbSql.py.
|
protected |
Add pixelId column to DiaSource catalog. Notes ----- This method copies pixelId value from a matching DiaObject record. DiaObject catalog needs to have a pixelId column filled by ``_add_obj_htm_index`` method and DiaSource records need to be associated to DiaObjects via ``diaObjectId`` column. This overrides any existing column in a DataFrame with the same name (pixelId). Original DataFrame is not changed, copy of a DataFrame is returned.
Definition at line 1123 of file apdbSql.py.
|
protected |
Make SQLAlchemy expression for selecting records in a region.
Definition at line 1089 of file apdbSql.py.
|
protected |
Return catalog of DiaSource instances given set of DiaObject IDs. Parameters ---------- object_ids : Collection of DiaObject IDs visit_time : `astropy.time.Time` Time of the current visit. Returns ------- catalog : `pandas.DataFrame` Catalog contaning DiaSource records.
Definition at line 771 of file apdbSql.py.
|
protected |
Return catalog of DiaSource instances from given region. Parameters ---------- region : `lsst.sphgeom.Region` Region to search for DIASources. visit_time : `astropy.time.Time` Time of the current visit. Returns ------- catalog : `pandas.DataFrame` Catalog containing DiaSource records.
Definition at line 735 of file apdbSql.py.
|
protected |
Return catalog of DiaSource or DiaForcedSource instances given set of DiaObject IDs. Parameters ---------- table : `sqlalchemy.schema.Table` Database table. object_ids : Collection of DiaObject IDs midpointMjdTai_start : `float` Earliest midpointMjdTai to retrieve. Returns ------- catalog : `pandas.DataFrame` Catalog contaning DiaSource records. `None` is returned if ``read_sources_months`` configuration parameter is set to 0 or when ``object_ids`` is empty.
Definition at line 797 of file apdbSql.py.
|
protected |
Generate a set of HTM indices covering specified region. Parameters ---------- region: `sphgeom.Region` Region that needs to be indexed. Returns ------- Sequence of ranges, range is a tuple (minHtmID, maxHtmID).
Definition at line 1072 of file apdbSql.py.
|
protected |
Make SQLALchemy engine based on configured parameters. Parameters ---------- config : `ApdbSqlConfig` Configuration object.
Definition at line 259 of file apdbSql.py.
|
protected |
Definition at line 464 of file apdbSql.py.
|
protected |
Store a set of DiaForcedSources from current visit. Parameters ---------- sources : `pandas.DataFrame` Catalog containing DiaForcedSource records
Definition at line 1039 of file apdbSql.py.
|
protected |
Store catalog of DiaObjects from current visit. Parameters ---------- objs : `pandas.DataFrame` Catalog with DiaObject records. visit_time : `astropy.time.Time` Time of the visit. replica_chunk : `ReplicaChunk` Insert identifier.
Definition at line 880 of file apdbSql.py.
|
protected |
Store catalog of DiaSources from current visit. Parameters ---------- sources : `pandas.DataFrame` Catalog containing DiaSource records
Definition at line 1006 of file apdbSql.py.
|
protected |
Definition at line 856 of file apdbSql.py.
|
protected |
Check schema version compatibility.
Definition at line 292 of file apdbSql.py.
VersionTuple lsst.dax.apdb.sql.apdbSql.ApdbSql.apdbImplementationVersion | ( | cls | ) |
Return version number for current APDB implementation. Returns ------- version : `VersionTuple` Version of the code defined in implementation class.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 335 of file apdbSql.py.
VersionTuple lsst.dax.apdb.sql.apdbSql.ApdbSql.apdbSchemaVersion | ( | self | ) |
Return schema version number as defined in config file. Returns ------- version : `VersionTuple` Version of the schema defined in schema config file.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 427 of file apdbSql.py.
bool lsst.dax.apdb.sql.apdbSql.ApdbSql.containsCcdVisit | ( | self, | |
int | ccdVisitId ) |
Test whether data for a given visit-detector is present in the APDB. This method is a placeholder until `Apdb.containsVisitDetector` can be implemented. Parameters ---------- ccdVisitId : `int` The packed ID of the visit-detector to search for. Returns ------- present : `bool` `True` if some DiaSource records exist for the specified observation, `False` otherwise.
Definition at line 581 of file apdbSql.py.
bool lsst.dax.apdb.sql.apdbSql.ApdbSql.containsVisitDetector | ( | self, | |
int | visit, | ||
int | detector ) |
Test whether data for a given visit-detector is present in the APDB. Parameters ---------- visit, detector : `int` The ID of the visit-detector to search for. Returns ------- present : `bool` `True` if some DiaObject, DiaSource, or DiaForcedSource records exist for the specified observation, `False` otherwise.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 577 of file apdbSql.py.
int lsst.dax.apdb.sql.apdbSql.ApdbSql.countUnassociatedObjects | ( | self | ) |
Return the number of DiaObjects that have only one DiaSource associated with them. Used as part of ap_verify metrics. Returns ------- count : `int` Number of DiaObjects with exactly one associated DiaSource. Notes ----- This method can be very inefficient or slow in some implementations.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 712 of file apdbSql.py.
None lsst.dax.apdb.sql.apdbSql.ApdbSql.dailyJob | ( | self | ) |
Implement daily activities like cleanup/vacuum. What should be done during daily activities is determined by specific implementation.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 708 of file apdbSql.py.
ApdbSqlReplica lsst.dax.apdb.sql.apdbSql.ApdbSql.get_replica | ( | self | ) |
Return `ApdbReplica` instance for this database.
Definition at line 431 of file apdbSql.py.
pandas.DataFrame | None lsst.dax.apdb.sql.apdbSql.ApdbSql.getDiaForcedSources | ( | self, | |
Region | region, | ||
Iterable[int] | None | object_ids, | ||
astropy.time.Time | visit_time ) |
Return catalog of DiaForcedSource instances from a given region. Parameters ---------- region : `lsst.sphgeom.Region` Region to search for DIASources. object_ids : iterable [ `int` ], optional List of DiaObject IDs to further constrain the set of returned sources. If list is empty then empty catalog is returned with a correct schema. If `None` then returned sources are not constrained. Some implementations may not support latter case. visit_time : `astropy.time.Time` Time of the current visit. Returns ------- catalog : `pandas.DataFrame`, or `None` Catalog containing DiaSource records. `None` is returned if ``read_forced_sources_months`` configuration parameter is set to 0. Raises ------ NotImplementedError May be raised by some implementations if ``object_ids`` is `None`. Notes ----- This method returns DiaForcedSource catalog for a region with additional filtering based on DiaObject IDs. Only a subset of DiaSource history is returned limited by ``read_forced_sources_months`` config parameter, w.r.t. ``visit_time``. If ``object_ids`` is empty then an empty catalog is always returned with the correct schema (columns/types). If ``object_ids`` is `None` then no filtering is performed and some of the returned records may be outside the specified region.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 552 of file apdbSql.py.
pandas.DataFrame lsst.dax.apdb.sql.apdbSql.ApdbSql.getDiaObjects | ( | self, | |
Region | region ) |
Return catalog of DiaObject instances from a given region. This method returns only the last version of each DiaObject. Some records in a returned catalog may be outside the specified region, it is up to a client to ignore those records or cleanup the catalog before futher use. Parameters ---------- region : `lsst.sphgeom.Region` Region to search for DIAObjects. Returns ------- catalog : `pandas.DataFrame` Catalog containing DiaObject records for a region that may be a superset of the specified region.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 507 of file apdbSql.py.
pandas.DataFrame | None lsst.dax.apdb.sql.apdbSql.ApdbSql.getDiaSources | ( | self, | |
Region | region, | ||
Iterable[int] | None | object_ids, | ||
astropy.time.Time | visit_time ) |
Return catalog of DiaSource instances from a given region. Parameters ---------- region : `lsst.sphgeom.Region` Region to search for DIASources. object_ids : iterable [ `int` ], optional List of DiaObject IDs to further constrain the set of returned sources. If `None` then returned sources are not constrained. If list is empty then empty catalog is returned with a correct schema. visit_time : `astropy.time.Time` Time of the current visit. Returns ------- catalog : `pandas.DataFrame`, or `None` Catalog containing DiaSource records. `None` is returned if ``read_sources_months`` configuration parameter is set to 0. Notes ----- This method returns DiaSource catalog for a region with additional filtering based on DiaObject IDs. Only a subset of DiaSource history is returned limited by ``read_sources_months`` config parameter, w.r.t. ``visit_time``. If ``object_ids`` is empty then an empty catalog is always returned with the correct schema (columns/types). If ``object_ids`` is `None` then no filtering is performed and some of the returned records may be outside the specified region.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 538 of file apdbSql.py.
pandas.DataFrame lsst.dax.apdb.sql.apdbSql.ApdbSql.getSSObjects | ( | self | ) |
Return catalog of SSObject instances. Returns ------- catalog : `pandas.DataFrame` Catalog containing SSObject records, all existing records are returned.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 615 of file apdbSql.py.
ApdbSqlConfig lsst.dax.apdb.sql.apdbSql.ApdbSql.init_database | ( | cls, | |
str | db_url, | ||
*str | None | schema_file = None, | ||
str | None | schema_name = None, | ||
int | None | read_sources_months = None, | ||
int | None | read_forced_sources_months = None, | ||
bool | use_insert_id = False, | ||
int | None | connection_timeout = None, | ||
str | None | dia_object_index = None, | ||
int | None | htm_level = None, | ||
str | None | htm_index_column = None, | ||
list[str] | None | ra_dec_columns = None, | ||
str | None | prefix = None, | ||
str | None | namespace = None, | ||
bool | drop = False ) |
Initialize new APDB instance and make configuration object for it. Parameters ---------- db_url : `str` SQLAlchemy database URL. schema_file : `str`, optional Location of (YAML) configuration file with APDB schema. If not specified then default location will be used. schema_name : str | None Name of the schema in YAML configuration file. If not specified then default name will be used. read_sources_months : `int`, optional Number of months of history to read from DiaSource. read_forced_sources_months : `int`, optional Number of months of history to read from DiaForcedSource. use_insert_id : `bool` If True, make additional tables used for replication to PPDB. connection_timeout : `int`, optional Database connection timeout in seconds. dia_object_index : `str`, optional Indexing mode for DiaObject table. htm_level : `int`, optional HTM indexing level. htm_index_column : `str`, optional Name of a HTM index column for DiaObject and DiaSource tables. ra_dec_columns : `list` [`str`], optional Names of ra/dec columns in DiaObject table. prefix : `str`, optional Optional prefix for all table names. namespace : `str`, optional Name of the database schema for all APDB tables. If not specified then default schema is used. drop : `bool`, optional If `True` then drop existing tables before re-creating the schema. Returns ------- config : `ApdbSqlConfig` Resulting configuration object for a created APDB instance.
Definition at line 340 of file apdbSql.py.
ApdbMetadata lsst.dax.apdb.sql.apdbSql.ApdbSql.metadata | ( | self | ) |
Object controlling access to APDB metadata (`ApdbMetadata`).
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 729 of file apdbSql.py.
None lsst.dax.apdb.sql.apdbSql.ApdbSql.reassignDiaSources | ( | self, | |
Mapping[int, int] | idMap ) |
Associate DiaSources with SSObjects, dis-associating them from DiaObjects. Parameters ---------- idMap : `Mapping` Maps DiaSource IDs to their new SSObject IDs. Raises ------ ValueError Raised if DiaSource ID does not exist in the database.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 688 of file apdbSql.py.
None lsst.dax.apdb.sql.apdbSql.ApdbSql.store | ( | self, | |
astropy.time.Time | visit_time, | ||
pandas.DataFrame | objects, | ||
pandas.DataFrame | None | sources = None, | ||
pandas.DataFrame | None | forced_sources = None ) |
Store all three types of catalogs in the database. Parameters ---------- visit_time : `astropy.time.Time` Time of the visit. objects : `pandas.DataFrame` Catalog with DiaObject records. sources : `pandas.DataFrame`, optional Catalog with DiaSource records. forced_sources : `pandas.DataFrame`, optional Catalog with DiaForcedSource records. Notes ----- This methods takes DataFrame catalogs, their schema must be compatible with the schema of APDB table: - column names must correspond to database table columns - types and units of the columns must match database definitions, no unit conversion is performed presently - columns that have default values in database schema can be omitted from catalog - this method knows how to fill interval-related columns of DiaObject (validityStart, validityEnd) they do not need to appear in a catalog - source catalogs have ``diaObjectId`` column associating sources with objects
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 628 of file apdbSql.py.
None lsst.dax.apdb.sql.apdbSql.ApdbSql.storeSSObjects | ( | self, | |
pandas.DataFrame | objects ) |
Store or update SSObject catalog. Parameters ---------- objects : `pandas.DataFrame` Catalog with SSObject records. Notes ----- If SSObjects with matching IDs already exist in the database, their records will be updated with the information from provided records.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 656 of file apdbSql.py.
Table | None lsst.dax.apdb.sql.apdbSql.ApdbSql.tableDef | ( | self, | |
ApdbTables | table ) |
Return table schema definition for a given table. Parameters ---------- table : `ApdbTables` One of the known APDB tables. Returns ------- tableSchema : `.schema_model.Table` or `None` Table schema description, `None` is returned if table is not defined by this implementation.
Reimplemented from lsst.dax.apdb.apdb.Apdb.
Definition at line 459 of file apdbSql.py.
dict[str, int] lsst.dax.apdb.sql.apdbSql.ApdbSql.tableRowCount | ( | self | ) |
Return dictionary with the table names and row counts. Used by ``ap_proto`` to keep track of the size of the database tables. Depending on database technology this could be expensive operation. Returns ------- row_counts : `dict` Dict where key is a table name and value is a row count.
Definition at line 435 of file apdbSql.py.
|
protected |
Definition at line 213 of file apdbSql.py.
|
staticprotected |
Definition at line 203 of file apdbSql.py.
|
protected |
Definition at line 221 of file apdbSql.py.
|
protected |
Definition at line 233 of file apdbSql.py.
lsst.dax.apdb.sql.apdbSql.ApdbSql.config |
Definition at line 228 of file apdbSql.py.
|
static |
Definition at line 189 of file apdbSql.py.
|
static |
Definition at line 194 of file apdbSql.py.
lsst.dax.apdb.sql.apdbSql.ApdbSql.metadataCodeVersionKey |
Definition at line 494 of file apdbSql.py.
|
static |
Definition at line 200 of file apdbSql.py.
lsst.dax.apdb.sql.apdbSql.ApdbSql.metadataConfigKey |
Definition at line 505 of file apdbSql.py.
|
static |
Definition at line 197 of file apdbSql.py.
lsst.dax.apdb.sql.apdbSql.ApdbSql.metadataReplicaVersionKey |
Definition at line 498 of file apdbSql.py.
|
static |
Definition at line 191 of file apdbSql.py.
lsst.dax.apdb.sql.apdbSql.ApdbSql.metadataSchemaVersionKey |
Definition at line 493 of file apdbSql.py.
lsst.dax.apdb.sql.apdbSql.ApdbSql.pixelator |
Definition at line 247 of file apdbSql.py.