Skip to main content

mpcq

A Python package by the Asteroid Institute, a program of the B612 Foundation

Python 3.11+ License
pip - Build, Lint, Test, and Coverage Documentation Status

mpcq is a powerful Python client library for querying and analyzing Minor Planet Center (MPC) data through Google BigQuery. This package provides efficient access to a BigQuery instance of the Small Bodies Node (SBN) replica of the MPC's Small Bodies Node database, maintained by the Asteroid Institute.

Features

  • BigQuery Integration: Direct access to a complete replica of the MPC database through Google BigQuery
  • Efficient Queries: Optimized query patterns for common asteroid data access patterns
  • Rich Data Access: Query observations, orbits, submission history, and more
  • Cross-Matching: Tools for matching observations and finding duplicates
  • ADES Support: Integration with ADES format for modern asteroid data exchange

BigQuery Dataset Access

The Asteroid Institute maintains a BigQuery replica of the Minor Planet Center's Small Bodies Node database. The dataset is available through Google Cloud's Analytics Hub and requires subscription to two listings:

  1. Main MPC Dataset
  2. Clustered Views Dataset

To access the dataset, you'll need:

  1. A Google Cloud Platform account
  2. BigQuery API access enabled
  3. Subscription to both Analytics Hub listings
  4. Google Cloud credentials configured

Queries will be billed according to your Google Cloud Platform account's BigQuery pricing.

Installation

pip install mpcq

Quick Start

from mpcq.client import BigQueryMPCClient

# Initialize client with your subscribed dataset IDs
client = BigQueryMPCClient(
    dataset_id="your_subscribed_main_dataset_id",
    views_dataset_id="your_subscribed_views_dataset_id"
)

# Query observations for a specific object
observations = client.query_observations(["2013 RR165"])

# Convert to pandas DataFrame for analysis
from mpcq.utils import observations_to_dataframe
df = observations_to_dataframe(observations)
print(df.head())

Advanced Usage

Query Submission History

# Get submission history for an object
submissions = client.query_submission_history(["2013 RR165"])

Cross-Match Observations

# Cross-match ADES observations with MPC database
matched = client.cross_match_observations(
    ades_observations,
    obstime_tolerance_seconds=30,
    arcseconds_tolerance=2.0
)

Find Duplicates

# Find potential duplicate observations
duplicates = client.find_duplicates(
    "2013 RR165",
    obstime_tolerance_seconds=30,
    arcseconds_tolerance=2.0
)

Documentation

For complete documentation, including detailed API reference and examples, visit our ReadTheDocs page.

BigQuery Dataset Schema

The dataset (moeyens-thor-dev.mpc_sbn_aurora) contains several key tables:

  • public_obs_sbn: Primary observations table
  • public_current_identifications: Current object identifications
  • public_numbered_identifications: Numbered asteroid identifications
  • public_orbits: Orbital elements

You can explore these tables and their schemas directly in the BigQuery Console.

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Acknowledgments

The Asteroid Institute acknowledges the Minor Planet Center and the Small Bodies Node for their invaluable work in maintaining the authoritative small bodies database.

Metadata

Release files for mpcq 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mpcq 0.4.0
File Size Uploaded
mpcq-0.4.0.tar.gz 65.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mpcq 0.4.0
File Interpreter ABI Platform
mpcq-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 130.4 kB

Release files / mpcq-0.4.0.tar.gz

Download URL mpcq-0.4.0.tar.gz
Size 65.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9e287de9f04e8132cd9cc48c0102e24e9a7d9b70f85904547c85e0f85a62c989
BLAKE2b-256 checksum
How to use checksums
bbf6f9649ba773e924cec1c032b766ab15f957b5983391880c8fb90aca5af132
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 18, 2025.

Transparency log

Release files / mpcq-0.4.0-py3-none-any.whl

Download URL mpcq-0.4.0-py3-none-any.whl
Size 65.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09b5e1c9dd249b8b744985e99e1d6d851ed2882ddde9f40e299caca493381f81
BLAKE2b-256 checksum
How to use checksums
e0723196ee9b56bceef37e1a1b777e868977972225766a2dd4148cf2b829f7f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 18, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page