Hi all,
I’ve got a program that takes multiple files (HDF, NetCDF) and merges them into
a single file. While this works for most files I’ve encountered, there is an
issue I run into when I’m writing unsigned integer types (unsigned bytes are ok
for now):
java.io.IOException: Unknown userType == 9
at
ucar.nc2.jni.netcdf.Nc4Iosp.readDataSection(Nc4Iosp.java:1578)
~[netcdf4-4.6.8.jar:4.6.8]
at ucar.nc2.jni.netcdf.Nc4Iosp.readData(Nc4Iosp.java:1488)
~[netcdf4-4.6.8.jar:4.6.8]
at ucar.nc2.NetcdfFile.readData(NetcdfFile.java:2020)
~[cdm-4.6.8.jar:4.6.8]
at ucar.nc2.Variable.reallyRead(Variable.java:913)
~[cdm-4.6.8.jar:4.6.8]
at ucar.nc2.Variable._read(Variable.java:898)
~[cdm-4.6.8.jar:4.6.8]
at ucar.nc2.Variable.read(Variable.java:709)
~[cdm-4.6.8.jar:4.6.8]
at ucar.nc2.Variable.read(Variable.java:655)
~[cdm-4.6.8.jar:4.6.8]
at
gov.nasa.jpl.podaac.subsetter.netcdf.NetCDFSubsetter.mergeNetCDFFiles(NetCDFSubsetter.java:780)
[l2ss.jar:?]
at
gov.nasa.jpl.podaac.queue.SubsettingJobIT.testMergeAquarius(SubsettingJobIT.java:226)
[test-classes/:?]
Looking through some of the open source code, I don’t know why userType == 9 is
giving a problem, as that should be the unsigned int type. I’m getting this
issue when I’m reading out an array of the data:
Array copyTo = newVar.read(origin, arrayFrameSize);
The header of the variable I’m writing _to_ causing the error is as follows:
group: Aquarius_Flags {
dimensions:
phony_dim_13 = 178 ;
phony_dim_14 = 3 ;
phony_dim_15 = 2 ;
phony_dim_16 = 12 ;
phony_dim_17 = 4 ;
variables:
…
uint radiometer_flags(subset_index, phony_dim_13, phony_dim_14,
phony_dim_17) ;
radiometer_flags:Cold_water = "COLDWATER" ;
radiometer_flags:Direct_solar_flux_contamination = "FLUXD" ;
radiometer_flags:Galactic_contamination =
"GALACTIC" ;
radiometer_flags:Land_contamination = "LAND" ;
radiometer_flags:Moon_contamination = "MOON" ;
radiometer_flags:Moon_Galaxy_contamination =
"REFL_1STOKES" ;
radiometer_flags:Non-nominal_navigation = "NAV"
;
radiometer_flags:Pointing_anomaly = "POINTING" ;
radiometer_flags:RFI_contamination = "RFI" ;
radiometer_flags:RFI_level = "TFTADIFF" ;
radiometer_flags:RFI_regional_contamination =
"RFI_REGION" ;
radiometer_flags:Rain_in_main_beam = "RAIN" ;
radiometer_flags:Reflected_solar_flux_contamination = "FLUXR" ;
radiometer_flags:Roughness_correction_failure =
"ROUGH" ;
radiometer_flags:SA_overflow = "SAOVERFLOW" ;
radiometer_flags:Sea_ice_contamination = "ICE" ;
radiometer_flags:Solar_flare_contamination =
"FLARE" ;
radiometer_flags:Sun_glint = "SUNGLINT" ;
radiometer_flags:Tb_consistency = "TBCONS" ;
radiometer_flags:Unusual_brighness_temperature
= "TEMP" ;
radiometer_flags:Wind_foam_contamination =
"WIND" ;
radiometer_flags:long_name = "Radiometer data
quality flags" ;
radiometer_flags:valid_max = 0U ;
radiometer_flags:valid_min = 0U ;
radiometer_flags:_Unsigned = "true" ;
Any help or guidance would be great. I’m using netcdf4-4.6.8 and netcdf 4.3.3.1
Thanks,
Mike