问题标签 [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.
r - 将 hdf 文件读入 R 并将它们转换为 geoTIFF 栅格
我正在尝试将 MODIS 17 数据文件读入 R,对其进行操作(裁剪等),然后将它们保存为 geoTIFF。数据文件采用.hdf
格式,似乎没有一种简单的方法可以将它们读入 R。
与其他主题相比,那里没有很多建议,而且大部分都是几年前的。其中一些还建议使用其他程序,但我想坚持只使用 R。
人们使用什么包来处理.hdf
R 中的文件?
python-3.x - Pandas HDF 限制 CSV 文件的行数
我有一个 3GB 的 CSV 文件。我正在尝试使用 Pandas 将其保存为 HDF 格式,以便更快地加载它。
原始的 CSV 文件大约有 300 万行,这从这段代码的输出中可以看出。最后一行输出是:Saving 167 chunk...Done!这意味着:167*20000 = 3.340.000 行
我的问题是:
=> 4613 行
和:
什么都不返回,即使我确定“项目”列在原始文件中的条目等于 1。
有什么问题?
python - 在 python 中存储和使用两个对象之间的信息的最佳方法是什么?
我有一组对象的名称/标识(就生活中的对象而言,而不是 python 对象)。
为简单起见,这些对象具有以下名称:
此类物体的数量约为 2000 个(未来可能约为 6000 个)。
我正在尝试确定完成任务的最佳方式:在每对对象之间存储信息 (param1, param2, ..., paramN) 的最佳方式是什么。看起来像下面的数据结构:
重要的是要考虑几个方面:
- cell[A,B]=cell[B,A] 所以我们只需要存储所有表格的 1/2
- 我需要将此表保存在 tmp 目录中并在我的 python 应用程序的启动中加载
- 我需要在我的 python 应用程序中快速从这个表中提取值
我的解决方案:我使用了 pandas.DataFrame 模块。对于每个参数:param1,param2,...我制作单独的三角表:param1table,param2table,...填充后我将它们保存在 CSV 文件中:param1table.csv,param2table.csv,...csv
在我的程序中,如果我需要成对的param1:A,B,我需要加载param1table.csv(pandas.read_csv)并查看值[A,B]是否存在返回它,否则返回[B,A]
我认为它不是有效的方法。
pandas - 优化向 hdf 发送数据帧?
h5和hdf文件有什么区别?我应该使用其中一个吗?我尝试使用以下两个代码执行 timeit,每个循环大约需要 3 分 29 秒,文件大小为 240mb。我最终在第二个代码上遇到了错误,但磁盘上的文件大小超过了 300mb。
另外,我收到一条错误消息,上面写着:
这是由于字符串列由于空白值而成为对象。如果我使用 .astype(str),则所有空格都将替换为 nan(甚至出现在输出文件中的字符串)。我是否担心错误消息并填写空白并稍后用 np.nan 再次替换它们,或者只是忽略它?
这是 df.info() 显示有一些列有空值。我无法删除这些行,但如果需要,我可以暂时用一些东西填充它们。
python - 使用 Basemap 包绘制 OMI 卫星每日数据
OMI(臭氧监测仪)测量二氧化氮(NO2)、臭氧(O3)等关键空气质量成分。我在这里下载的每日columnO3文件代表了对流层臭氧柱浓度的全球分布。
该文件的大小约为 90Mb。任何有兴趣的人都可以下载其中任何一个。
数据以 (15, 720, 1440) 的形式上传到这里
- 15 是候选场景的数量
- 1440 是 X 维度,经度 [-180:180] 从左到右
- 720 是 Y 维度,纬度 [-90:90] 从下到上
使用 h5py和matplotlib.basemap,这是我的尝试:
如图所示:
使用Panoply,候选为 0,如图所示:
我的问题
如何设置候选场景代表每日的全球分布(候选场景是什么意思?是否对应轨道轨迹?)
我的代码有什么问题,没有显示正确的数字
我的目标
下图截自网络。这就是我的目标风格!
任何建议或教程指南将不胜感激!
python - 在 HDF5 C++ api 中使用 GZIP 压缩时是否默认启用自动分块?
我正在使用 C++ HDF api 编写一个 HDF5 文件,并与 H5py Python 库进行一些比较。
在 H5py Python 库中,当使用 GZIP 或 LZF 等压缩算法时,默认应用自动分块。
相同的条件是否适用于 HDF5 C++ api?如果是这样,我如何证明在将压缩算法(例如 GZIP)应用于数据集时自动创建了块。
python - 如何在 python 中合并两个或三个 3D 数组?
我有 hdf 格式的时间序列数据。我使用下面的代码从 hdf 文件中读取数据。现在,我尝试根据经纬度加入具有相同 jdn(儒略日数)的数据。具有相同儒略日数的数据代表连续的空间数据
我的数据附在此链接中:https ://drive.google.com/folderview?id=0B2rkXkOkG7ExX2lTTWEySU1fOWc&usp=sharing
c++ - 使用 HDF5 库重命名和删除 HDF5 文件中的组
我正在使用 HDFview 应用程序来修改 HDF5 数据文件。基本上我所做的是检查所有组,删除与特定属性值匹配的组,重命名一些组并调整属性值以使文件与应用程序一致。
问题是我想做同样的事情,但使用 C++ HDF5 库。我已经完成了一个对组进行迭代的小型应用程序,但问题是我怎样才能删除它们?似乎规范不允许这种操作。我也尝试取消链接该组,但通话失败。对于重命名部分,我尝试移动组,就像在 unix 提示符中一样,但这不起作用。
另外需要注意的是,如果规范不允许删除,HDFview 如何支持该操作?
对此的任何提示都非常感谢。问候
pandas - Pandas:同一个 HDF 中的大型数据帧?
我有几个不同的相关数据框(如果需要,有 id 可以加入它们)。但是,我并不总是同时需要它们。
由于它们很大,将它们存储在单独的 HDF 存储中是否有意义?或者当我在同一个文件中处理其他帧时,携带“未使用”帧的成本可以忽略不计?
python - 加载大型稀疏矩阵的最快方法
我一直在尝试寻找在 Python 中访问大型数据集的最快方法。
在我的真实案例中,我有一个大约 10,000 x 10,000 的 csv 文件,我将其加载到 pandas MultiIndex DataFrame 中,因为我主要采用点积并对级别求和。
由于将此 csv 加载到 pandas 大约需要一分钟,我一直在寻找提高速度的方法。
经过调查,我遇到了这个线程:为什么在 python 中保存/加载数据比 matlab 占用更多的空间/时间?
我从这个线程得到的是 .mat 文件加载速度更快,因为它们存储为 hdf5。因此,我想通过 h5py、pandas 和 scypio(从 .mat 文件加载数据)来评估 pickle 和 hdf 的性能。
我的真实世界案例的结果如下:
可以看出,加载 .mat 文件确实比通过 Python 生成的 pickle 和 hdfs 快 3 倍以上。因此,.mat 文件的更快加载时间似乎不是由于 hdf,因为加载通过 python 生成的 hdfs 没有这个优势。
基于此,我想在这里发布一个问题,询问将大型数据集加载到 python 中最快的方法是什么。为此,我用一些随机数据制作了一个玩具示例:
在 MATLAB 中将 csv 转换为 mat 后,我进行了以下测试来评估加载时间:
结果如下:
有趣的是,.mat 文件似乎在这里失去了加载优势。经过调查,事实证明现实世界的数据非常稀疏。为了弄清楚有多稀疏,我将所有非零值替换为 1,将所有值相加并除以矩阵的大小。这产生了约0.28的密度。使用这个数字,我将玩具示例中的随机矩阵替换为稀疏矩阵:
确实,这似乎起到了作用:
因此,我想研究保存为稀疏是否可以加快 pickle、pandas 和 h5py 的加载时间。为此,我将稀疏版本直接保存到pickle,并保存了DataFrame的稀疏版本:
尝试通过 h5py 保存时出现错误:
经过一番调查,似乎我应该尝试使用分块存储,但我觉得通过进一步调查,我正在远离最初的目标。
结果如下:
虽然 pickle 似乎确实加快了速度(但仍然没有 .mat 快),但 pandas 受到了巨大的打击,加载需要将近 8 分钟。
最后我尝试直接从python保存到mat:
加载这个产生:
并保存稀疏版本:
产量
虽然速度更快,但它仍然比 MATLAB 的 mat 文件慢了将近 10 秒。
因此,我想知道从这里去哪里。有什么方法可以达到(或超越)MATLAB mat 文件的性能?如果可能的话,我想留在同一个环境中(即python、spyder)。