mcp-stargazing

mcp-stargazing

计算地球上任何位置的天体(太阳、月亮、行星、恒星和深空天体)的高度、升起和落下时间。

Category
访问服务器

README

mcp-stargazing

计算地球上任何位置的天体(太阳、月亮、行星、恒星和深空天体)的高度、升起和落下时间,并可选择进行光污染分析。

特性

  • 高度/方位角计算: 获取任何天体的高度和罗盘方向。
  • 升起/落下时间: 确定物体在地平线上出现/消失的时间。
  • 光污染分析: 加载和分析光污染地图(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_location: EarthLocation 对象。
    • time: datetime(时区感知)或 Astropy Time
  • 返回: (altitude_degrees, azimuth_degrees)

celestial_rise_set(celestial_object, observer_location, date, horizon=0.0) (src/celestial.py)

  • 输入:
    • date: 时区感知 datetime
    • horizon: 地平线高度(默认:0°)。
  • 返回: (rise_time, set_time) 作为 UTC Time 对象。

load_map(map_path) (src/light_pollution.py)

  • 输入:
    • map_path: GeoTIFF 文件的路径。
  • 返回: 用于光污染分析的元组 (vriis_data, bounds, crs, transform)

测试

使用以下命令运行测试:

pytest tests/

关键测试用例 (tests/test_celestial.py)

def test_calculate_altitude_deepspace():
    """测试深空天体解析。"""
    altitude, _ = celestial_pos("andromeda", NYC, Time.now())
    assert -90 <= altitude <= 90

def test_calculate_rise_set_sun():
    """验证太阳升起/落下时间。"""
    rise, set_ = celestial_rise_set("sun", NYC, datetime(2023, 10, 1))
    assert rise < set_

项目结构

.
├── src/
│   ├── celestial.py          # 核心天体计算
│   ├── light_pollution.py    # 光污染地图实用程序
│   ├── utils.py              # 时间/位置助手
│   └── main.py               # CLI 入口点
├── tests/
│   ├── test_celestial.py
│   └── test_utils.py
└── README.md

未来工作

  • 增加对彗星/小行星的支持。
  • 优化 SIMBAD 查询以供离线使用。
  • 将光污染数据集成到可见性预测中。

主要更新:

  1. 光污染: 在特性和 API 参考中添加了 light_pollution.py
  2. 依赖项: 在安装说明中添加了 rasteriogeopy
  3. 项目结构: 阐明了文件角色和测试覆盖率。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选