使用Visual C++将二维数组int[n][m]写入HDF5文件中
我刚刚开始使用HDF5,并希望以下一些建议. 我有一个2-D数组:data[][]传递到方法中.该方法看起来像: void WriteData( int data[48][100], int sizes[48]) 数据的大小实际上不是48 x 100,而是48 x尺寸[i]. IE.每行可能是不同的长度!在我处理的一个简单情况下,所有行的大小相同(但不是100),因此您可以说数组为48 x尺寸[0]. 如何最好地将其写入HDF5? 我有一些工作代码,我循环到0到48,并为每一行创建一个新数据集. 类似: for (int i = 0; i
6 2023-11-20
编程技术问答社区
在hdf5中使用std::string创建不可读的输出
我目前在Windows 7 64bit上使用HDF5 1.8.15. 我的软件的源代码使用UTF8编码保存在文件中. 我称任何支持性std :: string的HDF5功能后,Ouput获得隐秘 但是,如果我使用const char*而不是std::string,则一切正常.这也适用于文件名. 这是一个简短的样本: std::string filename_ = "test.h5"; H5::H5File file( filename_.c_str(), H5F_ACC_TRUNC); // works H5::H5File file( filename_, H5F_ACC_TRUNC); // filename is not readable or // hdf5 throws an exception 我想这个问题是由我的源文件和HDF5中使用的不同编码引起的
6 2023-11-12
编程技术问答社区
使用Spark,Csv数据无法正常加载为Parquet。
我在 hive 中有一张桌子 CREATE TABLE tab_data ( rec_id INT, rec_name STRING, rec_value DECIMAL(3,1), rec_created TIMESTAMP ) STORED AS PARQUET; 我想在 .csv 文件中使用数据填充此表 10|customer1|10.0|2016-09-07 08:38:00.0 20|customer2|24.0|2016-09-08 10:45:00.0 30|customer3|35.0|2016-09-10 03:26:00.0 40|customer1|46.0|2016-09-11 08:38:00.0 50|customer2|55.0|2016-09-12 10:45:00.0 60|customer3|62.0|2016-09-13 03:26:00.0 70|customer1|72.0|2016-09-14 08:38
8 2023-08-20
编程技术问答社区
将HDF转换为地理参考文件(geotiff,shapefile)。
我正在处理海洋初级生产力上的28个HDF4文件(可以在此处找到: 我尝试了几种转换为ASCII或栅格文件的方法,然后使用gdalUtils工具(例如gdal_translate>>>>>>)添加投影.但是,由于HDF4文件不是以标准命名的(与MODIS文件不同),因此后者不起作用,我无法访问子集. 这是我用来转换为栅格的代码: library(raster) library(gdalUtils) setwd("...path_to_files...") gdalinfo("cbpm.2015060.hdf") hdf_file
78 2023-07-25
编程技术问答社区
如何用这个R函数对相同的HDF文件进行镶嵌?
文件夹中有超过1,000个MODIS HDF图像: M:\join 他们的名字向我们展示了必须将哪些文件放在一起. 例如,在下面的文件中, 2009090 表示这三个图像必须一起镶嵌: MOD05_L2.A2009090.0420.051.2010336084010 MOD05_L2.A2009090.0555.051.2010336100338 MOD05_L2.A2009090.0600.051.2010336100514 或这两个是同一日期, 2009091 : MOD05_L2.A2009091.0555.051.2010336162871 MOD05_L2.A2009091.0600.051.2010336842395 我将使用此功能(函数来源): ) mosaicHDF(hdfNames, filename, MRTpath, bands_subset, delete=FALSE) 我应该如何将HDF文件介绍给 HDFNames ?
16 2023-07-23
编程技术问答社区
Xarray: 将多个 CSV 文件加载到一个数据集中
我有几个要加载到Xarray数据集中的逗号分隔的数据文件.每个文件中的每一行都表示固定网格中字段的不同空间值,每个文件代表不同的时间点.网格间距是固定的,并且及时不变.网格的间距不均匀.最终目标是计算max_{x, y} { std_t[ value(x, y, t) * sqrt(y **2 + x ** 2)] },其中sqrt是平方根,std_t是时间相对于时间而言是标准偏差,max_{x, y}是所有空间中的最大值. 我在加载数据时遇到困难.我尚不清楚如何将多个CSV文件加载到Xarray数据集中.有一个open_mfdataset函数,该功能旨在将多个数据文件加载到数据集中,但似乎期望HDF5或NetCDF文件. 似乎没有办法将常规CSV文件加载到Xarray数据集中,并且需要进行预处理数据.在我的示例中,我决定事先将CSV文件预处理到HDF5文件,以使用h5netcdf引擎.这为我创造了似乎是HDF5特定问题的东西. 以下是我到目前为止加载数据的最佳尝试.不
2 2023-07-20
编程技术问答社区
有可能从C或Fortran中读取.Rdata文件格式吗?
我正在撰写有关c(C函数从r调用)的一些r扩展. 我的代码需要同时使用2个不同的数据集计算统计量,并且我需要使用所有可能的对组合来执行此统计信息.然后,我需要所有这些统计数据(非常大的数组)才能继续在C端进行计算.这些文件很大,通常约为40GB,这是我的问题. 要在r上调用的C上执行此操作,首先,我需要将所有数据集加载在R中,然后将它们传递到C函数调用.但是,理想情况下,如果我能够直接从c或fortran访问数据集,则可以同时仅将这些文件中的2个保存在内存上: open file1 - open file2 - compute cov(1,2) close file2 hold file1 - open file3 - compute cov(1,3) ... // same approach 这在R上很好,因为我可以加载/卸载文件,但是当调用C或Fortran时,我没有加载/卸载文件的任何机制.因此,我的问题是,我可以直接从fortran或c读取.rdata文
4 2023-07-19
编程技术问答社区
将hdf文件读入R,并将其转换为geoTIFF光栅
我正在尝试将MODIS 17数据文件读取到R中,操纵它们(裁剪等),然后将其保存为Geotiff.数据文件采用.hdf格式,似乎没有一种简单的方法将它们读入R. 与其他主题相比,那里没有很多建议,其中大部分已有几年历史了.其中一些也建议使用其他程序,但我想坚持使用R. 人们在r? 中使用哪种软件包来处理.hdf文件 解决方案 好,所以我的MODIS HDF文件是HDF4而不是HDF5格式.令人惊讶的是,很难发现这一点,MODIS在他们的网站上没有提及它,但是各种博客和堆栈交换帖子中有一些提示.最后,我不得不下载 hdfview 确定. r不做HDF4文件,几乎所有软件包(例如rgdal)仅支持HDF5文件.有一些有关下载驱动程序和从源头编译rgdal的文章,但这似乎很复杂,这些帖子适用于Mac或Unix,我正在使用Windows. . 基本上gdal_translate gdalUtils软件包是为想要在R中使用HDF4文件的任何人的保存宽限期所有例如通过
184 2023-07-18
编程技术问答社区
将大型Pandas df保存到hdf时出现溢出错误
我有一个我有兴趣保存为h5(或feather)文件的大型PANDAS数据框架(〜15GB,83M行).一列包含长的ID字符串,该字符串应具有字符串/对象类型.但是,即使我确保熊猫以object的方式解析所有列: df = pd.read_csv('data.csv', dtype=object) print(df.dtypes) # sanity check df.to_hdf('df.h5', 'df') > client_id object event_id object account_id object session_id object event_timestamp object # etc... 我得到此错误: File "foo.py", line 14, in df.
16 2023-07-13
编程技术问答社区
如何在hdf5文件的多个组中分割数据?
我有一个看起来像这样的数据: Generated by trjconv : P/L=1/400 t= 0.00000 11214 1P1 aP1 1 80.48 35.36 4.25 2P1 aP1 2 37.45 3.92 3.96 11210LI aLI11210 61.61 19.15 3.25 11211LI aLI11211 69.99 64.64 3.17 11212LI aLI11212 70.73 11.64 3.38 11213LI aLI11213 62.67 16.16 3.44 11214LI aLI11214 3.22 9.76 3.39 61.42836 61.42836 8.47704 我设法将数据写入所需的组中,除了最后一行.我想将此行写入组/粒子/盒子.如您在数据文件中所看到的那样,这条
38 2023-07-09
编程技术问答社区
在Python中读取HDF文件的属性
我在熊猫中阅读HDF文件有问题.截至目前,我不知道文件的键. 在这种情况下,如何读取文件[data.hdf]?而且,我的文件是.hdf而非.h5,它是否有所作为它术语数据获取? 我看到您需要商店中的"组标识符" pandas.io.pytables.read_hdf(path_or_buf, key, **kwargs) 我能够从Pytables获得元数据 File(filename=data.hdf, title='', mode='a', root_uep='/', filters=Filters(complevel=0, shuffle=False, fletcher32=False, least_significant_digit=None)) / (RootGroup) '' /UID (EArray(317,)) '' atom := StringAtom(itemsize=36, shape=(), dflt='') maindim :=
98 2023-07-09
编程技术问答社区
Pandas to_hdf成功,但read_hdf失败
pandas to_hdf成功,但是当我使用自定义对象作为列标题时read_hdf失败(我使用自定义对象,因为我需要将其他信息存储在其中). 有什么方法可以做这项工作?还是这只是Pandas错误或PYTABLES错误? 作为一个例子,我将首先显示使用字符串列标头的DataFrame foo,并且一切都可以使用to_hdf/read_hdf>,但是然后更改FOO来使用自定义Col类对于列标题,to_hdf仍然可以正常工作,但read_hdf提出断言错误: In [48]: foo = pd.DataFrame(np.random.randn(2, 3), columns = ['aaa', 'bbb', 'ccc']) In [49]: foo Out[49]: aaa bbb ccc 0 -0.434303 0.174689 1.373971 1 -0.562228 0.862092 -1.361979 In [50]: fo
42 2023-07-08
编程技术问答社区
打开一个损坏的PyTables HDF5文件
我希望在打开损坏的HDF5文件时提供一些帮助.我正在通过Pandas访问PyTables,但是a pd.read_hdf()呼叫会产生以下错误.我对PyTables的内部工作一无所知. 我相信发生了错误是因为将过程保存到文件(每10秒左右)的过程被重复,因此随后有2个相同的过程附加.我不确定为什么这会损坏文件而不是重复数据,但是两个错误一起出现,这就是为什么我认为它们与因果关系有关. --------------- HDF5ExtError Traceback (most recent call last) in () ----> 1 ES2 = h.read('./ES_201509-1') /Users/AFK/Desktop/fastback/historical_store.pyc in read(self, path, key,
16 2023-07-06
编程技术问答社区
使用astype在H5py中创建对HDF数据集的引用
来自但是,我想在存储为uint16的数据集中读取,然后将其投入到float32类型中.此后,我想从该数据集中提取各种函数,例如Cast Type float32.文档将用途解释为 with dataset.astype('float32'): castdata = dataset[:] 这将导致整个数据集被读入并转换为float32,这不是我想要的.我想对数据集有一个引用,但以float32等效为numpy.astype.如何创建对.astype('float32')对象的引用,以便可以将其传递给另一个函数以供使用? 一个例子: import h5py as HDF import numpy as np intdata = (100*np.random.random(10)).astype('uint16') # create the HDF dataset def get_dataset_as_float(): hf = HDF.File('dat
6 2023-07-04
编程技术问答社区
确定pandas HDF文件中DataFrame的格式
有一个HDF文件'file.h5',保存在其中的pandas dataframe(或系列)的密钥名称为" df".如何以哪种格式(即"固定"或"表")保存在文件中? 谢谢您的帮助! 解决方案 有点迟了,但也许其他人可能会发现它有帮助. 您可以解析>>> print(h5_table.info()) File path: /tmp/df_table.h5 /df frame_table (typ->appendable,nrows->2,ncols->2,indexers->[index],dc->[]) >>> print(h5_fixed.info()) File path: /tmp/df_fixed.h5 /df frame (shape->[2,2]) 这是一个最小的(即没有错误处理的文件或密钥)示例:
12 2023-07-04
编程技术问答社区
保存为HDF5的图像没有颜色
IM当前正在处理将文本文件和JPG图像转换为HDF5格式的程序.使用HDFVIEW 3.0打开,看来图像仅保存在灰度中. hdf = h5py.File("Sample.h5") img = Image.open("Image.jpg") data = np.asarray((img), dtype="uint8") hdf.create_dataset("Photos/Image 1", data=data, dtype='uint8') dset = hdf.get("Photos/Image 1") dset.attrs['CLASS'] = 'IMAGE' dset.attrs['IMAGE_VERSION'] = '1.2' arr = np.asarray([0, 255], dtype=np.uint8) dset.attrs['IMAGE_MINMAXRANGE'] = list(arr) dset.attrs['IMAGE_SUBCLASS'] = 'IMAGE
14 2023-07-03
编程技术问答社区
OSError: 无法打开文件(未找到文件签名)/HDF5错误追溯结束
我有一个小(.hdf文件(从 laads daac daac daac daac 服务).我已经尝试了pandas和h5py打开它,无济于事(代码如下).我还用: 测试了该文件 $ h5dump -n data.hdf h5dump error: unable to open file "data.hdf" 和 $ h5debug data.hdf cannot open file 这似乎都指向一个损坏的文件,但是很奇怪的是,这里发生了什么? 1. import h5py data = h5py.File(filename, 'r') Traceback (most recent call last): File "", line 1, in File "/home/gabriel/miniconda3/envs/py3/lib/python3.7/site-packages/h5py/_hl/files.py"
24 2023-06-29
编程技术问答社区
pd.read_hdf抛出 '无法将此数组的WRITABLE标志设为真'。
运行 pd.read_hdf('myfile.h5') 我得到以下追溯错误: [[...一些更长的追溯]] 〜/.local/lib/python3.6/site-ackages/pandas/io/pytables.py in read_array(self,key,start,stop)2487 2488如果 isInstance(node,tables.vlarray): - > 2489 ret =节点[0] [start:stop] 2490 else:2491 dtype = getAttr(attrs,'value_type',none) 〜/.local/lib/python3.6/site-ackages/tables/vlarray.py in getItem (self,key) 〜/.local/lib/python3.6/site-ackages/tables/vlarray.py in read(self, 开始,停止,步骤
40 2023-06-24
编程技术问答社区
查询一个HDF-存储
我通过 创建了一个HD5文件 hdf=pandas.HDFStore(pfad) hdf.append('df', df, data_columns=True) i有一个列表,其中包含numpy.dateTime64值称为有效期,并尝试将HD5表的部分读取到一个数据框中,该数据框中具有"到期"中的到期[1]和到期[0]之间的值.列到期条目具有格式时间戳('2002-05-18 00:00:00'). 我使用以下命令: df=hdf.select('df', where=('expiration=expirations[0]')) 但是,我得到了ValueError:无法解析X 这应该如何正确完成? df.dtypes Out[37]: adjusted stock close price float64 expiration datetime6
54 2023-05-18
编程技术问答社区
如何将HDF文件(固定格式,多键)作为一个pandas数据框架来处理?
i给出了一个使用熊猫创建的20GB HDF5文件,但不幸的是,以固定格式(而不是表)编写,每列写作作为单独的键.这对于快速加载一项功能非常有效,但是它不允许方便地面向桌子的过程(例如,统计分析或绘图). 试图整体上加载文件给出以下错误: ValueError: key must be provided when HDF5 file contains multiple datasets. f=pd.read_hdf('file_path') ValueError Traceback (most recent call last) 384 for group_to_check in groups[1:]: 385 if not _is_metadata_of(group_to_check, candidate_only_group): --> 386
6 2023-05-18
编程技术问答社区