从去年11月低12月初确定毕设题目后,就在学习相关内容,先安装了ns3,虽然ns3网上的博客教程比较多,但由于虚拟机版本、环境等各类问题,也反反复复来了好几遍。后来又接触到hypatia(其实也不太清楚hypatia和ns3的关系和区别,这几天在一篇论文中看到相关总结,hypatia是网络仿真平台,ns3是网络仿真软件),hypatia的安装更是痛苦的鸭皮,可能过于小众,遇到奇奇怪怪的问题无法解决,重头来了好几遍,后来偶然的机会看到一个课题组的同学发的博客,又重新来了一遍,才算基本安装完成,记录一下,供大家学习参考。(论文复现还在摸索中,并没有完成。)
参考链接:https://blog.csdn.net/lyorz/article/details/128374695
VMware Workstation 16 pro + Ubuntu 18.04 + Python 3.8.12
(有关VM16P+Ubuntu 18.04的安装教程很多不再赘述,至于python的版本,利用conda创建环境时选定即可)
在其他站点中找到tuna.tsinghua
的选中,关闭,它会提示你更新,更新即可!
这边非常建议安装anaconda
cartopy
包的时候,用pip install
的方法安不上,采用conda install
会好一些。anaconda的安装方法:参考链接
#进入到根目录,打开终端
wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
#安装anaconda
bash Anaconda3-5.3.1-Linux-x86_64.sh
#需要输入yes输yes,不需要的,按Enter即可,如果不想安装VScode最后一步选择no
#添加conda环境变量
vim ~/.bashrc
#在该页面最下面添加(注意看一下你的anaconda3在哪个目录,~替换成你anaconda的目录即可)
#这里大致说明一下vim的用法
#输入i可以对其中内容进行编辑,编辑完成后按esc,输入:(就是冒号),然后输入wq!,按回车即可保存并退出
export PATH="~/anaconda3/bin:$PATH"
#source 一下
source ~/.bashrc
#检查是否安装成功
conda -V
#倘若出现版本号,即安装成功
只读
,别问为什么,血的教训。进行完以上的步骤就可以开始苦逼地愉悦地进行hypatia环境搭建了。
因为重头来了好几次,最后一次成功安装hypatia没有截屏,所以有些截屏的环境可能是hypatia_3
,这是之前的截屏,因为中间过程都可以做以参考,一切操作以代码块为主。
conda create -n hypatia python=3.8
激活新环境
source activate
conda activate hypatia_3
进入根目录,打开终端
git clone https://github.com/snkas/hypatia
直接执行bash hypatia_install_dependencies.sh
,会遇到各种各样的问题,索性直接vim进去分步执行
执行完以下代码块即相当于完成了bash hypatia_install_dependencies.sh
# 第一步 更新镜像源
sudo apt-get update
# 第二步 可以先将cartopy这个讨厌的东西装了
conda install cartopy
#安装时可能因为网络问题有部分库没有装好,所以这步代码运行只有最后全是done了,才能正常import,如下图
# 第三步 satgenpy
pip install numpy astropy ephem networkx sgp4 geopy matplotlib statsmodels
sudo apt-get install libproj-dev proj-data proj-bin libgeos-dev
git clone https://github.com/snkas/exputilpy
cd exputilpy
python -m pip install .
cd ..
# 第四步 ns3-sat-sim
sudo apt-get -y install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev lcov gnuplot
pip install numpy statsmodels
git clone https://github.com/snkas/networkload
cd networkload
bash install_local.sh
cd ..
#同步作者文件夹,若不运行下面代码,hypatia/ns3-sat-sim/simulator/contrib/basic-sim下目录为空
git submodule update --init --recursive
#此外在运行build程序时,它会提示没有gcc,我只又安了一个g++就可以正常跑了,就不管其他的了
sudo apt-get install g++ python3
# 第五步 paper
pip install numpy
sudo apt-get install gnuplot
bash hypatia_build.sh
第一次构建会跑2900多个文件,但最终运行成功结果如下:
#在运行测试之前,可以在将screen这库装一下,要不然会报错
sudo apt install screen
bash hypatia_run_tests.sh
在复现论文之前,一定确保环境搭建成功
在satellite_networks_state目录下
方案一:直接跑
bash generate_all_local.sh
环境搭建成功正常跑就没问题,但是时间过长,亲测跑了两天两夜接近72h,但是还剩下四个编号没跑,但是越往后时间越长,就没继续跑了。
方案二:用作者下载好的数据 提取码:rqvd
确定将下载后的数据放在paper目录下:
<hypatia>/paper/hypatia_paper_temp_data.tar.gz
执行以下代码,即可获得与方案一相同的结果
#在paper目录下
python extract_temp_data.py
如果上面环境搭建成功,这一步其实也是做过的。
但是之前是debug模式,不清楚有没有影响 bash build.sh --debug_all
cd satgenpy_analysis
python perform_full_analysis.py
cd a_b
python step_1_generate_runs.py
python step_2_run.py
python step_3_generate_plots.py