加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com/)- 数据分析、网络、云渲染、应用安全、大数据!
当前位置: 首页 > 编程开发 > Python > 正文

如何在Python中读取通用数据格式(CDF)

发布时间:2020-09-21 07:20:51 所属栏目:Python 来源:互联网
导读:我需要使用 python读取CDF文件.我找到了库,但我不明白如何使用它.例如在这( pythong lib),我需要下载CDF lib,我不知道在哪里下载.有CDF的下载页面,但它似乎与这个库无关. @miraculixx的 answer是正确的,但它假定您已经安装了 CDF C Library. 如果您在SO上发现

我需要使用 python读取CDF文件.我找到了库,但我不明白如何使用它.例如在这( pythong lib),我需要下载CDF lib,我不知道在哪里下载.有CDF的下载页面,但它似乎与这个库无关.

解决方法

@miraculixx的 answer是正确的,但它假定您已经安装了 CDF C Library.

如果您在SO上发现此问题之前甚至不知道CDF文件格式是什么,这是一个易于遵循的指南.

1.下载最新版本的CDF C库:

您可以在link找到最新的稳定版本.使用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工具(这就是为什么我们在步骤2中安装了libncurses5-dev依赖项).结果这是最后的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

你已经准备好了,去做好事:

假设您使用pip安装了spacepy,以下内容应该是开箱即用的:

from spacepy import pycdf
cdf = pycdf.CDF('/path/to/file.cdf')
print(cdf)

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读