/** * Read the data for each variable passed in * * @param v2 * @param section * @return output data * @throws IOException * @throws ucar.ma2.InvalidRangeException */ public Array readData(Variable v2, Section section) throws IOException, InvalidRangeException { // subset Object data; Array outputData; byte[] vdata = null; NOWRadheader.Vinfo vinfo; ByteBuffer bos; List<Range> ranges = section.getRanges(); vinfo = (NOWRadheader.Vinfo) v2.getSPobject(); try { vdata = headerParser.getData((int) vinfo.hoff); } catch (Exception e) { } bos = ByteBuffer.wrap(vdata); data = readOneScanData(bos, vinfo, v2.getShortName()); outputData = Array.factory(v2.getDataType().getPrimitiveClassType(), v2.getShape(), data); outputData = outputData.flip(1); // outputData = outputData.flip(2); return (outputData.sectionNoReduce(ranges).copy()); // return outputData; }
/** * Open the file and read the header part * * @param raf * @param file * @param cancelTask * @throws java.io.IOException */ public void open( ucar.unidata.io.RandomAccessFile raf, ucar.nc2.NetcdfFile file, ucar.nc2.util.CancelTask cancelTask) throws IOException { super.open(raf, ncfile, cancelTask); ncfile = file; headerParser = new NOWRadheader(); try { headerParser.read(this.raf, ncfile); } catch (Exception e) { } // myInfo = headerParser.getVarInfo(); pcode = 0; ncfile.finish(); }
/** * checking the file * * @param raf * @return the valid of file checking */ public boolean isValidFile(ucar.unidata.io.RandomAccessFile raf) { NOWRadheader localHeader = new NOWRadheader(); return (localHeader.isValidFile(raf)); }