
CentOS6.4
安装NCL遇到的问题,有需要的朋友可以参考下。问题1:缺少openssl-0.9.8 结果程序报错:"ncl: error while loading shared libraries: libcrypto.so.0.9.8: cannot open shared object file: No such file or directory"这是因为缺少共享库
文件。解决方法:在/usr/lib下找到了 libcrypto.so.0.9.8k,做个链接。$ su$ cd /usr/lib$ ln -sf libcrypto.so.0.9.8k libcrypto.so.0.9.8如果无法获得超级用户权限,可以在home下建立个
目录,如:/home/usr/lib$ cd /home/usr/lib$ ln -sf /usr/lib/libcrypto.so.0.9.8k ./libcrypto.so.0.9.8$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/usr/lib #或者是在.bashrc中添加这一行如果没找到合适版本的libcrypto,可以从这里下载:http://www.openssl.org然后$ ./config shared$ make将生成的 libcrypto.so.0.9.8 按照上面的方法 *** 作。再次运行NCL,报错内容变为 libssl.so.0.9.8,如法炮制。最后运行NCL,报错内容为:ncl: /home/usr/lib/libcrypto.so.0.9.8: no version information available (required by ncl)ncl: /home/usr/lib/libssl.so.0.9.8: no version information available (required by ncl)这个错误暂时没有方法解决,不过NCL可以运行,应该没啥问题。问题2:缺少libbz2.so.1.0 程序报错:“ncl: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory”解决方法:从http://sources.redhat.com/bzip2/下载安装包参考http://man.chinaunix.net/linux/lfs/htmlbook/chapter06/bzip2.html进行安装Bzip2 是块排序文件压缩器,比传统的gzip生成更高压缩比的文件。 安装下列程序: bunzip2 (link to bzip2), bzcat (link to bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless 和 bzmore安装下列库文件: libbz2.a, libbz2.so (link to libbz2.so.1.0), libbz2.so.1.0 (link to libbz2.so.1.0.2) 和 libbz2.so.1.0.2Bzip2 依赖于: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Make. 安装 Bzip2 为编译 Bzip2 做准备 with:make -f Makefile-libbz2_somake clean-f标志使bzip2g根据另一个Makefile来编译,这里就是Makefile-libbz2_so文件,它创建一个动态的libbz2.so库文件,然后把bzip2工具连接到这个库上。编译软件包:make安装:make install把共享的bzip2二进制文件拷贝到/bin目录,创建必要的符号链接,作一些清理工作.cp bzip2-shared /bin/bzip2cp -a libbz2.so* /libln -s ../../lib/libbz2.so.1.0 /usr/lib/libbz2.sorm /usr/bin/{bunzip2,bzcat,bzip2}mv /usr/bin/{bzip2recover,bzless,bzmore} /binln -s bzip2 /bin/bunzip2ln -s bzip2 /bin/bzcat
下载好NCL,将软件包(.tar.gz文件)存放在 Cygwin目录\home\用户名\ 路径下。
双击桌面的“Cygwin”图标,然后。
$ mkdir /opt/NCL
建立一个目录
$ cd /opt/NCL
进入目录
$ tar zxf ~/ncl_ncarg-5.1.1.CYGWIN_NT-5.1_i686.tar.gz
解压
$ ls
你 可以看到bin include lib 三个目录
$ vi ~/.bashrc
在文件最末尾加入:
#NCL
export NCARG_ROOT=/opt/NCL
export PATH=$PATH:$NCARG_ROOT/bin
保存文 件,退出。
$ source ~/.bashrc
Linux下的安装过程和Cygwin下安装基本一致。
如果无法获得root权限,将NCL放在/home/ 路径下比较好。
下载好NCL,将软件包(.tar.gz文件)存放在 /home/用户名/ 路径下。
$ mkdir NCL
建立一个目录
$ cd NCL
进入目录
$ tar zxf ../ncl_ncarg-5.1.1.Linux_i686_gcc412.tar.gz
解压
$ ls
你可以看到bin include lib 三个目录
$ vi ~/.bashrc
在文件最末尾加入:
#NCL
export NCARG_ROOT=/home/用户名/NCL
export PATH=$PATH:$NCARG_ROOT/bin
保存文件,退出。
$ source ~/.bashrc
这样就完成了NCL的安装和设置。
————————————————————————————————————
现在测试一下是否安装正确
$ cd ~/
$ mkdir temp
$ cd temp
建立临时目录,进入临时目录
$ ng4ex gsun01n
这条命令会复制gsun01n.ncl到当前目录,并运行 ncl <gsun01n.ncl
如果运行正常,会在X11窗口显示一张XY坐标图,单击鼠标进行图像切换。如果是在Cygwin下运行,需要先开启Cygwin/X server。
这个脚本测试完毕后,如果有兴趣,还可以测试gsunXXn,XX取值可以是01~11。
python很多库支持了对nc格式文件的读取,比如NetCDF4,PyNio(PyNio和PyNgl可以看做是NCL的Python版本)以及Xarray等等。
我最初使用PyNio,但是由于NCL到Python的移植并不完全,导致目前远不如直接使用NCL方便,而在接触Xarray库后,发现其功能强大远超NCL(也可能是我NCL太菜的原因)。
安装同其它库一致:
我这里以一套中国逐日最高温度格点资料(CN05.1)为例,其水平精度为0.5°X0.5°。
可以看到,文件的坐标有时间, 经度,纬度,变量有日最高温
我们将最高温数据取出
这与Linux系统中的ncl_filedump指令看到的信息是类似的
Xarray在读取坐标信息时,自动将时间坐标读取为了datetime64 格式,这对我们挑选目的时间十分方便。Xarray通常与pandas配合使用。
比如我们想选取1979.06.01-1979.06.20时期数据,我们只需
再比如我们想选取夏季数据时,只需
更多的时间 *** 作同python的datetime函数类似。
当我们想选取特定经纬度范围(高度)的数据时,.loc[]函数同样可以解决。
在这里,我选取了40°N-55°N,115°E-135°E范围的数据
甚至,我们还可以套娃,同时叠加时间和范围的选取
这足够满足常用到的数据索引要求。
对于这类简单排列的.txt文件,可以通过np.load读取,用pandas的.read_csv更为方便
读取txt的同时,对每列赋予了一个列名,通过data.a可以直接按列名调用相应数据。
对于较复杂的.txt文件,仍可通过该函数读取
skiprows=5跳过了前5行的文件头,sep='\s+'定义了数据间隔为空格,这里用的是正则表达。
pd.read_csv函数有很多的参数,可以处理各种复杂情况下的文本文件读取。
grib文件可通过pygrib库读取
import pygrib
f = pygrib.open('xxx.grb')
评论列表(0条)