The answer@miraculixx 是正确的,但它假设您已经安装了CDF C 库.
如果您在 SO 上发现这个问题之前甚至不知道 CDF 文件格式是什么,这里有一个易于遵循的指南。
1.下载最新版本的CDF C库:
您可以在这里找到最新的稳定版本link。使用获取源代码wget
,并提取它。Note:以下将在当前文件夹中创建一个目录./
如果您想在不同的路径下载代码,请确保更改下面的代码。
wget -r -l1 -np -nd -nc http://cdaweb.gsfc.nasa.gov/pub/software/cdf/dist/latest-release/linux/ -A cdf*-dist-all.tar.gz
tar xf cdf*-dist-all.tar.gz -C ./
cd cdf*dist
2.安装所有依赖项:
SpacePyCDF 库有几个依赖项(正如 @Michal Dyzma 所指出的)。您可以使用以下命令安装它们conda or pip, and apt.
pip install numpy scipy h5py matplotlib networkx
apt install build-essential gfortran libncurses5-dev
3.编译C库:
你应该已经下载了一个README.install
文件中包含的有关此步骤的详细信息比我提供的要多得多。两点是您想要检查哪些编译变量对于您的系统和需求是必需的/可选的。
make all.help
我将使用 GNU C 编译器构建 Linux 发行版。我对 FORTRAN 界面不感兴趣,而且我的操作系统支持共享库。我想安装基于 Curses 的工具包程序,允许使用基于命令行的交互式 CDF 工具(这就是我们安装libncurses5-dev
步骤 2) 中的依赖性。因此,这是最终的 make 命令:
make OS=linux ENV=gnu CURSES=yes FORTRAN=no UCOPTIONS=-O2 SHARED=yes -j4 all
make install #no sudo
安装应该顺利进行并添加所有文件./bin
, ./include
, and ./lib
子目录。
4.设置环境变量:
里面应该有一个文件./bin
called definitions.B
它会自动为您执行此操作,使其可执行chmod+x
并将以下行添加到您的~/.bashrc
(Note:1)我假设你在路径上安装了库$HOME/Libraries/
; 2)后面有一个空格.
):
. $HOME/Libraries/cdf/cdf36_3-dist/bin/definitions.B
重要的提示:上面的文件有一个错误line 68,而不是附加到环境变量LD_LIBRARY_PATH
它会覆盖它。修复很简单,更换即可line 68具有以下内容:
export LD_LIBRARY_PATH=$HOME/Libraries/cdf/cdf36_3-dist/lib:$LD_LIBRARY_PATH
如果由于某种原因definitions.B
不存在,只需添加以下内容:
export CDF_BASE=$HOME/Libraries/cdf/cdf36_3-dist
export CDF_INC=$CDF_BASE/include
export CDF_LIB=$CDF_BASE/lib
export CDF_BIN=$CDF_BASE/bin
export LD_LIBRARY_PATH=$CDF_BASE/lib:$LD_LIBRARY_PATH
5. 一切准备就绪,去做好事吧:
假设你安装了spacepy
使用 pip,以下内容应该开箱即用:
from spacepy import pycdf
cdf = pycdf.CDF('/path/to/file.cdf')
print(cdf)