问题标签 [hdf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
28 浏览

python - Lambda 函数受范围之外的变量影响

通过 访问 HDF5 时pandas,我有时会遇到记录在案的错误,即无法做出超过 31 个选择条件。为了避免这种情况,我决定拆分选择条件,创建一批迭代器,然后在最后连接结果。

这是我的方法:

也就是说,我想创建一个生成器列表。调用generator()会返回select语句,对应where条件。

然后我将所有这些存储在一个列表中。

为了完整起见,这里是`grouper():

出现的问题之一是我对where重写 lambda 函数的定义:当我在第二轮时,新定义的where(基于 second idCunk)将替换lambda里面的生成器generators[0]

我该如何规避这个问题?对于这种结构,我还有什么需要注意的,还是有更好的方法来处理这个问题?

0 投票
0 回答
666 浏览

python - 带有 Python、Pandas 的 HDF5:数据损坏和读取错误

所以我试图将 Pandas DataFrames 存储在 HDF5 中并得到奇怪的错误,相当不一致。至少有一半的时间,读取-过程-移动-写入循环的某些部分失败,通常没有比“HDF5 读取错误”更清楚的解释。更糟糕的是,有时表格最终会出现无意义/损坏的数据,这些数据直到下游才会停止 - 要么值相差几个数量级(甚至与正确的值不相关),要么日期没有意义(最近的数据被错误标记为 1750 年代……等等)。

我想我会经历当前的过程,然后我怀疑可能会导致问题的事情可能会有所帮助。这是它的样子:

  1. 阅读一些表格(称它们为“QUERY1”和“QUERY2”),看看它们是否是最新的,如果不是,
  2. 将 HDF5 存储中的表作为“QUERY1”并将其存储为 HDF5 存储中的 QUERY1_YYYY_MM_DD”
  3. 对该表的外部数据库运行相关查询。每一个都是 100 到 1500 列的每日数据,可以追溯到 1980 年。
  4. 将查询 1 的结果作为新的“QUERY1”存储在 HDF5 存储中
  5. 计算一个或多个 QUERY1、QUERY2、...QUERYn 的多个转换,这些转换将具有分层(Pandas MultiIndex)列。用 HDF5 商店中的更新/替换覆盖项目“Derived_Frame1”...等
  6. 多个有权访问 Windows 网络驱动器上相关 .h5 文件的人运行此例程——有时可能会,但通常不会同时运行。

我怀疑有些事情可能是问题的一部分:

  • 使用默认格式(df.to_hdf(store, key))而不是坚持使用“表格”格式df.to_hdf(store, key, format='table'))。我这样做是因为根据 %timeit,默认格式在读取和写入方面都快 2 到 5 倍

  • 使用网络驱动器允许多个用户运行此例程并至少访问派生帧。对于这个要求,我无能为力,尤其是对于随时读取派生数据帧的访问。

  • 从文档中,听起来重复删除和重写 HDF5 存储中的项目会做一些奇怪的事情(至少逐渐增加文件大小,不知道还有什么)。也许我应该将查询档案存储在另一个文件中?也许我应该在更新时核对并替换整个主文件?

  • 首先在 HDF5 中存储具有 MultiIndex 列的数据帧——这似乎是让我在默认格式下发出“警告”的原因,尽管如果我使用format='table'.

  • 编辑:运行上述例程的不同用户也有可能/很可能使用不同版本的 Pandas 和不同版本的 PyTables。

有任何想法吗?

0 投票
1 回答
570 浏览

sql - Apache NiFi ExecuteSQL 处理器中的错误:org.apache.avro.UnresolvedUnionException: Not in union ["null","long"]

UnresolvedUnionException 对于 BIGINT UNSIGNED INT 类型的 id

表架构:id BIGINT(20)、UNSIGNED INT、AUTOINCREMENT account_id INT(64)、UNSIGNED INT、CAN BE NULL

有人能解决这个错误吗?我正在使用 Apache NiFi 0.7.0

0 投票
3 回答
1043 浏览

python - 使用 Python 的 HDF 文件中的数据丢失

我正在尝试读取 hdf 文件,但没有显示任何组。我使用表和 h5py 尝试了几种不同的方法,但都无法显示文件中的组。我检查了文件是“分层数据格式(版本 5)数据”(请参阅​​更新)。文件信息在这里供参考。

示例数据可以在这里找到

使用 h5py:

输出:

使用表格:

输出:

更新

现在我的问题是如何将 hdf 版本 4 文件读入 python,因为 h5py 和表都不起作用?

0 投票
0 回答
856 浏览

python - h5py (HDF5) - 大 ndarray 的随机错误 - IOError:无法准备写入数据

尝试创建相当大的 numpy ndarray 数据集时遇到一个非常奇怪的问题。

例如

块大小为 (256,256)。

如果上述 ndarray 设置为 (512,512),则一切正常。

如果上面的 ndarray 设置为(100000000000,100000000000),一切正常...

理想情况下,我想要一个大小为 (3055693983,3055693983) 的 ndarray,但失败并显示以下内容:

将 ndarray 设置为几个随机大小会产生混合结果。有些工作,有些不工作......我认为这可能很简单,比如 ndarray 的大小不能被 chunk_size 整除,但这似乎不是问题。

我在这里想念什么?

0 投票
1 回答
1458 浏览

python - 如何使用 h4toh5 在 python 中将 hdf4 转换为 hdf5?

我想在python中将hdf4文件转换为hdf5,我认为这个工具h4toh5可以用来解决这个问题,但我不知道如何在python中使用它,有人知道吗?

工具可在https://www.hdfgroup.org/h4toh5/

0 投票
1 回答
1222 浏览

c - HDF-EOS 配置失败,“C 编译器无法创建可执行文件”

我正在尝试使用 ./configure 安装 HDF-EOS C 库,并且在执行配置期间,我得到以下输出:

config.log 是:

问题似乎发生在名为“confdefs.h”的头文件中,config.log 文件显示程序失败。我不知道问题是什么,我非常感谢任何帮助。

规格:Linux kali 4.3.0-kali1-amd64

#1 SMP Debian 4.3.3-5kali4 (2016-01-13) x86_64 GNU/Linux

侏儒 3.18.2

另外,不要介意我的 PATH 变量多次引用同一个位置。我会尽快解决这个问题。

0 投票
1 回答
373 浏览

r - 如何使用字符串作为变量名从 hdf5 文件中保存变量?

我有一个带有多个变量的 hdf5 文件,我想将这些变量自动存储在列表或矩阵中。

我可以通过键入访问文件中的任何变量

现在我想使用循环将所有变量保存到内存中。就像是

我试过assign()、eval()、as.name(),它们都不起作用,但我无法将它们保存到另一个变量中。但是,如果我输入 myvar=file$AGB_CO 它可以工作。如何实施?

0 投票
1 回答
1172 浏览

python - 将键/值对列表转换为存储在 HDFStore 中的 pandas 数据帧

有类似的问题,但没有一个能处理我的数据框位于 HDFStore 内的情况。

我需要将时间戳/键/值项列表转换为数据帧并将其存储为多个数据帧,每个数据帧都在时间戳上建立索引,然后将其保存在 HDFStore 中。

示例代码:

此代码运行后,store['x']仍为空。

所以显然有一些原因导致这种情况没有持续存在,而且我也不知道这些东西应该如何工作。如果我只是了解您如何附加到 HDFStore 中的表/数据帧,我当然可以弄清楚逻辑。

我也可以将数据帧保存在内存中的某种字典中,然后在最后将它们分配给 HDFStore。我不知何故有一个错误的想法,即这样做可以节省内存,也许我也错了。

0 投票
0 回答
69 浏览

r - 为什么 Fortran 中的 h5dcreate_f 函数打印这么多数字?

我正在使用在 h5files 中写入 REAL 类型变量的 Fortran 代码,因此它使用此代码

当然还有其他 h5 函数,例如geth5dims.

但是我很困惑为什么当我使用 R 或 HDFview 打开 h5 文件时,REAL 变量的精度高达 20+ 位,而不是我期望的 fortran REAL 的 7 位。示例:在 fortran 中,当我打印出一个变量时,我有 0.1662154,但在我的 h5file 中,相同的变量是 0.166215423415234653524...

为什么所有这些额外的数字,这些数字只是噪音?这很重要,因为我将进行对舍入误差敏感的进一步计算。

在 Fortran 中使用 write 语句FORMAT(F30.25)我得到 0.0006564661744050681591034 但在 RI 中得到 0.00065646617440506816,如果在 Fortran 中我只使用 write( , ) var 或 print *,var 而我只得到 6.565466E-4