问题标签 [hdfql]

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 回答
168 浏览

r - 在 Rcpp 中编译时出现冲突的声明错误,但 g++ 工作正常

我正在尝试编译一个依赖于外部库HDFql的 Rcpp 包。

首先,我尝试按照参考手册中的说明编译一个普通的 .cpp 文件,效果很好

其中./include/HDFql文件夹包含头文件并且./HDFql/libHDFql.a是静态库。

然后我尝试在 Rcpp 包中做同样的事情。我的包目录结构是

其中的内容Makevars

我也添加#include <Rcpp.h>example.cpp. 运行devtools::document()产量

../inst/include/HDFql/H5public.h:156:19:错误:冲突声明'typedef long long int ssize_t' typedef long long ssize_t;

我根本不明白。谁能解释这里发生了什么?

编辑 Github 存储库的链接

0 投票
0 回答
123 浏览

c++ - 命名空间存在但仍然出现声明冲突?

我正在使用HDFql C++ 包装库并尝试通过 Rcpp 将其与 R 集成。一般来说,我是一位经验丰富的编码员,但不是专门使用 C++ 的。我发表了另一篇关于尝试解决声明冲突问题的帖子。编译器错误消息复制如下:

链接到头文件中的实际声明

基本上,HDFql 和 Rcpp 都有typedefs forlong long并且它们发生冲突。但是,HDFql 包装器在这里定义了它自己的命名空间,所以我不明白为什么我首先会遇到这种冲突(我认为这就是命名空间的用途!)。我希望 C++ 大师可以帮助我解决两个问题:

  1. 即使库使用命名空间,为什么会发生这种冲突?编辑:@Igor 在评论中回答了这个问题
  2. 假装我是 HDFql C++ 包装器的开发者(我不是)。我将如何更改包装库或命名空间结构,以使这些类型的冲突不会发生?(编辑:也许根据这个答案为 HDFql 编写第二个包装器?

我很感激你有任何见解!

0 投票
1 回答
432 浏览

hdf - HDFql 处理表格

我对 HDFql 的可用性有一些疑问:

  1. HDFql 是否支持创建行类型不同的表?
  2. 如何将数据附加到表中?
  3. 你如何迭代行做表?

我要创建的表将包含 1 到 2^n 行的任何内容,并且无法事先确定。

0 投票
3 回答
2939 浏览

python - 使用属性从 H5 文件中过滤 HDF 数据集

我有一个包含多个组和数据集的 h5 文件。每个数据集都有关联的属性。我想根据与之关联的相应属性查找/过滤此 h5 文件中的数据集。

例子:

我想找到具有weather属性/元数据的数据集cloudy

以pythonic方式完成这项工作的最简单方法是什么。

0 投票
2 回答
893 浏览

python - 有没有办法在 Python 中逐行编写 hdf5 文件?

对于 CSV 文件,我们可以使用

写Hdf5文件有类似的东西吗?

0 投票
1 回答
544 浏览

r - 在 R Linux 上使用 dyn.load 加载共享库时出现问题,但等效的 Windows 构建工作正常

我已经构建了一个用于与 R 中的 HDFql 交互的。它依赖于 HDFql 2.1.0 提供的 R 包装器和 DLL/SO。这些包使用 DLL 在 Windows 中完美运行,但由于某种原因,HDFql 库 SO 无法在 Linux 环境中加载。我在Travis和本地 Docker Linux/R 容器上都试过这个。

函数中包含的相关代码hql_load()如下。假设 HDFql 被解压到当前目录“/hdfql-2.1.0”的一个文件夹中,这意味着

dllpath = c("/hdfql-2.1.0/lib/libHDFql.so", "/hdfql-2.1.0/wrapper/R/libHDFqlR.so")

我使用检查这些路径是否存在normalizePath(dllpath, mustWork = TRUE),并检查对象是否成功加载并出现在getLoadedDlls().

错误发生在对sys.sourceHDFql 提供的包装文件中的代码进行评估的调用中,特别是在初始化调用中。包装内容如下;请注意,在我上面的函数中,我dyn.load在评估它之前从包装器中删除了调用(预先加载了库)。

错误:无法执行 HDFql R 包装器。

附加信息:

eval 中的错误(解析(wrapper.file),envir = wrapper):找不到/加载 HDFql 共享库“libHDFql.so”!

我已经对此进行了数周的故障排除,但进展甚微。谁能告诉我为什么库在 Linux 系统中没有正确加载?

0 投票
1 回答
208 浏览

hdf5 - 如何读取 hdf5 (Hdfsl) 文件(一列读取)读取(大尺寸文件)

我正在使用带有 C# 的 HDF5DotNet,我只能读取完整数据作为数据集中的附加图像。hdf5文件太大了,将近1.4GB,如果我把整个数组加载到内存中就会内存不足。

我想从一列中读取所有数据

如何“m_Doc_01 ==> my_dataset_BS”数据??????

在此处输入图像描述

0 投票
1 回答
119 浏览

c++ - 在 CMake 中链接外部 HDFql 库

我已经下载了HDFql库并将全部内容放在我的 linux 系统中的 /usr/local/ 中。我现在希望在 ROS 应用程序中使用这个库,所以我尝试将它链接到我的 CMakeList 中,如下所示:

当我构建它时,它工作正常并输出消息:

在我的 main.cpp 文件中包含以下内容:

输出是:HDFql version: 2.1.0

但是,一旦我尝试实际使用库的功能 - 例如:

我得到错误: main.cpp:(.text+0x1858): undefined reference to `HDFql::execute(char const*)'

这向我表明,虽然 CMake 对包含没有问题,但它在链接实际库时遇到了问题(即包括 libHDFql.a/libHDFql.so 文件)。谁能告诉我我在这里做错了什么?

非常感谢!

0 投票
2 回答
216 浏览

c++ - HDFql 保存和加载图像

我正在尝试使用HDFql将图像从 OpenCV 保存到 HDF5 。这是我要实现的目标的一个最小示例(假设您在 有图像/tmp/lena.jpg):

这段代码基本上创建了一个新的 HDF5 文件,然后使用 OpenCV 打开一个图像并将该图像保存到 HDF5 文件中。然后它从 HDF5 文件中加载相同的图像并显示它。

如果你没有 OpenCV,你总是可以image.data用一个 uchar 数组替换,例如:uchar image_data[10] = {1,2,3,4,5,6,7,8,9,10};

长话短说,这不起作用,在检查 HDF5 文件时,它在保存步骤中已经失败。对我做错的任何帮助将不胜感激!

0 投票
1 回答
205 浏览

c++ - 读取 HDFql 中的属性值

我正在使用HDFql创建一个 HDF5 文件。我正在创建一个组并将一些数据放入其中,效果很好。然后我向文件添加一个属性(这似乎也有效,因为当我使用 HDF 编辑器检查 HDF5 文件时它会显示出来),但我不知道如何读取属性的值。这是一个最小的例子:

我希望控制台的输出是channels = 11,而不是我得到channels = 1953719668。奇怪的是,如果我cursorGetChar改为调用,返回值是“t”,如果我说

输出变为channels = test/data/channels.

所以我想我误解了 HDFql 游标的工作原理。所以我的问题是:我的代码有什么问题?为什么我的代码错了?

非常感谢!