我有一个名为.ogpr的文件格式(openGPR,一种用于地面雷达数据的死格式),我试图读取这个文件并使用Matlab(R)将其转换成一个矩阵。
在文件的第一部分中有一个JSON头,其中解释了数据采集的特点(跟踪的数量、位置等),在第二部分中有两个不同的数据块。第一个块包含“真实的”GPR数据,我知道它们被格式化为:
IEEE754多字节二进制数据是little-endian
。
我还知道每个‘片’的总字节数和相对字节数(我们有512个样本*10个通道*每个样本3971个x2字节)。此外:“雷达体积数据块目前存储一个三维雷达样本阵列,每个样本值存储在一个16位有符号整数中,每个样本值在-20,20范围内以伏特为单位。”
第二个块包含地理位置信息。
我想从编码中读取和转换数据块,但是不清楚,特别是有多少字节破坏了数据,以及如何将它们从编码转换为数字。
我试着使用这部分代码:
bin_data = ogpr_data(48:(length(ogpr_data)-1),1);
writematrix(bin_data, 'bin_data.txt');
fileID = fopen('bin_data.txt', 'r', 'ieee-le');
format = 'uint16';
Data = fread(fileID, Inf, format);fclose(fileID)发布于 2022-03-31 19:09:17
看起来你发布的代码混合了文本文件和二进制文件。writematrix( )例程将值写入逗号分隔的文本。然后转身,尝试使用fopen( )和fread( )将其读取为IEEE Little Endian格式的二进制文件。这是两件完全不同的事情。您需要选择一种格式并始终如一地使用它,要么是人类可读的逗号分隔文本文件,要么是机器可读的二进制IEEE格式文件。
https://stackoverflow.com/questions/71690812
复制相似问题