Hi all,
The BOUNDING_BOX reading strategy is used for file formats other than netCDF
and HDF4 in Thredds WMS.
uk.ac.rdg.resc.ncwms.cdm.CdmUtils
public static DataReadingStrategy getOptimumDataReadingStrategy(NetcdfDataset
nc)
{
String fileType = nc.getFileTypeId();
return "netCDF".equals(fileType) || "HDF4".equals(fileType)
? DataReadingStrategy.SCANLINE
: DataReadingStrategy.BOUNDING_BOX;
}
I'm working with a 8GB netCDF4/HDF5 file which has a 50000 * 50000 grid. With
the BOUNDING_BOX reading strategy, it theoretically requires 9.3GB memory (for
creating a float array of 50000 * 50000 entries), which leads to outOfMemory
exception on my test machine.
I've tried to use the SCANLINE reading strategy by adding another OR condition
(|| "HDF5".equals(fileType) to the above code, and it appears the outOfMemory
issue is gone.
According to the documentation, the SCANLINE strategy is recommended for local
uncompressed files, while the BOUNDING_BOX is recommended for remote and
compressed files.
Can someone please advise whether it is OK to use SCANLINE strategy for my
local uncompressed HDF5 files by modifying the above code?
Is there anything else I should be aware of?
Regards and thanks,
Lin