|
| __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) |
|
Apdb | from_config (cls, ApdbConfig config) |
|
Apdb | from_uri (cls, ResourcePathExpression uri) |
|
ConfigurableField | makeField (cls, str doc) |
|
|
Timer | _timer (self, str name, *Mapping[str, str|int]|None tags=None) |
|
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) |
|
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.
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.
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.
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.
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.
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.