|
| __init__ (self, ApdbCassandraConfig config) |
|
None | __del__ (self) |
|
VersionTuple | apdbImplementationVersion (cls) |
|
VersionTuple | apdbSchemaVersion (self) |
|
Table|None | tableDef (self, ApdbTables table) |
|
ApdbCassandraConfig | init_database (cls, list[str] hosts, str keyspace, *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, bool use_insert_id_skips_diaobjects=False, int|None port=None, str|None username=None, str|None prefix=None, str|None part_pixelization=None, int|None part_pix_level=None, bool time_partition_tables=True, str|None time_partition_start=None, str|None time_partition_end=None, str|None read_consistency=None, str|None write_consistency=None, int|None read_timeout=None, int|None write_timeout=None, list[str]|None ra_dec_columns=None, int|None replication_factor=None, bool drop=False) |
|
ApdbCassandraReplica | get_replica (self) |
|
pandas.DataFrame | getDiaObjects (self, sphgeom.Region region) |
|
pandas.DataFrame|None | getDiaSources (self, sphgeom.Region region, Iterable[int]|None object_ids, astropy.time.Time visit_time) |
|
pandas.DataFrame|None | getDiaForcedSources (self, sphgeom.Region region, Iterable[int]|None object_ids, astropy.time.Time visit_time) |
|
bool | containsVisitDetector (self, int visit, int detector) |
|
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) |
|
tuple[Cluster, Session] | _make_session (cls, ApdbCassandraConfig config) |
|
AuthProvider|None | _make_auth_provider (cls, ApdbCassandraConfig config) |
|
None | _versionCheck (self, ApdbMetadataCassandra metadata) |
|
None | _makeSchema (cls, ApdbConfig config, *bool drop=False, int|None replication_factor=None) |
|
Mapping[Any, ExecutionProfile] | _makeProfiles (cls, ApdbCassandraConfig config) |
|
pandas.DataFrame | _getSources (self, sphgeom.Region region, Iterable[int]|None object_ids, float mjd_start, float mjd_end, ApdbTables table_name) |
|
None | _storeReplicaChunk (self, ReplicaChunk replica_chunk, astropy.time.Time visit_time) |
|
None | _storeDiaObjects (self, pandas.DataFrame objs, astropy.time.Time visit_time, ReplicaChunk|None replica_chunk) |
|
None | _storeDiaSources (self, ApdbTables table_name, pandas.DataFrame sources, astropy.time.Time visit_time, ReplicaChunk|None replica_chunk) |
|
None | _storeDiaSourcesPartitions (self, pandas.DataFrame sources, astropy.time.Time visit_time, ReplicaChunk|None replica_chunk) |
|
None | _storeObjectsPandas (self, pandas.DataFrame records, ApdbTables|ExtraTables table_name, Mapping|None extra_columns=None, int|None time_part=None) |
|
pandas.DataFrame | _add_obj_part (self, pandas.DataFrame df) |
|
pandas.DataFrame | _add_src_part (self, pandas.DataFrame sources, pandas.DataFrame objs) |
|
pandas.DataFrame | _add_fsrc_part (self, pandas.DataFrame sources, pandas.DataFrame objs) |
|
int | _time_partition_cls (cls, float|astropy.time.Time time, float epoch_mjd, int part_days) |
|
int | _time_partition (self, float|astropy.time.Time time) |
|
pandas.DataFrame | _make_empty_catalog (self, ApdbTables table_name) |
|
Iterator[tuple[cassandra.query.Statement, tuple]] | _combine_where (self, str prefix, list[tuple[str, tuple]] where1, list[tuple[str, tuple]] where2, str|None suffix=None) |
|
list[tuple[str, tuple]] | _spatial_where (self, sphgeom.Region|None region, bool use_ranges=False) |
|
tuple[list[str], list[tuple[str, tuple]]] | _temporal_where (self, ApdbTables table, float|astropy.time.Time start_time, float|astropy.time.Time end_time, bool|None query_per_time_part=None) |
|
Implementation of APDB database on to of Apache Cassandra.
The implementation is configured via standard ``pex_config`` mechanism
using `ApdbCassandraConfig` configuration class. For an example of
different configurations check config/ folder.
Parameters
----------
config : `ApdbCassandraConfig`
Configuration object.
bool lsst.dax.apdb.cassandra.apdbCassandra.ApdbCassandra.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.cassandra.apdbCassandra.ApdbCassandra.getDiaForcedSources |
( |
| self, |
|
|
sphgeom.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.cassandra.apdbCassandra.ApdbCassandra.getDiaSources |
( |
| self, |
|
|
sphgeom.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.
ApdbCassandraConfig lsst.dax.apdb.cassandra.apdbCassandra.ApdbCassandra.init_database |
( |
| cls, |
|
|
list[str] | hosts, |
|
|
str | keyspace, |
|
|
*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, |
|
|
bool | use_insert_id_skips_diaobjects = False, |
|
|
int | None | port = None, |
|
|
str | None | username = None, |
|
|
str | None | prefix = None, |
|
|
str | None | part_pixelization = None, |
|
|
int | None | part_pix_level = None, |
|
|
bool | time_partition_tables = True, |
|
|
str | None | time_partition_start = None, |
|
|
str | None | time_partition_end = None, |
|
|
str | None | read_consistency = None, |
|
|
str | None | write_consistency = None, |
|
|
int | None | read_timeout = None, |
|
|
int | None | write_timeout = None, |
|
|
list[str] | None | ra_dec_columns = None, |
|
|
int | None | replication_factor = None, |
|
|
bool | drop = False ) |
Initialize new APDB instance and make configuration object for it.
Parameters
----------
hosts : `list` [`str`]
List of host names or IP addresses for Cassandra cluster.
keyspace : `str`
Name of the keyspace for APDB tables.
schema_file : `str`, optional
Location of (YAML) configuration file with APDB schema. If not
specified then default location will be used.
schema_name : `str`, optional
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`, optional
If True, make additional tables used for replication to PPDB.
use_insert_id_skips_diaobjects : `bool`, optional
If `True` then do not fill regular ``DiaObject`` table when
``use_insert_id`` is `True`.
port : `int`, optional
Port number to use for Cassandra connections.
username : `str`, optional
User name for Cassandra connections.
prefix : `str`, optional
Optional prefix for all table names.
part_pixelization : `str`, optional
Name of the MOC pixelization used for partitioning.
part_pix_level : `int`, optional
Pixelization level.
time_partition_tables : `bool`, optional
Create per-partition tables.
time_partition_start : `str`, optional
Starting time for per-partition tables, in yyyy-mm-ddThh:mm:ss
format, in TAI.
time_partition_end : `str`, optional
Ending time for per-partition tables, in yyyy-mm-ddThh:mm:ss
format, in TAI.
read_consistency : `str`, optional
Name of the consistency level for read operations.
write_consistency : `str`, optional
Name of the consistency level for write operations.
read_timeout : `int`, optional
Read timeout in seconds.
write_timeout : `int`, optional
Write timeout in seconds.
ra_dec_columns : `list` [`str`], optional
Names of ra/dec columns in DiaObject table.
replication_factor : `int`, optional
Replication factor used when creating new keyspace, if keyspace
already exists its replication factor is not changed.
drop : `bool`, optional
If `True` then drop existing tables before re-creating the schema.
Returns
-------
config : `ApdbCassandraConfig`
Resulting configuration object for a created APDB instance.
None lsst.dax.apdb.cassandra.apdbCassandra.ApdbCassandra.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.