private static Variable getAuxiliaryCoordinate( NetcdfDataset dataset, Group group, Variable var, String dimName) { Variable coordinateVariable = null; Attribute attribute = var.findAttribute(NetCDFUtilities.COORDINATES); if (attribute != null) { String coordinates = attribute.getStringValue(); String[] coords = coordinates.split(" "); for (String coord : coords) { Variable coordVar = dataset.findVariable(group, coord); List<Dimension> varDimensions = coordVar.getDimensions(); if (varDimensions != null && varDimensions.size() == 1 && varDimensions.get(0).getFullName().equalsIgnoreCase(dimName)) { coordinateVariable = coordVar; break; } } } return coordinateVariable; }
private String getCoordinatesForVariable(String shortName) { Variable var = dataset.findVariable(null, shortName); if (var != null) { // Getting the coordinates attribute Attribute attribute = var.findAttribute(NetCDFUtilities.COORDINATES); if (attribute != null) { return attribute.getStringValue(); } else { return var.getDimensionsString(); } } return null; }
/** Look for a Coordinate Reference System */ private CoordinateReferenceSystem lookForCrs( CoordinateReferenceSystem crs, Attribute gridMappingAttribute, Variable var) throws FactoryException { if (gridMappingAttribute != null) { String gridMappingName = gridMappingAttribute.getStringValue(); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("The variable refers to gridMapping: " + gridMappingName); } Variable mapping = dataset.findVariable(null, gridMappingName); if (mapping != null) { CoordinateReferenceSystem localCrs = NetCDFProjection.parseProjection(mapping); if (localCrs != null) { // lookup for a custom EPSG if any crs = NetCDFProjection.lookupForCustomEpsg(localCrs); } } else if (LOGGER.isLoggable(Level.WARNING)) { LOGGER.warning( "The specified variable " + var.getFullName() + " declares a gridMapping = " + gridMappingName + " but that mapping doesn't exist."); } } return crs; } }
private VerticalCT makeWRFEtaVerticalCoordinateTransform(NetcdfDataset ds, CoordinateSystem cs) { if ((null == ds.findVariable("PH")) || (null == ds.findVariable("PHB")) || (null == ds.findVariable("P")) || (null == ds.findVariable("PB"))) return null; WRFEtaTransformBuilder builder = new WRFEtaTransformBuilder(cs); return (VerticalCT) builder.makeCoordinateTransform(ds, null); }
private VerticalCT makeWRFEtaVerticalCoordinateTransform(NetcdfDataset ds, CoordinateSystem cs) { if ((null == ds.findVariable("PH")) || (null == ds.findVariable("PHB")) || (null == ds.findVariable("P")) || (null == ds.findVariable("PB"))) return null; WRFEtaTransformBuilder builder = new WRFEtaTransformBuilder(cs); return (VerticalCT) builder.makeCoordinateTransform(ds, null); }
private boolean addAxisType(NetcdfDataset ds, String vname, AxisType a) { if (vname == null) return false; Variable v = ds.findVariable(vname); if (v == null) return false; addAxisType( v, a); return true; }
/** * Set extra information used by station obs datasets. * * @param stnIdVName the obs variable that is used to find the station in the stnHash; may be type int or a String (char). * @param stnDescVName optional station var containing station description */ public void setStationInfo(String stnIdVName, String stnDescVName) { this.stnIdVName = stnIdVName; this.stnDescVName = stnDescVName; Variable stationVar = ncfile.findVariable(stnIdVName); stationIdType = stationVar.getDataType(); }
public float getRangeToFirstGate() { // meters try { ranv = ncd.findVariable("Range_to_First_Cell").readScalarFloat(); } catch (java.io.IOException e) { e.printStackTrace(); } return ranv; }
public float getBeamWidth() { // degrees try { bwidthv = ncd.findVariable("bm_width").readScalarFloat(); } catch (java.io.IOException e) { e.printStackTrace(); } return bwidthv; }
private void addLongName(NetcdfDataset ds, String varName, String longName) { Variable v = ds.findVariable(varName); if (v != null) v.addAttribute(new Attribute(CDM.LONG_NAME, longName)); }
public float[] getElevation() throws IOException { float[] spArray = null; try { Variable sp = ds.findVariable("elevation"); Array spData = sp.read(); sp.setCachedData(spData, false); spArray = (float[]) spData.get1DJavaArray(float.class); } catch (IOException e) { e.printStackTrace(); } return spArray; }
public StructureDataIterator getStationDataIterator(int bufferSize) throws IOException { Table stationTable = root; StructureDataIterator siter = stationTable.getStructureDataIterator(null, bufferSize); if (stationTable.limit != null) { Variable limitV = ds.findVariable(stationTable.limit); int limit = limitV.readScalarInt(); return new StructureDataIteratorLimited(siter, limit); } return siter; }
private void addCoordinateAxisType(NetcdfDataset ds, String varName, AxisType type) { Variable v = ds.findVariable(varName); if (v != null) v.addAttribute(new Attribute(_Coordinate.AxisType, type.name())); }
public float[] getAzimuth() throws IOException { Variable sp = ds.findVariable("azimuth"); Array spData = sp.read(); sp.setCachedData(spData, false); return (float[]) spData.get1DJavaArray(float.class); }
public float getT(String tName, int swpNumber, int ray) throws IOException { Variable tvar = ds.findVariable(tName); Array timeData = tvar.read(); tvar.setCachedData(timeData, false); Index timeIndex = timeData.getIndex(); return timeData.getFloat(timeIndex.set(swpNumber, ray)); }
public float getT(String tName, int swpNumber, int ray) throws IOException { Variable tvar = ds.findVariable(tName); Array timeData = tvar.read(); tvar.setCachedData(timeData, false); Index timeIndex = timeData.getIndex(); return timeData.getFloat(timeIndex.set(swpNumber, ray)); }
public float getTime(int ray) throws IOException { Variable sp = ds.findVariable("rays_time"); Array timeData = sp.read(); sp.setCachedData(timeData, false); Index index = timeData.getIndex(); return timeData.getFloat(index.set(ray)); }
public float getRadialDistance(int gate) throws IOException { Variable sp = ds.findVariable("gate"); Array spData = sp.read(); sp.setCachedData(spData, false); Index index = spData.getIndex(); return spData.getFloat(index.set(gate)); }
public float getRadialDist(String dName, int gate) throws IOException { Variable dvar = ds.findVariable(dName); Array data = dvar.read(); dvar.setCachedData(data, false); Index index = data.getIndex(); return data.getFloat(index.set(gate)); }
@Test public void testDODSwithDataset() throws IOException { DODSNetcdfFile dodsfile = TestDODSRead.open("test.04"); NetcdfDataset ds = new NetcdfDataset( dodsfile, false); // bug in forming dods name Variable v = null; assert null != (v = ds.findVariable("types.b")); v.invalidateCache(); v.read(); }