Utilizes NumPy for numerical calculations involved in celestial positioning and astronomical computations.
Implements testing framework for validating celestial calculations and time/location utilities.
mcp-stargazing
Calculate the altitude, rise, and set times of celestial objects (Sun, Moon, planets, stars, and deep-space objects) for any location on Earth, with optional light pollution analysis.
Features
Altitude/Azimuth Calculation: Get elevation and compass direction for any celestial object.
Rise/Set Times: Determine when objects appear/disappear above the horizon.
Light Pollution Analysis: Load and analyze light pollution maps (GeoTIFF format).
Supports:
Solar system objects (Sun, Moon, planets)
Stars (e.g., "sirius")
Deep-space objects (e.g., "andromeda", "orion_nebula")
Time Zone Aware: Works with local or UTC times.
Related MCP server: Celestial Position MCP Server
Installation
Usage
Calculate Altitude/Azimuth
Calculate Rise/Set Times
Load Light Pollution Map
API Reference
celestial_pos(celestial_object, observer_location, time) (src/celestial.py)
Inputs:
celestial_object: Name (e.g.,"sun","andromeda").observer_location:EarthLocationobject.time:datetime(timezone-aware) or AstropyTime.
Returns:
(altitude_degrees, azimuth_degrees).
celestial_rise_set(celestial_object, observer_location, date, horizon=0.0) (src/celestial.py)
Inputs:
date: Timezone-awaredatetime.horizon: Horizon elevation (default: 0°).
Returns:
(rise_time, set_time)as UTCTimeobjects.
load_map(map_path) (src/light_pollution.py)
Inputs:
map_path: Path to GeoTIFF file.
Returns: Tuple
(vriis_data, bounds, crs, transform)for light pollution analysis.
Testing
Run tests with:
Key Test Cases (tests/test_celestial.py)
Project Structure
Future Work
Add support for comets/asteroids.
Optimize SIMBAD queries for offline use.
Integrate light pollution data into visibility predictions.
Key Updates:
Light Pollution: Added
light_pollution.pyto features and API reference.Dependencies: Added
rasterioandgeopyto installation instructions.Project Structure: Clarified file roles and test coverage.