public TypedDataset open(NetcdfDataset ncd, ucar.nc2.util.CancelTask task, StringBuilder errlog) throws IOException { return new LevelII2Dataset(ncd); }
public void clearDatasetMemory() { List rvars = getDataVariables(); Iterator iter = rvars.iterator(); while (iter.hasNext()) { RadialVariable radVar = (RadialVariable)iter.next(); radVar.clearVariableMemory(); } }
public int getNumSweeps() { if(isHighResolution(ds)) { return nsweepsHR + nsweeps; } return nsweeps; }
/** * Constructor. * * @param ds must be from nexrad2 IOSP */ public LevelII2Dataset(NetcdfDataset ds) { super(ds); this.ds = ds; desc = "Nexrad 2 radar dataset"; setEarthLocation(); try { setTimeUnits(); } catch (Exception e) { throw new RuntimeException(e); } setStartDate(); setEndDate(); setBoundingBox(); }
protected void addRadialVariable(NetcdfDataset nds, Variable var) { RadialVariable rsvar = null; String vName = var.getShortName() ; int rnk = var.getRank(); if ( rnk == 3 ) { if (!isHighResolution(nds)) { VariableSimpleIF v = new MyRadialVariableAdapter(vName, var.getAttributes()); rsvar = makeRadialVariable(nds, v, var); } else { if(! vName.endsWith("_HI")) { VariableSimpleIF v = new MyRadialVariableAdapter(vName, var.getAttributes()); rsvar = makeRadialVariable(nds, v, var); } } } if(rsvar != null) dataVariables.add(rsvar); }
protected void setBoundingBox() { LatLonRect bb; if (origin == null) return; double dLat = Math.toDegrees( getMaximumRadialDist() / Earth.getRadius()); double latRadians = Math.toRadians( origin.getLatitude()); double dLon = dLat * Math.cos(latRadians); double lat1 = origin.getLatitude() - dLat/2; double lon1 = origin.getLongitude() - dLon/2; bb = new LatLonRect( new LatLonPointImpl( lat1, lon1), dLat, dLon); boundingBox = bb; }
/** * Constructor. * * @param ds must be from nexrad2 IOSP */ public LevelII2Dataset(NetcdfDataset ds) { super(ds); this.ds = ds; desc = "Nexrad 2 radar dataset"; setEarthLocation(); try { setTimeUnits(); } catch (Exception e) { throw new RuntimeException(e); } setStartDate(); setEndDate(); setBoundingBox(); }
protected void addRadialVariable(NetcdfDataset nds, Variable var) { RadialVariable rsvar = null; String vName = var.getShortName() ; int rnk = var.getRank(); if ( rnk == 3 ) { if (!isHighResolution(nds)) { VariableSimpleIF v = new MyRadialVariableAdapter(vName, var.getAttributes()); rsvar = makeRadialVariable(nds, v, var); } else { if(! vName.endsWith("_HI")) { VariableSimpleIF v = new MyRadialVariableAdapter(vName, var.getAttributes()); rsvar = makeRadialVariable(nds, v, var); } } } if(rsvar != null) dataVariables.add(rsvar); }
protected void setBoundingBox() { LatLonRect bb; if (origin == null) return; double dLat = Math.toDegrees( getMaximumRadialDist() / Earth.getRadius()); double latRadians = Math.toRadians( origin.getLatitude()); double dLon = dLat * Math.cos(latRadians); double lat1 = origin.getLatitude() - dLat/2; double lon1 = origin.getLongitude() - dLon/2; bb = new LatLonRect( new LatLonPointImpl( lat1, lon1), dLat, dLon); boundingBox = bb; }
public int getNumSweeps() { if(isHighResolution(ds)) { return nsweepsHR + nsweeps; } return nsweeps; }
public void clearDatasetMemory() { List rvars = getDataVariables(); Iterator iter = rvars.iterator(); while (iter.hasNext()) { RadialVariable radVar = (RadialVariable)iter.next(); radVar.clearVariableMemory(); } }
public TypedDataset open(NetcdfDataset ncd, ucar.nc2.util.CancelTask task, StringBuilder errlog) throws IOException { return new LevelII2Dataset(ncd); }
public float[] readData(int ray) throws java.io.IOException { if(!isHighResolution(ds) ) { return rayData(sweepno, ray); } else { if( sweepno >= nsweepsHR ) { int swpNo = sweepno - (nsweepsHR); return rayData(swpNo, ray); } else { return rayData(sweepno, ray); } } }
public float[] readData() throws java.io.IOException { if(!isHighResolution(ds) ) { return sweepData(sweepno); } else { if( sweepno > (nsweepsHR-1) ) { int swpNo = sweepno - nsweepsHR; return sweepData(swpNo); } else { return sweepData(sweepno); } } }
public float[] readData() throws java.io.IOException { if(!isHighResolution(ds) ) { return sweepData(sweepno); } else { if( sweepno > (nsweepsHR-1) ) { int swpNo = sweepno - nsweepsHR; return sweepData(swpNo); } else { return sweepData(sweepno); } } }
public float[] readData(int ray) throws java.io.IOException { if(!isHighResolution(ds) ) { return rayData(sweepno, ray); } else { if( sweepno >= nsweepsHR ) { int swpNo = sweepno - (nsweepsHR); return rayData(swpNo, ray); } else { return rayData(sweepno, ray); } } }
public float getRadialDistance(int gate) throws IOException { String disName = getRadialVarCoordinateName("distance", sweepVar.getShortName()); if(!isHighResolution(ds) ) { return getRadialDist(disName, gate); } else { if( sweepno >= nsweepsHR ) { return getRadialDist(disName, gate); } else { return getRadialDist(disName+"_HI", gate); } } }
public float getAzimuth(int ray) throws IOException { String aziName = getRadialVarCoordinateName("azimuth", sweepVar.getShortName()); if(!isHighResolution(ds) ) { return getAzi(aziName, sweepno, ray); } else { if( sweepno >= nsweepsHR ) { int swpNo = sweepno - (nsweepsHR); return getAzi(aziName, swpNo, ray); } else { return getAzi(aziName+"_HI", sweepno, ray); } } }
public float getRadialDistance(int gate) throws IOException { String disName = getRadialVarCoordinateName("distance", sweepVar.getShortName()); if(!isHighResolution(ds) ) { return getRadialDist(disName, gate); } else { if( sweepno >= nsweepsHR ) { return getRadialDist(disName, gate); } else { return getRadialDist(disName+"_HI", gate); } } }
public void setMeanElevation() { String eleName = getRadialVarCoordinateName("elevation", sweepVar.getShortName()); if(!isHighResolution(ds) ) { setMeanEle(eleName, sweepno); } else { if( sweepno >= nsweepsHR ) { int swpNo = sweepno - (nsweepsHR); setMeanEle(eleName, swpNo); } else { setMeanEle(eleName+"_HI", sweepno); } } }