CentOS 7 安装天文学工具presto

news/2024/11/22 21:58:34/

2020/12/04 更新
似乎是某个计算机竞赛?好多人问我相关软件安装的问题。
以下为正解:

随着脉冲星天⽂社区的发展,许多的个⼈和研究⼩组开发了各种⽤途的免费软件。在集群上安装这些需要的软件往往需要耗费相当多的时间。即使是已经熟练安装过数遍这些软件,1-2天的安装时间仍然是需要的。并且在安装过程中,会由于集群的环境不同缺失某些必须的依赖。此时需要通过管理员进⾏依赖的安装。这样⼤⼤的增加了软件安装的耗时。为了能够快速的在不同的系统和集群中快速部署相关软件进⾏数据处理,虚拟机或者容器技术在这个时候就派上了⽤场。资源消耗⽅⾯,容器能够在相同的cpu和存储下启动的更多更快。并且在安全性⽅⾯,我们并不需要使⽤虚拟机将我们的虚拟环境和宿主机完全隔离。所以我们可以选择使⽤容器作为计算环境的承载。其中docker是⼴为⼤家所熟知的docker容器⼚商推出的容器技术。

此处是我的相关dockerfile的github链接,大家可以参考和使用。当然如果使用觉得不错,也肯请大家给一个star。😃
https://github.com/Miao-cc/dockerHub.git
另外附上一个参考链接
http://ljtwebdevelopment.com/pulsarref/

写在前面,本文适合PRESTO 2.x系列的版本。最新版本为3.x系列。具体差异在最后的python模块安装部分。

今天师兄让我自己摸索学习安装presto,然后我就跑过去自己摸索了。发现安装时碰见很多问题,所以决定写下来。
我的笔记本由于重新装过一次系统,然后被我给格了,所以虚拟机我也没拷下来,于是重新下了CentOS 7重新搞一个Linux环境。
OS的ISO文件下载地址:http://mirrors.sina.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1511.iso(下载最小安装包的话可能环境会比较难搞,这边是完整版)。下载完成之后就是虚拟机安装了,此处安装选项最好是Development and Creative Workstation,我是全部都勾选了
安装完虚拟机之后需要先大概安装一下后面需要的东西。在终端​使用yum安装,输入:yum groupinstall ‘Development tools’,接着在/home/m下创建astrosoft。
su​do yum groupinstall "Development Tools"
yum install libpng12-devel
mkdir /home/m/astrosoft
下面是下载presto
presto的官方网站:http://www.cv.nrao.edu/~sransom/presto/
cd /home/m/astrosoft
exit
cd /home/m/astrostud​ ​
git clone git://github.com/scottransom/presto.git
在presto目录下的INSTALL是安装教程,下面的步骤就是按照教程进行的。​
1 安装FFTW3.X
FFTW3.X官方网站:http://www.fftw.org/​​。
wget www.fftw.org/fftw-3.3.5.tar.gz
tar -zxvf fftw-3.3.5.tar.gz
cd fftw-3.3.5
./configure --enable-shared --enable-single --prefix=/home/m/astrosoft/fftw
make
make install
#####fftw3安装还没写,这样也可以用

2 安装PGPLOT
PGPLOT地址:http://www.astro.caltech.edu/~tjp/pgplot/
下载地址:ftp://ftp.astro.caltech.edu/pub/pgplot/pgplot5.2.tar.gz
cd /home/m/Download
wget ftp://ftp.astro.caltech.edu/pub/pgplot/pgplot5.2.tar.gz
tar -zxvf pgplot5.2.tar.gz
mkdir /home/m/astrosoft/pgplot
cd /home/m/astrosoft/pgplot
cp /home/m/Download/pgplot/drivers.list .
vi drivers.list
此处根据自己的需求修改drivers.list添加设备。此处presto要求必选设备有PS和X-windows设备,另外还可以加上VPS、CPS和VCPS设备。
/home/m/astrosoft/new/pgplot/makemake /home/m/astrosoft/new/pgplot linux g77_gcc
之后文件夹会出现
drivers.list grexec.f grpckg1.inc makefile pgplot.inc rgb.txt
这几个文件夹,接着修改makefile文件,将其中的FCOMPL=g77修改为FCOMPL=gfortran
此时直接make还是会出现错误的,因为我们并没有安装X11。下面先安装X11,此时需要管理员权限配置系统
sudo yum install libX11-devel
make
make cpg
这时pgplot就可以算是安装完成了,但是需要注意的是我们还没有将pgplot添加到PATH中去。

3 安装Tempo
Tempo下载地址: http://tempo.sourceforge.net/
cd /home/m/Download
git clone git://git.code.sf.net/p/tempo/tempo
cp -r /home/m/tempo /home/m/psrsoft/tempo
cd /home/m/astrosoft/tempo
./prepare
./configure --prefix=/home/m/astrosoft/tempo
make
make install
至此tempo是安装完成了。
4 安装GLIB(v2.X)
可以通过yum安装
yum install glib2-devel
5 安装CFITSIO
CFITSIO的下载地址是: http://heasarc.gsfc.nasa.gov/fitsio/
然后下载unix的版本。
cd /home/m/Download
tar -zxvf cfitsio3390.tar.gz
cd cfitsio
mkdir /home/m/astrosoft/cfitsio
./configure --prefix=/home/m/astrosoft/cfitsio
make
make install
至此安装tempo之前的各种软件就已经安装完成了。
6 部署各种环境等

Environment variables!
– Is PRESTO set to the top-level PRESTO source directory?
– Is TEMPO set to the top-level TEMPO source directory?
– Is PGPLOT_DIR set to the location of the PGPLOT utility files?
(Note: On Ubuntu, that should be /usr/lib/pgplot5)
– Is $PRESTO/bin in your PATH?
– Is $PRESTO/lib in your LD_LIBRARY_PATH?
– Is $PRESTO/lib/python in your PYTHONPATH

下面我们就来一一设置。
这一步需要先完成。
vi /home/m/.bash_profile
加入以下几行:

PATH=$PATH:$HOME/bin:/home/m/astrosoft/presto/bin:/home/m/astrosoft/pgplot/bin:/home/m/astrosoft/presto/bin:/nfshome/mcc/pfits:/home/m/astrosoft/optimus:/home/m/astrosoft/fv:/home/m/astrosoft/psrcat_tar:/home/m/astrosoft/tempo/src/
LD_LIBRARY_PATH=/home/m/astrosoft/presto/lib:/home/m/astrosoft/pgplot:/home/m/astrosoft/fftw3/lib:/home/m/astrosoft/cfitsio/lib
C_INCLUDE_PATH=/home/m/astrosoft/presto/include:/home/m/astrosoft/cfitsio/include
PKG_CONFIG_PATH=/home/m/astrosoft/cfitsio/lib/pkgconfig:/home/m/astrosoft/fftw3/lib/pkgconfig
PYTHONPATH=/home/m/astrosoft/presto/lib/python
PGPLOT_DIR=/home/m/astrosoft/pgplot
PGPLOT_FONT=/home/m/astrosoft/pgplot/grfont.dat
PGPLOT_DEV=/xwine
PGPLOT_LIB="-L /usr/X11R6/lib -lX11 -L /home/m/astrosoft/pgplot -lpgplot"
PRESTO=/home/m/astrosoft/presto
TEMPO=/home/m/astrosoft/tempo
PSRCAT_FILE=/home/m/astrosoft/psrcat_tar/psrcat.dbexport PATH
export LD_LIBRARY_PATH
export C_INCLUDE_PATH
export PKG_CONFIG_PATH
export PYTHONPATH
export PGPLOT_DIR
export PGPLOT_FONT
export PGPLOT_DEV
export PGPLOT_LIB
export PRESTO
export TEMPO
export PSRCAT_FILE

然后保存退出,输入:
source .bash_profile
大体上的设置就结束了。假如在下面的步骤中出现错误,最好将presto文件删除,然后用户注销一下再重新进行下面的步骤。
7 presto安装step1
上面的步骤进行完成之后就需要进入presto的文件夹中进行操作了。将presto文件夹放入/home/m/astrosoft中,然后进入/presto/src中,输入:
sudo make makewisdom
这一步需要写入权限
这一步会花费很长时间,可以上个网休息一下。
8 presto安装step2
在上面一步结束之后,我们需要再输入:make prep
9 presto安装step3
在上面两步都结束之后,就直接输入: make,这样在/src里面的操作就彻底完成了。
假如出现如下报错:

error while loading shared libraries: libsla.so: cannot open shared object file: No such file or directory
或者只是presto的python路径等没有设置好
则在/usr/lib下应该存在libsla.so这个文件,这是如果共享库文件安装到了/lib或/usr/lib目录下, 需执行一下ldconfig命令。
ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.

所以假如出现了这个报错,则运行如下命令并且重新进行这一步

sudo ldconfig
sudo make

10 presto安装step4
这一步需要确定python版本以及安装numpy和scipy。这一步我也不是很清楚,但是系统是自带python2.7版本的。
cd进入presto/python文件夹1
在进行这一步的时候需要注意,在presto的目录下搜索:
find -name "ppgplot*"
假如这个ppgplot在/home/m/astrosoft/presto/lib/python下,并且此路径已经被添加到PYTHONPATH中,则进行下一步应该不会出现ppgplot模块找不到,但是对于最近的presto,貌似对这个进行了更新,出现了/home/m/astrosoft/presto/lib/python/home/m/astrosoft/presto/lib64/python两个路径,并且新版将ppgplot放置在lib64下,此时需要将/home/m/astrosoft/presto/lib64/python这个路径添加到PYTHONPATH下,并且重新source 一次环境变量,此时应该就不会出现ppgplot模块找不到。
vi setup.py

Note: you might need to add “gfortran” to the following list if
you see errors relating to missing “g” functions…

这时需要下面一步,不然就可以直接make
ppgplot_libraries = ["cpgplot", "pgplot", "X11", "png", "m"]改为ppgplot_libraries = ["gfortran" , "cpgplot", "pgplot", "X11", "png", "m"]
cd /home/m/astrosoft/presto/python
make
这里需要注意,在根据INSTALL文件安装时,可能在make步骤之后还会有有一个make fftfit。这个时候需要看一下Makefile文件的build那下面的最后一行有没有这一行:python fftfit_src/test_fftfit.py。假如有这一行,就不需要make fftfit这一步了。可能看到此文章时他们已经修改了INSTALL文件。总之只要知道这一步和这一行是重复的就可以了。
11 end
假如你能看到这一步,我就可以恭喜你了,你已经完成了整个的安装过程了。下面你就可以去寻找脉冲星了。
#Go find pulsars!

可以从官网找到教程ppt
网址http://www.cv.nrao.edu/~sransom/PRESTO_search_tutorial.pdf
可以使用其中数据进行测试。


http://www.ppmy.cn/news/118827.html

相关文章

岁差和章动(天文)

一、岁差(Precession) https://zh.wikipedia.org/wiki/%E9%80%B2%E5%8B%95 进动(precession)是自转物体之自转轴又绕着另一轴旋转的现象,又可称作旋进。在天文学上,又称为“岁差现象”。 常见的例子为陀螺…

天文网站

1. 八大行星的实时位置 太阳系 内行星包括:水星、金星、地球、火星;

天文摄影的后期处理

见文:http://space.lamost.org/watch/photography/houqi.htm 主要包含以下三个步骤: 1、调整亮度、对比度; 2、锐化处理; 3、叠加;

安泰功率放大器ATA-8202在EMC电磁兼容测试中的具体应用

作为电子及电器产品质量衡量指标之一的电磁兼容性(EMC)测试,它的测试正确与否直接关系到产品自身使用的可靠性及安全性,并且它还有可能对于同系统中的其他部分造成影响,不良的电磁兼容性会直接导致系统无法正常运转&am…

寿星天文历Java版源码

这个月好忙,一直没时间弄“寿星天文历”,其实翻译早就在元旦弄完了,但始终没空做梳理整合,后来我考虑到一些朋友们或许需要原始版的寿星天文历Java代码,所以我还是先发一原始翻译的版本,大家自行根据需要去…

最近20年天文学有什么重大的进展

还记得我们上学的时候学过很多天文学知识么?太阳系有9大行星,月球和地球是同时形成的,月球是地球唯一的天然卫星,黑洞是科幻小说里的桥段。然而最近一系列的发现推翻了我们视作常识的天文学认知。 NASA 最近经常活跃在社交媒体,发布找到系外行星的消息,他们是怎么发现这…

寿星天文历Java封装整理版

由于生活和工作的原因,“寿星天文历”我一直没有动,长时间的丢弃后,当重新拾起时,比较费劲。编程就是这样,思维的火花只在当初的那一瞬,一旦熄灭,重新再点燃断掉的思维是很困难的。因为人的“忘…

C语言库函数time.h中时间相关函数的功能讲解

1、C语言的标准库函数 1.1 assert.h 文件 1.2 ctype.h 文件 1.3 errno.h 文件 1.4 float.h 文件 1.5 limits.h文件 1.6 locale.h 文件 1.7 math.h 文件 1.8 setjmp.h 文件 1.9 signal.h 文件 1.10 stdarg.h 文件 1.11 stddef.h 文件 1.12 stdio.h 文件 …