empyrean.Observers¶
- class Observers(table, **kwargs)[source]
Bases:
TablePrecomputed observer states as Cartesian coordinates.
Each row is one MPC observatory at one epoch. The kinematic state lives inside a nested
CartesianCoordinatestable — same schema as orbit positions — so frame and origin are explicit and consistent with the rest of the API. By default that’sFrame.ICRFandOrigin.SSB.Construct via
from_code()(single observatory,Nepochs) orfrom_codes()(cartesian product ofNobservatories ×Mepochs). The top-level shortcutempyrean.get_observer_states()is the same asfrom_codes().Methods
__init__(table, **kwargs)apply_mask(mask)Return a new table with rows filtered to match a boolean mask.
as_column([nullable, metadata])Embed the Table as a column in another Table.
attributes()Return a dictionary of the table's attributes.
chunk_counts()Returns the number of discrete memory chunks that make up each of the Table's underlying arrays.
column(column_name)Returns the column with the given name as a raw pyarrow ChunkedArray.
drop_duplicates([subset, keep])Drop duplicate rows from a ~quivr.Table.
empty(**kwargs)Create an empty instance of the table.
flattened_table()Completely flatten the Table's underlying Arrow table, taking into account any nested structure, and return the data table itself.
fragmented()Returns true if the Table has any fragmented arrays.
from_code(obs_code, epochs)Observer states for a single observatory at
Nepochs.from_codes(obs_codes, epochs)Observer states for the cartesian product of
Nobservatory codes ×Mepochs.from_csv(input_file[, validate])Read a table from a CSV file.
from_dataframe(df[, validate])Load a DataFrame into the Table.
from_feather(path[, validate])Read a table from a Feather file.
from_flat_dataframe(df[, validate])Load a flattened DataFrame into the Table.
from_kwargs([validate, permit_nulls])Create a Table instance from keyword arguments.
from_parquet(path[, memory_map, ...])Read a table from a Parquet file.
from_pyarrow(table[, validate, permit_nulls])Create a new table from a pyarrow Table.
invalid_mask()Return a boolean mask indicating which rows are invalid.
is_valid()Validate the table against the schema.
null_mask()Return a boolean mask indicating which rows of the entire table are null.
nulls(size, **kwargs)Create a table with nulls.
select(column_name, value)Select from the table by exact match, returning a new Table which only contains rows for which the value in column_name equals value.
separate_invalid()Separates rows that have invalid data from those that have valid data.
set_column(name, data)Return a copy of the table with a particular column replaced with new data.
sort_by(by)Sorts the Table by the given column name (or multiple columns).
take(row_indices)Return a new Table with only the rows at the given indices.
to_csv(path[, attribute_columns])Write the table to a CSV file.
to_dataframe([flatten, attr_handling])Returns self as a pandas DataFrame.
to_feather(path, **kwargs)Write the table to a Feather file.
to_parquet(path, **kwargs)Write the table to a Parquet file.
to_structarray()Returns self as a StructArray.
unique_indices([subset, keep])Get the indices of the first or last occurrence of each unique row in the table.
validate()Validate the table against the schema, raising an exception if invalid.
where(expr)Return a new table with rows filtered to match an expression.
with_table(table)Attributes
coordinatesA column which represents an embedded quivr table.
obs_codeA column for storing large strings (over 231 bytes long).
observing_nightA column for storing 32-bit integers.
schematable- Parameters:
table (Table)
kwargs (AttributeValueType)
- obs_code
A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.
- coordinates
A column which represents an embedded quivr table.
- Parameters:
table_type – The type of the table to embed.
nullable – Whether the column can contain null values.
metadata – A dictionary of metadata to attach to the column.
- observing_night
A column for storing 32-bit integers.
- classmethod from_code(obs_code, epochs)[source]
Observer states for a single observatory at
Nepochs.Returns an
N-row table, one row per epoch.- Parameters:
- Return type:
Observers- Returns:
Observers – Length-
Ntable — rowiis the observer atepochs[i].
Examples
>>> times = Epochs.from_mjd([60500.0, 60501.0]) >>> obs = Observers.from_code("W84", times) >>> len(obs) 2
- classmethod from_codes(obs_codes, epochs)[source]
Observer states for the cartesian product of
Nobservatory codes ×Mepochs.Returns an
N * M-row table in code-major order: allMepochs forobs_codes[0], then allMepochs forobs_codes[1], and so on. Indexing into the result is thereforei * M + jfor the (codei, epochj) row.- Parameters:
- Return type:
Observers- Returns:
Observers –
N * M-row table, code-major.
Examples
>>> times = Epochs.from_mjd([60000.0, 60001.0]) >>> obs = Observers.from_codes(["W84", "F51", "274"], times) >>> len(obs) 6 >>> obs.obs_code.to_pylist() ['W84', 'W84', 'F51', 'F51', '274', '274']
- schema: ClassVar[Schema] = obs_code: large_string not null coordinates: struct<epoch: double, x: double, y: double, z: double, vx: double, vy: double, vz: double, covarianc (... 410 chars omitted) child 0, epoch: double child 1, x: double child 2, y: double child 3, z: double child 4, vx: double child 5, vy: double child 6, vz: double child 7, covariance: struct<cov_x_x: double, cov_x_y: double, cov_y_y: double, cov_x_z: double, cov_y_z: double, cov_z_z: (... 284 chars omitted) child 0, cov_x_x: double child 1, cov_x_y: double child 2, cov_y_y: double child 3, cov_x_z: double child 4, cov_y_z: double child 5, cov_z_z: double child 6, cov_x_vx: double child 7, cov_y_vx: double child 8, cov_z_vx: double child 9, cov_vx_vx: double child 10, cov_x_vy: double child 11, cov_y_vy: double child 12, cov_z_vy: double child 13, cov_vx_vy: double child 14, cov_vy_vy: double child 15, cov_x_vz: double child 16, cov_y_vz: double child 17, cov_z_vz: double child 18, cov_vx_vz: double child 19, cov_vy_vz: double child 20, cov_vz_vz: double child 8, origin: large_string observing_night: int32