From 5be24a955cf9773b92ce5813c1fceea3fd37242f Mon Sep 17 00:00:00 2001 From: root_hbx Date: Fri, 5 Dec 2025 01:57:59 +0800 Subject: [PATCH 1/2] feat: webpage for starperf2.0 --- book/src/README.md | 51 ++ book/src/SUMMARY.md | 123 +++++ book/src/about/contact.md | 232 ++++++++++ book/src/about/contributors.md | 284 ++++++++++++ book/src/about/license.md | 114 +++++ book/src/api-reference/entities.md | 1 + book/src/api-reference/introduction.md | 326 +++++++++++++ book/src/api-reference/plugin-interfaces.md | 1 + book/src/api-reference/utilities.md | 1 + book/src/contributing/code-style.md | 1 + book/src/contributing/how-to-contribute.md | 438 ++++++++++++++++++ book/src/contributing/writing-plugins.md | 1 + .../core-modules/beam-placement/case-study.md | 1 + .../core-modules/beam-placement/framework.md | 1 + .../core-modules/beam-placement/overview.md | 144 ++++++ .../core-modules/beam-placement/plugins.md | 1 + .../core-modules/connectivity/case-study.md | 1 + .../core-modules/connectivity/framework.md | 1 + .../src/core-modules/connectivity/overview.md | 151 ++++++ book/src/core-modules/connectivity/plugins.md | 1 + .../duration-based.md | 75 +++ .../constellation-generation/overview.md | 53 +++ .../constellation-generation/tle-based.md | 174 +++++++ .../tle-case-study.md | 1 + .../tle-constellation-config.md | 1 + .../constellation-generation/tle-download.md | 1 + .../tle-orbit-mapping.md | 1 + .../constellation-generation/tle-position.md | 1 + .../tle-shell-mapping.md | 1 + .../constellation-generation/xml-based.md | 98 ++++ .../xml-case-study.md | 1 + .../xml-constellation-config.md | 1 + .../xml-orbit-config.md | 1 + book/src/core-modules/entity/overview.md | 1 + .../evaluation/bentpipe-bandwidth.md | 1 + .../evaluation/bentpipe-coverage.md | 1 + .../core-modules/evaluation/bentpipe-delay.md | 1 + .../core-modules/evaluation/isl-bandwidth.md | 1 + .../evaluation/isl-betweenness.md | 1 + .../core-modules/evaluation/isl-coverage.md | 1 + book/src/core-modules/evaluation/isl-delay.md | 1 + book/src/core-modules/evaluation/overview.md | 171 +++++++ book/src/core-modules/evaluation/with-isl.md | 1 + .../core-modules/evaluation/without-isl.md | 1 + book/src/core-modules/overview.md | 44 ++ book/src/core-modules/routing/framework.md | 1 + book/src/core-modules/routing/overview.md | 1 + book/src/core-modules/routing/plugins.md | 1 + .../satellite-visibility.md | 72 +++ .../core-modules/survivability/framework.md | 1 + .../core-modules/survivability/overview.md | 1 + .../src/core-modules/survivability/plugins.md | 1 + book/src/examples/beam-placement.md | 1 + book/src/examples/connectivity.md | 1 + book/src/examples/evaluation.md | 1 + book/src/examples/overview.md | 320 +++++++++++++ book/src/examples/tle-constellation.md | 1 + book/src/examples/xml-constellation.md | 1 + book/src/getting-started/installation.md | 99 ++++ book/src/getting-started/overview.md | 79 ++++ book/src/getting-started/quick-start.md | 141 ++++++ ...LEconstellation_generation_test_result.png | Bin 0 -> 76783 bytes ...MLconstellation_generation_test_result.png | Bin 0 -> 73774 bytes ...beam_random_placement_execution_result.png | Bin 0 -> 58478 bytes .../src/images/config_module_architecture.png | Bin 0 -> 88791 bytes book/src/images/h5_file_introduction.png | Bin 0 -> 32847 bytes book/src/images/h5_file_tree_structure.png | Bin 0 -> 48576 bytes book/src/images/input_orbit_number.png | Bin 0 -> 43132 bytes .../src/images/kernel_module_architecture.png | Bin 0 -> 133928 bytes book/src/images/level_1_architecture.png | Bin 0 -> 38637 bytes book/src/images/new_kernel_arch.png | Bin 0 -> 55068 bytes book/src/images/raan_distribution.png | Bin 0 -> 16735 bytes book/src/images/satellite_visibility_time.png | Bin 0 -> 56089 bytes .../satellite_visibility_time_result.png | Bin 0 -> 8055 bytes .../images/starperfpy_execute_information.png | Bin 0 -> 72128 bytes book/src/images/tle_download_success.png | Bin 0 -> 4905 bytes book/src/images/tle_tree_structure.png | Bin 0 -> 59119 bytes book/src/images/view_h3_cells_h3id.png | Bin 0 -> 37071 bytes book/src/user-guide/architecture.md | 27 ++ book/src/user-guide/auxiliary-scripts.md | 37 ++ book/src/user-guide/config/ground-stations.md | 1 + book/src/user-guide/config/h5-format.md | 1 + book/src/user-guide/config/pops.md | 1 + .../user-guide/config/tle-constellation.md | 1 + .../user-guide/config/xml-constellation.md | 1 + book/src/user-guide/configuration.md | 160 +++++++ book/src/user-guide/data-storage.md | 32 ++ book/src/user-guide/environment.md | 51 ++ book/src/user-guide/introduction.md | 113 +++++ book/src/visualization/constellation.md | 266 +++++++++++ book/src/visualization/setup.md | 280 +++++++++++ book/theme/css/custom.css | 120 +++++ 92 files changed, 4321 insertions(+) create mode 100644 book/src/README.md create mode 100644 book/src/SUMMARY.md create mode 100644 book/src/about/contact.md create mode 100644 book/src/about/contributors.md create mode 100644 book/src/about/license.md create mode 100644 book/src/api-reference/entities.md create mode 100644 book/src/api-reference/introduction.md create mode 100644 book/src/api-reference/plugin-interfaces.md create mode 100644 book/src/api-reference/utilities.md create mode 100644 book/src/contributing/code-style.md create mode 100644 book/src/contributing/how-to-contribute.md create mode 100644 book/src/contributing/writing-plugins.md create mode 100644 book/src/core-modules/beam-placement/case-study.md create mode 100644 book/src/core-modules/beam-placement/framework.md create mode 100644 book/src/core-modules/beam-placement/overview.md create mode 100644 book/src/core-modules/beam-placement/plugins.md create mode 100644 book/src/core-modules/connectivity/case-study.md create mode 100644 book/src/core-modules/connectivity/framework.md create mode 100644 book/src/core-modules/connectivity/overview.md create mode 100644 book/src/core-modules/connectivity/plugins.md create mode 100644 book/src/core-modules/constellation-generation/duration-based.md create mode 100644 book/src/core-modules/constellation-generation/overview.md create mode 100644 book/src/core-modules/constellation-generation/tle-based.md create mode 100644 book/src/core-modules/constellation-generation/tle-case-study.md create mode 100644 book/src/core-modules/constellation-generation/tle-constellation-config.md create mode 100644 book/src/core-modules/constellation-generation/tle-download.md create mode 100644 book/src/core-modules/constellation-generation/tle-orbit-mapping.md create mode 100644 book/src/core-modules/constellation-generation/tle-position.md create mode 100644 book/src/core-modules/constellation-generation/tle-shell-mapping.md create mode 100644 book/src/core-modules/constellation-generation/xml-based.md create mode 100644 book/src/core-modules/constellation-generation/xml-case-study.md create mode 100644 book/src/core-modules/constellation-generation/xml-constellation-config.md create mode 100644 book/src/core-modules/constellation-generation/xml-orbit-config.md create mode 100644 book/src/core-modules/entity/overview.md create mode 100644 book/src/core-modules/evaluation/bentpipe-bandwidth.md create mode 100644 book/src/core-modules/evaluation/bentpipe-coverage.md create mode 100644 book/src/core-modules/evaluation/bentpipe-delay.md create mode 100644 book/src/core-modules/evaluation/isl-bandwidth.md create mode 100644 book/src/core-modules/evaluation/isl-betweenness.md create mode 100644 book/src/core-modules/evaluation/isl-coverage.md create mode 100644 book/src/core-modules/evaluation/isl-delay.md create mode 100644 book/src/core-modules/evaluation/overview.md create mode 100644 book/src/core-modules/evaluation/with-isl.md create mode 100644 book/src/core-modules/evaluation/without-isl.md create mode 100644 book/src/core-modules/overview.md create mode 100644 book/src/core-modules/routing/framework.md create mode 100644 book/src/core-modules/routing/overview.md create mode 100644 book/src/core-modules/routing/plugins.md create mode 100644 book/src/core-modules/standalone-modules/satellite-visibility.md create mode 100644 book/src/core-modules/survivability/framework.md create mode 100644 book/src/core-modules/survivability/overview.md create mode 100644 book/src/core-modules/survivability/plugins.md create mode 100644 book/src/examples/beam-placement.md create mode 100644 book/src/examples/connectivity.md create mode 100644 book/src/examples/evaluation.md create mode 100644 book/src/examples/overview.md create mode 100644 book/src/examples/tle-constellation.md create mode 100644 book/src/examples/xml-constellation.md create mode 100644 book/src/getting-started/installation.md create mode 100644 book/src/getting-started/overview.md create mode 100644 book/src/getting-started/quick-start.md create mode 100644 book/src/images/TLEconstellation_generation_test_result.png create mode 100644 book/src/images/XMLconstellation_generation_test_result.png create mode 100644 book/src/images/beam_random_placement_execution_result.png create mode 100644 book/src/images/config_module_architecture.png create mode 100644 book/src/images/h5_file_introduction.png create mode 100644 book/src/images/h5_file_tree_structure.png create mode 100644 book/src/images/input_orbit_number.png create mode 100644 book/src/images/kernel_module_architecture.png create mode 100644 book/src/images/level_1_architecture.png create mode 100644 book/src/images/new_kernel_arch.png create mode 100644 book/src/images/raan_distribution.png create mode 100644 book/src/images/satellite_visibility_time.png create mode 100644 book/src/images/satellite_visibility_time_result.png create mode 100644 book/src/images/starperfpy_execute_information.png create mode 100644 book/src/images/tle_download_success.png create mode 100644 book/src/images/tle_tree_structure.png create mode 100644 book/src/images/view_h3_cells_h3id.png create mode 100644 book/src/user-guide/architecture.md create mode 100644 book/src/user-guide/auxiliary-scripts.md create mode 100644 book/src/user-guide/config/ground-stations.md create mode 100644 book/src/user-guide/config/h5-format.md create mode 100644 book/src/user-guide/config/pops.md create mode 100644 book/src/user-guide/config/tle-constellation.md create mode 100644 book/src/user-guide/config/xml-constellation.md create mode 100644 book/src/user-guide/configuration.md create mode 100644 book/src/user-guide/data-storage.md create mode 100644 book/src/user-guide/environment.md create mode 100644 book/src/user-guide/introduction.md create mode 100644 book/src/visualization/constellation.md create mode 100644 book/src/visualization/setup.md create mode 100644 book/theme/css/custom.css diff --git a/book/src/README.md b/book/src/README.md new file mode 100644 index 00000000..7256ee34 --- /dev/null +++ b/book/src/README.md @@ -0,0 +1,51 @@ +# StarPerf: Emerging Mega-Constellations LEO Network Performance Simulator + +Welcome to the StarPerf documentation! This comprehensive guide will help you understand and use StarPerf, a powerful platform for simulating and analyzing the network performance of mega-constellation satellite networks such as Starlink and OneWeb. + +## What is StarPerf? + +"Newspace" mega-constellations are gaining tremendous popularity, with the promising potential to provide high-capacity and low-latency communication globally. StarPerf enables constellation manufacturers and content providers to estimate and understand the achievable performance under a variety of constellation options. + +## Key Features + +StarPerf integrates four key techniques: + +1. **Performance Simulation for Mega-Constellation** + - Captures the impact of inherent high mobility in satellite networks and profiles area-to-area attainable network performance + +2. **Constellation Scaling** + - Synthesizes various topological options by scaling space resources (e.g., number of satellites, link availability and capacity) + +3. **Constellation Visualization** + - Leverages Cesium to render mainstream LEO constellations in a highly interactive and realistic 3D environment + +4. **Security Simulation** + - Based on attack modeling and numerical simulation, including traffic plugins and communication energy consumption plugins + +## StarPerf 2.0 + +StarPerf 2.0 represents a major upgrade from version 1.0: + +- **Pure Python Implementation**: No longer depends on third-party orbit analysis tools (STK, GMAT) +- **Framework + Plugin Architecture**: Highly extensible and modular design +- **Enhanced Functionality**: Richer features and improved usability +- **Python 3.10+ Required**: Modern Python environment + +## QuickStart + +- [Getting Started](./getting-started/overview.md) - Learn the basics and get up and running +- [Installation Guide](./getting-started/installation.md) - Set up your environment +- [Architecture Overview](./user-guide/architecture.md) - Understand the system design +- [API Reference](./api-reference/introduction.md) - Detailed interface documentation +- [Examples](./examples/overview.md) - Practical usage examples + +## Contact + +If you have any questions about StarPerf, please don't hesitate to contact us: + +- Email: zeqilai AT tsinghua.edu.cn +- Email: houyn24 AT mails.tsinghua.edu.cn +- Email: ZhifengHan AT mail.com +- Email: lijh19 AT mails.tsinghua.edu.cn + +Happy benchmarking your constellation! πŸ›°οΈ diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md new file mode 100644 index 00000000..e0346a43 --- /dev/null +++ b/book/src/SUMMARY.md @@ -0,0 +1,123 @@ +# Summary + +[Introduction](./README.md) + +# Getting Started + +- [Overview](./getting-started/overview.md) +- [Installation](./getting-started/installation.md) +- [Quick Start](./getting-started/quick-start.md) + +# User Guide + +- [Introduction](./user-guide/introduction.md) +- [Environment & Dependencies](./user-guide/environment.md) +- [Architecture](./user-guide/architecture.md) +- [Configuration Module](./user-guide/configuration.md) + - [H5 File Format](./user-guide/config/h5-format.md) + - [TLE Constellation](./user-guide/config/tle-constellation.md) + - [XML Constellation](./user-guide/config/xml-constellation.md) + - [Ground Stations](./user-guide/config/ground-stations.md) + - [POPs](./user-guide/config/pops.md) +- [Data Storage Module](./user-guide/data-storage.md) +- [Auxiliary Scripts](./user-guide/auxiliary-scripts.md) + +# Core Modules + +- [Kernel Module Overview](./core-modules/overview.md) + +## Constellation Generation + +- [Overview](./core-modules/constellation-generation/overview.md) +- [XML-based Generation](./core-modules/constellation-generation/xml-based.md) + - [constellation_configuration.py](./core-modules/constellation-generation/xml-constellation-config.md) + - [orbit_configuration.py](./core-modules/constellation-generation/xml-orbit-config.md) + - [Case Study](./core-modules/constellation-generation/xml-case-study.md) +- [TLE-based Generation](./core-modules/constellation-generation/tle-based.md) + - [download_TLE_data.py](./core-modules/constellation-generation/tle-download.md) + - [satellite_to_shell_mapping.py](./core-modules/constellation-generation/tle-shell-mapping.md) + - [satellite_to_orbit_mapping.py](./core-modules/constellation-generation/tle-orbit-mapping.md) + - [get_satellite_position.py](./core-modules/constellation-generation/tle-position.md) + - [constellation_configuration.py](./core-modules/constellation-generation/tle-constellation-config.md) + - [Case Study](./core-modules/constellation-generation/tle-case-study.md) +- [Duration-based Generation](./core-modules/constellation-generation/duration-based.md) + +## Standalone Modules + +- [Satellite Visibility Time](./core-modules/standalone-modules/satellite-visibility.md) + +## Beam Placement + +- [Overview](./core-modules/beam-placement/overview.md) +- [Plugin Specification](./core-modules/beam-placement/plugins.md) +- [Framework](./core-modules/beam-placement/framework.md) +- [Case Study](./core-modules/beam-placement/case-study.md) + +## Connectivity + +- [Overview](./core-modules/connectivity/overview.md) +- [Plugin Specification](./core-modules/connectivity/plugins.md) +- [Framework](./core-modules/connectivity/framework.md) +- [Case Study](./core-modules/connectivity/case-study.md) + +## Performance Evaluation + +- [Overview](./core-modules/evaluation/overview.md) +- [With ISL](./core-modules/evaluation/with-isl.md) + - [Bandwidth](./core-modules/evaluation/isl-bandwidth.md) + - [Betweenness](./core-modules/evaluation/isl-betweenness.md) + - [Coverage](./core-modules/evaluation/isl-coverage.md) + - [Delay](./core-modules/evaluation/isl-delay.md) +- [Without ISL (Bent-pipe)](./core-modules/evaluation/without-isl.md) + - [Bandwidth](./core-modules/evaluation/bentpipe-bandwidth.md) + - [Coverage](./core-modules/evaluation/bentpipe-coverage.md) + - [Delay](./core-modules/evaluation/bentpipe-delay.md) + +## Entity Classes + +- [Overview](./core-modules/entity/overview.md) + +## Routing + +- [Overview](./core-modules/routing/overview.md) +- [Plugin Specification](./core-modules/routing/plugins.md) +- [Framework](./core-modules/routing/framework.md) + +## High Survivability + +- [Overview](./core-modules/survivability/overview.md) +- [Plugin Specification](./core-modules/survivability/plugins.md) +- [Framework](./core-modules/survivability/framework.md) + +# Visualization + +- [Constellation Visualization](./visualization/constellation.md) +- [Setup Instructions](./visualization/setup.md) + +# Examples + +- [Overview](./examples/overview.md) +- [XML Constellation Example](./examples/xml-constellation.md) +- [TLE Constellation Example](./examples/tle-constellation.md) +- [Beam Placement Example](./examples/beam-placement.md) +- [Connectivity Example](./examples/connectivity.md) +- [Performance Evaluation Example](./examples/evaluation.md) + +# API Reference + +- [Introduction](./api-reference/introduction.md) +- [Plugin Interfaces](./api-reference/plugin-interfaces.md) +- [Entity Classes](./api-reference/entities.md) +- [Utility Functions](./api-reference/utilities.md) + +# Contributing + +- [How to Contribute](./contributing/how-to-contribute.md) +- [Writing Plugins](./contributing/writing-plugins.md) +- [Code Style Guide](./contributing/code-style.md) + +# About + +- [License](./about/license.md) +- [Contact](./about/contact.md) +- [Contributors](./about/contributors.md) diff --git a/book/src/about/contact.md b/book/src/about/contact.md new file mode 100644 index 00000000..34e97eff --- /dev/null +++ b/book/src/about/contact.md @@ -0,0 +1,232 @@ +# Contact + +We welcome questions, feedback, and collaboration opportunities related to StarPerf! + +## Development Team + +### Primary Contacts + +For general questions about StarPerf: + +- **Houyn** - houyn24@mails.tsinghua.edu.cn +- **Zhifeng Han** - ZhifengHan.mail@gmail.com +- **Zeqi Lai** - zeqilai@tsinghua.edu.cn +- **Lijh** - lijh19@mails.tsinghua.edu.cn + +### Response Time + +We aim to respond to inquiries within: +- **Bug reports**: 1-2 business days +- **Feature requests**: 3-5 business days +- **General questions**: 1 week + +## Getting Help + +### Before Contacting + +Please check these resources first: + +1. **Documentation** + - Read through relevant sections of this documentation + - Check the [API Reference](../api-reference/introduction.md) + - Review [Examples](../examples/overview.md) + +2. **GitHub Issues** + - Search [existing issues](https://github.com/SpaceNetLab/StarPerf_Simulator/issues) + - Check [closed issues](https://github.com/SpaceNetLab/StarPerf_Simulator/issues?q=is%3Aissue+is%3Aclosed) for solved problems + +3. **Documentation Search** + - Use the search function (top of page) to find relevant topics + +### What to Include + +When contacting us, please provide: + +1. **Clear Description** + - What you're trying to accomplish + - What you've tried so far + - What's not working + +2. **Environment Information** + ```bash + # Include output of: + python --version + uv --version + # Your operating system + ``` + +3. **Code Examples** + ```python + # Minimal reproducible example + # Include relevant code snippets + ``` + +4. **Error Messages** + ``` + # Full error traceback + # Any warning messages + ``` + +## Reporting Issues + +### Bug Reports + +Found a bug? Please report it via [GitHub Issues](https://github.com/SpaceNetLab/StarPerf_Simulator/issues/new): + +**Include:** +- Detailed description of the bug +- Steps to reproduce +- Expected vs. actual behavior +- Environment information +- Screenshots (if applicable) + +**Template:** +```markdown +## Description +Brief description of the issue + +## Steps to Reproduce +1. Step one +2. Step two +3. ... + +## Expected Behavior +What should happen + +## Actual Behavior +What actually happens + +## Environment +- OS: [e.g., macOS 13.0] +- Python version: [e.g., 3.10.5] +- StarPerf version: [e.g., 2.0] + +## Additional Context +Any other relevant information +``` + +### Feature Requests + +Have an idea for a new feature? We'd love to hear it! + +**Submit via:** +- GitHub Issues with `[Feature Request]` label +- Email to the development team + +**Include:** +- Use case description +- Why this feature would be valuable +- Proposed implementation (if you have ideas) +- Examples from other tools (if applicable) + +## Contributing + +Want to contribute code, documentation, or constellation designs? + +1. **Read Contributing Guidelines** + - See [How to Contribute](../contributing/how-to-contribute.md) + - Review [Writing Plugins](../contributing/writing-plugins.md) + +2. **Fork and Clone** + ```bash + git clone https://github.com/YOUR_USERNAME/StarPerf_Simulator.git + cd StarPerf_Simulator + ``` + +3. **Create Branch** + ```bash + git checkout -b feature/your-feature-name + ``` + +4. **Submit Pull Request** + - Include clear description + - Reference related issues + - Add tests if applicable + +## Collaboration Opportunities + +### Research Collaboration + +We're open to research collaborations on: +- Mega-constellation network analysis +- Satellite network performance +- Space-terrestrial network integration +- Security analysis of satellite networks + +**Contact:** houyn24@mails.tsinghua.edu.cn + +### Industry Partnerships + +Interested in using StarPerf for commercial applications or partnerships? + +**Contact:** ZhifengHan.mail@gmail.com + +### Educational Use + +Using StarPerf for teaching or academic purposes? +- We can provide additional resources +- Help with course material development +- Offer guest lectures (subject to availability) + +**Contact:** zeqilai@tsinghua.edu.cn + +## Community + +### Stay Updated + +- **GitHub**: [Watch repository](https://github.com/SpaceNetLab/StarPerf_Simulator) for updates +- **Stars**: Give us a star if you find StarPerf useful! +- **Releases**: Check [releases page](https://github.com/SpaceNetLab/StarPerf_Simulator/releases) for new versions + +### Discussion Forums + +For community discussions: +- Open a [GitHub Discussion](https://github.com/SpaceNetLab/StarPerf_Simulator/discussions) +- Ask questions and share experiences +- Help other users + +## Social Media + +Stay connected: +- GitHub: [@SpaceNetLab](https://github.com/SpaceNetLab) + +## Office Hours + +Currently, we don't have scheduled office hours, but we're responsive to emails and GitHub issues. + +## Mailing List + +Want to stay informed about StarPerf updates? +- Star the repository on GitHub +- Watch for releases and announcements + +## Code of Conduct + +We are committed to providing a welcoming and inclusive environment for all contributors and users. Please: + +- Be respectful and constructive +- Focus on what is best for the community +- Show empathy towards others +- Accept constructive criticism gracefully + +## Privacy + +When contacting us: +- We respect your privacy +- Emails are only used for StarPerf-related communication +- We don't share contact information with third parties + +## Acknowledgments + +Thank you to everyone who has contributed to StarPerf through: +- Code contributions +- Bug reports +- Feature suggestions +- Documentation improvements +- Spreading the word + +Your support makes StarPerf better for everyone! + +--- + +[← Back to Contributors](./contributors.md) | [View License β†’](./license.md) diff --git a/book/src/about/contributors.md b/book/src/about/contributors.md new file mode 100644 index 00000000..e75d2894 --- /dev/null +++ b/book/src/about/contributors.md @@ -0,0 +1,284 @@ +# Contributors + +StarPerf is developed and maintained by a dedicated team of researchers and engineers committed to advancing satellite network simulation capabilities. + +## Core Team + +### Research Lead +The project is led by researchers from Tsinghua University's Department of Computer Science and Technology. + +### Development Team + +The core development team includes: + +- **Houyn** - Core architecture and framework development + - Email: houyn24@mails.tsinghua.edu.cn + +- **Zhifeng Han** - Algorithm design and performance optimization + - Email: ZhifengHan.mail@gmail.com + +- **Zeqi Lai** - Visualization and data analysis + - Email: zeqilai@tsinghua.edu.cn + +- **Lijh** - Testing and documentation + - Email: lijh19@mails.tsinghua.edu.cn + +## Institutional Support + +### Tsinghua University +StarPerf is developed at Tsinghua University, one of China's leading research institutions. + +**Department**: Computer Science and Technology + +**Lab**: SpaceNetLab - Focusing on space-terrestrial integrated networks research + +## Contribution Types + +### Code Contributors +Developers who have contributed to the codebase: +- Core framework implementation +- Plugin development +- Bug fixes and optimizations +- Test coverage improvements + +### Documentation Contributors +Those who have helped improve documentation: +- User guide authors +- API documentation writers +- Tutorial creators +- Translation support + +### Research Contributors +Researchers who have used StarPerf in their work: +- Published papers citing StarPerf +- Validation and testing +- Feature requirements and feedback +- Use case studies + +### Community Contributors +Community members who have helped: +- Bug reports +- Feature requests +- Answering questions +- Promoting StarPerf + +## How to Become a Contributor + +We welcome contributions from everyone! Here's how you can help: + +### 1. Code Contributions + +**What we need:** +- New plugins (routing algorithms, connectivity modes, etc.) +- Performance improvements +- Bug fixes +- Test coverage +- New constellation configurations + +**How to contribute:** +```bash +# Fork the repository +git clone https://github.com/YOUR_USERNAME/StarPerf_Simulator.git + +# Create a feature branch +git checkout -b feature/my-contribution + +# Make your changes +# ... code ... + +# Commit and push +git add . +git commit -m "Add: brief description" +git push origin feature/my-contribution + +# Open a Pull Request on GitHub +``` + +See [How to Contribute](../contributing/how-to-contribute.md) for details. + +### 2. Documentation Contributions + +**What we need:** +- Tutorial improvements +- Translation to other languages +- Code examples +- FAQ entries +- Video tutorials + +**How to help:** +- Documentation is in `book/src/` +- Follow the existing style +- Include code examples where applicable +- Test all examples + +### 3. Testing and Feedback + +**What helps:** +- Report bugs with detailed reproduction steps +- Test new features +- Provide performance benchmarks +- Share use cases + +### 4. Constellation Designs + +**What we'd love:** +- New constellation configurations +- Real TLE data for additional constellations +- Validation data +- Performance benchmarks + +## Recognition + +### Contributors Wall + +We maintain a list of all contributors who have made significant contributions: + +- **Pull Request Authors**: Listed in GitHub +- **Issue Reporters**: Acknowledged in issue discussions +- **Major Contributors**: Featured here and in publications + +### Citation Credits + +If your contribution leads to a research publication, we ensure proper citation and acknowledgment: + +```bibtex +@inproceedings{starperf, + title={StarPerf: A Network Performance Simulator}, + author={Core Team and Contributors}, + ... +} +``` + +## Contribution Guidelines + +### Code Quality + +- Follow Python PEP 8 style guide +- Include docstrings for all functions +- Add type hints where applicable +- Write tests for new features + +### Documentation Standards + +- Use clear, concise language +- Include code examples +- Test all examples +- Update relevant sections + +### Communication + +- Be respectful and constructive +- Provide context in issues and PRs +- Respond to feedback promptly +- Help review others' contributions + +## Special Thanks + +### Research Community + +Thank you to researchers who have: +- Published papers using StarPerf +- Provided valuable feedback +- Shared validation data +- Cited our work + +### Open Source Community + +We're grateful to: +- Python community for excellent libraries +- Open source projects we depend on +- GitHub for hosting and tools +- Users who report issues and suggest features + +### Funding Support + +StarPerf development has been supported by: +- Research grants +- University funding +- Collaborative projects + +## Join Us + +Want to be part of the StarPerf community? + +1. **Star the Repository** + - Show your support on [GitHub](https://github.com/SpaceNetLab/StarPerf_Simulator) + +2. **Fork and Contribute** + - Start with small contributions + - Graduate to larger features + +3. **Engage in Discussions** + - Answer questions + - Share experiences + - Provide feedback + +4. **Spread the Word** + - Share with colleagues + - Write blog posts + - Present at conferences + +## Contributor Stats + +### By the Numbers + +- **Total Contributors**: Growing community +- **Commits**: Thousands of improvements +- **Issues Resolved**: Hundreds of bug fixes +- **Pull Requests**: Community contributions + +### Top Contributors + +Contributors are recognized based on: +- Number of commits +- Quality of contributions +- Community engagement +- Long-term involvement + +## Future Goals + +We're always looking for help with: + +### Short-term +- Expanding documentation with more examples +- Adding test coverage +- Improving performance +- Bug fixes + +### Long-term +- Support for more constellation types +- Integration with other tools +- Advanced visualization features +- Machine learning capabilities + +## Become a Maintainer + +Exceptional contributors may be invited to join as maintainers with: +- Direct commit access +- PR review responsibilities +- Roadmap input +- Community leadership roles + +**Criteria:** +- Consistent quality contributions +- Good communication skills +- Understanding of project goals +- Community engagement + +## Contact for Contribution Questions + +Have questions about contributing? + +- **General**: Open a GitHub Discussion +- **Specific**: Email any core team member +- **Complex**: Schedule a video call + +See [Contact](./contact.md) for details. + +--- + +**Thank you to all our contributors!** Your efforts make StarPerf a better platform for everyone. πŸš€ + +--- + +[← Back to License](./license.md) | [Contact Us β†’](./contact.md) diff --git a/book/src/about/license.md b/book/src/about/license.md new file mode 100644 index 00000000..4d469924 --- /dev/null +++ b/book/src/about/license.md @@ -0,0 +1,114 @@ +# License + +StarPerf 1.0 and StarPerf 2.0 are open source projects licensed under the BSD-2-Clause License. + +## BSD-2-Clause License + +Copyright (c) StarPerf Team. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +## What This Means + +The BSD-2-Clause License is a permissive open source license that allows you to: + +### βœ… You Can + +- **Use** the software for any purpose, including commercial applications +- **Modify** the source code to suit your needs +- **Distribute** the original or modified versions +- **Incorporate** StarPerf into proprietary software +- **Use privately** without any obligation to share modifications + +### ⚠️ You Must + +- **Include the license** and copyright notice in any redistribution +- **Include the disclaimer** in binary distributions +- **Give credit** to the original authors + +### ❌ You Cannot + +- **Hold liable** the authors or copyright holders for any damages +- **Use trademarks** without permission +- **Remove** or alter license notices + +## Third-Party Dependencies + +StarPerf uses several third-party Python libraries, each with their own licenses: + +| Library | License | Use Case | +|---------|---------|----------| +| h3 | Apache-2.0 | Geospatial indexing | +| h5py | BSD-3-Clause | HDF5 file handling | +| numpy | BSD-3-Clause | Numerical computing | +| pandas | BSD-3-Clause | Data manipulation | +| skyfield | MIT | Satellite position calculation | +| sgp4 | MIT | Orbital propagation | +| poliastro | MIT | Astrodynamics | +| astropy | BSD-3-Clause | Astronomy computations | +| networkx | BSD-3-Clause | Graph algorithms | +| requests | Apache-2.0 | HTTP library | +| jenkspy | MIT | Natural breaks algorithm | +| pyecharts | MIT | Visualization | +| openpyxl | MIT | Excel file processing | +| global_land_mask | MIT | Land/ocean detection | +| importlib-metadata | Apache-2.0 | Package metadata | + +All dependencies are compatible with the BSD-2-Clause License and can be used together in the same project. + +## Citations + +If you use StarPerf in your research, please cite: + +```bibtex +@inproceedings{starperf, + title={StarPerf: A Network Performance Simulator for Emerging Mega-Constellations}, + author={Your Team}, + booktitle={Conference Name}, + year={2024} +} +``` + +## Related Publications + +StarPerf has been used in the following research: + +1. **Time-varying Bottleneck Links in LEO Satellite Networks** + - Published in NDSS 2025 + - [Link to paper](https://www.ndss-symposium.org/ndss-paper/time-varying-bottleneck-links-in-leo-satellite-networks-identification-exploits-and-countermeasures/) + +2. **Energy Drain Attack in Satellite Internet Constellations** + - Published in IWQoS 2023 + - [Link to paper](https://ieeexplore.ieee.org/document/10188709) + +## Acknowledgments + +StarPerf is developed and maintained by researchers from: +- Tsinghua University +- [Other institutions] + +We thank all contributors and the open source community for their valuable input and support. + +## Contact for Licensing Questions + +For questions about licensing, commercial use, or other legal matters, please contact: + +- Email: houyn24@mails.tsinghua.edu.cn +- Email: ZhifengHan.mail@gmail.com + +## License History + +- **Version 2.0** (2023-Present): BSD-2-Clause License +- **Version 1.0** (2019-2023): BSD-2-Clause License + +The license has remained consistent across versions, maintaining the project's commitment to open source principles. + +--- + +[← Back to About](./contact.md) | [View on GitHub β†’](https://github.com/SpaceNetLab/StarPerf_Simulator) diff --git a/book/src/api-reference/entities.md b/book/src/api-reference/entities.md new file mode 100644 index 00000000..27c9d783 --- /dev/null +++ b/book/src/api-reference/entities.md @@ -0,0 +1 @@ +# Entity Classes diff --git a/book/src/api-reference/introduction.md b/book/src/api-reference/introduction.md new file mode 100644 index 00000000..ba5312dd --- /dev/null +++ b/book/src/api-reference/introduction.md @@ -0,0 +1,326 @@ +# API Reference Introduction + +This section provides detailed documentation of StarPerf's programming interfaces, helping you understand and extend the platform. + +## Overview + +StarPerf 2.0 follows a **"Framework + Plugin"** architecture, where: + +- **Framework**: Provides core functionality and standardized APIs +- **Plugins**: Implement specific features using the framework's APIs + +This design enables high extensibility while maintaining consistency across the platform. + +## API Categories + +### 1. Entity Classes + +Core data structures representing constellation components: +- `Constellation` - Complete satellite network +- `Shell` - Orbital shell within a constellation +- `Orbit` - Circular path containing satellites +- `Satellite` - Individual spacecraft +- `GroundStation` - Ground infrastructure +- `User` - Communication endpoint +- `POP` - Point of presence + +[Learn more β†’](./entities.md) + +### 2. Plugin Interfaces + +Standardized interfaces for extending functionality: +- **Beam Placement Plugins** - Satellite beam scheduling algorithms +- **Connectivity Plugins** - Inter-satellite link establishment +- **Routing Plugins** - Path selection strategies +- **Survivability Plugins** - Damage and failure modeling + +[Learn more β†’](./plugin-interfaces.md) + +### 3. Utility Functions + +Helper functions for common operations: +- Position calculations +- Distance computations +- Coverage analysis +- Data I/O operations + +[Learn more β†’](./utilities.md) + +## API Design Principles + +### 1. Consistency + +All plugins follow the same patterns: +```python +# Every plugin has: +# 1. Standard location in src/[constellation_type]/[module]/[category]_plugin/ +# 2. Entry function with same name as file +# 3. Standardized parameter list +# 4. Well-defined return values +``` + +### 2. Type Safety + +Functions use clear type hints: +```python +def constellation_configuration( + dT: int, + constellation_name: str +) -> Constellation: + """ + Generate constellation from XML configuration. + + Args: + dT: Timestamp interval in seconds + constellation_name: Name of constellation + + Returns: + Constellation object + """ + pass +``` + +### 3. Documentation + +Every function includes: +- Purpose description +- Parameter specifications (name, type, unit, meaning) +- Return value description +- Usage examples + +### 4. Extensibility + +Clear interfaces enable custom implementations: +```python +# Write your own plugin following the interface: +def my_custom_routing(constellation: Constellation, dT: int) -> None: + """ + Custom routing strategy. + + Must follow routing plugin interface specifications. + """ + # Your implementation here + pass +``` + +## Common API Patterns + +### Pattern 1: Manager-Based Plugin Execution + +Most plugins use a manager for execution: + +```python +# 1. Import manager +from src.XML_constellation.constellation_connectivity import connectivity_mode_plugin_manager + +# 2. Instantiate manager +manager = connectivity_mode_plugin_manager.connectivity_mode_plugin_manager() + +# 3. Set plugin +manager.set_connection_mode("positive_Grid") + +# 4. Execute +manager.execute_connection_policy( + constellation=constellation, + dT=dT +) +``` + +### Pattern 2: Direct Function Call + +Some modules provide direct functions: + +```python +# Import function directly +from src.standalone_module import satellite_visibility_time + +# Call with parameters +visibility_time = satellite_visibility_time.satellite_visibility_time( + ΞΈ=25, # Elevation angle + h=550 # Orbital altitude +) +``` + +### Pattern 3: Configuration-Based Initialization + +Constellation generation uses configuration: + +```python +from src.constellation_generation.by_XML import constellation_configuration + +# Configuration read from XML file +constellation = constellation_configuration.constellation_configuration( + dT=5730, + constellation_name="Starlink" # Reads config/XML_constellation/Starlink.xml +) +``` + +## Parameter Units + +StarPerf uses consistent units across all APIs: + +| Quantity | Unit | Example | +|----------|------|---------| +| Time | seconds | `dT = 1000` | +| Distance | kilometers | `altitude = 550` | +| Angle | degrees | `inclination = 53.0` | +| Bandwidth | Gbps | `isl_capacity = 5.0` | +| Frequency | GHz | `uplink = 2.1` | +| Latitude | degrees | `lat = 47.6` | +| Longitude | degrees | `lon = -122.3` | + +## Data Storage Conventions + +### HDF5 File Structure + +StarPerf uses HDF5 for efficient data storage: + +```python +import h5py + +# Standard structure: +# constellation.h5 +# β”œβ”€β”€ position/ +# β”‚ β”œβ”€β”€ shell1/ +# β”‚ β”‚ β”œβ”€β”€ timeslot1 (dataset) +# β”‚ β”‚ └── timeslot2 (dataset) +# β”‚ └── shell2/ +# └── delay/ +# β”œβ”€β”€ shell1/ +# └── shell2/ +``` + +### File Paths + +```python +# XML constellation data +data_path = f"data/XML_constellation/{constellation_name}.h5" + +# TLE constellation data +data_path = f"data/TLE_constellation/{constellation_name}.h5" + +# Configuration files +config_path = f"config/XML_constellation/{constellation_name}.xml" +config_path = f"config/TLE_constellation/{constellation_name}/tle.h5" +``` + +## Error Handling + +StarPerf uses standard Python exceptions: + +```python +try: + constellation = constellation_configuration.constellation_configuration( + dT=5730, + constellation_name="NonExistent" + ) +except FileNotFoundError as e: + print(f"Configuration file not found: {e}") +except ValueError as e: + print(f"Invalid parameter: {e}") +``` + +## Best Practices + +### 1. Use Type Hints + +```python +from typing import List, Dict, Optional + +def analyze_coverage( + constellation: Constellation, + resolution: int = 2 +) -> List[float]: + """Return coverage values for each timeslot.""" + pass +``` + +### 2. Validate Parameters + +```python +def set_resolution(resolution: int) -> None: + """Set H3 resolution (must be 0-4).""" + if not 0 <= resolution <= 4: + raise ValueError(f"Resolution must be 0-4, got {resolution}") + # ... +``` + +### 3. Document Units + +```python +def calculate_delay( + distance_km: float, + speed_of_light_kmps: float = 299792.458 +) -> float: + """ + Calculate propagation delay. + + Args: + distance_km: Distance in kilometers + speed_of_light_kmps: Speed of light in km/s + + Returns: + Delay in seconds + """ + return distance_km / speed_of_light_kmps +``` + +### 4. Use Descriptive Names + +```python +# Good +satellite_altitude_km = 550 +minimum_elevation_angle_deg = 25 + +# Avoid +h = 550 +e = 25 +``` + +## Quick Reference + +### Constellation Generation + +```python +# XML-based +from src.constellation_generation.by_XML import constellation_configuration +constellation = constellation_configuration.constellation_configuration(dT, constellation_name) + +# TLE-based +from src.constellation_generation.by_TLE import constellation_configuration +constellation = constellation_configuration.constellation_configuration(dT, constellation_name) +``` + +### Connectivity + +```python +from src.XML_constellation.constellation_connectivity import connectivity_mode_plugin_manager +manager = connectivity_mode_plugin_manager.connectivity_mode_plugin_manager() +manager.execute_connection_policy(constellation, dT) +``` + +### Evaluation + +```python +from src.XML_constellation.constellation_evaluation import evaluation + +# Coverage +coverage = evaluation.coverage(constellation_name, dT, sh, tile_size, minimum_elevation) + +# Delay +delay = evaluation.delay(constellation_name, source, target, dT, sh) + +# Bandwidth +bandwidth = evaluation.bandwidth(constellation_name, source, target, sh, Ξ», isl_capacity, dT) +``` + +## Next Steps + +Explore detailed API documentation: +- [Entity Classes](./entities.md) - Core data structures +- [Plugin Interfaces](./plugin-interfaces.md) - Extension points +- [Utility Functions](./utilities.md) - Helper functions + +Or see APIs in action: +- [Examples](../examples/overview.md) - Practical usage examples +- [Core Modules](../core-modules/overview.md) - Module documentation diff --git a/book/src/api-reference/plugin-interfaces.md b/book/src/api-reference/plugin-interfaces.md new file mode 100644 index 00000000..fb1c2fa9 --- /dev/null +++ b/book/src/api-reference/plugin-interfaces.md @@ -0,0 +1 @@ +# Plugin Interfaces diff --git a/book/src/api-reference/utilities.md b/book/src/api-reference/utilities.md new file mode 100644 index 00000000..782b445c --- /dev/null +++ b/book/src/api-reference/utilities.md @@ -0,0 +1 @@ +# Utility Functions diff --git a/book/src/contributing/code-style.md b/book/src/contributing/code-style.md new file mode 100644 index 00000000..7fe26c97 --- /dev/null +++ b/book/src/contributing/code-style.md @@ -0,0 +1 @@ +# Code Style Guide diff --git a/book/src/contributing/how-to-contribute.md b/book/src/contributing/how-to-contribute.md new file mode 100644 index 00000000..df35e73d --- /dev/null +++ b/book/src/contributing/how-to-contribute.md @@ -0,0 +1,438 @@ +# How to Contribute + +We welcome and appreciate contributions to StarPerf! This guide will help you get started. + +## Ways to Contribute + +### 1. Bug Reports πŸ› + +Found a bug? Help us improve by reporting it! + +**Where to report:** +- [GitHub Issues](https://github.com/SpaceNetLab/StarPerf_Simulator/issues) + +**What to include:** +- Clear, descriptive title +- Steps to reproduce +- Expected vs actual behavior +- Environment details (OS, Python version, etc.) +- Error messages and stack traces +- Screenshots if applicable + +**Template:** +```markdown +**Description** +Clear description of the bug + +**To Reproduce** +1. Step one +2. Step two +3. See error + +**Expected Behavior** +What should happen + +**Actual Behavior** +What actually happens + +**Environment** +- OS: macOS 13.0 +- Python: 3.10.5 +- StarPerf: 2.0 + +**Additional Context** +Any other relevant information +``` + +### 2. Feature Requests πŸ’‘ + +Have an idea for a new feature? + +**Submit via:** +- GitHub Issues with `[Feature Request]` label + +**Include:** +- Clear description of the feature +- Use case and motivation +- Proposed implementation (if you have ideas) +- Alternative solutions considered + +### 3. Code Contributions πŸ’» + +Ready to write code? Great! + +**Process:** +1. Fork the repository +2. Create a feature branch +3. Make your changes +4. Write/update tests +5. Update documentation +6. Submit a pull request + +See [Development Workflow](#development-workflow) below for details. + +### 4. Documentation πŸ“š + +Help make StarPerf easier to use! + +**Areas:** +- User guides and tutorials +- API documentation +- Code examples +- README improvements +- Typo fixes + +### 5. Constellation Designs πŸ›°οΈ + +Contribute new constellation configurations! + +**What we need:** +- New XML constellation configs +- Real TLE data for additional constellations +- Validation data and benchmarks +- Ground station and POP configurations + +### 6. Test Cases πŸ§ͺ + +Improve code quality with tests! + +**Types:** +- Unit tests for individual functions +- Integration tests for workflows +- Performance benchmarks +- Edge case scenarios + +## Development Workflow + +### Step 1: Fork and Clone + +```bash +# Fork on GitHub, then clone your fork +git clone https://github.com/YOUR_USERNAME/StarPerf_Simulator.git +cd StarPerf_Simulator + +# Add upstream remote +git remote add upstream https://github.com/SpaceNetLab/StarPerf_Simulator.git +``` + +### Step 2: Set Up Environment + +```bash +# Install uv if not already installed +curl -LsSf https://astral.sh/uv/install.sh | sh + +# Install dependencies +uv sync + +# Verify installation +uv run python StarPerf.py +``` + +### Step 3: Create Branch + +```bash +# Update main branch +git checkout main +git pull upstream main + +# Create feature branch with descriptive name +git checkout -b feature/add-new-routing-plugin +# or +git checkout -b fix/satellite-position-bug +# or +git checkout -b docs/improve-api-reference +``` + +**Branch naming conventions:** +- `feature/description` - New features +- `fix/description` - Bug fixes +- `docs/description` - Documentation +- `refactor/description` - Code refactoring +- `test/description` - Test additions + +### Step 4: Make Changes + +Write your code following our [Code Style Guide](./code-style.md). + +**Guidelines:** +- Write clear, self-documenting code +- Add comments for complex logic +- Include docstrings for all functions +- Follow existing patterns in the codebase + +**Example:** +```python +def calculate_satellite_coverage( + satellite: Satellite, + h3_resolution: int = 2, + minimum_elevation: float = 25.0 +) -> List[str]: + """ + Calculate H3 cells covered by satellite. + + Args: + satellite: Satellite object to analyze + h3_resolution: H3 grid resolution (0-4) + minimum_elevation: Minimum elevation angle in degrees + + Returns: + List of H3 cell IDs covered by satellite + + Raises: + ValueError: If resolution is not in range 0-4 + """ + if not 0 <= h3_resolution <= 4: + raise ValueError(f"Resolution must be 0-4, got {h3_resolution}") + + # Implementation + covered_cells = [] + # ... + return covered_cells +``` + +### Step 5: Test Your Changes + +```bash +# Run existing tests (if available) +uv run python -m pytest tests/ + +# Test your specific changes +uv run python samples/your_test_case.py + +# Manual testing +uv run python StarPerf.py +``` + +### Step 6: Commit Changes + +Write clear, descriptive commit messages: + +```bash +# Stage your changes +git add . + +# Commit with descriptive message +git commit -m "Add: New routing plugin for shortest path with QoS + +- Implement QoS-aware shortest path algorithm +- Add tests for QoS routing +- Update documentation with usage example +- Fixes #123" +``` + +**Commit message format:** +``` +Type: Brief description (50 chars or less) + +More detailed explanation if needed. Wrap at 72 characters. + +- Bullet points for multiple changes +- Reference issues: Fixes #123, Relates to #456 +``` + +**Commit types:** +- `Add:` New features +- `Fix:` Bug fixes +- `Update:` Updates to existing features +- `Remove:` Removal of code +- `Refactor:` Code refactoring +- `Docs:` Documentation changes +- `Test:` Test additions/changes + +### Step 7: Push and Create PR + +```bash +# Push to your fork +git push origin feature/add-new-routing-plugin +``` + +Then on GitHub: +1. Navigate to your fork +2. Click "Compare & pull request" +3. Fill out the PR template +4. Submit the pull request + +**PR Title Format:** +``` +[Type] Brief description + +Examples: +[Feature] Add QoS-aware routing plugin +[Fix] Correct satellite position calculation +[Docs] Improve installation guide +``` + +**PR Description Template:** +```markdown +## Description +Brief description of changes + +## Type of Change +- [ ] Bug fix +- [ ] New feature +- [ ] Documentation +- [ ] Refactoring + +## Changes Made +- Change 1 +- Change 2 +- Change 3 + +## Testing +- [ ] Tested locally +- [ ] Added new tests +- [ ] All existing tests pass + +## Related Issues +Fixes #123 +Relates to #456 + +## Screenshots (if applicable) +[Add screenshots] + +## Checklist +- [ ] Code follows style guidelines +- [ ] Self-review completed +- [ ] Comments added for complex code +- [ ] Documentation updated +- [ ] No new warnings generated +``` + +## Review Process + +### What Happens Next + +1. **Automated Checks** + - CI/CD pipeline runs (if configured) + - Code quality checks + - Test execution + +2. **Code Review** + - Maintainer reviews your code + - May request changes + - Discussion and iteration + +3. **Approval and Merge** + - Once approved, PR is merged + - Your contribution is part of StarPerf! + +### Review Timeline + +- **Initial review**: Within 1 week +- **Follow-up**: 2-3 business days +- **Approval**: When all feedback is addressed + +### Responding to Feedback + +```bash +# Make requested changes +# ... edit files ... + +# Commit changes +git add . +git commit -m "Update: Address review feedback + +- Fix variable naming as suggested +- Add error handling +- Improve documentation" + +# Push updates +git push origin feature/add-new-routing-plugin +``` + +The PR automatically updates with your new commits. + +## Contribution Standards + +### Code Quality + +- βœ… Follow PEP 8 style guide +- βœ… Include type hints +- βœ… Write docstrings +- βœ… Add comments for complex logic +- βœ… Keep functions focused and small +- βœ… Use descriptive variable names + +### Testing + +- βœ… Test your changes thoroughly +- βœ… Add automated tests if possible +- βœ… Verify existing tests still pass +- βœ… Test edge cases + +### Documentation + +- βœ… Update relevant documentation +- βœ… Add docstrings to new functions +- βœ… Include usage examples +- βœ… Update CHANGELOG (if applicable) + +## Communication + +### Be Respectful + +- Use welcoming and inclusive language +- Respect differing viewpoints +- Accept constructive criticism gracefully +- Focus on what's best for the community + +### Be Clear + +- Provide context in issues and PRs +- Explain your reasoning +- Ask questions if something is unclear +- Respond to feedback promptly + +## Getting Help + +Stuck? Need guidance? + +1. **Check Documentation** + - Read relevant sections + - Review examples + - Check API reference + +2. **Search Existing Issues** + - Someone may have asked before + - Check closed issues too + +3. **Ask Questions** + - Open a GitHub Discussion + - Email the development team + - Be specific about your problem + +4. **Join the Community** + - Engage in discussions + - Help others + - Share your experiences + +## Recognition + +Contributors are recognized through: + +- πŸ† GitHub contributors list +- πŸ“ Acknowledgments in documentation +- 🎯 Mentions in release notes +- 🌟 Featured on contributors page + +Significant contributors may be invited to join as maintainers! + +## License + +By contributing, you agree that your contributions will be licensed under the BSD-2-Clause License. See [License](../about/license.md) for details. + +## Questions? + +Have questions about contributing? + +- πŸ“§ Email: houyn24@mails.tsinghua.edu.cn +- πŸ’¬ GitHub Discussions +- πŸ“ Open an issue + +--- + +**Thank you for contributing to StarPerf!** πŸš€ + +--- + +[Next: Writing Plugins β†’](./writing-plugins.md) diff --git a/book/src/contributing/writing-plugins.md b/book/src/contributing/writing-plugins.md new file mode 100644 index 00000000..68228309 --- /dev/null +++ b/book/src/contributing/writing-plugins.md @@ -0,0 +1 @@ +# Writing Plugins diff --git a/book/src/core-modules/beam-placement/case-study.md b/book/src/core-modules/beam-placement/case-study.md new file mode 100644 index 00000000..d4b70890 --- /dev/null +++ b/book/src/core-modules/beam-placement/case-study.md @@ -0,0 +1 @@ +# Case Study diff --git a/book/src/core-modules/beam-placement/framework.md b/book/src/core-modules/beam-placement/framework.md new file mode 100644 index 00000000..2660e90d --- /dev/null +++ b/book/src/core-modules/beam-placement/framework.md @@ -0,0 +1 @@ +# Framework diff --git a/book/src/core-modules/beam-placement/overview.md b/book/src/core-modules/beam-placement/overview.md new file mode 100644 index 00000000..9fcffba2 --- /dev/null +++ b/book/src/core-modules/beam-placement/overview.md @@ -0,0 +1,144 @@ +# Beam Placement + +This part includes two aspects. One is "framework" part: beam placement plug-in manager, another is the "plug-in" part: various beam placement algorithms. + +## Overview + +The beam placement module is responsible for determining how satellite beams are directed to cover areas on Earth's surface. StarPerf 2.0 uses a plugin-based architecture that allows for flexible implementation of different beam placement strategies. + +## Architecture + +The beam placement module consists of: + +1. **Framework**: `beam_placement_plugin_manager.py` - manages all beam placement plugins +2. **Plugins**: Various beam placement algorithms (e.g., `random_placement.py`) + +## Plug-ins + +All plug-ins under this module are beam placement algorithms, and one plug-in represents a beam placement algorithm. We implement the random beam placement algorithm (i.e. `random_placement.py`) by default, and you can write other beam placement algorithm plug-ins by yourself according to the interface specifications. + +### Interface Specifications + +The interface specifications for beam placement plugins are as follows: + +- **Requirement 1**: The storage location of the plug-in is (starting from the root of StarPerf 2.0): `src/TLE_constellation/constellation_beamplacement/beam_placement_plugin/` (for TLE constellation) or `src/XML_constellation/constellation_beamplacement/beam_placement_plugin/` (for XML constellation). + +- **Requirement 2**: Each plug-in is a ".py" file, and all source code for the plug-in must be located in this script file. + +- **Requirement 3**: The launch entry for a plug-in is a function with the same name as the plug-in. + +- **Requirement 4**: The startup function parameter requirements are as follows: + +**Table: beam placement plug-ins startup function parameter list** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :---------------------------: | :------------: | :------------: | :---------------------------------------------------------------------------------------------------------------: | +| sh | shell | - | a shell class object, representing a layer of shell in the constellation | +| h3_resolution | int | - | the resolution of cells divided by h3 library, and currently supported resolutions are: 0/1/2/3/4 | +| antenna_count_per_satellite | int | - | the number of antennas each satellite is equipped with | +| dT | int | second | indicates how often the beam is scheduled, and this value must be less than the orbital period of the satellite | +| minimum_elevation | float | degree | the minimum elevation angle at which a satellite can be seen from a point on the ground | + +- **Requirement 5**: The return value of the startup function is all cells covered after executing the beam placement algorithm. + +- **Requirement 6**: If one plug-in needs to save intermediate data or result data, the data should be saved in an h5 format file under "data/". + +## Framework + +This part of the framework consists of 1 py script: `beam_placement_plugin_manager.py`. A beam placement plug-in manager is defined in this script to manage all plug-ins under this module. + +The so-called beam placement plug-in manager actually defines a class named `beam_placement_plugin_manager`. The attributes and methods contained in this class and their functions and meanings are shown in the tables below. + +### Attributes + +**Table: beam placement plug-in manager attributes list** + +| Attribute Name | Attribute Type | Attribute Meaning | +| :------------------------------: | :------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| plugins | dict | a dictionary composed of all plug-ins. The "key" is the plug-in name, which is a string type, and the "value" is the plug-in startup function in the corresponding plug-in, which is a function | +| current_beamplacement_policy | str | plug-in name used by the current beam placement plug-in manager | + +### Methods + +**Table: beam placement plug-in manager methods list** + +| Method Name | Parameter List
(name : type : unit) | Return Values | Method Function | +| :------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| \_\_init\_\_ | - | - | initialize an instance of the beam placement plugin manager | +| set_beamplacement_policy | (plugin_name : str : -) | - | set the value of current_beamplacement_policy to plugin_name | +| execute_beamplacement_policy | (sh : shell : - ,
h3_resolution : int : - , antenna_count_per_satellite : int : - ,
dT : int : second , minimum_elevation : float : degree) | cells covered by the beam, all cells | according to the value of the current_beamplacement_policy attribute, the startup function of the corresponding plug-in is called to execute the beam placement algorithm. | + +## Operating Mechanism + +The operating mechanism of this framework is: + +1. First instantiate a beam placement plug-in manager object. This object contains two attributes: `plugins` and `current_beamplacement_policy`. + - `plugins` is a dictionary type attribute used to store various beam placement plugins + - `current_beamplacement_policy` is a string type used to represent the beam placement plugin used by the current manager + +2. During the instantiation of the manager object, the system automatically reads all beam placement plug-ins and stores them in the `plugins`. The key of `plugins` is the name of the plugin, and the value of `plugins` is the startup function of the plugin. + +3. After reading all plug-ins, the system sets the value of `current_beamplacement_policy` to "random_placement", indicating that the "random_placement" plug-in is used as the default beam placement algorithm. + +4. If you want to execute the beam placement algorithm, you only need to call the `execute_beamplacement_policy` method of the manager object. This method will automatically call the startup function of the plug-in indicated by `current_beamplacement_policy`. + +5. If you need to switch the beam placement plug-in, just call the `set_beamplacement_policy` method and pass in the plug-in name you need as a parameter. + +6. After you write your own beam placement algorithm plug-in according to the interface specifications introduced earlier, you only need to set `current_beamplacement_policy` as your plug-in name, and the system will automatically recognize your plug-in and execute it. + +## Case Study + +Now, we take "random_placement" as an example to explain the operation of the beam placement module. + +### Step 1: Instantiate the Manager + +```python +beamPlacementPluginManager = beam_placement_plugin_manager.beam_placement_plugin_manager() +``` + +### Step 2: Set the Beam Placement Plugin + +```python +beamPlacementPluginManager.set_beamplacement_policy("random_placement") +``` + +**Note**: The beam placement plug-in manager already sets the `current_beamplacement_policy` value to "random_placement" when initialized, so this step can be omitted here. But if you want to use other beam placement plug-ins, this step cannot be omitted. + +### Step 3: Execute the Beam Placement Algorithm + +```python +covered_cells_per_timeslot, Cells = beamPlacementPluginManager.execute_beamplacement_policy( + bent_pipe_constellation.shells[0], + h3_resolution, + antenna_count_per_satellite, + dT, + minimum_elevation +) +``` + +There are two return values in Step 3: +- `covered_cells_per_timeslot` represents the cells covered by the beam +- `Cells` represents all cells (including those covered by the beam and those not covered by the beam) + +### Results + +The code execution results are as follows (part): + +![Beam Random Placement Execution Result](../../images/beam_random_placement_execution_result.png) + +The complete code of the above process can be found at: `samples/TLE_constellation/beam_placement/random_placement.py` and `samples/XML_constellation/beam_placement/random_placement.py`. + +## Creating Custom Beam Placement Algorithms + +To create your own beam placement algorithm: + +1. Create a new Python file in the `beam_placement_plugin/` directory +2. Implement a function with the same name as the file +3. Follow the parameter and return value specifications outlined above +4. The plugin will be automatically discovered and loaded by the manager + +## Navigation + +- [Back to Core Modules Overview](../overview.md) +- [Connectivity Overview](../connectivity/overview.md) +- [Evaluation Overview](../evaluation/overview.md) diff --git a/book/src/core-modules/beam-placement/plugins.md b/book/src/core-modules/beam-placement/plugins.md new file mode 100644 index 00000000..8efd0556 --- /dev/null +++ b/book/src/core-modules/beam-placement/plugins.md @@ -0,0 +1 @@ +# Plugin Specification diff --git a/book/src/core-modules/connectivity/case-study.md b/book/src/core-modules/connectivity/case-study.md new file mode 100644 index 00000000..d4b70890 --- /dev/null +++ b/book/src/core-modules/connectivity/case-study.md @@ -0,0 +1 @@ +# Case Study diff --git a/book/src/core-modules/connectivity/framework.md b/book/src/core-modules/connectivity/framework.md new file mode 100644 index 00000000..2660e90d --- /dev/null +++ b/book/src/core-modules/connectivity/framework.md @@ -0,0 +1 @@ +# Framework diff --git a/book/src/core-modules/connectivity/overview.md b/book/src/core-modules/connectivity/overview.md new file mode 100644 index 00000000..64ee1614 --- /dev/null +++ b/book/src/core-modules/connectivity/overview.md @@ -0,0 +1,151 @@ +# Constellation Connectivity + +This section is also composed of "framework" and "plug-ins". The "framework" part is the "connectivity mode plugin manager". The "plug-ins" part is the connection method between satellites, such as +Grid. + +## Overview + +The connectivity module determines how Inter-Satellite Links (ISLs) are established between satellites in the constellation. Different connectivity patterns affect network topology, routing efficiency, and overall performance. + +## Architecture + +The connectivity module consists of: + +1. **Framework**: `connectivity_mode_plugin_manager.py` - manages all connectivity mode plugins +2. **Plugins**: Various ISL establishment modes (e.g., `positive_Grid.py`, `bent_pipe.py`) + +## Plug-ins + +All plug-ins under this module are ISL establishment modes, and one plug-in represents a mode. We implement the +Grid mode and bent-pipe mode by default, and you can write other ISL establishment mode plug-ins by yourself according to the interface specifications. + +### Interface Specifications + +The interface specifications for connectivity plugins are as follows: + +- **Requirement 1**: The storage location of the plug-in is (starting from the root of StarPerf 2.0): `src/TLE_constellation/constellation_connectivity/connectivity_plugin/` (for TLE constellation) or `src/XML_constellation/constellation_connectivity/connectivity_plugin/` (for XML constellation). + +- **Requirement 2**: Each plug-in is a ".py" file, and all source code for the plug-in must be located in this script file. + +- **Requirement 3**: The launch entry for a plug-in is a function with the same name as the plug-in. + +- **Requirement 4**: The startup function parameter requirements are as follows: + +**Table: ISL establishment mode plug-ins startup function parameter list** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :------------: | :------------: | :------------: | :----------------------------------------------------------: | +| constellation | constellation | - | the constellation to establish ISL | +| dT | int | second | indicates how often the beam is scheduled, and this value must be less than the orbital period of the satellite | + +- **Requirement 5**: The startup function has no return value. + +- **Requirement 6**: After establishing the ISL, write the constellation delay matrix into a .h5 file. The Group name is: "delay", and the Dataset name is: "timeslot+\" (such as "timeslot1", "timeslot2"), and the .h5 file storage path: `data/TLE_constellation/` (for TLE constellation) or `data/XML_constellation/` (for XML constellation). + +## Framework + +This part of the framework consists of 1 py script: `connectivity_mode_plugin_manager.py`. A connectivity mode plugin manager is defined in this script to manage all plug-ins under this module. + +The so-called connectivity mode plugin manager actually defines a class named `connectivity_mode_plugin_manager`. The attributes and methods contained in this class and their functions and meanings are shown in the tables below. + +### Attributes + +**Table: connectivity mode plugin manager attributes list** + +| Attribute Name | Attribute Type | Attribute Meaning | +| :---------------------: | :------------: | :----------------------------------------------------------: | +| plugins | dict | a dictionary composed of all plug-ins. The "key" is the plug-in name, which is a string type, and the "value" is the plug-in startup function in the corresponding plug-in, which is a function | +| current_connection_mode | str | plug-in name used by the current connectivity mode plugin manager | + +### Methods + +**Table: connectivity mode plugin manager methods list** + +| Method Name | Parameter List
(name : type : unit) | Return Values | Method Function | +| :-----------------------: | :----------------------------------------------------------: | :-----------: | :----------------------------------------------------------: | +| \_\_init\_\_ | - | - | initialize an instance of the connectivity mode plugin manager | +| set_connection_mode | (plugin_name : str : -) | - | set the value of current_connection_mode to plugin_name | +| execute_connection_policy | (constellation : constellation : - ,
dT : int : second) | - | according to the value of the current_connection_mode attribute, the startup function of the corresponding plug-in is called to execute the ISL establishment. | + +## Operating Mechanism + +The operating mechanism of this framework is: + +1. First instantiate a connectivity mode plugin manager object. This object contains two attributes: `plugins` and `current_connection_mode`. + - `plugins` is a dictionary type attribute used to store various connectivity mode plugins + - `current_connection_mode` is a string type used to represent the connectivity mode plugin used by the current manager + +2. During the instantiation of the manager object, the system automatically reads all connectivity mode plugins and stores them in the `plugins`. The key of `plugins` is the name of the plugin, and the value of `plugins` is the startup function of the plugin. + +3. After reading all plug-ins, the system sets the value of `current_connection_mode` to "positive_Grid", indicating that the "positive_Grid" plug-in is used as the default connectivity mode plugin. + +4. If you want to execute the connectivity mode, you only need to call the `execute_connection_policy` method of the manager object. This method will automatically call the startup function of the plug-in indicated by `current_connection_mode`. + +5. If you need to switch the connectivity mode plug-in, just call the `set_connection_mode` method and pass in the plug-in name you need as a parameter. + +6. After you write your own connectivity mode plug-in according to the interface specifications introduced earlier, you only need to set `current_connection_mode` as your plug-in name, and the system will automatically recognize your plug-in and execute it. + +## Connectivity Modes + +### +Grid Mode + +The +Grid connectivity pattern establishes ISLs in a grid-like pattern, connecting satellites both within the same orbital plane and across adjacent orbital planes. This creates a mesh network topology that enables flexible routing. + +### Bent-pipe Mode + +In bent-pipe mode, satellites act as simple relays between ground stations without ISLs. All traffic must pass through ground stations, simplifying satellite design but limiting coverage and requiring more ground infrastructure. + +## Case Study + +Now, we take "positive_Grid" as an example to explain the operation of the constellation connectivity module. + +### Step 1: Instantiate the Manager + +```python +# initialize the connectivity mode plugin manager +connectionModePluginManager = connectivity_mode_plugin_manager.connectivity_mode_plugin_manager() +``` + +### Step 2: Set the Connectivity Mode Plugin + +```python +connectionModePluginManager.current_connection_mode = "positive_Grid" +``` + +**Note**: The connectivity mode plugin manager already sets the `current_connection_mode` value to "positive_Grid" when initialized, so this step can be omitted here. But if you want to use other connectivity mode plugins, this step cannot be omitted. + +### Step 3: Execute the Connection Policy + +```python +connectionModePluginManager.execute_connection_policy(constellation=bent_pipe_constellation, dT=dT) +``` + +### Results + +After execution, the constellation delay matrix will be written to the appropriate .h5 file, and the ISL topology will be established according to the selected connectivity pattern. + +The complete code of the above process can be found at: `samples/XML_constellation/positive_Grid/*` and `samples/TLE_constellation/positive_Grid/*`. + +## Creating Custom Connectivity Modes + +To create your own connectivity mode: + +1. Create a new Python file in the `connectivity_plugin/` directory +2. Implement a function with the same name as the file +3. Follow the parameter and return value specifications outlined above +4. Ensure the delay matrix is properly written to the .h5 file +5. The plugin will be automatically discovered and loaded by the manager + +## Considerations for Connectivity Design + +When designing or selecting a connectivity mode, consider: + +- **Link Budget**: Can satellites maintain reliable ISLs at the required distances? +- **Pointing Complexity**: How many simultaneous links can each satellite maintain? +- **Handover Frequency**: How often do ISLs need to be reconfigured? +- **Routing Efficiency**: Does the topology support efficient path finding? +- **Fault Tolerance**: Can the network maintain connectivity if satellites fail? + +## Navigation + +- [Back to Core Modules Overview](../overview.md) +- [Previous: Beam Placement](../beam-placement/overview.md) +- [Next: Evaluation Overview](../evaluation/overview.md) diff --git a/book/src/core-modules/connectivity/plugins.md b/book/src/core-modules/connectivity/plugins.md new file mode 100644 index 00000000..8efd0556 --- /dev/null +++ b/book/src/core-modules/connectivity/plugins.md @@ -0,0 +1 @@ +# Plugin Specification diff --git a/book/src/core-modules/constellation-generation/duration-based.md b/book/src/core-modules/constellation-generation/duration-based.md new file mode 100644 index 00000000..8767d431 --- /dev/null +++ b/book/src/core-modules/constellation-generation/duration-based.md @@ -0,0 +1,75 @@ +# Duration-based Constellation Generation + +This method also constructs the constellation based on an XML file and makes slight modifications to the previously described `constellation_generation/by_duration/constellation_configuration.py` and `constellation_generation/by_duration/orbit_configuration.py` source codes, enabling satellite network simulation with both the simulation duration and sampling interval specified simultaneously. + +## constellation_configuration.py + +The startup function of this script is `constellation_generation/by_duration/constellation_configuration`. + +### Function Parameters + +**Table: constellation_configuration** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :----------------: | :------------: | :------------: | :----------------------------------------------------------: | +| duration | int | second | Total network simulation time. In previous XML and TLE simulations, this value was fixed to the satellite orbit period. | +| dT | int | second | indicates how often timestamps are recorded, and this value must be less than the orbital period of the satellite | +| constellation_name | str | - | the name of the constellation, the value of this parameter must have the same name as the subfolder in "config/TLE_constellation/". The configuration file of the constellation named by that name is stored in a subfolder with the same name. | +| shell_index | int | - | The constellation shell required for simulation. Currently, this function only supports single-layer satellite network simulation. | + +### Key Differences from XML-based Generation + +The main difference from the standard XML-based generation is the addition of the `duration` parameter, which allows you to: + +- Specify a custom simulation timeframe rather than being limited to the satellite's orbital period +- Generate constellation data for exactly the time duration needed for your simulation +- Support time-constrained simulations where you don't need a full orbital period + +For a detailed explanation of the underlying mechanism, please refer to the [XML-based Generation](xml-based.md) section, as this method is a fine-tuned version based on it. + +## Case Study + +You can use the following example to construct a constellation for a specified simulation time. + +### Step 1: Set Parameters + +Set the parameters according to the instructions given in the table above: + +```python +duration = 100 +dT = 1 +cons_name = "Starlink" +shell_index = 1 +``` + +### Step 2: Call the Generation Function + +Call the `constellation_configuration` function to build the constellation topology: + +```python +constellation = constellation_configuration(duration, dT, cons_name, shell_index=1) +``` + +### Step 3: Use the Constellation + +After the above two steps, you have obtained a constellation configured for the specified duration. This constellation object can now be used with other StarPerf modules for: + +- Traffic generation +- Performance evaluation +- Energy consumption modeling +- Attack simulation + +## Use Cases + +Duration-based generation is particularly useful for: + +1. **Short-term simulations**: When you only need to analyze network behavior over a specific time window +2. **Resource-constrained environments**: When storage or computation limits prevent generating data for a full orbital period +3. **Targeted analysis**: When studying specific events or time periods in satellite network operation +4. **Rapid prototyping**: When you need quick results for initial testing or validation + +## Navigation + +- [Back to Constellation Generation Overview](overview.md) +- [Previous: TLE-based Generation](tle-based.md) +- [XML-based Generation](xml-based.md) diff --git a/book/src/core-modules/constellation-generation/overview.md b/book/src/core-modules/constellation-generation/overview.md new file mode 100644 index 00000000..c3985da2 --- /dev/null +++ b/book/src/core-modules/constellation-generation/overview.md @@ -0,0 +1,53 @@ +# Constellation Generation + +This module is used to generate and initialize satellite constellations. StarPerf 2.0 supports multiple ways of generating constellations: + +1. **XML-based Generation**: Use XML documents to build Walker-Ξ΄ or polar constellations +2. **TLE-based Generation**: Use TLE (Two-Line Element) data to build real constellations +3. **Duration-based Generation**: Build constellations with specified simulation duration and sampling interval + +## Overview + +The constellation generation module is part of the framework that implements constellation generation and constellation initialization. It provides the foundational capabilities for creating satellite network topologies that can be used with various evaluation and simulation modules. + +## Generation Methods + +### XML-based Constellation Generation + +This method uses XML configuration files to define constellation parameters such as: +- Orbital altitude and inclination +- Number of orbits and satellites per orbit +- Phase shift parameters +- Shell configurations + +See [XML-based Generation](xml-based.md) for detailed information. + +### TLE-based Constellation Generation + +This method uses real satellite data from TLE files to build constellations based on actual satellite positions. The process includes: +- Downloading TLE data from sources like CelesTrak +- Mapping satellites to shells based on launch information +- Determining satellite-to-orbit relationships +- Calculating satellite positions over time + +See [TLE-based Generation](tle-based.md) for detailed information. + +### Duration-based Constellation Generation + +This method builds constellations with both simulation duration and sampling interval specified simultaneously. It's based on XML configuration but allows for custom simulation timeframes rather than being limited to orbital periods. + +See [Duration-based Generation](duration-based.md) for detailed information. + +## Common Output + +All generation methods produce: +- A constellation object with shell, orbit, and satellite information +- Position data for each satellite at each timestamp +- Data stored in HDF5 (.h5) format under the `data/` directory + +## Navigation + +- [Back to Core Modules Overview](../overview.md) +- [XML-based Generation](xml-based.md) +- [TLE-based Generation](tle-based.md) +- [Duration-based Generation](duration-based.md) diff --git a/book/src/core-modules/constellation-generation/tle-based.md b/book/src/core-modules/constellation-generation/tle-based.md new file mode 100644 index 00000000..6bb825c9 --- /dev/null +++ b/book/src/core-modules/constellation-generation/tle-based.md @@ -0,0 +1,174 @@ +# TLE-based Constellation Generation + +This method uses five scripts to complete the constellation generation: `download_TLE_data.py`, `satellite_to_shell_mapping.py`, `satellite_to_orbit_mapping.py`, `get_satellite_position.py` and `constellation_configuration.py`. + +Overall, the constellation generated by this method can be divided into four stages: + +- **Stage 1**: download TLE data, and this function is implemented by `download_TLE_data.py`. +- **Stage 2**: determine the shell to which the satellite belongs, and this function is implemented by `satellite_to_shell_mapping.py`. +- **Stage 3**: determine the orbit to which the satellite belongs, and this function is implemented by `satellite_to_orbit_mapping.py`. +- **Stage 4**: save the satellite position information of each timeslot to a .h5 file, and this function is implemented by `get_satellite_position.py`. + +## download_TLE_data.py + +This method requires the use of two types of data to construct a constellation: +1. The emission information of the constellation satellites +2. The TLE of all satellites in the constellation + +### Data Sources + +**First Type - Launch Information**: In StarPerf 2.0, we provide Starlink satellite launch data by default, and these data are stored at: `config/TLE_constellation/Starlink/launches.xml`. + +Satellite launch data source: [https://en.wikipedia.org/wiki/List_of_Starlink_and_Starshield_launches#Launches](https://en.wikipedia.org/wiki/List_of_Starlink_and_Starshield_launches#Launches) + +**Second Type - TLE Data**: It can be downloaded from here: [https://celestrak.org/NORAD/elements/](https://celestrak.org/NORAD/elements/) + +### Function Parameters + +The startup function of this script is `download_TLE_data`. This function only accepts one parameter, which is the constellation name of the TLE data to be downloaded. + +### TLE Formats + +In order to facilitate the implementation of the following functions, here we will download two types of TLE, 2LE and JSON. + +#### 2LE Format + +TLE data containing only two rows of elements, such as: + +``` +1 44713U 19074A 24025.32501904 -.00001488 00000+0 -81005-4 0 9997 +2 44713 53.0536 62.8760 0001441 94.1015 266.0138 15.06396809232035 +``` + +#### JSON Format + +Parsing TLE data into JSON data, such as: + +```json +{ + "OBJECT_NAME": "STARLINK-1007", + "OBJECT_ID": "2019-074A", + "EPOCH": "2024-01-25T07:48:01.645056", + "MEAN_MOTION": 15.06396809, + "ECCENTRICITY": 0.0001441, + "INCLINATION": 53.0536, + "RA_OF_ASC_NODE": 62.876, + "ARG_OF_PERICENTER": 94.1015, + "MEAN_ANOMALY": 266.0138, + "EPHEMERIS_TYPE": 0, + "CLASSIFICATION_TYPE": "U", + "NORAD_CAT_ID": 44713, + "ELEMENT_SET_NO": 999, + "REV_AT_EPOCH": 23203, + "BSTAR": -8.1005e-5, + "MEAN_MOTION_DOT": -1.488e-5, + "MEAN_MOTION_DDOT": 0 +} +``` + +When the TLE data is downloaded successfully, the system will output prompt information on the terminal, such as: + +![TLE Download Success](../../images/tle_download_success.png) + +TLE data in these two formats will eventually be saved in the `config/TLE_constellation//tle.h5` file. + +**Note: When using TLE data to generate constellations, please ensure that your computer can be connected to the Internet because an Internet connection is required to download the data.** + +## satellite_to_shell_mapping.py + +This script establishes a corresponding relationship between each satellite described in the TLE data and the shell in which it is located, and the satellite's launch information is used to establish this relationship. + +### Implementation Mechanism + +In the TLE data in JSON format, there is a field named "OBJECT_ID", from which the launch batch number (COSPAR_ID) of the satellite can be obtained, combined with `config/TLE_constellation//launches.xml`, the corresponding relationship between COSPAR_ID, orbital altitude and orbital inclination can be used to infer the shell to which a satellite belongs. + +### Function Parameters + +The startup function of this script is `satellite_to_shell_mapping`. This function accepts only one parameter, the name of the constellation. + +## satellite_to_orbit_mapping.py + +Section 8.1.2.2 determines the shell to which the satellite belongs. This section is used to determine the orbit to which the satellite belongs. + +### Implementation Mechanism + +Sort the ascending node right ascension (raan) of all satellites in a shell, and then draw a distribution line chart of raan. The user observes the line chart and manually inputs the number of orbits. Subsequently, based on the number of orbits input by the user, we use the natural breakpoint method to divide these satellites into several orbits to determine the correspondence between satellites and orbits. + +When the script is executed, the program will output (some) line charts. The user needs to observe the line charts and determine the approximate number of tracks, and enter the approximate number into the program. For example, the following figure is a line chart output during program execution: + +![RAAN Distribution](../../images/raan_distribution.png) + +From this line chart, we can see that there are 5 values for raan, which means there are 5 tracks, so you need to manually enter 5 in the console: + +![Input Orbit Number](../../images/input_orbit_number.png) + +After you complete the input, the program will continue to run and use the natural breakpoint method to determine the orbit to which the satellite belongs based on the data you entered. A third-party library in Python called jenkspy has implemented the natural breakpoint method, so the jenkspy library is used here to determine the orbit to which the satellite belongs. + +Regarding the principles of the natural breakpoint method, you can refer here: [https://pbpython.com/natural-breaks.html](https://pbpython.com/natural-breaks.html) + +### Function Parameters + +The startup function of this script is `satellite_to_orbit_mapping`. This function only accepts one parameter, which is a shell class object. + +After the script is executed, the constellation has been generated. + +## get_satellite_position.py + +After the end of Section 8.1.2.3, the constellation has been generated. Now the position information (latitude, longitude and altitude) of each satellite needs to be saved, so the position of the satellite needs to be calculated based on TLE data. + +Here we use the skyfield library to calculate the satellite's position information. The specific implementation is: input the TLE data and the time corresponding to the TLE, and the skyfield library can parse out the longitude, latitude and altitude information of the satellite. + +Finally, we save the satellite position information of each timeslot into a .h5 file. The storage location of this file: `data/TLE_constellation/`. + +## constellation_configuration.py + +This script is used to call `download_TLE_data.py`, `satellite_to_shell_mapping.py`, `satellite_to_orbit_mapping.py` and `get_satellite_position.py` to complete the constellation initialization function. + +### Function Parameters + +The startup function of this script is `constellation_generation/by_TLE/constellation_configuration`. + +**Table: constellation_configuration** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :----------------: | :------------: | :------------: | :----------------------------------------------------------: | +| dT | int | second | indicates how often timestamps are recorded, and this value must be less than the orbital period of the satellite | +| constellation_name | str | - | the name of the constellation, the value of this parameter must have the same name as the subfolder in "config/TLE_constellation/". The configuration file of the constellation named by that name is stored in a subfolder with the same name. | + +When you need to use TLE data to generate a constellation, you only need to call this script to complete. + +## Case Study + +Now, we give an example of constellation generation using TLE data for easy understanding. + +### Step 1: Define Parameters + +We define the two function parameters as follows: + +```python +dT = 1000 +constellation_name = "Starlink" +``` + +### Step 2: Call the Generation Function + +We call the `constellation_configuration` function to generate the constellation: + +```python +# generate the constellations +constellation = constellation_configuration.constellation_configuration(dT, constellation_name) +``` + +### Step 3: View Results + +After the above two steps, we have obtained a constellation. Now print out some basic parameter information of the constellation, as follows (part): + +![TLE Constellation Generation Result](../../images/TLEconstellation_generation_test_result.png) + +The complete code of the above process can be found at: `samples/TLE_constellation/constellation_generation/constellation_generation_test.py`. + +## Navigation + +- [Back to Constellation Generation Overview](overview.md) +- [Previous: XML-based Generation](xml-based.md) +- [Next: Duration-based Generation](duration-based.md) diff --git a/book/src/core-modules/constellation-generation/tle-case-study.md b/book/src/core-modules/constellation-generation/tle-case-study.md new file mode 100644 index 00000000..d4b70890 --- /dev/null +++ b/book/src/core-modules/constellation-generation/tle-case-study.md @@ -0,0 +1 @@ +# Case Study diff --git a/book/src/core-modules/constellation-generation/tle-constellation-config.md b/book/src/core-modules/constellation-generation/tle-constellation-config.md new file mode 100644 index 00000000..ad69c146 --- /dev/null +++ b/book/src/core-modules/constellation-generation/tle-constellation-config.md @@ -0,0 +1 @@ +# constellation_configuration.py diff --git a/book/src/core-modules/constellation-generation/tle-download.md b/book/src/core-modules/constellation-generation/tle-download.md new file mode 100644 index 00000000..003dd6f3 --- /dev/null +++ b/book/src/core-modules/constellation-generation/tle-download.md @@ -0,0 +1 @@ +# download_TLE_data.py diff --git a/book/src/core-modules/constellation-generation/tle-orbit-mapping.md b/book/src/core-modules/constellation-generation/tle-orbit-mapping.md new file mode 100644 index 00000000..758e2ed7 --- /dev/null +++ b/book/src/core-modules/constellation-generation/tle-orbit-mapping.md @@ -0,0 +1 @@ +# satellite_to_orbit_mapping.py diff --git a/book/src/core-modules/constellation-generation/tle-position.md b/book/src/core-modules/constellation-generation/tle-position.md new file mode 100644 index 00000000..ff927a2e --- /dev/null +++ b/book/src/core-modules/constellation-generation/tle-position.md @@ -0,0 +1 @@ +# get_satellite_position.py diff --git a/book/src/core-modules/constellation-generation/tle-shell-mapping.md b/book/src/core-modules/constellation-generation/tle-shell-mapping.md new file mode 100644 index 00000000..235b0ae6 --- /dev/null +++ b/book/src/core-modules/constellation-generation/tle-shell-mapping.md @@ -0,0 +1 @@ +# satellite_to_shell_mapping.py diff --git a/book/src/core-modules/constellation-generation/xml-based.md b/book/src/core-modules/constellation-generation/xml-based.md new file mode 100644 index 00000000..99af5a8e --- /dev/null +++ b/book/src/core-modules/constellation-generation/xml-based.md @@ -0,0 +1,98 @@ +# XML-based Constellation Generation + +This method uses two scripts to complete the constellation generation: `constellation_generation/by_XML/constellation_configuration.py` and `constellation_generation/by_XML/orbit_configuration.py`. After these two scripts are executed, the constellation is generated. + +## constellation_configuration.py + +The startup function of this script is `constellation_configuration`. + +### Function Parameters + +**Table: constellation_configuration information** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :----------------: | :------------: | :------------: | :----------------------------------------------------------: | +| dT | int | second | indicates how often timestamps are recorded, and this value must be less than the orbital period of the satellite | +| constellation_name | str | - | the name of the constellation, and the value of this parameter must have the same name as an xml file in "config/XML_constellation". The xml file with the same name is the configuration file of the constellation named with that name | + +### Execution Process + +When executing the function `constellation_configuration`, the xml file under the "config/XML_constellation/" path will be loaded according to the parameter "constellation_name", that is: + +```python +xml_file_path = "config/XML_constellation/" + constellation_name + ".xml" +``` + +Afterwards, each shell of the constellation will be generated based on the xml data. Generating each shell consists of two stages. + +#### Stage 1: Generating Basic Parameters + +Generating the basic parameters of the shell, such as orbital altitude, orbital period, orbital inclination, number of orbits, number of satellites in each orbit, etc. This stage can be completed directly using xml data. + +#### Stage 2: Generating Orbits and Satellites + +Generating orbits and satellites in the shell. This stage is implemented by two Python third-party libraries, skyfield and sgp4. The specific implementation of this part is in `orbit_configuration.py`. You only need to just call this script in `constellation_configuration.py`. + +After the completion of these two stages, the target constellation initialization task has been completed. At this time, the position information of each satellite in the constellation at each moment is saved in an h5 file under "data/XML_constellation". + +**Note: The number of constellation moments is determined by the parameter dT and the orbital period. That is, a total of `(int)(orbit_cycle / dT)` satellite position data needs to be saved to the h5 file.** + +Finally, the return value of this function represents the generated constellation, which is a constellation object. + +## orbit_configuration.py + +The startup function of this script is `constellation_generation/by_XML/orbit_configuration`. + +### Function Parameters + +**Table: orbit_configuration information** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :------------: | :------------: | :------------: | :----------------------------------------------------------: | +| dT | int | second | indicates how often timestamps are recorded, and this value must be less than the orbital period of the satellite | +| sh | shell | - | shell to generate orbits and satellites | + +### Execution Process + +When this function is executed, the system will generate the Kepler parameters of each orbit based on the existing parameters of "sh" (number of orbits, orbital inclination, number of satellites in each orbit, etc.). Then, in-orbit satellites are generated based on the generated orbits. This process uses the skyfield and sgp4 libraries. + +This function is called by `constellation_configuration.py` and is responsible for completing the functions of **Stage 2** described above. Therefore, this function has no return value. After execution, continue to execute `constellation_configuration.py`. + +## Case Study + +Now, we give an example of Walker-Ξ΄ constellation generation and initialization to facilitate your understanding. + +### Step 1: Define Parameters + +We define the two function parameters as follows: + +```python +dT = 5730 +constellation_name = "Starlink" +``` + +### Step 2: Call the Generation Function + +We call the `constellation_configuration` function to generate the constellation: + +```python +# generate the constellations +constellation = constellation_configuration.constellation_configuration( + dT=dT, + constellation_name=constellation_name +) +``` + +### Step 3: View Results + +After the above two steps, we have obtained a constellation. Now print out some basic parameter information of the constellation, as follows (part): + +![XML Constellation Generation Result](../../images/XMLconstellation_generation_test_result.png) + +The complete code of the above process can be found at: `samples/XML_constellation/constellation_generation/constellation_generation_test.py`. + +## Navigation + +- [Back to Constellation Generation Overview](overview.md) +- [Next: TLE-based Generation](tle-based.md) +- [Duration-based Generation](duration-based.md) diff --git a/book/src/core-modules/constellation-generation/xml-case-study.md b/book/src/core-modules/constellation-generation/xml-case-study.md new file mode 100644 index 00000000..d4b70890 --- /dev/null +++ b/book/src/core-modules/constellation-generation/xml-case-study.md @@ -0,0 +1 @@ +# Case Study diff --git a/book/src/core-modules/constellation-generation/xml-constellation-config.md b/book/src/core-modules/constellation-generation/xml-constellation-config.md new file mode 100644 index 00000000..ad69c146 --- /dev/null +++ b/book/src/core-modules/constellation-generation/xml-constellation-config.md @@ -0,0 +1 @@ +# constellation_configuration.py diff --git a/book/src/core-modules/constellation-generation/xml-orbit-config.md b/book/src/core-modules/constellation-generation/xml-orbit-config.md new file mode 100644 index 00000000..ffd3e8d3 --- /dev/null +++ b/book/src/core-modules/constellation-generation/xml-orbit-config.md @@ -0,0 +1 @@ +# orbit_configuration.py diff --git a/book/src/core-modules/entity/overview.md b/book/src/core-modules/entity/overview.md new file mode 100644 index 00000000..07dd0c5c --- /dev/null +++ b/book/src/core-modules/entity/overview.md @@ -0,0 +1 @@ +# Overview diff --git a/book/src/core-modules/evaluation/bentpipe-bandwidth.md b/book/src/core-modules/evaluation/bentpipe-bandwidth.md new file mode 100644 index 00000000..cfd135ea --- /dev/null +++ b/book/src/core-modules/evaluation/bentpipe-bandwidth.md @@ -0,0 +1 @@ +# Bandwidth diff --git a/book/src/core-modules/evaluation/bentpipe-coverage.md b/book/src/core-modules/evaluation/bentpipe-coverage.md new file mode 100644 index 00000000..acd79d20 --- /dev/null +++ b/book/src/core-modules/evaluation/bentpipe-coverage.md @@ -0,0 +1 @@ +# Coverage diff --git a/book/src/core-modules/evaluation/bentpipe-delay.md b/book/src/core-modules/evaluation/bentpipe-delay.md new file mode 100644 index 00000000..24057c82 --- /dev/null +++ b/book/src/core-modules/evaluation/bentpipe-delay.md @@ -0,0 +1 @@ +# Delay diff --git a/book/src/core-modules/evaluation/isl-bandwidth.md b/book/src/core-modules/evaluation/isl-bandwidth.md new file mode 100644 index 00000000..cfd135ea --- /dev/null +++ b/book/src/core-modules/evaluation/isl-bandwidth.md @@ -0,0 +1 @@ +# Bandwidth diff --git a/book/src/core-modules/evaluation/isl-betweenness.md b/book/src/core-modules/evaluation/isl-betweenness.md new file mode 100644 index 00000000..8eff045d --- /dev/null +++ b/book/src/core-modules/evaluation/isl-betweenness.md @@ -0,0 +1 @@ +# Betweenness diff --git a/book/src/core-modules/evaluation/isl-coverage.md b/book/src/core-modules/evaluation/isl-coverage.md new file mode 100644 index 00000000..acd79d20 --- /dev/null +++ b/book/src/core-modules/evaluation/isl-coverage.md @@ -0,0 +1 @@ +# Coverage diff --git a/book/src/core-modules/evaluation/isl-delay.md b/book/src/core-modules/evaluation/isl-delay.md new file mode 100644 index 00000000..24057c82 --- /dev/null +++ b/book/src/core-modules/evaluation/isl-delay.md @@ -0,0 +1 @@ +# Delay diff --git a/book/src/core-modules/evaluation/overview.md b/book/src/core-modules/evaluation/overview.md new file mode 100644 index 00000000..52133d5c --- /dev/null +++ b/book/src/core-modules/evaluation/overview.md @@ -0,0 +1,171 @@ +# Constellation Evaluation + +Constellation performance evaluation is generally divided into two categories: with ISL and without ISL. The former is used in +Grid and other modes and includes four evaluation indicators: bandwidth, betweenness, coverage and delay. The latter is used in bent-pipe mode and includes three evaluation indicators: bandwidth, coverage and delay. + +## Overview + +The evaluation module provides comprehensive performance metrics for satellite constellations. Different metrics are available depending on whether the constellation operates with Inter-Satellite Links (ISLs) or in bent-pipe mode. + +## Evaluation Modes + +### Performance Evaluation with ISL + +In this section, we take the +Grid connection mode as an example to evaluate the constellation performance. + +#### Bandwidth + +First, given a shell in a constellation, as well as two ground station objects source and destination, pass in a parameter Ξ», and then calculate the bandwidth between the source and destination. The calculation of the bandwidth value refers to the total bandwidth of all disjoint paths from the source to the destination whose delay time does not exceed Ξ» times the shortest delay time. Ξ» is a floating point number not less than 1 (that is, the minimum value of Ξ» is 1). + +**Table: bandwidth function attributes list** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :----------------: | :------------: | :------------: | :----------------------------------------------------------: | +| constellation_name | str | - | the name of the constellation, such as "Starlink" | +| source | user | - | the source of the communication pair | +| target | user | - | the destination of the communication pair | +| sh | shell | - | a shell in the constellation | +| Ξ» | float | - | the maximum multiple of the minimum delay time allowed from source to target. The smaller the Ξ» value, the fewer the number of paths from source to target. When Ξ»=1, only one path meets the requirements (i.e. the shortest path). | +| isl_capacity | float | Gbps | the capacity of a single ISL, such as 5Gbps | +| dT | int | second | how often a timeslot is recorded | + +Calculate the bandwidth between source and target in each timeslot, and finally average it to be the final bandwidth between source and target, and return this final calculation result. + +#### Betweenness + +Betweenness is a metric that describes the centrality in a graph based on shortest paths, and it is widely used in telecommunications networks, e.g., a node with higher betweenness centrality would have more traffic passing through that node. Moreover, a node with a high betweenness centrality may also be a potential bottleneck node, since the failure of this node will affect all flows relying on it. In this function we will evaluate the betweenness of each satellite in the constellation. + +Specifically, the betweenness of a satellite sat is calculated as: + +$$ +betweenness(sat) = \sum_{s \ne d \ne sat} \frac{p_{sd}(sat)}{p_{sd}} +$$ + +where $p_{sd}$ is the total number of the shortest paths from source $s$ to destination $d$, and $p_{sd}(sat)$ is the number of those paths that pass through $sat$. + +**Table: betweenness function attributes list** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :----------------: | :------------: | :------------: | :-----------------------------------------------: | +| constellation_name | str | - | the name of the constellation, such as "Starlink" | +| sh | shell | - | a shell in the constellation | +| t | int | - | a certain time slot (timeslot) | + +After the calculation is completed, a list will eventually be returned. Each element in the list is of type float, representing the betweenness of each satellite. + +#### Coverage + +Calculation method: Divide the longitude of the earth's surface every $\alpha$ and the latitude every $\alpha$, thus obtaining $\frac{180}{\alpha} \times \frac{360}{\alpha}$ fragments. Each fragment represents a certain area of the earth's surface. The default value of Ξ± is 10Β°. + +**Table: coverage function attributes list** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :----------------: | :------------: | :------------: | :----------------------------------------------------------: | +| constellation_name | str | - | the name of the constellation, such as "Starlink" | +| dT | int | second | how often a timeslot is recorded | +| sh | shell | - | a shell in the constellation | +| tile_size(Ξ±) | float | degree | the size of the square block on the earth's surface, the default is to cut every 10Β°, that is, each block occupies 10Β° longitude and 10Β° latitude. | +| maximum_depression | float | degree | the maximum depression angle of the satellite, the default value is 56.5Β° | +| minimum_elevation | float | degree | the minimum elevation angle of the ground observation point, the default value is 25Β° | + +This function calculates the coverage of each timeslot, and finally stores the coverage of each timeslot into a list variable and returns it. + +#### Delay + +This function is used to calculate the delay time of two communication endpoints, that is, the total time of sending a packet from the source to the destination, and the total time of sending a packet from the destination to the source (RTT time). + +**Table: delay function attributes list** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :----------------: | :------------: | :------------: | :-----------------------------------------------: | +| constellation_name | str | - | the name of the constellation, such as "Starlink" | +| source | user | - | source endpoint of the communication pair | +| target | user | - | destination endpoint of the communication pair | +| dT | int | second | how often a timeslot is recorded | +| sh | shell | - | a shell in the constellation | + +This function calculates the delay time of each timeslot, and finally stores the delay time of each timeslot into a list variable and returns it. + +### Performance Evaluation without ISL + +In this section, we evaluate the performance of constellations without ISL, i.e. the performance of constellations in bent-pipe operating mode. + +#### Bandwidth + +Calculation method: When the bent-pipe mode communicates between two ends (denoted as end A and end B), end A selects a satellite in the sky as a relay (denoted as satellite 1) according to a certain strategy, and end B selects a satellite in the sky as a relay according to a certain strategy (denoted as satellite 2). Assume that there are $n$ GSs within the visible range of satellite 1, and the bandwidth of each GS is $P$; there are $m$ GSs within the visible range of satellite 2, and the bandwidth of each GS is $P$. Therefore, the bandwidth of satellite 1 β†’ satellite 2 can be expressed as $n \times P$, and the bandwidth of satellite 2 β†’ satellite 1 can be expressed as $m \times P$. Since the communication is bidirectional, the communication bandwidth between A and B is $\min\{n \times P, m \times P\}$. The above calculation is performed for each timeslot within the satellite orbit period. Finally, the average of all timeslot values can be used as the bent-pipe bandwidth for communication between A and B. + +**Table: bandwidth function attributes list** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :-----------------: | :------------: | :------------: | :----------------------------------------------------------: | +| source | user | - | the source of the communication pair | +| target | user | - | the destination of the communication pair | +| dT | int | second | how often a timeslot is recorded | +| sh | shell | - | a shell in the constellation | +| ground_station_file | str | - | constellation ground station file path (the path is calculated from the root directory of the project) | +| minimum_elevation | float | degree | the minimum elevation angle of the ground users | +| GS_capacity | float | Gbps | the GS capacity of each ground station, such as 10 Gbps | + +Calculate the bandwidth between source and target in each timeslot, and finally average it to be the final bandwidth between source and target, and return this final calculation result. + +#### Coverage + +Calculation method: In bent-pipe mode, the coverage of the constellation is not only related to the satellite itself, but also to the GS. If a user is in an area where a satellite can be seen overhead, but there is no GS within the visible range of the satellite, then the area where the user is located is said to be not covered by bent-pipe. + +Specifically, the coverage rate in bent-pipe mode can be calculated as follows: First, divide the earth's surface into several tiles, for example, every 10Β° interval according to the longitude and latitude, so that you will get 18Γ—36 tiles. Then select a point (latitude and longitude) in each tile as the user's position, take the user as the perspective, calculate all satellites visible to the user (note the set of these satellites as S), traverse all satellites in the S set, as long as at least one satellite in the S set has a GS in its visible field of view, the tile is considered to be covered. Perform this operation on all tiles, and finally divide the number of covered tiles by the total number of tiles, which is the coverage rate of the constellation under the current timeslot. Perform the above operation on all timeslots to obtain the constellation coverage under each timeslot, and finally average the value and return it as the final constellation coverage. + +**Table: coverage function attributes list** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :-----------------: | :------------: | :------------: | :----------------------------------------------------------: | +| dT | int | second | how often a timeslot is recorded | +| sh | shell | - | a shell in the constellation | +| ground_station_file | str | - | constellation ground station file path (the path is calculated from the root directory of the project) | +| minimum_elevation | float | degree | the minimum elevation angle of the ground users | +| tile_size | float | degree | the size of the square block on the earth's surface, the default is to cut every 10Β°, that is, each block occupies 10Β° longitude and 10Β° latitude. | + +This function calculates the coverage of each timeslot, and finally stores the coverage of each timeslot into a list variable and returns it. + +#### Delay + +Calculation method: When the bent-pipe mode communicates between two terminals (denoted as terminal A and terminal B), the process is: terminal A β†’ satellite 1 β†’ ground station A β†’ POP point 1 β†’ terminal B, or terminal B β†’ Satellite 2 β†’ Ground station B β†’ POP point 2 β†’ Terminal A. Therefore, if you want to calculate the delay between terminal A and terminal B in bent-pipe mode, you can calculate the delay between terminal A β†’ satellite 1 β†’ ground station A β†’ POP point 1 β†’ POP point 2 β†’ ground station B β†’ satellite 2 β†’ terminal B β†’ satellite 2 β†’ ground station B β†’ POP point 2 β†’ POP point 1 β†’ ground station A β†’ satellite 1 β†’ terminal A, use this delay time to represent the bent-pipe delay between terminal A and terminal B. Among them, when calculating the delay between POP point 1 β†’ POP point 2 or POP point 2 β†’ POP point 1, it is expressed by dividing the great circle distance on the earth's surface by a certain speed. + +**Table: delay function attributes list** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :-----------------: | :------------: | :------------: | :----------------------------------------------------------: | +| source | user | - | the source of the communication pair | +| target | user | - | the destination of the communication pair | +| dT | int | second | how often a timeslot is recorded | +| sh | shell | - | a shell in the constellation | +| ground_station_file | str | - | constellation ground station file path (the path is calculated from the root directory of the project) | +| POP_file | str | - | satellite constellation ground POP point data file | +| Ξ± | float | - | the great circle distance coefficient between the source and target points | +| Ξ² | float | - | the communication speed between source and target. The speed of light in vacuum is c, but the speed of communication between source and target may not be c. Therefore, the speed of light c multiplied by the speed coefficient Ξ² represents the final communication speed from source to target. | +| minimum_elevation | float | degree | the minimum elevation angle of the ground users | + +This function calculates the delay time of each timeslot, and finally stores the delay time of each timeslot into a list variable and returns it. + +## Use Cases + +The evaluation module is essential for: + +1. **Performance Comparison**: Comparing different constellation designs or configurations +2. **Bottleneck Identification**: Finding potential performance bottlenecks using betweenness +3. **Coverage Analysis**: Ensuring adequate service coverage for target regions +4. **Quality of Service**: Validating delay and bandwidth requirements are met +5. **Design Optimization**: Iterating on constellation parameters to improve metrics + +## Integration with Other Modules + +The evaluation module works in conjunction with: + +- **Connectivity Module**: Requires established ISL topology for ISL-based metrics +- **Beam Placement Module**: Affects coverage calculations +- **Routing Module**: Influences delay and bandwidth calculations +- **Traffic Module**: Provides realistic load for capacity analysis + +## Navigation + +- [Back to Core Modules Overview](../overview.md) +- [Previous: Connectivity](../connectivity/overview.md) +- [Beam Placement](../beam-placement/overview.md) diff --git a/book/src/core-modules/evaluation/with-isl.md b/book/src/core-modules/evaluation/with-isl.md new file mode 100644 index 00000000..fac3438f --- /dev/null +++ b/book/src/core-modules/evaluation/with-isl.md @@ -0,0 +1 @@ +# With ISL diff --git a/book/src/core-modules/evaluation/without-isl.md b/book/src/core-modules/evaluation/without-isl.md new file mode 100644 index 00000000..b062047e --- /dev/null +++ b/book/src/core-modules/evaluation/without-isl.md @@ -0,0 +1 @@ +# Without ISL (Bent-pipe) diff --git a/book/src/core-modules/overview.md b/book/src/core-modules/overview.md new file mode 100644 index 00000000..22574152 --- /dev/null +++ b/book/src/core-modules/overview.md @@ -0,0 +1,44 @@ +# Kernel Module: src/ + +This module is the kernel code module of StarPerf 2.0, which stores the system's "framework + plug-in". The architecture of this module is as follows: + +![Kernel Module Architecture](../images/new_kernel_arch.png) + +## Module Overview + +The function of each module in the above figure are as follows: + +**Table: Kernel Module Submodules and Functions** + +| Module | Function | +| :-----------------------: | :----------------------------------------------------------: | +| constellation_generation/ | part of the "framework" that implements constellation generation and constellation initialization. | +| standalone_module/ | Provide some independent function modules, such as calculating the length of satellite time that users can see. | +| TLE_constellation/ | Construct constellations using TLE data. | +| XML_constellation/ | Construct constellations using XML data. | + +## Core Functional Modules + +The core functional modules available for both XML and TLE constellations are shown in the following table: + +**Table: Core Functional Modules and Functions** + +| Module | Function | +| :----------------: | :----------------------------------------------------------: | +| beamplacement/ | **constellation_beamplacement**: implement part of the "framework" related to beam placement, as well as plug-ins related to beam placement algorithms. | +| connectivity/ | **constellation_connectivity**: implements parts of the "framework" related to the connectivity mode between satellites in the constellation, as well as plug-ins for the connectivity mode. | +| evaluation/ | **constellation_evaluation**: implement part of the "framework" related to constellation performance evaluation, such as delay, bandwidth, coverage, etc. | +| entity/ | **constellation_entity**: the entity classes in StarPerf 2.0 are defined, such as orbit, satellite, ground stations, etc., and this module is part of the "framework". | +| highsurvivability/ | **constellation_highsurvivability**: implement part of the "framework" related to the high survivability aspect of the constellation, as well as some constellation damage model plug-ins. | +| routing/ | **constellation_routing**: implements part of the "framework" for constellation routing, as well as some routing strategy plug-ins. | +| traffic/ | **constellation_traffic**: implements part of the "framework" for traffic generation, as well as traffic model plug-ins. | +| energy/ | **constellation_energy**: implements part of the "framework" for energy consumption modeling, as well as energy model plug-ins. | +| attack/ | **constellation_attack**: implements part of the "framework" for attack simulation, as well as attack model plug-ins. | + +## Navigation + +- [Constellation Generation](constellation-generation/overview.md) +- [Standalone Modules](standalone-modules/satellite-visibility.md) +- [Beam Placement](beam-placement/overview.md) +- [Connectivity](connectivity/overview.md) +- [Evaluation](evaluation/overview.md) diff --git a/book/src/core-modules/routing/framework.md b/book/src/core-modules/routing/framework.md new file mode 100644 index 00000000..2660e90d --- /dev/null +++ b/book/src/core-modules/routing/framework.md @@ -0,0 +1 @@ +# Framework diff --git a/book/src/core-modules/routing/overview.md b/book/src/core-modules/routing/overview.md new file mode 100644 index 00000000..07dd0c5c --- /dev/null +++ b/book/src/core-modules/routing/overview.md @@ -0,0 +1 @@ +# Overview diff --git a/book/src/core-modules/routing/plugins.md b/book/src/core-modules/routing/plugins.md new file mode 100644 index 00000000..8efd0556 --- /dev/null +++ b/book/src/core-modules/routing/plugins.md @@ -0,0 +1 @@ +# Plugin Specification diff --git a/book/src/core-modules/standalone-modules/satellite-visibility.md b/book/src/core-modules/standalone-modules/satellite-visibility.md new file mode 100644 index 00000000..934dea88 --- /dev/null +++ b/book/src/core-modules/standalone-modules/satellite-visibility.md @@ -0,0 +1,72 @@ +# Standalone Modules + +This module is used to implement some relatively independent functions and can be used by users as needed. + +## Satellite Visible Time Calculation + +In some cases, it may be necessary to calculate the time a satellite is visible to the user. For example, we need to calculate how long the satellite can be observed by ground users in the scenario shown in the figure below: + +![Satellite Visibility Time](../../images/satellite_visibility_time.png) + +This is a simple geometric calculation function implemented by `src/standalone_module/satellite_visibility_time.py`. + +### Function Parameters + +The startup function of this script is `satellite_visibility_time`. + +**Table: satellite_visibility_time** + +| Parameter Name | Parameter Type | Parameter Unit | Parameter Meaning | +| :------------: | :------------: | :------------: | :----------------------------------------------------------: | +| ΞΈ | float | degree | the lowest elevation angle at which the user can see the satellite | +| h | float | km | the height of a satellite's orbit above the earth's surface | + +### Implementation + +This function performs a geometric calculation based on the satellite's orbital height and the minimum elevation angle at which a ground user can observe the satellite. It returns the duration for which the satellite remains visible to the ground user. + +The calculation takes into account: +- The Earth's radius +- The satellite's orbital altitude +- The minimum elevation angle constraint +- The satellite's orbital velocity + +## Case Study + +Now, we give an example of calculating the satellite time visible to ground users for easier understanding: + +### Example Code + +```python +satellite_visibility_time(ΞΈ=25, h=550) +``` + +### Results + +The results of executing the above code are as follows: + +![Satellite Visibility Time Result](../../images/satellite_visibility_time_result.png) + +The complete code of the above process can be found at: `samples/standalone_module/standalone_module_test_cases.py`. + +## Use Cases + +The satellite visibility time calculation is useful for: + +1. **Coverage Analysis**: Understanding how long users in different locations can maintain connectivity +2. **Handover Planning**: Determining when satellite handovers need to occur +3. **Link Budget Calculations**: Estimating available communication windows +4. **QoS Guarantees**: Evaluating service availability for different user locations + +## Mathematical Background + +The visibility time depends on several geometric factors: + +- **Elevation Angle (ΞΈ)**: Lower elevation angles provide longer visibility but suffer from atmospheric effects and potential obstructions +- **Orbital Height (h)**: Higher satellites are visible for longer periods but have longer propagation delays +- **Earth's Geometry**: The spherical nature of Earth limits the maximum possible visibility time + +## Navigation + +- [Back to Core Modules Overview](../overview.md) +- [Constellation Generation Overview](../constellation-generation/overview.md) diff --git a/book/src/core-modules/survivability/framework.md b/book/src/core-modules/survivability/framework.md new file mode 100644 index 00000000..2660e90d --- /dev/null +++ b/book/src/core-modules/survivability/framework.md @@ -0,0 +1 @@ +# Framework diff --git a/book/src/core-modules/survivability/overview.md b/book/src/core-modules/survivability/overview.md new file mode 100644 index 00000000..07dd0c5c --- /dev/null +++ b/book/src/core-modules/survivability/overview.md @@ -0,0 +1 @@ +# Overview diff --git a/book/src/core-modules/survivability/plugins.md b/book/src/core-modules/survivability/plugins.md new file mode 100644 index 00000000..8efd0556 --- /dev/null +++ b/book/src/core-modules/survivability/plugins.md @@ -0,0 +1 @@ +# Plugin Specification diff --git a/book/src/examples/beam-placement.md b/book/src/examples/beam-placement.md new file mode 100644 index 00000000..28e28102 --- /dev/null +++ b/book/src/examples/beam-placement.md @@ -0,0 +1 @@ +# Beam Placement Example diff --git a/book/src/examples/connectivity.md b/book/src/examples/connectivity.md new file mode 100644 index 00000000..aa86fcfc --- /dev/null +++ b/book/src/examples/connectivity.md @@ -0,0 +1 @@ +# Connectivity Example diff --git a/book/src/examples/evaluation.md b/book/src/examples/evaluation.md new file mode 100644 index 00000000..3cd7c0b0 --- /dev/null +++ b/book/src/examples/evaluation.md @@ -0,0 +1 @@ +# Performance Evaluation Example diff --git a/book/src/examples/overview.md b/book/src/examples/overview.md new file mode 100644 index 00000000..9c04e28e --- /dev/null +++ b/book/src/examples/overview.md @@ -0,0 +1,320 @@ +# Examples Overview + +This section provides practical examples demonstrating how to use StarPerf for various simulation scenarios. + +## Available Examples + +StarPerf includes comprehensive examples in the `samples/` directory, organized by functionality: + +### Constellation Generation Examples + +Learn how to create satellite constellations: +- [XML Constellation Example](./xml-constellation.md) - Building theoretical constellations +- [TLE Constellation Example](./tle-constellation.md) - Working with real constellation data + +### Functional Module Examples + +Explore specific features: +- [Beam Placement Example](./beam-placement.md) - Implementing beam placement algorithms +- [Connectivity Example](./connectivity.md) - Configuring satellite connectivity modes +- [Performance Evaluation Example](./evaluation.md) - Measuring constellation performance + +### Advanced Examples + +Specialized use cases: +- [Traffic Generation Example](./traffic-generation.md) - Simulating network traffic patterns +- [Attack Simulation Example](./attack-simulation.md) - Modeling security threats + +## Example Directory Structure + +``` +samples/ +β”œβ”€β”€ XML_constellation/ # XML-based constellation examples +β”‚ β”œβ”€β”€ constellation_generation/ +β”‚ β”‚ └── constellation_generation_test.py +β”‚ β”œβ”€β”€ beam_placement/ +β”‚ β”‚ └── random_placement.py +β”‚ β”œβ”€β”€ positive_Grid/ +β”‚ β”‚ └── grid_connectivity.py +β”‚ └── evaluation/ +β”‚ └── performance_metrics.py +β”œβ”€β”€ TLE_constellation/ # TLE-based constellation examples +β”‚ β”œβ”€β”€ constellation_generation/ +β”‚ β”‚ └── constellation_generation_test.py +β”‚ β”œβ”€β”€ beam_placement/ +β”‚ β”‚ └── random_placement.py +β”‚ └── positive_Grid/ +β”‚ └── grid_connectivity.py +β”œβ”€β”€ duration_constellation/ # Duration-based examples +β”‚ └── duration_test.py +β”œβ”€β”€ standalone_module/ # Independent function examples +β”‚ └── standalone_module_test_cases.py +β”œβ”€β”€ traffic/ # Traffic simulation examples +β”‚ └── traffic_generation_cases.py +└── attack/ # Attack simulation examples + └── ICARUS/ + └── single_link.py +``` + +## Running Examples + +All examples can be run using the `uv run` command: + +```bash +# XML constellation generation +uv run python samples/XML_constellation/constellation_generation/constellation_generation_test.py + +# TLE constellation generation +uv run python samples/TLE_constellation/constellation_generation/constellation_generation_test.py + +# Beam placement +uv run python samples/XML_constellation/beam_placement/random_placement.py + +# Traffic generation +uv run python samples/traffic/traffic_generation_cases.py +``` + +## Common Patterns + +### Basic Simulation Pattern + +Most examples follow this structure: + +```python +# 1. Import required modules +from src.constellation_generation.by_XML import constellation_configuration +from src.XML_constellation.constellation_connectivity import connectivity_mode_plugin_manager +from src.XML_constellation.constellation_evaluation import evaluation + +# 2. Define parameters +dT = 5730 +constellation_name = "Starlink" + +# 3. Generate constellation +constellation = constellation_configuration.constellation_configuration( + dT=dT, + constellation_name=constellation_name +) + +# 4. Configure connectivity +conn_manager = connectivity_mode_plugin_manager.connectivity_mode_plugin_manager() +conn_manager.set_connection_mode("positive_Grid") +conn_manager.execute_connection_policy(constellation=constellation, dT=dT) + +# 5. Evaluate performance +results = evaluation.coverage( + constellation_name=constellation_name, + dT=dT, + sh=constellation.shells[0] +) + +# 6. Process and display results +print(f"Average coverage: {sum(results)/len(results):.2f}") +``` + +### Plugin Usage Pattern + +When using plugins (beam placement, connectivity, routing): + +```python +# 1. Initialize plugin manager +manager = plugin_manager_class() + +# 2. Set desired plugin +manager.set_policy("plugin_name") + +# 3. Execute plugin with parameters +result = manager.execute_policy( + constellation=constellation, + # ... other parameters +) + +# 4. Process results +# ... work with returned data +``` + +## Example Workflows + +### Workflow 1: Basic Constellation Analysis + +```python +# Generate constellation β†’ Configure connectivity β†’ Evaluate performance + +from src.constellation_generation.by_XML import constellation_configuration +from src.XML_constellation.constellation_connectivity import connectivity_mode_plugin_manager +from src.XML_constellation.constellation_evaluation import evaluation + +# Generate +constellation = constellation_configuration.constellation_configuration( + dT=5730, + constellation_name="Starlink" +) + +# Connect +conn_mgr = connectivity_mode_plugin_manager.connectivity_mode_plugin_manager() +conn_mgr.execute_connection_policy(constellation=constellation, dT=5730) + +# Evaluate +coverage = evaluation.coverage( + constellation_name="Starlink", + dT=5730, + sh=constellation.shells[0] +) +``` + +### Workflow 2: Comparative Analysis + +```python +# Compare multiple constellations or configurations + +constellations = ["Starlink", "OneWeb", "Telesat"] +results = {} + +for const_name in constellations: + constellation = constellation_configuration.constellation_configuration( + dT=5730, + constellation_name=const_name + ) + + coverage = evaluation.coverage( + constellation_name=const_name, + dT=5730, + sh=constellation.shells[0] + ) + + results[const_name] = { + 'avg_coverage': sum(coverage) / len(coverage), + 'num_satellites': sum(len(sh.satellites) for sh in constellation.shells) + } + +# Display comparison +for name, data in results.items(): + print(f"{name}: {data['num_satellites']} satellites, {data['avg_coverage']:.2f} coverage") +``` + +### Workflow 3: Time-Series Analysis + +```python +# Analyze performance over time + +import matplotlib.pyplot as plt + +# Generate constellation +constellation = constellation_configuration.constellation_configuration( + dT=1000, # Record every 1000 seconds + constellation_name="Starlink" +) + +# Configure connectivity +conn_mgr.execute_connection_policy(constellation=constellation, dT=1000) + +# Calculate coverage for each timeslot +coverage_over_time = evaluation.coverage( + constellation_name="Starlink", + dT=1000, + sh=constellation.shells[0] +) + +# Plot results +plt.plot(coverage_over_time) +plt.xlabel('Timeslot') +plt.ylabel('Coverage (%)') +plt.title('Starlink Coverage Over Time') +plt.savefig('coverage_analysis.png') +``` + +## Customizing Examples + +### Modifying Parameters + +Key parameters you can adjust: + +```python +# Time parameters +dT = 1000 # Timestamp interval (seconds) +duration = 86400 # Simulation duration (seconds) + +# Spatial parameters +h3_resolution = 2 # Grid resolution (0-4) +minimum_elevation = 25 # Minimum elevation angle (degrees) +tile_size = 10 # Coverage tile size (degrees) + +# Constellation parameters +constellation_name = "Starlink" +shell_index = 0 # Which shell to analyze + +# Connectivity parameters +isl_capacity = 5.0 # ISL bandwidth (Gbps) +connection_mode = "positive_Grid" + +# Beam parameters +antenna_count_per_satellite = 8 +beam_placement_policy = "random_placement" +``` + +### Adding Custom Logic + +You can extend examples with custom analysis: + +```python +# Custom metric calculation +def calculate_custom_metric(constellation, dT): + """Calculate a custom performance metric""" + # Your custom logic here + metric_values = [] + + for timeslot in range(num_timeslots): + # Compute metric for this timeslot + value = compute_metric(constellation, timeslot) + metric_values.append(value) + + return metric_values + +# Use in your simulation +results = calculate_custom_metric(constellation, dT) +print(f"Custom metric average: {sum(results)/len(results):.2f}") +``` + +## Tips for Using Examples + +1. **Start Simple**: Begin with basic constellation generation examples +2. **Read the Code**: Examples include comments explaining each step +3. **Modify Parameters**: Experiment with different configurations +4. **Compare Results**: Run multiple examples to understand differences +5. **Check Output**: Look in `data/` directory for generated files +6. **Use Visualization**: Combine with visualization to see results visually + +## Common Issues and Solutions + +### Issue: Example Fails to Run + +**Solution**: Ensure all dependencies are installed: +```bash +uv sync +``` + +### Issue: Missing Configuration Files + +**Solution**: Verify configuration files exist: +```bash +ls config/XML_constellation/ +ls config/TLE_constellation/ +``` + +### Issue: Out of Memory + +**Solution**: For large constellations, increase dT or reduce simulation duration: +```python +dT = 5730 # Larger interval = fewer timeslots = less memory +``` + +## Next Steps + +Dive into specific examples: +- [XML Constellation Example](./xml-constellation.md) - Start here for beginners +- [TLE Constellation Example](./tle-constellation.md) - Work with real data +- [Performance Evaluation Example](./evaluation.md) - Analyze results + +Or explore: +- [Core Modules](../core-modules/overview.md) - Understand the underlying systems +- [API Reference](../api-reference/introduction.md) - Detailed interface documentation diff --git a/book/src/examples/tle-constellation.md b/book/src/examples/tle-constellation.md new file mode 100644 index 00000000..b6017057 --- /dev/null +++ b/book/src/examples/tle-constellation.md @@ -0,0 +1 @@ +# TLE Constellation Example diff --git a/book/src/examples/xml-constellation.md b/book/src/examples/xml-constellation.md new file mode 100644 index 00000000..a9899be6 --- /dev/null +++ b/book/src/examples/xml-constellation.md @@ -0,0 +1 @@ +# XML Constellation Example diff --git a/book/src/getting-started/installation.md b/book/src/getting-started/installation.md new file mode 100644 index 00000000..a2dc23ea --- /dev/null +++ b/book/src/getting-started/installation.md @@ -0,0 +1,99 @@ +# Installation + +This guide will help you set up StarPerf 2.0 on your system. + +## Prerequisites + +StarPerf 2.0 requires: +- **Python 3.10** or higher +- Internet connection (for downloading TLE data and dependencies) + +### Version Comparison + +| Version | Requirements | +|---------|--------------| +| **StarPerf 1.0** | Python 2.7+, MATLAB 2013b+, STK 11+, STK Integration license | +| **StarPerf 2.0** | Python 3.10+ only | + +As you can see, StarPerf 2.0 dramatically simplifies the installation process! + +## Installation Steps + +We recommend using [uv](https://github.com/astral-sh/uv), a fast Python package and project manager, to manage dependencies and virtual environments. + +### Step 1: Install uv + +Choose the appropriate method for your operating system: + +#### MacOS/Linux + +```bash +# Method 1: Using curl +curl -LsSf https://astral.sh/uv/install.sh | sh + +# Method 2: Using Homebrew (MacOS only) +brew install uv +``` + +#### Windows + +```powershell +powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" +``` + +For more installation options, refer to the [official uv documentation](https://docs.astral.sh/uv/getting-started/installation/). + +### Step 2: Clone the Repository + +```bash +git clone https://github.com/SpaceNetLab/StarPerf_Simulator.git +cd StarPerf_Simulator +``` + +### Step 3: Install Dependencies + +Once you have cloned the repository and installed uv, install all required dependencies: + +```bash +uv sync +``` + +This command will: + +- Automatically create a virtual environment +- Install all necessary Python libraries +- Set up your development environment + +## Required Python Libraries + +StarPerf 2.0 depends on the following third-party libraries: + +| Library | Version | Purpose | +|---------|---------|---------| +| h3 | 4.0.0b2 | Geospatial indexing | +| h5py | 3.10.0 | HDF5 file handling | +| numpy | 1.24.4 | Numerical computing | +| openpyxl | 3.1.2 | Excel file processing | +| importlib-metadata | 6.8.0 | Package metadata | +| skyfield | 1.46 | Satellite position calculation | +| sgp4 | 2.22 | Orbital propagation | +| pandas | 2.1.0 | Data manipulation | +| poliastro | 0.17.0 | Astrodynamics | +| astropy | 5.3.3 | Astronomy computations | +| networkx | 3.1 | Graph algorithms | +| requests | 2.31.0 | HTTP library | +| jenkspy | 0.4.0 | Natural breaks algorithm | +| pyecharts | 2.0.4 | Visualization | +| global_land_mask | 1.0.0 | Land/ocean detection | + +These are automatically installed when running `uv sync`. + +## Verify Installation + +To verify that StarPerf is installed correctly, run: + +```bash +uv run python StarPerf.py +``` + +If everything is set up correctly, you should see the simulation start smoothly. diff --git a/book/src/getting-started/overview.md b/book/src/getting-started/overview.md new file mode 100644 index 00000000..43b09423 --- /dev/null +++ b/book/src/getting-started/overview.md @@ -0,0 +1,79 @@ +# Overview + +StarPerf is a comprehensive platform designed to simulate and analyze the network performance of mega-constellation satellite networks such as Starlink and OneWeb. + +## What's New in StarPerf 2.0 + +StarPerf 2.0 represents a major upgrade from version 1.0 with significant improvements: + +### Key Improvements + +- **No External Dependencies**: + - Fully implemented in Python, no longer requires STK, MATLAB, or other third-party orbit analysis tools +- **Modern Python**: + - Built on Python 3.10+ with modern libraries +- **Framework + Plugin Architecture**: + - Highly extensible and modular design allowing easy customization +- **Enhanced Functionality**: + - Richer features including traffic plugins, energy consumption simulation, and attack modeling + +### Architecture Philosophy + +The platform follows a **"framework + plugin"** architecture: + +- **Framework**: Provides the core functionality and unified programming interfaces (APIs) +- **Plugins**: Implement specific features (beam placement, routing strategies, damage models, etc.) +- **Decoupled Design**: Plugins and framework are independent, enabling high extensibility + +## Constellation Configuration Methods + +Pre-configured examples include: + +- **Starlink**: SpaceX's mega-constellation +- **OneWeb**: Low-earth orbit communications constellation +- **Telesat**: LEO satellite constellation +- **Boeing**: Custom constellation configurations + +StarPerf 2.0 supports two ways to build constellations: + +### 1. XML-based Configuration + +Build theoretical Walker-Ξ΄ constellations using XML configuration files. This method is ideal for: + +- Exploring constellation design parameters +- Studying hypothetical configurations +- Quick prototyping + +### 2. TLE-based Configuration + +Build real constellations using Two-Line Element (TLE) data. This method is perfect for: + +- Analyzing existing constellations (Starlink, OneWeb, etc.) +- Working with real orbital data +- Comparing simulation with reality + +## Core Capabilities + +### Performance Simulation + +- Area-to-area network performance profiling +- High mobility impact analysis +- Multi-timeslot evaluation + +### Constellation Scaling + +- Adjust number of satellites +- Modify link availability and capacity +- Explore multiple operating conditions + +### Visualization + +- 3D interactive constellation rendering using Cesium +- Satellite trajectory visualization +- Ground station coverage display + +### Security Simulation + +- Attack modeling (link flooding, energy drain, etc.) +- Traffic generation and analysis +- Energy consumption profiling diff --git a/book/src/getting-started/quick-start.md b/book/src/getting-started/quick-start.md new file mode 100644 index 00000000..8173dc1d --- /dev/null +++ b/book/src/getting-started/quick-start.md @@ -0,0 +1,141 @@ +# Quick Start + +This guide will help you run your first StarPerf simulation in just a few minutes. + +## Running the Example Simulation + +The easiest way to get started is to run the provided example: + +```bash +uv run python StarPerf.py +``` + +This command will execute a default simulation configured in `StarPerf.py`. + +## Understanding StarPerf.py + +The `StarPerf.py` file serves as the entry point for simulations. It typically includes: + +1. **Configuration**: Set simulation parameters +2. **Constellation Generation**: Create or load constellation data +3. **Performance Evaluation**: Run analysis on the constellation +4. **Results Output**: Save and visualize results + +## Your First Custom Simulation + +Let's create a simple custom simulation script. Create a new file called `my_simulation.py`: + +```python +# Import required modules +from src.constellation_generation.by_XML import constellation_configuration + +# Define simulation parameters +dT = 5730 # Timestamp interval in seconds +constellation_name = "Starlink" # Name of constellation + +# Generate constellation +print("Generating constellation...") +constellation = constellation_configuration.constellation_configuration( + dT=dT, + constellation_name=constellation_name +) + +# Print basic information +print(f"\nConstellation: {constellation_name}") +print(f"Number of shells: {len(constellation.shells)}") +print(f"Total satellites: {sum(len(shell.satellites) for shell in constellation.shells)}") +print("\nSimulation complete!") +``` + +Run your simulation: + +```bash +uv run python my_simulation.py +``` + +### Step-by-Step Breakdown + +(1) Define Parameters + +```python +dT = 5730 # How often to record timestamps +constellation_name = "Starlink" +h3_resolution = 2 # Geospatial resolution +minimum_elevation = 25 # Minimum elevation angle (degrees) +``` + +(2) Generate Constellation + +Choose between XML or TLE-based generation: + +**XML-based (theoretical constellation):** + +```python +from src.constellation_generation.by_XML import constellation_configuration + +constellation = constellation_configuration.constellation_configuration( + dT=dT, + constellation_name=constellation_name +) +``` + +**TLE-based (real constellation):** + +```python +from src.constellation_generation.by_TLE import constellation_configuration + +constellation = constellation_configuration.constellation_configuration( + dT=dT, + constellation_name=constellation_name +) +``` + +(3) Configure Connectivity + +```python +from src.XML_constellation.constellation_connectivity import connectivity_mode_plugin_manager + +# Initialize connectivity manager +conn_manager = connectivity_mode_plugin_manager.connectivity_mode_plugin_manager() + +# Set connection mode (e.g., +Grid) +conn_manager.set_connection_mode("positive_Grid") + +# Execute connectivity policy +conn_manager.execute_connection_policy( + constellation=constellation, + dT=dT +) +``` + +(4) Evaluate Performance + +```python +from src.XML_constellation.constellation_evaluation import evaluation + +# Calculate coverage +coverage_results = evaluation.coverage( + constellation_name=constellation_name, + dT=dT, + sh=constellation.shells[0], + tile_size=10, + minimum_elevation=25 +) + +print(f"Average coverage: {sum(coverage_results)/len(coverage_results):.2f}") +``` + +## Next Steps + +Now that you've run your first simulation, explore more: + +- **[User Guide](../user-guide/introduction.md)** + - Understand the architecture in depth +- **[Core Modules](../core-modules/overview.md)** + - Learn about different functional modules +- **[Examples](../examples/overview.md)** + - Study detailed example scenarios +- **[API Reference](../api-reference/introduction.md)** + - Dive into the programming interfaces + +Happy simulating with StarPerf! \ No newline at end of file diff --git a/book/src/images/TLEconstellation_generation_test_result.png b/book/src/images/TLEconstellation_generation_test_result.png new file mode 100644 index 0000000000000000000000000000000000000000..4748268a2e99c589f3389c439d2a85b80eee1312 GIT binary patch literal 76783 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 literal 0 HcmV?d00001 diff --git a/book/src/images/beam_random_placement_execution_result.png b/book/src/images/beam_random_placement_execution_result.png new file mode 100644 index 0000000000000000000000000000000000000000..08a113be3f8948120bc5855e62efa31c425ce598 GIT binary patch literal 58478 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%0D^_`F%HJ;r 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 literal 0 HcmV?d00001 diff --git a/book/src/images/config_module_architecture.png b/book/src/images/config_module_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..20457d96d7346a932c5636c42f2ad55f742dc37b GIT binary patch literal 88791 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 Psp!ml*2Y8`Gp+DXxeQfi literal 0 HcmV?d00001 diff --git a/book/src/images/h5_file_introduction.png b/book/src/images/h5_file_introduction.png new file mode 100644 index 0000000000000000000000000000000000000000..77f06b6da7d8e126f68942d890606dcefac758c0 GIT binary patch literal 32847 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 P1-u?f%0cqPUwHp7@oq$v literal 0 HcmV?d00001 diff --git a/book/src/images/input_orbit_number.png b/book/src/images/input_orbit_number.png new file mode 100644 index 0000000000000000000000000000000000000000..53310e6310c596985d47a7f389a3cbc0db01b165 GIT binary patch literal 43132 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 literal 0 HcmV?d00001 diff --git a/book/src/images/kernel_module_architecture.png b/book/src/images/kernel_module_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd014ad36c87c5c85aeabc061d911aa1ac07b0d GIT binary patch literal 133928 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

m3#8>NPd(3I)c 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 Bu+0Df literal 0 HcmV?d00001 diff --git a/book/src/images/level_1_architecture.png b/book/src/images/level_1_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..b41f73e148f2d54d861b0b4e1ba49dfd693130bb GIT binary patch literal 38637 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

x?N(%nZm4ccP4P^sz@0@}bsF0}ANI~*< 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 literal 0 HcmV?d00001 diff --git a/book/src/images/new_kernel_arch.png b/book/src/images/new_kernel_arch.png new file mode 100644 index 0000000000000000000000000000000000000000..019aa33ee38eeb3b9788c2b71e43f1e2cd6c0bcd GIT binary patch literal 55068 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 RN|BS66>liZWylyk|9=ke-j4tP literal 0 HcmV?d00001 diff --git a/book/src/images/raan_distribution.png b/book/src/images/raan_distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca19db99c74147a231879c5076b4ab8258e9f73 GIT binary patch literal 16735 zcmc(HcT`i^+inb4&{1?^M?hsH3Ib{dA{|EsMT&(Y9Yu(A6$v#2?5Mz4>7XFJ1&|^& zHV_CzrG*j@ksd&S1V~7@`-Fh!cfaqh_1%B&U2A5tJf7X&{nqDw&IF$}&{?~B`)ULN zvG(MNV`mWvBn|v4ylMq_BBfw<2K+4ZIIHsyBD-P75cq>I?uh;o1R^(V&D@3M;Ljpg zPMCQh5Px2W{$1APAnA=jXic3wcErfrdX&EAx>4VopTBM%SKHEZ)^Gpijsi8y4|Q+N zNm)r7vuHQC_dhyWFq=&F7Ho7nv)*FWaC~a$&_2I+rp>bXJ#T;Ho^@U3L?b{aAC+NU){PwyRvg&x>Un zz)=udLc2-J5QxAP$83ebAJ^U^Lr2@bK4>lY`Fkf)4E$Wy5>^5~p9BB*fjQ)06xzte zB~w>V�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 YuIs6V!Z literal 0 HcmV?d00001 diff --git a/book/src/images/satellite_visibility_time_result.png b/book/src/images/satellite_visibility_time_result.png new file mode 100644 index 0000000000000000000000000000000000000000..b019ed9b120dba793ceb613e35463da14a1f53a0 GIT binary patch literal 8055 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 literal 0 HcmV?d00001 diff --git a/book/src/images/tle_download_success.png b/book/src/images/tle_download_success.png new file mode 100644 index 0000000000000000000000000000000000000000..199567bb149521f9907b8a00d30f2f11fc1ccaa6 GIT binary patch literal 4905 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 literal 0 HcmV?d00001 diff --git a/book/src/images/tle_tree_structure.png b/book/src/images/tle_tree_structure.png new file mode 100644 index 0000000000000000000000000000000000000000..2295256dcc7cbda6e1b70a9c2f0792a3727446fa GIT binary patch literal 59119 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 literal 0 HcmV?d00001 diff --git a/book/src/images/view_h3_cells_h3id.png b/book/src/images/view_h3_cells_h3id.png new file mode 100644 index 0000000000000000000000000000000000000000..7de0c7629f828c886f8829936a2cf8f68521d736 GIT binary patch literal 37071 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 C6L)n0 literal 0 HcmV?d00001 diff --git a/book/src/user-guide/architecture.md b/book/src/user-guide/architecture.md new file mode 100644 index 00000000..9a667df9 --- /dev/null +++ b/book/src/user-guide/architecture.md @@ -0,0 +1,27 @@ +# Architecture + +The first-level architecture of StarPerf 2.0 is as follows: + +![StarPerf 2.0 Architecture](../images/level_1_architecture.png) + +## Module Overview + +The functions of each first-level module in the above figure are as follows: + +**Table 2: StarPerf 2.0 first-level modules and functions** + +| Module | Function | +| :---------: | :----------------------------------------------------------: | +| config/ | **Configuration Information Module**, is used to store configuration files, such as constellation configuration information, ground station information, etc. | +| data/ | **Data Storage Module**, is used to store preloaded data and intermediate data and result data generated during system operation, such as cells of different resolutions in the h3 library, satellite position data, etc. | +| docs/ | **Documentation Module**, is used to store various documentation, pictures, and dependent library information of StarPerf 2.0, such as this document, the list of third-party Python libraries that the system depends on. | +| samples/ | **Test Sample Module**, is used to store test case scripts for each functional module, and these scripts are independent of each other and can be directly called and run. | +| kits/ | **Auxiliary Script Module**, is used to store some auxiliary scripts written to complete system functions, such as ".xlsx" file conversion ".xml" file scripts, etc. | +| src/ | **Kernel Module**, is the core module of StarPerf 2.0, which contains all the core code of each functional module. The "framework + plug-in" architecture mentioned earlier is this module. | +| StarPerf.py | **StarPerf 2.0 Startup Script**, users should start StarPerf 2.0 from this script. | + +--- + +**Navigation:** +- [Previous: Environment & Dependencies](environment.md) +- [Next: Configuration](configuration.md) diff --git a/book/src/user-guide/auxiliary-scripts.md b/book/src/user-guide/auxiliary-scripts.md new file mode 100644 index 00000000..585a536f --- /dev/null +++ b/book/src/user-guide/auxiliary-scripts.md @@ -0,0 +1,37 @@ +# Auxiliary Script Module: kits/ + +This module stores some auxiliary scripts written to complete the core functions of StarPerf 2.0, such as file format conversion scripts, h5 file reading scripts, etc. + +## Viewing h5 File Tree Structure + +If you want to view the tree structure of an h5 file, you can run `get_h5file_tree_structure.py`. This script will read `data/XML_constellation/Starlink.h5` and display the group and dataset information in it. + +The script execution results are as follows: + +![h5 File Tree Structure](../images/h5_file_tree_structure.png) + +**Explanation of execution results:** The above figure shows that `data/XML_constellation/Starlink.h5` contains 2 first-level groups: position and delay, which represent satellite position data and constellation delay matrix data respectively. Each first-level group contains 4 second-level groups, which represent each layer of shell data. Each secondary group contains 2 datasets, representing the data of two timestamps. + +## Viewing h3 Cell IDs + +If you want to view the h3id of all cells at the specified resolution in `data/h3_cells_id_res0-4.h5`, you can execute `print_h3_cells_h3id.py`. + +Assume that you now want to view the h3id of all cells with a resolution of 0, part of the execution results of this script are as follows: + +![View h3 Cells h3id](../images/view_h3_cells_h3id.png) + +**Explanation of execution results:** Each row in the above figure represents the h3id of a cell with a resolution of 0. Due to space limitations, only part of the execution results are shown here. More detailed results can be viewed by executing the script. + +## Other Utility Scripts + +The `kits/` directory may contain additional utility scripts for: +- File format conversion (e.g., `.xlsx` to `.xml`) +- Data preprocessing +- Configuration validation +- Testing and debugging tools + +--- + +**Navigation:** +- [Previous: Data Storage](data-storage.md) +- [Next: Core Modules](../core-modules/README.md) diff --git a/book/src/user-guide/config/ground-stations.md b/book/src/user-guide/config/ground-stations.md new file mode 100644 index 00000000..ca8ad56a --- /dev/null +++ b/book/src/user-guide/config/ground-stations.md @@ -0,0 +1 @@ +# Ground Stations diff --git a/book/src/user-guide/config/h5-format.md b/book/src/user-guide/config/h5-format.md new file mode 100644 index 00000000..902c06e6 --- /dev/null +++ b/book/src/user-guide/config/h5-format.md @@ -0,0 +1 @@ +# H5 File Format diff --git a/book/src/user-guide/config/pops.md b/book/src/user-guide/config/pops.md new file mode 100644 index 00000000..f122b9dd --- /dev/null +++ b/book/src/user-guide/config/pops.md @@ -0,0 +1 @@ +# POPs diff --git a/book/src/user-guide/config/tle-constellation.md b/book/src/user-guide/config/tle-constellation.md new file mode 100644 index 00000000..eded683e --- /dev/null +++ b/book/src/user-guide/config/tle-constellation.md @@ -0,0 +1 @@ +# TLE Constellation diff --git a/book/src/user-guide/config/xml-constellation.md b/book/src/user-guide/config/xml-constellation.md new file mode 100644 index 00000000..f0865c7c --- /dev/null +++ b/book/src/user-guide/config/xml-constellation.md @@ -0,0 +1 @@ +# XML Constellation diff --git a/book/src/user-guide/configuration.md b/book/src/user-guide/configuration.md new file mode 100644 index 00000000..ae152575 --- /dev/null +++ b/book/src/user-guide/configuration.md @@ -0,0 +1,160 @@ +# Configuration Information Module: config/ + +This module stores all data information related to constellation configuration in StarPerf 2.0, and the structure diagram of this module is as follows: + +![Config Module Architecture](../images/config_module_architecture.png) + +## Module Overview + +The functions of each module in the above figure are as follows: + +**Table 3: config module** + +| Module | Function | +| ------------------ | ------------------------------------------------------------ | +| TLE_constellation/ | Stores the data information required to generate constellations using TLE. Each constellation is described by a TLE data file (.h5) and a launch batch information file (.xml). | +| XML_constellation/ | Stores the data information required to generate constellations using XML data. Each constellation is described by an .xml file. | +| ground_stations/ | Stores the ground station data of the constellation. All ground station information for each constellation is described by an .xml file. | +| POPs/ | Store the POP points data of the constellation. All POP points information for each constellation is described by an .xml file. | + +## h5 File Introduction + +This format file is generally used to store scientific data. It has a structure similar to a "file directory" and allows the data in the file to be organized in many different structured ways, just like working with files on a computer. + +There are two main structures in h5 files: **group** and **dataset**. An h5 file is a combination of several groups and datasets. + +- **group**: A grouping structure containing 0 or more instances of a dataset or group, along with supporting metadata. +- **dataset**: A data collection organized in an array-like manner, working like a numpy array, a dataset is a numpy.ndarray. The specific dataset can be images, tables, or even pdf files and excel. + +Working with groups and datasets is in many ways similar to working with directories and files in UNIX. Like UNIX directories and files, objects in h5 files are usually described by providing full (or absolute) pathnames. + +![h5 File Introduction](../images/h5_file_introduction.png) + +Reading and writing h5 files can be completed through Python's h5py library. For specific usage, see `kits/`. + +## TLE_constellation/ + +This folder stores the data information of the constellation generated by TLE. Each constellation is described by a folder named after the constellation. There are two files in this folder, one is the .h5 file that stores TLE, and the other is the .xml file that stores satellite launch information. + +In the .h5 file that stores TLE, each day's TLE data is a Group, and the Group name is the date of the day. Each Group contains two Datasets. The first Dataset is a TLE containing two rows of information, and the second Dataset is a TLE in JSON format. + +For example, the tree structure of the `config/TLE_constellation/Starlink/tle.h5` file is as shown below: + +![TLE Tree Structure](../images/tle_tree_structure.png) + +### Launch Information XML Structure + +The structure of the .xml file that stores satellite launch information is as follows: + +```xml + + + 2019-074 + 550 + 53 + + ...... + +``` + +The root element of the xml file is "Launches". The root element contains several elements, each element is named with "Launch+\" (such as "Launch1", "Launch2", etc.), which is used to represent a satellite launch information. + +Each launch contains three types of information: +- [COSPAR_ID](https://en.wikipedia.org/wiki/International_Designator#:~:text=The%20International%20Designator%2C%20also%20known%20as%20COSPAR%20ID%2C,sequential%20identifier%20of%20a%20piece%20in%20a%20launch.) +- Orbit altitude Altitude (unit: kilometers) +- Orbit inclination (unit: Β°) + +## XML_constellation/ + +This folder stores the data information of the constellation generated by XML. Walker-Ξ΄ constellations and polar constellations can be generated using XML files. In this way of generating constellations, each constellation only requires a .xml configuration information file, and no TLE is required. + +Taking Starlink as an example, the .xml configuration information file of the constellation is `config/XML_constellation/Starlink.xml`. The content of the file is as follows: + +```xml + + 4 + + 550 + 5731 + 53.0 + 1 + 72 + 22 + + ...... + +``` + +The root element of the document is ``. The first sub-element inside the root element is ``, which represents the number of shells in the constellation. + +In this example, we assume that the value is 4, then there will be 4 sub-elements under the root element `` ``...``, representing different shells respectively. + +There are 6 sub-elements inside each shell, representing: +- Orbital altitude (unit: km) +- Orbital period (unit: s) +- Orbital inclination (unit: Β°) +- Phase shift +- Number of orbits +- Number of satellites in each orbit + +## ground_stations/ + +This folder stores the ground station information of the constellation. The ground station information of each constellation is described by an .xml file named after the constellation name. + +The content of Starlink's ground station information file `config/ground_stations/Starlink.xml` is as follows: + +```xml + + + -12.74832 + -38.28305 + CamaΓ§ari, BR + Ka + 8 + 2.1 + 1.3 + + ...... + +``` + +The root element of the document is ``. In this example, we assume that there are 10 ground stations, then there will be 10 sub-elements under the root element `` ``...``, representing different ground stations respectively. + +There are 7 sub-elements inside each GS, representing: +- Ground station latitude +- Ground station longitude +- Ground station location description +- Ground station frequency +- Ground station antenna count +- Ground station uplink (GHz) +- Ground station downlink (GHz) + +## POPs/ + +This folder stores the POP information of the constellation. The POP information of each constellation is described by an .xml file named after the constellation name. + +The content of Starlink's POP information file `config/POPs/Starlink.xml` is as follows: + +```xml + + + 47.6048790423666 + -122.333542912036 + SEA - STTLWAX1 + + ...... + +``` + +The root element of the document is ``. In this example, we assume that there are 10 POPs, then there will be 10 sub-elements under the root element `` ``...``, representing different POPs respectively. + +There are 3 sub-elements inside each POP, representing: +- POP latitude +- POP longitude +- POP name + +--- + +**Navigation:** +- [Previous: Architecture](architecture.md) +- [Next: Data Storage](data-storage.md) diff --git a/book/src/user-guide/data-storage.md b/book/src/user-guide/data-storage.md new file mode 100644 index 00000000..f6236038 --- /dev/null +++ b/book/src/user-guide/data-storage.md @@ -0,0 +1,32 @@ +# Data Storage Module: data/ + +This module stores various data when StarPerf 2.0 is running, which can be divided into three categories: + +## Preloaded Data + +The data that StarPerf 2.0 must read when running certain functions, such as the data of Uber h3 library cells, which is located in `data/h3_cells_id_res0-4.h5`. + +## Intermediate Data + +StarPerf 2.0 needs to temporarily store some data when running certain functions, such as: +- The delay matrix of the constellation +- Satellite position data +- Other temporary computation results + +These data are stored in: +- `data/TLE_constellation/.h5` (such as `data/TLE_constellation/Starlink.h5`) +- `data/XML_constellation/.h5` (such as `data/XML_constellation/Starlink.h5`) + +## Result Data + +The final results produced after StarPerf 2.0 runs, such as: +- Output drawings in PDF format +- Analysis reports +- Performance metrics +- Other simulation results + +--- + +**Navigation:** +- [Previous: Configuration](configuration.md) +- [Next: Auxiliary Scripts](auxiliary-scripts.md) diff --git a/book/src/user-guide/environment.md b/book/src/user-guide/environment.md new file mode 100644 index 00000000..41d09b4b --- /dev/null +++ b/book/src/user-guide/environment.md @@ -0,0 +1,51 @@ +# Environment & Dependencies + +Before we begin, we first introduce the operating environment of StarPerf 2.0 and its dependent libraries so that you can install StarPerf 2.0 correctly. + +## Python Version + +StarPerf 2.0 is developed based on Python 3.10, so we recommend that your **Python version is 3.10**. + +## Third-Party Libraries + +In addition to the Python 3.10 standard library, StarPerf 2.0 uses the following open source Python third-party libraries: + +**Table 1: Third-party Python libraries and versions** + +| Library | Version | +| :----------------: |:-------:| +| h3 | 4.0.0b2 | +| h5py | 3.10.0 | +| numpy | 1.24.4 | +| openpyxl | 3.1.2 | +| importlib-metadata | 6.8.0 | +| skyfield | 1.46 | +| sgp4 | 2.22 | +| pandas | 2.1.0 | +| poliastro | 0.17.0 | +| astropy | 5.3.3 | +| networkx | 3.1 | +| requests | 2.31.0 | +| jenkspy | 0.4.0 | +| pyecharts | 2.0.4 | +| global_land_mask | 1.0.0 | + +## Installation + +The third-party Python libraries in the above table and their corresponding version numbers are all listed in `docs/third-party_libraries_list.txt` in the form of `LibraryName==LibraryVersion` (such as `numpy==1.24.4`). + +You can execute the following command in the root directory of the StarPerf 2.0 project to install all third-party Python libraries at once: + +```bash +pip install -r docs/third-party_libraries_list.txt +``` + +## System Dependencies + +Finally, StarPerf 2.0 does not depend on any non-Python environment, so you do not need to install any third-party orbit analysis/calculation tools (STK, etc.). + +--- + +**Navigation:** +- [Previous: Introduction](introduction.md) +- [Next: Architecture](architecture.md) diff --git a/book/src/user-guide/introduction.md b/book/src/user-guide/introduction.md new file mode 100644 index 00000000..c1795904 --- /dev/null +++ b/book/src/user-guide/introduction.md @@ -0,0 +1,113 @@ +# Introduction + +StarPerf 2.0 is a feature-rich, highly open, and easily extensible constellation performance simulation platform. + +## Architecture Philosophy + +The platform architecture follows a: + +**"Framework + Plugin"** model + +- **Framework**: Implements various underlying functions and provides unified programming interface APIs +- **Plugins**: Implement specific features based on the framework's APIs +- **Decoupled Design**: Plugins and framework are independent, enabling high openness and easy extensibility + +## Constellation Building Methods + +StarPerf 2.0 supports two methods to build constellations: + +### 1. XML Configuration Files +Build **Walker-Ξ΄** constellations using XML configuration files. This method is ideal for: +- Designing theoretical constellations +- Exploring different constellation parameters +- Quick prototyping and testing + +### 2. TLE Data +Build **real constellations** (like Starlink) using Two-Line Element (TLE) data. This approach allows: +- Analysis of existing mega-constellations +- Working with actual orbital parameters +- Validation against real-world data + +## Available Plugins + +StarPerf 2.0 comes with various functional plugins out of the box: + +| Plugin Category | Examples | +|----------------|----------| +| **Connectivity** | +Grid connectivity mode | +| **Routing** | Shortest Path Routing | +| **Survivability** | Solar Storm Damage Model | +| **Beam Placement** | Random Placement Algorithm | +| **Traffic** | Traffic generation patterns | +| **Attack Simulation** | Link flooding, Energy drain attacks | + +## Custom Plugin Development + +You can write your own functional plugins based on the interface APIs provided by the framework to achieve personalized functionality. Each plugin category has well-defined specifications: + +- Clear interface requirements +- Standardized parameter lists +- Defined return value formats +- Storage conventions for intermediate data + +## Document Structure + +This documentation is organized to help you understand and use StarPerf 2.0 effectively: + +1. **Environment & Dependencies** - Set up your development environment +2. **Architecture** - Understand the system design +3. **Configuration Module** - Learn how to configure constellations +4. **Data Storage** - Understand data organization +5. **Core Modules** - Explore functional capabilities +6. **API Reference** - Detailed interface specifications + +## Key Concepts + +Before diving deeper, familiarize yourself with these key concepts: + +### Constellation +A complete satellite network consisting of one or more shells. + +### Shell +A layer in the constellation with satellites at the same orbital altitude and inclination. + +### Orbit +A circular path around Earth containing multiple satellites. + +### Satellite +Individual spacecraft in the constellation, equipped with antennas and communication capabilities. + +### ISL (Inter-Satellite Link) +Communication links between satellites, enabling direct satellite-to-satellite communication. + +### Ground Station (GS) +Ground infrastructure that communicates with satellites, serving as entry/exit points for terrestrial networks. + +### POP (Point of Presence) +Network access points where satellite traffic connects to terrestrial infrastructure. + +### Timeslot +Discrete time intervals at which constellation state is recorded and analyzed. + +### H3 Resolution +Hierarchical geospatial indexing system used to divide Earth's surface into hexagonal cells. + +## Getting Help + +Throughout this documentation, you'll find: +- πŸ“˜ **Notes**: Important information to keep in mind +- ⚠️ **Warnings**: Critical considerations +- πŸ’‘ **Tips**: Helpful suggestions +- πŸ“ **Examples**: Code samples and use cases + +If you need assistance: +- Review the [API Reference](../api-reference/introduction.md) +- Check [Examples](../examples/overview.md) +- Contact the development team (see [Contact](../about/contact.md)) + +## Next Steps + +Continue reading to understand: +- [Environment & Dependencies](./environment.md) - Required libraries and versions +- [Architecture](./architecture.md) - System organization and modules +- [Configuration Module](./configuration.md) - How to configure constellations diff --git a/book/src/visualization/constellation.md b/book/src/visualization/constellation.md new file mode 100644 index 00000000..ec75e4d8 --- /dev/null +++ b/book/src/visualization/constellation.md @@ -0,0 +1,266 @@ +# Constellation Visualization + +StarPerf extends the visualization of mainstream LEO constellations based on Cesium, providing a highly interactive and realistic 3D environment for viewing satellite networks. + +## Overview + +The visualization module allows you to: +- View constellation topology in 3D +- Track satellite movements in real-time +- Visualize ground station coverage +- Display inter-satellite links (ISLs) +- Analyze spatial distribution of satellites + +## Prerequisites + +Before using the visualization features, you need: + +1. **Cesium Token**: Obtain your personal Cesium Ion token from the [official Cesium website](https://cesium.com/ion/) +2. **Node.js**: Version 13 or newer +3. **http-server**: Install via npm + +## Setup Instructions + +### Step 1: Configure Cesium Token + +Set your Cesium token in the visualization configuration file: + +```bash +# Edit the head.html file +vi ./visualization/html_head_tail/head.html +``` + +Assign your token to the `Cesium.Ion.defaultAccessToken` parameter: + +```javascript +Cesium.Ion.defaultAccessToken = 'YOUR_TOKEN_HERE'; +``` + +### Step 2: Install Node.js and http-server + +**macOS/Linux:** +```bash +# Install Node.js (if not already installed) +# Using Homebrew on macOS: +brew install node + +# Or download from nodejs.org + +# Install http-server globally +npm install -g http-server +``` + +**Windows:** +```powershell +# Download and install Node.js from nodejs.org +# Then install http-server: +npm install -g http-server +``` + +> **Note**: It is recommended to use Node.js version 13 or newer. Older versions may encounter issues when installing http-server. + +### Step 3: Generate Visualization + +In your simulation script, uncomment and run the constellation visualization section: + +```python +# In StarPerf.py, uncomment the visualization section +from visualization import constellation_visualization + +# Generate visualization for your constellation +constellation_visualization.visualize_constellation( + constellation=my_constellation, + output_dir="./visualization/CesiumAPP" +) +``` + +Run the script: +```bash +uv run python StarPerf.py +``` + +This will generate an HTML file in the `./visualization/CesiumAPP` directory. + +### Step 4: Start Local Server + +Navigate to the CesiumAPP directory and start the server: + +```bash +cd ./visualization/CesiumAPP +http-server -p 8081 +``` + +You should see output similar to: +``` +Starting up http-server, serving ./ +Available on: + http://127.0.0.1:8081 + http://192.168.1.100:8081 +Hit CTRL-C to stop the server +``` + +### Step 5: View in Browser + +Open your web browser and navigate to: + +``` +http://127.0.0.1:8081/ +``` + +Replace `` with the name of the HTML file generated by the visualization code (e.g., `starlink_visualization.html`). + +## Visualization Features + +### Interactive 3D Globe + +The Cesium-based visualization provides: + +- **Pan**: Click and drag to rotate the globe +- **Zoom**: Scroll to zoom in/out +- **Tilt**: Right-click and drag to change viewing angle +- **Reset**: Double-click to reset view + +### Satellite Tracking + +- Click on any satellite to view its details +- Track satellite trajectory over time +- View orbital parameters +- Display satellite ID and shell information + +### Ground Station Coverage + +- Visualize coverage areas for ground stations +- Show active communication links +- Display elevation angles and signal strength + +### Time Animation + +- Play/pause satellite motion +- Adjust animation speed +- Jump to specific timestamps +- View constellation state at different times + +## Example Visualizations + +### Starlink Constellation + +```python +from visualization import constellation_visualization +from src.constellation_generation.by_TLE import constellation_configuration + +# Generate Starlink constellation +constellation = constellation_configuration.constellation_configuration( + dT=1000, + constellation_name="Starlink" +) + +# Create visualization +constellation_visualization.visualize_constellation( + constellation=constellation, + output_dir="./visualization/CesiumAPP", + filename="starlink_viz.html" +) +``` + +### OneWeb Constellation + +```python +# Visualize OneWeb constellation +constellation = constellation_configuration.constellation_configuration( + dT=1000, + constellation_name="OneWeb" +) + +constellation_visualization.visualize_constellation( + constellation=constellation, + output_dir="./visualization/CesiumAPP", + filename="oneweb_viz.html" +) +``` + +## Customization Options + +You can customize visualization parameters: + +```python +constellation_visualization.visualize_constellation( + constellation=constellation, + output_dir="./visualization/CesiumAPP", + filename="my_visualization.html", + show_orbits=True, # Display orbital paths + show_isls=True, # Show inter-satellite links + show_ground_stations=True, # Display ground stations + satellite_color="cyan", # Satellite marker color + orbit_color="white", # Orbital path color + animation_speed=1.0 # Animation speed multiplier +) +``` + +## Sample Visualizations + +Pre-configured visualization samples are available in: + +``` +visualization/samples/ +β”œβ”€β”€ Starlink.py # Starlink visualization +β”œβ”€β”€ OneWeb.py # OneWeb visualization +β”œβ”€β”€ Telesat.py # Telesat visualization +β”œβ”€β”€ Boeing.py # Boeing constellation +└── visualization_test_cases.py # Test various configurations +``` + +Run a sample: +```bash +uv run python visualization/samples/Starlink.py +``` + +## Troubleshooting + +### Common Issues + +**1. Cesium Token Error** +``` +Error: Cesium ion access token is invalid +``` +**Solution**: Verify your token is correctly set in `head.html` + +**2. http-server Not Found** +``` +command not found: http-server +``` +**Solution**: Install http-server globally: `npm install -g http-server` + +**3. Port Already in Use** +``` +Error: Port 8081 is already in use +``` +**Solution**: Use a different port: `http-server -p 8082` + +**4. Blank Page/No Satellites Visible** +- Check browser console for JavaScript errors +- Verify the HTML file was generated correctly +- Ensure constellation data was loaded successfully + +### Browser Compatibility + +Recommended browsers: +- Chrome/Chromium (recommended) +- Firefox +- Safari +- Edge + +> **Note**: WebGL support is required. Enable hardware acceleration in your browser settings for best performance. + +## Performance Considerations + +For large constellations (10,000+ satellites): +- Visualization may be slow on older hardware +- Consider visualizing one shell at a time +- Reduce animation speed for smoother playback +- Use a more powerful GPU if available + +## Next Steps + +- Explore [Examples](../examples/overview.md) for complete visualization workflows +- Learn about [Constellation Generation](../core-modules/constellation-generation/overview.md) +- Check out [Performance Evaluation](../core-modules/evaluation/overview.md) to analyze your visualized constellations diff --git a/book/src/visualization/setup.md b/book/src/visualization/setup.md new file mode 100644 index 00000000..7510957f --- /dev/null +++ b/book/src/visualization/setup.md @@ -0,0 +1,280 @@ +# Visualization Setup + +This page provides detailed setup instructions for StarPerf's visualization capabilities. + +## Quick Setup + +For a quick start with visualization: + +```bash +# 1. Install Node.js and http-server +npm install -g http-server + +# 2. Configure your Cesium token in visualization/html_head_tail/head.html + +# 3. Generate visualization in your script +uv run python StarPerf.py # With visualization code uncommented + +# 4. Start the server +cd visualization/CesiumAPP +http-server -p 8081 + +# 5. Open browser to http://127.0.0.1:8081/.html +``` + +## Detailed Configuration + +### Cesium Ion Access Token + +1. Visit [Cesium Ion](https://cesium.com/ion/) +2. Create a free account or sign in +3. Navigate to "Access Tokens" in your dashboard +4. Copy your default token or create a new one +5. Paste it in `visualization/html_head_tail/head.html`: + +```javascript +// In head.html +Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'; +``` + +### Directory Structure + +The visualization module uses the following structure: + +``` +visualization/ +β”œβ”€β”€ constellation_visualization.py # Main visualization module +β”œβ”€β”€ CesiumAPP/ # Generated HTML files +β”‚ └── [generated_files].html +β”œβ”€β”€ html_head_tail/ # HTML templates +β”‚ β”œβ”€β”€ head.html # Header with Cesium config +β”‚ └── tail.html # Footer template +└── samples/ # Example scripts + β”œβ”€β”€ Starlink.py + β”œβ”€β”€ OneWeb.py + β”œβ”€β”€ Telesat.py + β”œβ”€β”€ Boeing.py + └── visualization_test_cases.py +``` + +### Node.js Version Management + +If you have multiple Node.js versions, use nvm (Node Version Manager): + +```bash +# Install nvm +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash + +# Install Node.js 18 +nvm install 18 +nvm use 18 + +# Install http-server +npm install -g http-server +``` + +## Advanced Configuration + +### Custom HTML Templates + +You can customize the visualization appearance by modifying the templates: + +**head.html** - Controls: +- Cesium library imports +- Initial camera position +- Globe appearance +- Lighting settings + +**tail.html** - Controls: +- UI controls +- Animation controls +- Information panels + +### Server Configuration + +#### Custom Port + +```bash +http-server -p 3000 +``` + +#### Enable CORS + +```bash +http-server --cors +``` + +#### Cache Control + +```bash +http-server -c-1 # Disable caching +``` + +#### Bind to All Interfaces + +```bash +http-server -a 0.0.0.0 -p 8081 +``` + +This allows access from other devices on your network at: +``` +http://:8081/.html +``` + +### Production Deployment + +For production deployment, consider using: + +**Nginx Configuration:** +```nginx +server { + listen 80; + server_name your-domain.com; + root /path/to/StarPerf_Simulator/visualization/CesiumAPP; + + location / { + try_files $uri $uri/ =404; + } +} +``` + +**Apache Configuration:** +```apache + + ServerName your-domain.com + DocumentRoot /path/to/StarPerf_Simulator/visualization/CesiumAPP + + + Options Indexes FollowSymLinks + AllowOverride None + Require all granted + + +``` + +## Visualization API + +### Basic Usage + +```python +from visualization import constellation_visualization + +# Generate visualization +constellation_visualization.visualize_constellation( + constellation=my_constellation, + output_dir="./visualization/CesiumAPP", + filename="my_viz.html" +) +``` + +### Parameters + +| Parameter | Type | Default | Description | +|-----------|------|---------|-------------| +| `constellation` | Constellation | Required | Constellation object to visualize | +| `output_dir` | str | `"./visualization/CesiumAPP"` | Output directory for HTML | +| `filename` | str | `"visualization.html"` | Output filename | +| `show_orbits` | bool | `True` | Display orbital paths | +| `show_isls` | bool | `False` | Show inter-satellite links | +| `show_ground_stations` | bool | `True` | Display ground stations | +| `satellite_color` | str | `"cyan"` | Satellite marker color | +| `orbit_color` | str | `"white"` | Orbital path color | +| `animation_speed` | float | `1.0` | Animation speed multiplier | +| `start_time` | str | `None` | Start time (ISO 8601 format) | +| `duration` | int | `None` | Duration in seconds | + +### Example with All Parameters + +```python +constellation_visualization.visualize_constellation( + constellation=starlink_constellation, + output_dir="./visualization/CesiumAPP", + filename="starlink_full.html", + show_orbits=True, + show_isls=True, + show_ground_stations=True, + satellite_color="yellow", + orbit_color="rgba(255,255,255,0.3)", + animation_speed=2.0, + start_time="2024-01-01T00:00:00Z", + duration=86400 # 24 hours +) +``` + +## Troubleshooting Guide + +### Issue: Blank Page + +**Symptoms**: Browser shows blank page with no errors + +**Solutions**: +1. Check browser console (F12) for JavaScript errors +2. Verify Cesium token is valid +3. Ensure HTML file was generated correctly +4. Check if WebGL is enabled in browser + +### Issue: Slow Performance + +**Symptoms**: Laggy visualization, low frame rate + +**Solutions**: +1. Reduce number of visible satellites (filter by shell) +2. Disable ISL visualization if not needed +3. Lower animation speed +4. Enable hardware acceleration in browser +5. Use a more powerful GPU + +### Issue: Satellites Not Appearing + +**Symptoms**: Globe loads but no satellites visible + +**Solutions**: +1. Check that constellation data was loaded successfully +2. Verify satellite positions are being generated +3. Zoom out to ensure satellites are in view +4. Check JavaScript console for errors + +### Issue: Server Won't Start + +**Symptoms**: `http-server` command fails or port in use + +**Solutions**: +```bash +# Check if port is in use +lsof -i :8081 + +# Kill process using port +kill -9 + +# Or use different port +http-server -p 8082 +``` + +## Tips and Best Practices + +### Performance Optimization + +1. **Limit Visible Satellites**: Visualize one shell at a time for large constellations +2. **Reduce Animation Speed**: Lower speeds reduce computational load +3. **Disable Unnecessary Features**: Turn off ISLs if not analyzing connectivity +4. **Use Modern Browser**: Chrome/Chromium typically has best performance + +### Visual Quality + +1. **Camera Position**: Start with a good initial camera angle +2. **Color Scheme**: Use contrasting colors for different elements +3. **Lighting**: Adjust ambient and directional lighting for clarity +4. **Orbit Trails**: Show orbit trails to visualize satellite paths + +### Workflow Integration + +1. **Generate During Simulation**: Create visualization as part of your analysis pipeline +2. **Version Control**: Save visualizations with meaningful filenames +3. **Documentation**: Include screenshots in reports +4. **Sharing**: Deploy to web server for team collaboration + +## Next Steps + +- Return to [Constellation Visualization](./constellation.md) for usage examples +- Explore [Examples](../examples/overview.md) for complete workflows +- Learn about [Constellation Generation](../core-modules/constellation-generation/overview.md) diff --git a/book/theme/css/custom.css b/book/theme/css/custom.css new file mode 100644 index 00000000..afecd509 --- /dev/null +++ b/book/theme/css/custom.css @@ -0,0 +1,120 @@ +/* Custom CSS for StarPerf Documentation */ + +/* Improve code block styling */ +pre { + border-radius: 6px; + border: 1px solid var(--sidebar-bg); +} + +/* Better table styling */ +table { + width: 100%; + border-collapse: collapse; + margin: 1em 0; +} + +table thead { + background-color: var(--table-header-bg); +} + +table th, +table td { + padding: 0.75em; + border: 1px solid var(--table-border-color); +} + +table tr:nth-child(even) { + background-color: var(--table-alternate-bg); +} + +/* Admonition blocks */ +.warning, +.note, +.tip { + padding: 1em; + margin: 1em 0; + border-left: 4px solid; + border-radius: 4px; +} + +.warning { + background-color: #fff3cd; + border-color: #ffc107; +} + +.note { + background-color: #d1ecf1; + border-color: #17a2b8; +} + +.tip { + background-color: #d4edda; + border-color: #28a745; +} + +/* Better link styling */ +a { + text-decoration: none; + color: var(--links); + transition: color 0.2s; +} + +a:hover { + text-decoration: underline; + color: var(--links-hover); +} + +/* Improve navigation */ +.nav-chapters { + font-size: 1.1em; +} + +/* Better heading anchors */ +.header a.header { + text-decoration: none; + color: inherit; +} + +.header:hover a.header { + color: var(--links); +} + +/* Code inline styling */ +code { + background-color: var(--inline-code-bg); + padding: 0.2em 0.4em; + border-radius: 3px; + font-size: 0.9em; +} + +/* Improve search box */ +#searchbar { + width: 100%; + margin: 0.5em 0; +} + +/* Better mobile responsiveness */ +@media (max-width: 768px) { + table { + font-size: 0.9em; + } + + .content { + padding: 1em; + } +} + +/* Print styles */ +@media print { + .nav-chapters { + display: none; + } + + .sidebar { + display: none; + } + + .content { + margin-left: 0; + } +} From 22ffa066f88c6cd92e6a835fc65628277fddebb4 Mon Sep 17 00:00:00 2001 From: root_hbx Date: Fri, 5 Dec 2025 01:59:12 +0800 Subject: [PATCH 2/2] nits --- .github/workflows/deploy-docs.yml | 55 +++++++++++++++++++++++++++++++ .gitignore | 3 ++ book.toml | 45 +++++++++++++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 .github/workflows/deploy-docs.yml create mode 100644 book.toml diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 00000000..33e88920 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,55 @@ +name: Deploy Documentation + +on: + push: + branches: + - main + - release/v2.0 + paths: + - 'book/**' + - 'book.toml' + - '.github/workflows/deploy-docs.yml' + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup mdBook + uses: peaceiris/actions-mdbook@v2 + with: + mdbook-version: 'latest' + + - name: Setup Pages + uses: actions/configure-pages@v4 + + - name: Build documentation + run: mdbook build + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./book/docs + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index 0628b05a..0e340d41 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ __pycache__/ # UV virtual environment .venv/ uv.lock + +# mdbook +book/book/ diff --git a/book.toml b/book.toml new file mode 100644 index 00000000..dec5bfef --- /dev/null +++ b/book.toml @@ -0,0 +1,45 @@ +[book] +title = "StarPerf Documentation" +authors = ["StarPerf Team"] +description = "A comprehensive platform for simulating and analyzing mega-constellation satellite network performance" +language = "en" +multilingual = false +src = "book/src" + +[build] +build-dir = "book/docs" + +[output.html] +default-theme = "dark" +preferred-dark-theme = "navy" +git-repository-url = "https://github.com/SpaceNetLab/StarPerf_Simulator" +git-repository-icon = "fa-github" +edit-url-template = "https://github.com/SpaceNetLab/StarPerf_Simulator/edit/main/book/src/{path}" +site-url = "/StarPerf_Simulator/" +cname = "" + +[output.html.fold] +enable = true +level = 0 + +[output.html.search] +enable = true +limit-results = 30 +teaser-word-count = 30 +use-boolean-and = true +boost-title = 2 +boost-hierarchy = 1 +boost-paragraph = 1 +expand = true +heading-split-level = 3 + +[output.html.playground] +editable = false +copyable = true +copy-js = true +line-numbers = true + +[preprocessor.katex] + +[output.html.print] +enable = true