Mcp Stargazing

Mcp Stargazing

🚀 MCP-观星

MCP-观星项目可计算地球上任意位置的天体(涵盖太阳、月亮、行星、恒星和深空天体)的高度角、升起时间与落下时间,还支持可选的光污染分析,为天文观测和研究提供便利。

🚀 快速开始

MCP-观星能帮助你轻松获取各类天体的相关信息,同时进行光污染分析。你可以按照以下步骤快速上手。

✨ 主要特性

  • 高度角/方位角计算:精准获取天体的仰角和方向。
  • 升起/落下时间计算:明确天体出现在地平线以上并消失的具体时间。
  • 光污染分析:可加载和分析GeoTIFF格式的光污染地图。
  • 支持的天体类型丰富
    • 太阳系天体(如太阳、月亮、行星)
    • 恒星(例如“sirius”)
    • 深空天体(例如“andromeda”、“orion_nebula”)
  • 时区感知型:既支持本地时间,也支持UTC时间。

📦 安装指南

使用以下命令安装所需的依赖库:

pip install astropy pytz numpy astroquery rasterio geopy

💻 使用示例

基础用法

计算高度角/方位角

from src.celestial import celestial_pos
from astropy.coordinates import EarthLocation
import pytz
from datetime import datetime

# 观察者位置(纽约)
location = EarthLocation(lat=40.7128, lon=-74.0060)

# 时间(带时区的本地时间)
local_time = pytz.timezone("America/New_York").localize(datetime(2023, 10, 1, 12, 0))
altitude, azimuth = celestial_pos("sun", location, local_time)
print(f"太阳位置:高度角={altitude:.1f}°,方位角={azimuth:.1f}°")

计算升起/落下时间

from src.celestial import celestial_rise_set

rise, set_ = celestial_rise_set("andromeda", location, local_time.date())
print(f"仙女座:升起时间={rise.iso},落下时间={set_.iso}")

加载光污染地图

from src.light_pollution import load_map

# 加载GeoTIFF格式的光污染地图
vriis_data, bounds, crs, transform = load_map("path/to/map.tif")
print(f"地图边界:{bounds}")

📚 详细文档

API 参考

celestial_pos(celestial_object, observer_location, time) (src/celestial.py)

  • 输入参数
    • celestial_object:天体名称(例如“sun”、“andromeda”)。
    • observer_locationEarthLocation对象。
    • timedatetime(带时区的)或Astropy Time
  • 返回值(高度角度数,方位角度数)

celestial_rise_set() (src/celestial.py)

  • 输入参数
    • celestial_object:天体名称。
    • observer_locationEarthLocation对象。
    • date:日期对象。
  • 返回值(升起时间,落下时间)

测试信息

默认情况下,所有测试都会运行。要运行测试,请执行以下命令:

pytest tests/

🔧 技术细节

本项目未来有以下规划:

  • 支持更多天体类型,以满足更广泛的天文观测需求。
  • 提高计算精度,使获取的天体信息更加准确。
  • 添加图形化界面,提升用户体验。
  • 0 关注
  • 0 收藏,30 浏览
  • system 提出于 2025-10-02 09:21

相似服务问题

相关AI产品