MCP-观星项目可计算地球上任意位置的天体(涵盖太阳、月亮、行星、恒星和深空天体)的高度角、升起时间与落下时间,还支持可选的光污染分析,为天文观测和研究提供便利。
MCP-观星能帮助你轻松获取各类天体的相关信息,同时进行光污染分析。你可以按照以下步骤快速上手。
使用以下命令安装所需的依赖库:
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}")
celestial_pos(celestial_object, observer_location, time) (src/celestial.py)celestial_object:天体名称(例如“sun”、“andromeda”)。observer_location:EarthLocation对象。time:datetime(带时区的)或Astropy Time。(高度角度数,方位角度数)。celestial_rise_set() (src/celestial.py)celestial_object:天体名称。observer_location:EarthLocation对象。date:日期对象。(升起时间,落下时间)。默认情况下,所有测试都会运行。要运行测试,请执行以下命令:
pytest tests/
本项目未来有以下规划: