Skip to content

Commit b0fed0e

Browse files
committed
v2 arch support
1 parent 37ab25f commit b0fed0e

2 files changed

Lines changed: 22 additions & 18 deletions

File tree

src/main/java/org/hdf5javalib/examples/hdf5examples/HDF5Debug.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ private void run() {
5454
try {
5555
// List all .h5 files in HDF5Examples resources directory
5656
// ATL03_20250302235544_11742607_006_01
57-
Path dirPath = Paths.get(Objects.requireNonNull(HDF5Debug.class.getClassLoader().getResource("HDF5Examples/h5ex_g_compact2.h5")).toURI());
58-
// Path dirPath = Paths.get("c:/users/karln/Downloads/ATL03_20250302235544_11742607_006_01.h5");
57+
// Path dirPath = Paths.get(Objects.requireNonNull(HDF5Debug.class.getClassLoader().getResource("HDF5Examples/h5ex_g_compact2.h5")).toURI());
58+
Path dirPath = Paths.get("c:/users/karnicho/Downloads/ATL03_20250302235544_11742607_006_01.h5");
5959
processFile(dirPath);
6060
} catch (Exception e) {
6161
throw new IllegalStateException(e);
@@ -65,18 +65,18 @@ private void run() {
6565
private static void processFile(Path filePath) {
6666
try (SeekableByteChannel channel = Files.newByteChannel(filePath, StandardOpenOption.READ)) {
6767
HdfFileReader reader = new HdfFileReader(channel).readFile();
68-
for (HdfDataset dataSet : reader.getDatasets()) {
69-
System.out.println("{} " + dataSet);
70-
// log.info("{} ", dataSet);
71-
HdfDisplayCountUtils.displayData(channel, dataSet, reader);
72-
// displayScalarData(channel, dataSet, HdfFloatPoint.class, reader);
73-
}
74-
// HdfDataset dataSet = reader.getDataset("/ancillary_data/calibrations/low_link_impulse_response/hist_x").get();
75-
// System.out.println("{} " + dataSet);
76-
//// System.out.println("{} " + dataSet.getObjectPath());
68+
// for (HdfDataset dataSet : reader.getDatasets()) {
69+
// System.out.println("{} " + dataSet);
7770
//// log.info("{} ", dataSet);
78-
// HdfDisplayUtils.displayData(channel, dataSet, reader);
71+
// HdfDisplayCountUtils.displayData(channel, dataSet, reader);
7972
//// displayScalarData(channel, dataSet, HdfFloatPoint.class, reader);
73+
// }
74+
HdfDataset dataSet = reader.getDataset("/gt1l/heights/delta_time").get();
75+
System.out.println("{} " + dataSet);
76+
// System.out.println("{} " + dataSet.getObjectPath());
77+
// log.info("{} ", dataSet);
78+
HdfDisplayUtils.displayData(channel, dataSet, reader);
79+
// displayScalarData(channel, dataSet, HdfFloatPoint.class, reader);
8080
} catch (Exception e) {
8181
log.error("Exception in processFile: {}", filePath, e);
8282
}

src/main/java/org/hdf5javalib/hdfjava/HdfFileReader.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import org.hdf5javalib.hdffile.metadata.HdfSuperblock;
1414
import org.hdf5javalib.utils.HdfReadUtils;
1515
import org.hdf5javalib.utils.HdfWriteUtils;
16+
import org.slf4j.Logger;
17+
import org.slf4j.LoggerFactory;
1618

1719
import java.io.IOException;
1820
import java.lang.reflect.InvocationTargetException;
@@ -42,6 +44,7 @@
4244
* </p>
4345
*/
4446
public class HdfFileReader implements HdfDataFile {
47+
private static final Logger log = LoggerFactory.getLogger(HdfFileReader.class);
4548
// /** The superblock containing metadata about the HDF5 file. */
4649
public static final byte[] BTREE_SIGNATURE = {'T', 'R', 'E', 'E'};
4750
public static final int BTREE_HEADER_INITIAL_SIZE = 8;
@@ -88,6 +91,7 @@ public HdfFileReader(SeekableByteChannel fileChannel) {
8891
public HdfFileReader readFile() throws Exception {
8992
long superblockOffset = findSuperblockOffset(fileChannel);
9093
superblock = readSuperblockFromSeekableByteChannel(fileChannel, superblockOffset, this);
94+
log.debug("HdfFileReader::readFile superblock: {}", superblock);
9195

9296
// Step 1: Get the root object header address. This logic IS dependent on the superblock version.
9397
long rootObjectHeaderAddr;
@@ -297,15 +301,16 @@ private void processLink(HdfGroup parentGroup, String linkName, long objectHeade
297301
if (isGroup) {
298302
HdfGroup groupObject = new HdfGroup(linkName, objectHeader, parentGroup, hardLink);
299303
parentGroup.addChild(groupObject);
300-
System.out.println("ADDED GROUP: " + groupObject.getObjectPath() + " at " + objectHeaderOffset);
304+
log.debug("HdfFileReader::processLink - added group {} at {}", groupObject.getObjectPath(), objectHeaderOffset);
301305

302306
if (hardLink == null) {
303307
processV2GroupLinks(groupObject);
304308
}
305309
} else {
306310
HdfDataset datasetObject = new HdfDataset(linkName, objectHeader, parentGroup, hardLink);
307311
parentGroup.addChild(datasetObject);
308-
System.out.println("ADDED DATASET: " + datasetObject.getObjectPath() + " at " + objectHeaderOffset);
312+
log.debug("HdfFileReader::processLink - added dataset {} at {}", datasetObject.getObjectPath(), objectHeaderOffset);
313+
log.trace("HdfFileReader::processLink - added dataset {}:{}", datasetObject.getObjectPath(), datasetObject.getObjectHeader());
309314
}
310315
}
311316

@@ -475,10 +480,10 @@ public static HdfSuperblock readSuperblockFromSeekableByteChannel(SeekableByteCh
475480
FixedPointDatatype fixedPointDatatypeForLength;
476481

477482
// Parse addresses using HdfFixedPoint
478-
HdfFixedPoint baseAddress = null;
483+
HdfFixedPoint baseAddress;
479484
HdfFixedPoint freeSpaceAddress = null;
480485
HdfFixedPoint extensionAddress = null;
481-
HdfFixedPoint endOfFileAddress = null;
486+
HdfFixedPoint endOfFileAddress;
482487
HdfFixedPoint driverInformationAddress = null;
483488
HdfFixedPoint rootObjectHeaderAddress = null;
484489
buffer.position(SIGNATURE_SIZE + VERSION_SIZE); // Skip the file signature
@@ -540,7 +545,7 @@ public static HdfSuperblock readSuperblockFromSeekableByteChannel(SeekableByteCh
540545

541546
}
542547

543-
HdfSuperblock superblock = new HdfSuperblock(
548+
return new HdfSuperblock(
544549
version,
545550
freeSpaceVersion,
546551
rootGroupVersion,
@@ -559,7 +564,6 @@ public static HdfSuperblock readSuperblockFromSeekableByteChannel(SeekableByteCh
559564
fixedPointDatatypeForOffset,
560565
fixedPointDatatypeForLength
561566
);
562-
return superblock;
563567
}
564568

565569
/**

0 commit comments

Comments
 (0)