Skip to main content

Pybind11 check_orbit extension built with CMake

Project description

check_orbit

A high-performance Python extension for checking orbital geometry bounds, built with C++ and pybind11.

?? Installation

The easiest way to install is from PyPI:

pip install check-orbit

Pre-built wheels are available for:

  • Windows (x86_64): Python 3.8-3.12
  • macOS (Intel x86_64 & Apple Silicon arm64): Python 3.8-3.12
  • Linux (x86_64 manylinux): Python 3.8-3.12

No build tools required! ??

?? Usage

import check_orbit

# Check if orbit geometry intersects with lat/lon bounds
geom_blob = b"0,1,45.5,123.4\n1,2,46.2,124.1\n"
result = check_orbit.check_orbit_in_bounds(
    geom_blob, 
    min_lat=45.0, 
    max_lat=47.0, 
    start_lon=120.0, 
    end_lon=130.0
)
print(result)  # True

# Load geometry from SQLite database
latitudes, longitudes = check_orbit.load_geom_from_db(
    orbit_number=12345, 
    db_path="orbits.db"
)

??? Building from Source

If you need to build from source (e.g., for development):

Prerequisites

  • Python development headers and a C/C++ toolchain:
    • macOS: Xcode command line tools (xcode-select --install)
    • Windows: Visual Studio 2017+ with C++ tools
    • Linux: GCC or Clang
  • CMake 3.15+

Build and Install

python -m pip install --upgrade pip setuptools wheel scikit-build pybind11 cmake
cd NewPicker/core/cpp
python -m pip install .

Create Distribution Wheel

cd NewPicker/core/cpp
python -m pip wheel . -w dist

??? Development & Contributing

Project Structure

core/cpp/
??? check_orbit.cpp       # C++ implementation
??? CMakeLists.txt        # CMake build configuration
??? pyproject.toml        # Python package metadata
??? check_orbit/          # Python package
?   ??? __init__.py       # Package initialization
??? .circleci/
    ??? config.yml        # Multi-platform CI/CD

Building Multi-Platform Wheels

We use CircleCI to automatically build wheels for all platforms. See CIRCLECI_SETUP.md for setup instructions.

For local multi-platform builds, use:

# Requires appropriate platform and build tools
python -m cibuildwheel --platform <windows|macos|linux>

Running Tests

cd NewPicker/core/cpp
python -m pytest tests/

?? Documentation

?? License

See LICENSE for details.

?? Links

? Performance

This extension uses optimized C++ code for fast geometry checking:

  • Native C++ performance (100-1000x faster than pure Python)
  • Minimal memory overhead
  • GIL release for multi-threaded applications

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

check_orbit-0.1.2-cp314-cp314-win_amd64.whl (670.7 kB view details)

Uploaded CPython 3.14Windows x86-64

check_orbit-0.1.2-cp313-cp313-win_amd64.whl (651.2 kB view details)

Uploaded CPython 3.13Windows x86-64

check_orbit-0.1.2-cp312-cp312-win_amd64.whl (651.3 kB view details)

Uploaded CPython 3.12Windows x86-64

check_orbit-0.1.2-cp311-cp311-win_amd64.whl (651.2 kB view details)

Uploaded CPython 3.11Windows x86-64

check_orbit-0.1.2-cp310-cp310-win_amd64.whl (650.0 kB view details)

Uploaded CPython 3.10Windows x86-64

check_orbit-0.1.2-cp39-cp39-win_amd64.whl (649.3 kB view details)

Uploaded CPython 3.9Windows x86-64

check_orbit-0.1.2-cp38-cp38-win_amd64.whl (649.8 kB view details)

Uploaded CPython 3.8Windows x86-64

File details

Details for the file check_orbit-0.1.2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for check_orbit-0.1.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 027b4813a9c4e12d87995407f9d8ebdb7a3bea072a2b4fd0571f23e6a864bd2b
MD5 5b3a8a6f2628f69c02838e2b5e1fb224
BLAKE2b-256 f41a59d2b8637b486f2cdeeaa5aaa88301e85390f33c3ebda62d201f23d81ce0

See more details on using hashes here.

File details

Details for the file check_orbit-0.1.2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for check_orbit-0.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8b00aac6d3090f4e8c51844640ff7d7b446bd867d5c42ab47c0b700c00fcbffc
MD5 85658c7b92e51ae24302858802951eb3
BLAKE2b-256 d2b8a7abbf96212969d3fe0727330f51fcd6e165b2eac1350ec6ee91c3cb514d

See more details on using hashes here.

File details

Details for the file check_orbit-0.1.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for check_orbit-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2b6bf46cb0594b8c457a40489b9df720f83850512dd20e2af2498f15d31288c3
MD5 94786fe1609881085f5a6da4136cd3d0
BLAKE2b-256 72891b0fec9f45c759ebc3acf5e13868b095f9417c0744c244a2c9a30b95a4a8

See more details on using hashes here.

File details

Details for the file check_orbit-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for check_orbit-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 775a26e2660071730003a70e80d1c344be6c077f2fb684673b2ace98308ffe2f
MD5 f8890bc13b1634294b11c49941a2a29e
BLAKE2b-256 ddd4437b31af665a4eadff05f79393c2ae6483b9c5702e80756d9d38d0b56340

See more details on using hashes here.

File details

Details for the file check_orbit-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for check_orbit-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 08d3ec439b7d98745f6292c0740b04d35e2476583baee8bd81228086873f2df7
MD5 2d5ca9d646c0104f50fd7334239c8db9
BLAKE2b-256 1f153dbd4d56dcf1974b21c533a84443fa916fc5412942ed66934f31dca8b8b1

See more details on using hashes here.

File details

Details for the file check_orbit-0.1.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: check_orbit-0.1.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 649.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for check_orbit-0.1.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 06b99e20a34574f8b1a3c8fa4cc81ddb82aba523724534bb565682760e489112
MD5 21e12eed53c0e560a740f7696e07fcab
BLAKE2b-256 6c4a8c5d48d3d3eb85147f05a83411fb473f6fc9306d32f905f4cd46ce74d3ab

See more details on using hashes here.

File details

Details for the file check_orbit-0.1.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: check_orbit-0.1.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 649.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for check_orbit-0.1.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d992f0e38782b18be273cbd31e3345ccebb2462af4a3bcd687d0c9a30db248c9
MD5 fa8c8367117a88e20364fb57716c16f7
BLAKE2b-256 710caf824d219b9a6294b64c1d8d78e08ddcb601238d0aeb77cd33fb22e00bb5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page