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

2023-11-24

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


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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中读取通用数据格式 (CDF) 的相关文章

随机推荐

  • 如何让服务在睡眠模式下也能运行?

    我有正在实现位置侦听器的服务 现在我的问题是如何确保我的服务即使在睡眠模式下也能捕获位置 我读过有关警报管理器的内容 alarm setRepeating AlarmManager RTC WAKEUP triggerAtMillis in
  • 如何指定 ASP.NET Web API 中需要 JSON 还是 XML?

    本周我编写了两个 ASP NET Web API 应用程序 它们都包含一个简单的控制器 我已经对每一个进行了调整 以使它们能够工作 包括异常等等 但据我所知 它们的配置几乎相同 其中一个返回 JSON 另一个返回 XML 我希望他们都返回
  • 与 pyodbc 的通信链路失败

    import pyodbc import time connection pyodbc connect cursor connection cursor while True time sleep 1 cursor execute INSE
  • Python的Multiprocessing的进程通信

    我了解了Python多进程的Pipes Queues Shared ctypes Objects Managers 我想将它们与Linux的匿名管道 命名管道 共享内存 套接字等进行比较 我现在有以下问题 Python 多处理的管道和队列模
  • 使用 R 并行化抓取网页

    我正在尝试抓取大量网页以便稍后分析它们 由于 URL 数量巨大 我决定使用parallel包装连同XML 具体来说 我正在使用htmlParse 函数来自XML 与使用时效果很好sapply 但与使用时会生成 HTMLInternalDoc
  • 支持工具栏的自定义视图不使用全宽

    我正在使用 support v7 的工具栏 我添加了自定义视图 但自定义视图似乎不遵守 match parent 它只会延伸到它看到的第一个图标 有谁知道解决这个问题吗 或者工具栏不应该这样使用 我的代码
  • 使用 POEdit——仅搜索特定域中的字符串

    我创建了一个想要翻译的 WordPress 主题 在我的主题中 我使用了一些翻译woocommerce i e 这些 woocommerce 字符串 我自然不想再次翻译 因为它们已经被翻译了 但是当我使用 poedit 扫描我的主题时 它当
  • java.sql.SQLException:I/O 错误:SSO 失败:本机 SSPI 库

    我有两个网络应用程序需要在 Tomcat 6 MS SQL 2008 和 JTDS 1 2 2 作为驱动程序上运行 如果我只启动一个 Web 应用程序 一切都工作正常 但是一旦我启动第二个应用程序 我就会收到以下错误 顺序无关紧要 java
  • 获得Facebook的读取权限后获得publish_action权限

    我正在整合Facebook登录我的应用程序 我能够获得读取权限 但如何从 Facebook SDK 获得发布权限 这就是我请求读取权限的方式 Override public void onClick View v Session curre
  • 如何让 addEventListener 与 select 标签一起使用

    HTML
  • event.preventDefault() 不适用于 android chrome

    event preventDefault 不适用于 Chrome Android 操作系统 而同样的操作也适用于 chrome IOS 我什至使用了 event stopPropagation event stopImmediateProp
  • Spring-Boot 多模块无法从另一个模块读取属性文件

    我搜索了高低 但仍然无法找到这个非常烦人的问题的简单答案 我遵循了这个伟大的指南 JWT 与多服务应用程序一切都很好 但在指南的最后 建议我们创建一个 config service module 我已经完成了 问题是我无法覆盖 JwtCon
  • 在 ICS 或 JB 上的任务管理器中显示自定义应用程序映像

    据我所知 在 Android 4 0 或更高版本 上 默认任务管理器显示程序的最后一个屏幕截图 程序图标没有左上角 看图片 我的问题是如何将任务管理器中的应用程序图像 不是图标 更改为自定义 别问我为什么 我只是需要 经过一番研究 我发现了
  • sed 中的“0,/xxx”是什么意思?

    脚本中使用的 sed 命令如下 sed i 0 ENABLE DEBUG s ENABLE DEBUG ENABLE DEBUG YES MakeConfig 我知道 s ENABLE DEBUG ENABLE DEBUG YES 是替换行
  • R:输出带有小计的类似数据透视表

    我正在尝试在 R 中进行交叉制表 并使其输出尽可能类似于 Excel 数据透视表中的输出 目标是用 R Markdown 自动生成的报告取代使用 Excel 和 Word 手动生成的报告 数据整理和图表已经处理完毕 但缺少一些表格 所以 给
  • 有没有比这更好的方法从 PrintDocument 获取页数?

    这是我想出的最好的 public static int GetPageCount PrintDocument printDocument printDocument PrinterSettings PrintFileName Path Ge
  • WebView不会播放任何声音

    我使用最简单的 WebView 实例 到目前为止 所需的一切都运行良好 除了播放声音之外 javascript 调用的声音和 html5 音频标签都无法通过此 WebView 工作 public class MainActivity ext
  • 如何重写另一个基类中的函数?

    我不太确定要使用的术语 但这是我的示例 class Base public virtual void test 0 class Mixin public virtual void test class Example public Base
  • 带有 Apache CXF 的 WS-Security UsernameToken

    我有一个与 SOAP 服务交互的 java 应用程序 我使用 WSDL 通过 CXF 生成 java 客户端 但我需要使用 ws security 来验证我的调用 我正在寻找一种纯代码方法来执行此操作 并且我没有任何 xml 配置 这是我尝
  • 如何在 Python 中读取通用数据格式 (CDF)

    我需要使用 python 读取 CDF 文件 我找到了图书馆 但我不明白如何使用它 例如在这个 Python 库 我需要下载CDF lib 我不知道在哪里下载 有 CDF 的下载页面 但似乎与该库无关 The answer miraculi