0%

Hypatia

在各种卫星仿真平台之间反复跳跃,不知道Hypatia好不好用,看起来star很多、比较新,尝试一波。

Hypatia文件结构:

  • satgenpy:python框架,用于生成LEO卫星网络,并在一段时间内生成路由。
  • ns3-sat-sim:基于ns-3的框架,将stagenpy生成的状态作为输入,在LEO卫星上执行包级别模拟。
  • satviz:可视化交互
  • paper:实验和绘图代码
  • integration_tests:用于集成测试

参考链接:

[*]https://blog.csdn.net/JackZhaojt/article/details/128678247 https://blog.csdn.net/lyorz/article/details/128374695 https://www.cnblogs.com/AntennaZ/p/16356957.html

环境配置

conda环境配置

在ubuntu+wsl的基础上安装anaconda。

1
2
wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
bash Anaconda3-5.3.1-Linux-x86_64.sh #安装anaconda

修改配置文件,在 /etc/profile中加入export PATH=~/anaconda3/bin:$PATH并重新加载环境变量source /etc/profile

检查安装成功conda --version

创建新环境hypatia

首先建立conda虚拟环境conda create -n hypatia python=3.8

激活虚拟环境

1
2
source activate
conda activate hypatia

下载hypatia并安装依赖

git clone源码git clone https://github.com/snkas/hypatia

直接运行sh会报错,需要拆解运行

  1. 更新镜像源 sudo apt-get update

  2. 安装cartopy conda install cartopy

  3. 下载依赖和库

1
2
3
4
5
6
sudo apt-get install update
pip install numpy astropy ephem networkx sgp4 geopy matplotlib statsmodels
sudo apt-get install libproj-dev proj-data proj-bin libgeos-dev gnuplot
sudo apt-get -y install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev lcov gnuplot
pip install numpy astropy ephem networkx sgp4 geopy matplotlib statsmodels
#如果安装失败可以分别加入清华源 -i https://pypi.tuna.tsinghua.edu.cn/simple 清华源
  1. 安装exputil和networkload库
1
2
3
4
5
6
7
8
9
10
11
#从GitHub上clone下来
git clone https://github.com/snkas/exputilpy
git clone https://github.com/snkas/networkload
#安装exputil
cd exputilpy
python -m pip install .
cd ..
#安装networkload
cd networkload
bash install_local.sh
git submodule update --init --recursive

经过N=4次的尝试,终于运行到了这里,可以开始构建模块。之前总是这找不到那找不到的>_<

测试

构建模块

bash hypatia_build.sh

运行测试

1
2
sudo apt install screen
bash hypatia_run_tests.sh
  • 遇到问题:can't make directory ‘/var/run/screen’:permission denied
  • 解决:重启之后运行命令:
1
2
sudo mkdir /var/run/screen
sudo chmod 777 /var/run/screen

至此测试完成,可以正式开始复现

复现Paper

生成网络数据

说是能跑两天直接下载数据作者跑好的数据好了。

下载/paper/hypatia_paper_temp_data.tar.gz放在paper路径下 python extract_temp_data.py

构建ns-3

bash build.sh --debug_all

performing analysis using satgenpy

1
2
cd satgenpy_analysis
python perform_full_analysis.py

a_b实验

1
2
3
4
# 切换到paper/ns3_experiments/a_b目录
python step_1_generate_runs.py
python step_2_run.py
python step_3_generate_plots.py