# Planetary_distance **Repository Path**: LHCOM/planetary_distance ## Basic Information - **Project Name**: Planetary_distance - **Description**: 地球到八大行星的距离计算 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-18 - **Last Updated**: 2025-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🌌 太阳系行星距离计算器 一个基于Python的桌面应用程序,能够精确计算地球与太阳系八大行星及月球的实时距离,并集成AI行星科普资讯生成功能。本项目已完成核心功能开发,包括距离计算与AI资讯生成。 ## 🎯 项目亮点 ### ✨ 核心功能 - **精准计算**:基于NASA JPL数据的Skyfield库,提供高精度行星距离计算 - **实时更新**:支持自定义日期时间,计算任意时刻的行星位置 - **多行星支持**:覆盖太阳系八大行星(含冥王星)及月球 - **数据导出**:支持CSV、JSON、Excel格式的数据导出 ### 🤖 AI资讯功能 - **智能科普**:集成百度文心一言大模型,自动生成专业行星科普内容 - **多行星支持**:为每个行星生成独立的AI科普资讯(8大行星及月球) - **Markdown渲染**:完美支持Markdown格式,包含标题、列表、代码块等 - **本地存储**:所有资讯自动保存至data/planet_news目录,支持离线查看和导出 - **资讯管理**:支持重新生成、导出和查看历史资讯 ### 🖥️ 用户界面 - **直观易用**:现代化Tkinter界面,中文交互 - **状态提示**:底部状态栏实时显示操作状态 - **一键操作**:简化操作流程,提升用户体验 ## 🚀 快速开始 ### 环境要求 - **操作系统**:Windows 10/11(已测试), macOS, Linux - **Python**:3.10+(必须使用Anaconda环境py310) - **内存**:至少4GB RAM - **网络**:AI功能需要网络连接和百度API密钥 ### 安装步骤 1. **克隆项目** ```bash git clone [项目地址] cd Planetarydistance ``` 2. **激活Python环境** ```bash conda activate py310 ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` 4. **运行程序** ```bash python src/main.py ``` ## 📋 功能详解 ### 距离计算 - **计算范围**:地球与太阳系八大行星及月球 - **精度等级**:天文单位(AU)和千米(km)双精度 - **时间范围**:支持1900-2100年间的任意时刻 - **数据更新**:基于DE421星历表,数据准确可靠 ### AI资讯生成 - **模型**:百度文心一言(ernie-3.5-8k) - **内容类型**: - 行星基本特征与数据 - 历史探索故事 - 最新天文发现 - 中国航天成就 - 趣味天文知识 - **生成长度**:每篇约500-800字 - **更新频率**:支持随时重新生成 ## 📁 项目结构 ``` Planetarydistance/ ├── src/ # 源代码目录 │ ├── main.py # 程序入口 │ ├── core/ # 核心计算模块 │ │ ├── distance_calculator.py # 距离计算 │ │ └── planet_info_generator.py # 行星信息 │ ├── ui/ # 用户界面 │ │ ├── main_window.py # 主界面 │ │ └── ai_planet_info_window_enhanced.py # AI资讯窗口(增强版) │ ├── services/ # 服务模块 │ │ ├── ai_client.py # AI客户端 │ │ └── news_manager.py # 资讯管理 │ └── utils/ # 工具模块 │ ├── config.py # 配置管理 │ └── logger.py # 日志记录 ├── data/ # 数据目录 │ ├── icons/ # 界面图标 │ ├── de421.bsp # 星历数据 │ ├── planet_info/ # 行星基础信息 │ └── planet_news/ # AI生成资讯 ├── tests/ # 测试目录 │ ├── test_ai_functionality.py # AI功能测试 │ ├── test_calculation_with_logging.py # 计算与日志测试 │ └── test_distance_calculator.py # 距离计算测试 ├── docs/ # 文档目录 │ ├── 项目优化完成报告.md │ ├── 增强版AI资讯功能使用指南.md │ └── AI资讯功能使用说明.md ├── config/ # 配置文件目录 ├── logs/ # 日志文件目录 └── requirements.txt # 项目依赖 ``` ## 🔧 配置指南 ### AI功能配置(必需) AI资讯功能需要配置百度文心API密钥: 1. **获取API密钥** - 访问[百度智能云控制台](https://console.bce.baidu.com/iam/#/iam/apikey/list) - 创建新的API密钥 2. **配置方式** **方法1:配置文件(推荐)** ```json // config/ai_config.json { "baidu_api_key": "your_api_key_here" } ``` **方法2:环境变量** ```bash # Windows PowerShell $env:BAIDU_API_KEY="your_api_key_here" # Linux/macOS export BAIDU_API_KEY="your_api_key_here" ``` 3. **验证配置** - 启动程序后点击"查看资讯" - 在AI窗口中查看连接状态 ## 🎮 使用教程 ### 基础使用 1. **启动程序**:命令行运行`python src/main.py` 2. **选择时间**:设置想要查询的日期和时间(默认为当前时间) 3. **选择行星**:从下拉列表选择目标行星(或选择"所有行星") 4. **计算距离**:点击"计算行星距离"按钮 5. **查看结果**:结果将显示在下方结果面板中 6. **导出数据**:可选择CSV、JSON或Excel格式导出计算结果 ### AI资讯使用 1. **打开AI窗口**:点击主界面的"查看资讯"按钮 2. **选择行星**:在左侧行星列表点击想要了解的行星 3. **生成资讯**:点击"🚀 生成新资讯"按钮 4. **查看内容**:生成的Markdown格式资讯将显示在右侧预览区 5. **导出文件**:点击"💾 导出文件"按钮保存到本地 6. **查看历史**:程序会自动保存所有生成的资讯到data/planet_news目录 ### 数据导出 - **支持格式**:CSV、JSON、Excel - **导出内容**:包含计算时间、行星名称、距离数据 - **文件位置**:导出文件保存在程序运行目录 ## 🧪 测试验证 项目包含完整的测试套件,验证各个功能模块: ```bash # 运行所有测试 python -m pytest tests/ # 运行核心功能测试 python -m pytest tests/test_distance_calculator.py # 距离计算 python -m pytest tests/test_ai_functionality.py # AI资讯功能 python -m pytest tests/test_main_window.py # 主界面功能 python -m pytest tests/test_calculation_with_logging.py # 日志记录功能 ``` ## 📊 性能指标 - **计算速度**:< 100ms(单次距离计算) - **AI生成时间**:5-10秒(依赖网络) - **内存占用**:< 200MB - **启动时间**:< 3秒 ## 🤝 贡献指南 欢迎提交Issue和Pull Request! ### 开发环境搭建 ```bash # 安装开发依赖 pip install -r requirements-dev.txt # 代码格式化 black src/ isort src/ # 运行测试 pytest tests/ -v ``` ### 提交规范 - **功能开发**:feature/功能名称 - **问题修复**:fix/问题描述 - **文档更新**:docs/更新内容 ## 📄 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件 ## 🙋‍♂️ 技术支持 遇到问题?可以通过以下方式获取帮助: - 📧 提交Issue:[GitHub Issues](https://github.com/你的项目/issues) - 📖 查看文档:[项目Wiki](https://github.com/你的项目/wiki) - 🗨️ 社区讨论:[Discussions](https://github.com/你的项目/discussions) ## 📈 更新日志 ### v2.0 (2025-11-18) - ✅ 完全实现AI资讯功能 - ✅ 新增状态提示系统 - ✅ 优化用户界面布局 - ✅ 完善Markdown渲染支持 - ✅ 增强行星选择功能 - ✅ 增加错误日志记录 - ✅ 修复光行时间计算误差 ### v1.0 (2025-11-15) - ✅ 基础距离计算功能 - ✅ 图形用户界面实现 - ✅ 数据导出功能(CSV、JSON、Excel) - ✅ 基础配置管理系统 ## 🌟 致谢 - **NASA JPL**:提供精确的星历数据 - **Skyfield**:优秀的天文计算库 - **百度智能云**:提供AI大模型服务 - **开源社区**:所有贡献者和用户 --- **最后更新:2025-11-18 21:40** **维护状态:持续更新中** **开发环境:Python 3.10 (Anaconda)**