Agent-Driven Satellite Communication Simulation Framework
An intelligent bridge between high-fidelity physics simulation and cognitive decision-making agents
AstraLogic is a one-stop satellite communication simulation & decision platform that seamlessly integrates AFSIM (Advanced Framework for Simulation, Integration, and Modeling) execution with intelligent agent-driven analysis within a single web interface.
Users interact with the system entirely through a web dashboard โ submitting simulation requests via an Agent chat interface, which delegates decision-making to OpenClaw (an intelligent agent framework). OpenClaw reasons about orbital mechanics, link budgets, and communication strategies, then orchestrates AFSIM simulations via Skills and MCP servers. Results are automatically parsed and visualized in the dashboard without ever needing to leave the browser.
The architecture consists of:
- Frontend โ Streamlit dashboard with Agent chat interface for end-to-end simulation control
- Backend โ FastAPI server coordinating agent decisions and simulation state
- Decision Engine โ OpenClaw agent with custom Skills for link analysis and frequency optimization
- Simulation Bridge โ MCP server protocol for headless AFSIM execution and result ingestion
- Data Layer โ AER parser converting AFSIM binary outputs to structured DataFrames
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AstraLogic One-Stop Platform โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Streamlit Dashboard with Agent Chat Interface โ โ
โ โ "Plan a LEO-to-ground link with backup path" โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ FastAPI Backend โ โ OpenClaw Agent Decision Engine โ โ
โ โ (Request routing, state management, result caching) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ OpenClaw Skills & MCP Servers โ โ
โ โ โข LinkBudgetSkill โ analyze propagation & margins โ โ
โ โ โข FrequencyOptimizerSkill โ select frequencies โ โ
โ โ โข AFSIMExecutor MCP โ launch Warlock/Mystic headless โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ AFSIM Simulation (Warlock/Mystic) โ โ
โ โ Binary AER Output โ pymystic Parser โ CSV Results โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Dashboard Result Visualization โ โ
โ โ Orbital plots, link metrics, performance summary โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
AstraLogic implements an Agent-Driven Simulation Pipeline:
| Component | Technology | Purpose |
|---|---|---|
| Web Dashboard | Streamlit | User interface with Agent chat box for natural language requests |
| Backend Coordinator | FastAPI | Routes agent decisions, manages simulation state, caches results |
| Decision Engine | OpenClaw Agent | Reasons about orbital mechanics, link budgets, and resource optimization |
| Skill System | Custom Skills | LinkBudgetAnalyzer, FrequencyOptimizer, ManeuverPlanner |
| Simulation Bridge | MCP (Model Context Protocol) | Headless AFSIM execution, parameter templating, result collection |
| Data Parser | pymystic + pandas | Binary AER โ structured CSV for visualization |
User: "Plan a backup link for Sat-A when it loses contact with GS-1"
โ (natural language โ parsed request)
OpenClaw Agent receives context:
โข Current orbital state (from last simulation)
โข Available frequency bands
โข Ground station locations
โข Link margin thresholds
โ (reasoning loop)
OpenClaw invokes Skills:
1. LinkBudgetSkill.analyze() โ SNR for candidate frequencies
2. FrequencyOptimizer.select_channels() โ optimal band selection
3. ManeuverPlanner.compute_handover() โ timing & power levels
โ (decision ready)
AFSIMExecutor.run() via MCP:
โข Template WSL with agent-selected parameters
โข Launch Warlock/Mystic headless
โข Stream binary AER output
โข Parse results in real-time
โ (results ready)
Dashboard auto-updates with:
โข Orbital trajectory plots
โข Link margin time-series
โข Success/failure metrics
โข Agent reasoning summary
- ๐ค Agent Chat Interface โ Natural language simulation requests directly in the dashboard
- ๐ง OpenClaw Decision Engine โ Intelligent agent for link planning, frequency optimization, and maneuver scheduling
- ๐ฏ Skill-based Architecture โ Extensible Skills for link-budget analysis, frequency selection, orbital mechanics
- ๐ MCP Server Integration โ Headless AFSIM execution orchestrated via Model Context Protocol
- ๐ Real-time AER Parser โ Binary simulation output ingestion with live CSV export
- ๐ Dashboard Visualization โ Plotly-based orbital plots, link metrics, and performance dashboards
- โก FastAPI Backend โ REST API for state queries, result caching, and agent coordination
- ๐ Automated Workflows โ Complete simulation from request to result without leaving the browser
- Advanced link-budget calculations (rain fade, fading margins)
- Multi-scenario comparison & optimization loop
- AFSIM direct launch button for advanced users
- Expanded orbital mechanics solvers (perturbations, collision avoidance)
- Python โฅ 3.8
- AFSIM Warlock or Mystic installation (local or remote)
- OpenClaw configuration (provided in setup)
git clone https://github.com/abydym/AstraLogic.git
cd AstraLogic
pip install -r requirements.txt# Terminal 1: Start the backend API
python backend.py
# API available at http://localhost:8000/docs
# Terminal 2: Launch the dashboard
streamlit run app.py
# Dashboard opens at http://localhost:8501Once the dashboard is live, use the Agent Chat Box to request simulations:
Example 1: Simple link analysis
User: "Analyze the communication link between Sat-A and Ground Station-1
when Sat-A passes over the ground station at 14:30 UTC."
OpenClaw will:
1. Retrieve orbital ephemerides
2. Compute elevation angle and slant range
3. Run LinkBudgetSkill to determine SNR margins
4. Launch AFSIM simulation via MCP
5. Display results in dashboard
Example 2: Frequency optimization
User: "Find the best frequency band for Sat-B to GS-2 link
with at least 6 dB margin and no interference."
OpenClaw will:
1. Analyze available frequency allocations
2. Check interference environment
3. Invoke FrequencyOptimizerSkill
4. Simulate multiple candidates in parallel
5. Recommend optimal band with reasoning
For direct control, you can also invoke simulations programmatically:
from aermsg2dataframe import parse_aer_messages
import pymystic
import pandas as pd
# Read existing AFSIM output
with pymystic.Reader('scenarios/demo_output.aer') as reader:
messages = list(reader)
# Parse to DataFrames
df_entity, df_orbital = parse_aer_messages(messages)
# Analyze
print(f"Simulation duration: {df_entity['simTime'].max()} seconds")
print(f"Tracked platforms: {sorted(df_entity['platformIndex'].unique())}")
# Compute inter-satellite distance
sat1 = df_entity[df_entity['platformIndex'] == 1]
sat2 = df_entity[df_entity['platformIndex'] == 2]
if len(sat1) > 0 and len(sat2) > 0:
distances = ((sat1[['x','y','z']].reset_index(drop=True) -
sat2[['x','y','z']].reset_index(drop=True))**2).sum(axis=1)**0.5 / 1000
print(f"Min distance: {distances.min():.1f} km, Max: {distances.max():.1f} km")AstraLogic/
โโโ app.py # ๐จ Streamlit dashboard (main UI)
โโโ backend.py # โก FastAPI server
โโโ aer_read.py # ๐ก AER binary parser (pymystic wrapper)
โโโ aermsg2dataframe.py # ๐ Message โ DataFrame converter
โโโ openclaw_agent.py # ๐ค LLM agent (planned)
โโโ afsim_mcp_server.py # ๐ MCP server bridge (planned)
โโโ pymystic.py # ๐ฆ Local pymystic library
โ
โโโ core/ # Core utility modules
โ โโโ __init__.py
โ โโโ afsim_bridge.py # AFSIM integration helpers
โ
โโโ scenarios/ # AFSIM scenario files
โ โโโ demo_2sat_1gs.txt # 2 satellites + 1 ground station
โ โโโ demo_output.aer # Sample AFSIM output (binary)
โ โโโ demo_output.csv # Converted CSV (for reference)
โ โโโ demo_output.evt # Event log
โ
โโโ output/ # Generated data files
โ โโโ entity.csv # Parsed platform states
โ โโโ orbital.csv # Parsed orbital elements
โ
โโโ docs/ # Documentation
โโโ brand-design-md-main/ # Design system assets
โโโ README.md # This file
โโโ DESIGN.md # Architecture & design notes
โโโ requirements.txt # Dependencies
โโโ LICENSE # MIT License
โโโ .env.example # Environment template (unused for now)
| Milestone | Status | Target | Description |
|---|---|---|---|
| โ AER Parser | Complete | v0.1 | AFSIM binary deserialization (pymystic) |
| โ Dashboard Core | Complete | v0.1 | Streamlit UI with orbital visualization |
| โ FastAPI Backend | Complete | v0.1 | REST API for state management |
| ๐จ Agent Chat Interface | In Progress | v0.2 | OpenClaw integration with natural language processing |
| ๐จ LinkBudgetSkill | In Progress | v0.2 | Eb/Nโ, EIRP, interference analysis |
| ๐จ MCP Server Bridge | In Progress | v0.2 | Headless AFSIM execution & result streaming |
| ๐ FrequencyOptimizerSkill | Planned | v0.3 | Automated frequency band selection |
| ๐ Multi-scenario Optimization | Planned | v0.3 | Parallel simulation & comparative analysis |
| ๐ Advanced Orbital Mechanics | Planned | v0.4 | Perturbations, collision avoidance, station-keeping |
| ๐ Result Export & Reporting | Planned | v0.4 | PDF reports, data archiving, batch export |
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.
This project is licensed under the MIT License โ see the LICENSE file for details.
AstraLogic ๆฏไธไธชไธ็ซๅผๅซๆ้ไฟกไปฟ็ๅณ็ญๅนณๅฐ๏ผๅจๅไธ็ฝ้กต็้ขไธญๅฎ็ฐไบ AFSIM๏ผ้ซ็บงไปฟ็ใ้ๆไธๅปบๆจกๆกๆถ๏ผไธๆบ่ฝๅณ็ญๅผๆ็ๆ ็ผ่ๅใ
็จๆทๅฎๅ จ้่ฟ็ฝ้กตไปช่กจ็่ฟ่กไบคไบโโๅจ Agent ๅฏน่ฏๆกไธญๆไบคไปฟ็้ๆฑ๏ผ็ฑ OpenClaw ๆบ่ฝไฝ่ด่ดฃๅณ็ญใOpenClaw ๅฏไปฅๆจ็่ฝจ้ๅๅญฆใ้พ่ทฏ้ข็ฎๅ้ไฟก็ญ็ฅ๏ผ้่ฟ Skills ๅ MCP ๆๅกๅจๅ่ฐ AFSIM ็ๆ ๅคดๆง่กใไปฟ็ๅฎๆๅ๏ผ็ปๆ่ชๅจ่งฃๆๅนถๅจไปช่กจ็ไธญๅฏ่งๅๅฑ็คบ๏ผ็จๆทๆ ้็ฆปๅผๆต่งๅจใ
็ณป็ปๆถๆๅ ๆฌ๏ผ
- ๅ็ซฏ็้ข โ Streamlit ไปช่กจ็๏ผ้ๆ Agent ๅฏน่ฏๆก็จไบ็ซฏๅฐ็ซฏไปฟ็ๆงๅถ
- ๅ็ซฏๅ่ฐ โ FastAPI ๆๅกๅจ๏ผ่ด่ดฃ่ทฏ็ฑ Agent ๅณ็ญๅ็ฎก็ไปฟ็็ถๆ
- ๅณ็ญๅผๆ โ OpenClaw ๆบ่ฝไฝ๏ผๆจ็่ฝจ้ๅ้ไฟกไผๅ
- ๆ่ฝ็ณป็ป โ ่ชๅฎไน Skills ็จไบ้พ่ทฏๅๆๅ้ข็ไผๅ
- ไปฟ็็ฝๆกฅ โ MCP ๅ่ฎฎๆฏๆๆ ๅคด AFSIM ๆง่กๅ็ปๆๅฏผๅ ฅ
- ๆฐๆฎๅฑ โ AER ่งฃๆๅจๅฐ AFSIM ไบ่ฟๅถ่พๅบ่ฝฌๆขไธบ็ปๆๅ DataFrame
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AstraLogic ไธ็ซๅผไปฟ็ๅนณๅฐ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Streamlit ไปช่กจ็๏ผๅซ Agent ๅฏน่ฏๆก๏ผ โ โ
โ โ "่งๅๅซๆAๅจๅคฑๅปๅฐ้ข็ซไฟกๅทๆถ็ๅค็จ้พ่ทฏ" โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ FastAPI ๅ็ซฏ โ โ OpenClaw Agent ๅณ็ญๅผๆ โ โ
โ โ ๏ผ่ฏทๆฑ่ทฏ็ฑใ็ถๆ็ฎก็ใ็ปๆ็ผๅญ๏ผ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ OpenClaw Skills ไธ MCP ๆๅกๅจ โ โ
โ โ โข LinkBudgetSkill โ ๅๆไผ ๆญไธ้พ่ทฏไฝ้ โ โ
โ โ โข FrequencyOptimizerSkill โ ้ข็้ๆฉ โ โ
โ โ โข AFSIMExecutor MCP โ ๆ ๅคดๅฏๅจ Warlock/Mystic โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ AFSIM ไปฟ็๏ผWarlock/Mystic๏ผ โ โ
โ โ ไบ่ฟๅถ AER ่พๅบ โ pymystic ่งฃๆ โ CSV ็ปๆ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ไปช่กจ็็ปๆๅฑ็คบ โ โ
โ โ ่ฝจ้ๅพใ้พ่ทฏๆๆ ใๆง่ฝๆป็ป โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
AstraLogic ๅฎ็ฐไบๆบ่ฝไฝ้ฉฑๅจ็ไปฟ็็ฎก้๏ผ
| ็ปไปถ | ๆๆฏๆ | ่่ดฃ |
|---|---|---|
| ็ฝ้กตไปช่กจ็ | Streamlit | ็จๆท็้ขไธ Agent ๅฏน่ฏๆก๏ผ็จไบ่ช็ถ่ฏญ่จไปฟ็่ฏทๆฑ |
| ๅ็ซฏๅ่ฐ | FastAPI | ่ทฏ็ฑ Agent ๅณ็ญใ็ฎก็ไปฟ็็ถๆใ็ผๅญ็ปๆ |
| ๅณ็ญๅผๆ | OpenClaw Agent | ๆจ็่ฝจ้ๅๅญฆใ้พ่ทฏ้ข็ฎๅ่ตๆบไผๅ |
| ๆ่ฝ็ณป็ป | ่ชๅฎไน Skills | LinkBudgetAnalyzerใFrequencyOptimizerใManeuverPlanner |
| ไปฟ็็ฝๆกฅ | MCP ๅ่ฎฎ | ๆ ๅคด AFSIM ๆง่กใๅๆฐๆจกๆฟใ็ปๆๆถ้ |
| ๆฐๆฎ่งฃๆ | pymystic + pandas | ไบ่ฟๅถ AER โ ็ปๆๅ CSV ็จไบๅฏ่งๅ |
็จๆท๏ผใ่งๅๅค็จ้พ่ทฏ๏ผๅฝๅซๆAไธๅฐ้ข็ซๅคฑ่ๆถใ
โ ๏ผ่ช็ถ่ฏญ่จ โ ่งฃๆ่ฏทๆฑ๏ผ
OpenClaw Agent ๆฅๆถไธไธๆ๏ผ
โข ๅฝๅ่ฝจ้็ถๆ๏ผๆฅ่ชไธๆฌกไปฟ็๏ผ
โข ๅฏ็จ้ขๆฎต
โข ๅฐ้ข็ซไฝ็ฝฎ
โข ้พ่ทฏไฝ้้ๅผ
โ ๏ผๆจ็ๅพช็ฏ๏ผ
OpenClaw ่ฐ็จ Skills๏ผ
1. LinkBudgetSkill.analyze() โ ๅ้้ข็็ไฟกๅชๆฏ
2. FrequencyOptimizer.select_channels() โ ๆไผ้ขๆฎต้ๆฉ
3. ManeuverPlanner.compute_handover() โ ๆถๅบไธๅ็ๅๆฐ
โ ๏ผๅณ็ญๅฐฑ็ปช๏ผ
้่ฟ MCP ๆง่ก AFSIMExecutor๏ผ
โข ็จ Agent ้ๅฎ็ๅๆฐๆจกๆฟๅ WSL
โข ๆ ๅคดๅฏๅจ Warlock/Mystic
โข ๅฎๆถๆตๅผๅค็ไบ่ฟๅถ AER ่พๅบ
โข ๅจ็บฟ่งฃๆ็ปๆ
โ ๏ผ็ปๆๅฐฑ็ปช๏ผ
ไปช่กจ็่ชๅจๆดๆฐ๏ผ
โข ่ฝจ้่ฝจ่ฟนๅพ
โข ้พ่ทฏไฝ้ๆถ้ดๅบๅ
โข ๆๅ/ๅคฑ่ดฅๆๆ
โข Agent ๆจ็ๆ่ฆ
- ๐ค Agent ๅฏน่ฏๆก โ ๅจไปช่กจ็ไธญ็จ่ช็ถ่ฏญ่จๆไบคไปฟ็้ๆฑ
- ๐ง OpenClaw ๅณ็ญๅผๆ โ ๆบ่ฝไฝ็จไบ้พ่ทฏ่งๅใ้ข็ไผๅๅๆบๅจ่ฐๅบฆ
- ๐ฏ ๅบไบ Skill ็ๆถๆ โ ๅฏๆฉๅฑ็ Skills ็จไบ้พ่ทฏๅๆใ้ข็้ๆฉใ่ฝจ้ๅๅญฆ
- ๐ MCP ๆๅกๅจ้ๆ โ ้่ฟ Model Context Protocol ๅ่ฐๆ ๅคด AFSIM ๆง่ก
- ๐ ๅฎๆถ AER ่งฃๆๅจ โ ไบ่ฟๅถไปฟ็่พๅบๆๅไธๅฎๆถ CSV ๅฏผๅบ
- ๐ ไปช่กจ็ๅฏ่งๅ โ ๅบไบ Plotly ็่ฝจ้ๅพใ้พ่ทฏๆๆ ๅๆง่ฝไปช่กจ็
- โก FastAPI ๅ็ซฏ โ REST API ็จไบ็ถๆๆฅ่ฏขใ็ปๆ็ผๅญๅ Agent ๅ่ฐ
- ๐ ่ชๅจๅๅทฅไฝๆต โ ไป่ฏทๆฑๅฐ็ปๆ็ๅฎๆดไปฟ็๏ผๆ ้็ฆปๅผๆต่งๅจ
- ้ซ็บง้พ่ทฏ้ข็ฎ่ฎก็ฎ๏ผ้จ่กฐใ่กฐๅไฝ้๏ผ
- ๅคๅบๆฏๅฏนๆฏไธไผๅๅพช็ฏ
- AFSIM ็ดๆฅๅฏๅจๆ้ฎ๏ผไพ้ซ็บง็จๆทไฝฟ็จ๏ผ
- ๆฉๅฑ่ฝจ้ๅๅญฆๆฑ่งฃๅจ๏ผๆฐๅจ้กนใ็ขฐๆ่ง้ฟ๏ผ
- Python โฅ 3.8
- AFSIM Warlock ๆ Mystic ๅฎ่ฃ ๏ผๆฌๅฐๆ่ฟ็จ๏ผ
- OpenClaw ้ ็ฝฎ๏ผๅฎ่ฃ ๅ ไธญๆไพ๏ผ
git clone https://github.com/abydym/AstraLogic.git
cd AstraLogic
pip install -r requirements.txt# ็ป็ซฏ 1๏ผๅฏๅจๅ็ซฏ API
python backend.py
# API ๆๆกฃ๏ผhttp://localhost:8000/docs
# ็ป็ซฏ 2๏ผๅฏๅจไปช่กจ็
streamlit run app.py
# ไปช่กจ็๏ผhttp://localhost:8501ไปช่กจ็ๅฏๅจๅ๏ผไฝฟ็จ Agent ๅฏน่ฏๆกๆไบคไปฟ็่ฏทๆฑ๏ผ
็คบไพ 1๏ผ็ฎๅ้พ่ทฏๅๆ
็จๆท๏ผใๅๆๅซๆAไธๅฐ้ข็ซ-1 ๅจUTC 14:30 ้่ฟๅฐ้ข็ซไธ็ฉบๆถ็้ไฟก้พ่ทฏใ
OpenClaw ๅฐ๏ผ
1. ๆฃ็ดข่ฝจ้ๆๅ
2. ่ฎก็ฎไปฐ่งๅๆ่ท
3. ่ฟ่ก LinkBudgetSkill ็กฎๅฎไฟกๅชๆฏไฝ้
4. ้่ฟ MCP ๅฏๅจ AFSIM ไปฟ็
5. ๅจไปช่กจ็ไธญๅฑ็คบ็ปๆ
็คบไพ 2๏ผ้ข็ไผๅ
็จๆท๏ผใไธบๅซๆBๅฐๅฐ้ข็ซ-2 ็้พ่ทฏๆพๅฐๆไผ้ขๆฎต๏ผ่ณๅฐ6 dBไฝ้ไธๆ ๅนฒๆฐใ
OpenClaw ๅฐ๏ผ
1. ๅๆๅฏ็จ้ขๆฎตๅ้
2. ๆฃๆฅๅนฒๆฐ็ฏๅข
3. ่ฐ็จ FrequencyOptimizerSkill
4. ๅนถ่กไปฟ็ๅคไธชๅ้้ขๆฎต
5. ๆจ่ๆไผ้ขๆฎตๅนถ่ฏดๆ็็ฑ
่ฅ้่ฆ็ดๆฅๆงๅถ๏ผไนๅฏไปฅ็ผ็จๆนๅผ่ฐ็จไปฟ็๏ผ
from aermsg2dataframe import parse_aer_messages
import pymystic
import pandas as pd
# ่ฏปๅ็ฐๆ AFSIM ่พๅบ
with pymystic.Reader('scenarios/demo_output.aer') as reader:
messages = list(reader)
# ่งฃๆไธบ DataFrame
df_entity, df_orbital = parse_aer_messages(messages)
# ๅๆ
print(f"ไปฟ็ๆถ้ฟ๏ผ{df_entity['simTime'].max()} ็ง")
print(f"่ฟฝ่ธชๅนณๅฐ๏ผ{sorted(df_entity['platformIndex'].unique())}")
# ่ฎก็ฎๆ้ด่ท็ฆป
sat1 = df_entity[df_entity['platformIndex'] == 1]
sat2 = df_entity[df_entity['platformIndex'] == 2]
if len(sat1) > 0 and len(sat2) > 0:
distances = ((sat1[['x','y','z']].reset_index(drop=True) -
sat2[['x','y','z']].reset_index(drop=True))**2).sum(axis=1)**0.5 / 1000
print(f"ๆๅฐ่ท็ฆป๏ผ{distances.min():.1f} km๏ผๆๅคง่ท็ฆป๏ผ{distances.max():.1f} km")AstraLogic/
โโโ app.py # ๐จ Streamlit ไปช่กจ็๏ผไธป็้ข๏ผ
โโโ backend.py # โก FastAPI ๆๅกๅจ
โโโ aer_read.py # ๐ก AER ไบ่ฟๅถ่งฃๆๅจ๏ผpymystic ๅฐ่ฃ
๏ผ
โโโ aermsg2dataframe.py # ๐ ๆถๆฏ โ DataFrame ่ฝฌๆขๅจ
โโโ openclaw_agent.py # ๐ค LLM ๆบ่ฝไฝ๏ผ็ญนๅไธญ๏ผ
โโโ afsim_mcp_server.py # ๐ MCP ๆๅกๅจ็ฝๆกฅ๏ผ็ญนๅไธญ๏ผ
โโโ pymystic.py # ๐ฆ ๆฌๅฐ pymystic ๅบ
โ
โโโ core/ # ๆ ธๅฟๅฎ็จๆจกๅ
โ โโโ __init__.py
โ โโโ afsim_bridge.py # AFSIM ้ๆๅฉๆ
โ
โโโ scenarios/ # AFSIM ๅบๆฏๆไปถ
โ โโโ demo_2sat_1gs.txt # 2 ้ขๅซๆ + 1 ไธชๅฐ้ข็ซ
โ โโโ demo_output.aer # ็คบไพ AFSIM ่พๅบ๏ผไบ่ฟๅถ๏ผ
โ โโโ demo_output.csv # ่ฝฌๆขๅ็ CSV๏ผๅ่๏ผ
โ โโโ demo_output.evt # ไบไปถๆฅๅฟ
โ
โโโ output/ # ็ๆ็ๆฐๆฎๆไปถ
โ โโโ entity.csv # ่งฃๆๅ็ๅนณๅฐ็ถๆ
โ โโโ orbital.csv # ่งฃๆๅ็่ฝจ้่ฆ็ด
โ
โโโ docs/ # ๆๆกฃ
โโโ brand-design-md-main/ # ่ฎพ่ฎก็ณป็ป่ตๆบ
โโโ README.md # ๆฌๆไปถ
โโโ DESIGN.md # ๆถๆไธ่ฎพ่ฎก็ฌ่ฎฐ
โโโ requirements.txt # ไพ่ตๆธ
ๅ
โโโ LICENSE # MIT ่ฎธๅฏ่ฏ
โโโ .env.example # ็ฏๅขๅ้ๆจกๆฟ๏ผๆๆชไฝฟ็จ๏ผ
| ้็จ็ข | ็ถๆ | ็ฎๆ ็ๆฌ | ๆ่ฟฐ |
|---|---|---|---|
| โ AER ่งฃๆๅจ | ๅทฒๅฎๆ | v0.1 | AFSIM ไบ่ฟๅถๅๅบๅๅ๏ผpymystic๏ผ |
| โ ไปช่กจ็ๆ ธๅฟ | ๅทฒๅฎๆ | v0.1 | Streamlit UI ไธ่ฝจ้ๅฏ่งๅ |
| โ FastAPI ๅ็ซฏ | ๅทฒๅฎๆ | v0.1 | ็ถๆ็ฎก็ REST API |
| ๐จ Agent ๅฏน่ฏๆก | ่ฟ่กไธญ | v0.2 | OpenClaw ้ๆไธ่ช็ถ่ฏญ่จๅค็ |
| ๐จ LinkBudgetSkill | ่ฟ่กไธญ | v0.2 | Eb/NโใEIRPใๅนฒๆฐๅๆ |
| ๐จ MCP ๆๅกๅจ็ฝๆกฅ | ่ฟ่กไธญ | v0.2 | ๆ ๅคด AFSIM ๆง่กไธ็ปๆๆตๅผๅค็ |
| ๐ FrequencyOptimizerSkill | ็ญนๅไธญ | v0.3 | ่ชๅจ้ขๆฎต้ๆฉ |
| ๐ ๅคๅบๆฏไผๅ | ็ญนๅไธญ | v0.3 | ๅนถ่กไปฟ็ไธๅฏนๆฏๅๆ |
| ๐ ้ซ็บง่ฝจ้ๅๅญฆ | ็ญนๅไธญ | v0.4 | ๆฐๅจ้กนใ็ขฐๆ่ง้ฟใๅฐ็ซไฟๆ |
| ๐ ็ปๆๅฏผๅบไธๆฅๅ | ็ญนๅไธญ | v0.4 | PDF ๆฅๅใๆฐๆฎๅญๆกฃใๆน้ๅฏผๅบ |
ๆฌข่ฟๆไบค Pull Requestใๅฏนไบ้ๅคงๅๆด๏ผ่ฏทๅ ๆไบค Issue ่ฟ่ก่ฎจ่ฎบใ่ฏท็กฎไฟๅๆญฅๆดๆฐ็ธๅ ณๆต่ฏใ
ๆฌ้กน็ฎ้็จ MIT ่ฎธๅฏ่ฏ๏ผ่ฏฆ่ง LICENSE ๆไปถใ