|
|
| __init__ (self, ApdbSqlConfig config) |
| |
| VersionTuple | apdbImplementationVersion (cls) |
| |
| ApdbSqlConfig | init_database (cls, str db_url, *, str|None schema_file=None, str|None ss_schema_file=None, int|None read_sources_months=None, int|None read_forced_sources_months=None, bool enable_replica=False, int|None connection_timeout=None, str|None dia_object_index=None, int|None htm_level=None, str|None htm_index_column=None, tuple[str, str]|None ra_dec_columns=None, str|None prefix=None, str|None namespace=None, bool drop=False) |
| |
| ApdbSqlReplica | get_replica (self) |
| |
| dict[str, int] | tableRowCount (self) |
| |
| ApdbSqlConfig | getConfig (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, astropy.time.Time|None start_time=None) |
| |
| pandas.DataFrame|None | getDiaForcedSources (self, Region region, Iterable[int]|None object_ids, astropy.time.Time visit_time, astropy.time.Time|None start_time=None) |
| |
| bool | containsVisitDetector (self, int visit, int detector, Region region, astropy.time.Time visit_time) |
| |
| None | store (self, astropy.time.Time visit_time, pandas.DataFrame objects, pandas.DataFrame|None sources=None, pandas.DataFrame|None forced_sources=None) |
| |
| None | reassignDiaSources (self, Mapping[int, int] idMap) |
| |
| None | dailyJob (self) |
| |
| int | countUnassociatedObjects (self) |
| |
| ApdbMetadata | metadata (self) |
| |
| ApdbSqlAdmin | admin (self) |
| |
| Apdb | from_config (cls, ApdbConfig config) |
| |
| Apdb | from_uri (cls, ResourcePathExpression uri) |
| |
|
| Timer | _timer (self, str name, *, Mapping[str, str|int]|None tags=None) |
| |
| sqlalchemy.engine.Engine | _makeEngine (cls, ApdbSqlConfig config, *, bool create) |
| |
| sqlalchemy.engine.URL|str | _connection_url (cls, str config_url, *, bool create) |
| |
| str | _update_sqlite_url (cls, str url_string) |
| |
| VersionTuple | _versionCheck (self, ApdbMetadataSql metadata) |
| |
|
None | _makeSchema (cls, ApdbConfig config, bool drop=False) |
| |
| pandas.DataFrame | _getDiaSourcesInRegion (self, Region region, float start_time_mjdTai) |
| |
| pandas.DataFrame | _getDiaSourcesByIDs (self, list[int] object_ids, float start_time_mjdTai) |
| |
| pandas.DataFrame | _getSourcesByIDs (self, ApdbTables table_enum, list[int] object_ids, float midpointMjdTai_start) |
| |
|
None | _storeReplicaChunk (self, ReplicaChunk replica_chunk, 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) |
| |
| None | _storeUpdateRecords (self, Iterable[ApdbUpdateRecord] records, ReplicaChunk chunk, *, bool store_chunk=False, sqlalchemy.engine.Connection|None connection=None) |
| |
| list[tuple[int, int]] | _htm_indices (self, Region region) |
| |
| sql.ColumnElement | _filterRegion (self, sqlalchemy.schema.Table table, Region region) |
| |
| pandas.DataFrame | _add_spatial_index (self, pandas.DataFrame df) |
| |
| pandas.DataFrame | _fix_input_timestamps (self, pandas.DataFrame df) |
| |
| pandas.DataFrame | _fix_result_timestamps (self, pandas.DataFrame df) |
| |
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.
| pandas.DataFrame | None lsst.dax.apdb.sql.apdbSql.ApdbSql.getDiaForcedSources |
( |
| self, |
|
|
Region | region, |
|
|
Iterable[int] | None | object_ids, |
|
|
astropy.time.Time | visit_time, |
|
|
astropy.time.Time | None | start_time = None ) |
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.
visit_time : `astropy.time.Time`
Time of the current visit. If APDB contains records later than this
time they may also be returned.
start_time : `astropy.time.Time`, optional
Lower bound of time window for the query. If not specified then
it is calculated using ``visit_time`` and
``read_forced_sources_months`` configuration parameter.
Returns
-------
catalog : `pandas.DataFrame`, or `None`
Catalog containing DiaForcedSource records. `None` is returned if
``start_time`` is not specified and ``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, |
|
|
astropy.time.Time | None | start_time = None ) |
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. If APDB contains records later than this
time they may also be returned.
start_time : `astropy.time.Time`, optional
Lower bound of time window for the query. If not specified then
it is calculated using ``visit_time`` and
``read_forced_sources_months`` configuration parameter.
Returns
-------
catalog : `pandas.DataFrame`, or `None`
Catalog containing DiaSource records. `None` is returned if
``start_time`` is not specified and ``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 | ss_schema_file = None, |
|
|
int | None | read_sources_months = None, |
|
|
int | None | read_forced_sources_months = None, |
|
|
bool | enable_replica = False, |
|
|
int | None | connection_timeout = None, |
|
|
str | None | dia_object_index = None, |
|
|
int | None | htm_level = None, |
|
|
str | None | htm_index_column = None, |
|
|
tuple[str, 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.
ss_schema_file : `str`, optional
Location of (YAML) configuration file with SSO schema. If not
specified then default location 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.
enable_replica : `bool`, optional
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 : `tuple` [`str`, `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
This operation need not be atomic, but DiaSources and DiaForcedSources
will not be stored until all DiaObjects are stored.
Reimplemented from lsst.dax.apdb.apdb.Apdb.