我需要使用python读取CDF文件。我已经找到了库,但是我不知道如何使用它。例如在this(Python lib),我需要下载CDF lib,我不知道从哪里下载。CDF有下载页面,但似乎与该库无关。
@miraculixx的回答是正确的,但是它假定您已经安装了CDF C库。
如果您在SO上发现这个问题之前甚至不知道CDF文件格式是什么,那么这是一个易于遵循的指南。
1.下载最新版本的CDF C库:
您可以在此链接中找到最新的稳定版本。使用抓取源代码wget
,然后将其提取。注意:./
如果要以其他路径下载代码,则以下内容将在当前文件夹中创建目录,请确保更改以下代码。
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.安装所有依赖项:
SpacePy和CDF库具有多个依赖项(如@Michal Dyzma所指出的)。您可以使用conda或pip以及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
以及./lib
子目录。
4.设置环境变量:
应该有一个./bin
名为的文件,该文件definitions.B
可以为您自动执行此操作,使其具有可执行文件,chmod+x
并将以下行添加到您的~/.bashrc
(注: 1)我假设您将库安装在路径中$HOME/Libraries/
;2))后有一个空格.
:
. $HOME/Libraries/cdf/cdf36_3-dist/bin/definitions.B
重要说明:上面的文件在第68行存在错误,而不是附加到环境变量中,而是将LD_LIBRARY_PATH
其覆盖。修复很容易,用以下内容替换第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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句