adam_core.observations.obs80 module

Typed MPC 80-column optical observations.

The parser intentionally supports only self-contained optical astrometry rows. Radar, satellite, and roving-observer records require companion lines and are rejected rather than partially interpreted.

exception adam_core.observations.obs80.Obs80ParseError[source]

Bases: ValueError

An MPC 80-column record is malformed or unsupported.

class adam_core.observations.obs80.OpticalObs80(table: Table, **kwargs: int | float | str)[source]

Bases: Table

Self-contained optical observations parsed from MPC 80-column rows.

raw_line

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

designation

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

discovery

A column for storing booleans.

note1

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

note2

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

observatory_code

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

time

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.

ra_deg

A column for storing 64-bit floating point numbers.

dec_deg

A column for storing 64-bit floating point numbers.

mag

A column for storing 64-bit floating point numbers.

band

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

astrometric_catalog

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

reference

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

schema: ClassVar[pa.Schema] = raw_line: large_string not null designation: large_string not null discovery: bool not null note1: large_string note2: large_string observatory_code: large_string not null time: struct<days: int64, nanos: int64>   child 0, days: int64   child 1, nanos: int64 ra_deg: double not null dec_deg: double not null mag: double band: large_string astrometric_catalog: large_string reference: large_string
table: pa.Table
class adam_core.observations.obs80.ScoutObservations(table: Table, **kwargs: int | float | str)[source]

Bases: Table

One or more authoritative JPL Scout file=mpc snapshots.

Snapshot metadata is repeated per observation so filtered/sliced tables retain their source hash, API signature, and ordering without side data. declared_n_obs is Scout’s summary metadata; membership is exclusively defined by snapshot_observation_count and the nested observations.

object_id

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

solution_date_utc

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

declared_n_obs

A column for storing 64-bit integers.

snapshot_sha256

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

snapshot_observation_count

A column for storing 64-bit integers.

signature_version

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

signature_source

A column for storing large strings (over 231 bytes long). Large string data is stored in variable-length chunks.

observation_index

A column for storing 64-bit integers.

observation

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.

schema: ClassVar[pa.Schema] = object_id: large_string not null solution_date_utc: large_string declared_n_obs: int64 snapshot_sha256: large_string not null snapshot_observation_count: int64 not null signature_version: large_string signature_source: large_string observation_index: int64 not null observation: struct<raw_line: large_string, designation: large_string, discovery: bool, note1: large_string, note (... 215 chars omitted)   child 0, raw_line: large_string   child 1, designation: large_string   child 2, discovery: bool   child 3, note1: large_string   child 4, note2: large_string   child 5, observatory_code: large_string   child 6, time: struct<days: int64, nanos: int64>       child 0, days: int64       child 1, nanos: int64   child 7, ra_deg: double   child 8, dec_deg: double   child 9, mag: double   child 10, band: large_string   child 11, astrometric_catalog: large_string   child 12, reference: large_string
table: pa.Table
adam_core.observations.obs80.parse_optical_obs80(raw: str) OpticalObs80[source]

Parse one self-contained optical MPC 80-column record.

adam_core.observations.obs80.parse_optical_obs80_file(raw: str, *, strict: bool = True) OpticalObs80[source]

Parse every nonblank optical row in an MPC-format text file.

Parameters:
  • raw – MPC-format file contents.

  • strict – Raise on the first malformed/unsupported row. If false, omit invalid rows. Scout snapshot ingestion uses the strict default so it can never expose a partial fitted observation set.