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; }
return false; } else if (checkType == CheckType.NOSCALARS) { List<Dimension> dimensions = var.getDimensions(); if (dimensions.size() < 2) { return false; List<Dimension> dimensions = var.getDimensions(); if (dimensions.size() < 2) { return false;
public static Set<Dimension> makeDomain(Iterable<? extends Variable> axes) { Set<Dimension> domain = new HashSet<>(); for (Variable axis : axes) { for (Dimension dim : axis.getDimensions()) { domain.add(dim); } } return domain; }
public static List<Dimension> makeDomain(Variable[] axes) { List<Dimension> domain = new ArrayList<Dimension>(10); for (Variable axis : axes) { for (Dimension dim : axis.getDimensions()) { if (!domain.contains(dim)) domain.add(dim); } } return domain; }
public static List<Dimension> makeDomain(Variable[] axes) { List<Dimension> domain = new ArrayList<>(10); for (Variable axis : axes) { for (Dimension dim : axis.getDimensions()) { if (!domain.contains(dim)) domain.add(dim); } } return domain; }
public static int countDomain(Variable[] axes) { Set<Dimension> domain = new HashSet<>(); for (Variable axis : axes) { for (Dimension dim : axis.getDimensions()) { domain.add(dim); } } return domain.size(); }
static List<Dimension> filterDimensions(List<String> variables, NetcdfFile netcdfFile) { final List<Dimension> filteredDimensions = new ArrayList<Dimension>(); for (String variableName : variables) { final Variable variable = netcdfFile.findVariable(variableName); for (Dimension dimension : variable.getDimensions()) { if (!filteredDimensions.contains(dimension)) { filteredDimensions.add(dimension); } } } return filteredDimensions; }
public Section mapIndex(Variable targetVar, Variable fromVar, int[] fromIndex) throws InvalidRangeException { List<Dimension> toDims = targetVar.getDimensions(); List<Dimension> fromDims = fromVar.getDimensions(); Section result = new Section(); // each dimension in the target must be present in the source for (int i=0; i<toDims.size(); i++) { Dimension dim = toDims.get(i); int varIndex = fromDims.indexOf(toDims.get(i)); if (varIndex < 0) throw new IllegalArgumentException("Dimension "+dim+" does not exist"); result.appendRange(fromIndex[varIndex], fromIndex[varIndex]); } return result; } }
private static Variable getRciSds(NetcdfFile ncFile) throws IOException { final Variable sds = getVariable(ncFile, ChrisConstants.SDS_NAME_RCI_IMAGE, true); if (sds.getDimensions().size() != 3) { throw new IOException("Wrong number of dimensions, expected 3"); } if (sds.getDataType() != DataType.INT) { throw new IOException("Wrong data type, 32-bit integer expected"); } return sds; }
private static Variable getMaskSds(NetcdfFile ncFile) throws IOException { final Variable sds = getVariable(ncFile, ChrisConstants.SDS_NAME_MASK, false); if (sds != null) { if (sds.getDimensions().size() != 3) { throw new IOException("Wrong number of dimensions, expected 3"); } if (sds.getDataType() != DataType.SHORT) { throw new IOException("Wrong data type, 16-bit integer expected"); } } return sds; }
private long[] _computeChunking(Variable v) { List<Dimension> dims = v.getDimensions(); long[] result = new long[dims.size()]; int count = 0; for (Dimension d : dims) { if (d.isUnlimited()) result[count++] = 1; else result[count++] = d.getLength(); } return result; }
private long[] _computeChunkingUnlimited(Variable v) { List<Dimension> dims = v.getDimensions(); long[] result = new long[dims.size()]; int count = 0; for (Dimension d : dims) { if (d.isUnlimited()) result[count++] = 1; else result[count++] = d.getLength(); } return result; }
static private void writeNcMLDimension( Variable v, PrintStream out) { out.print(" shape='"); java.util.List<Dimension> dims = v.getDimensions(); for (int j = 0; j < dims.size(); j++) { Dimension dim = dims.get(j); if (j != 0) out.print(" "); if (dim.isShared()) out.print(StringUtil2.quoteXmlAttribute(dim.getShortName())); else out.print(dim.getLength()); } out.print("'"); }
static private void writeNcMLDimension(Variable v, Formatter out) { out.format(" shape='"); java.util.List<Dimension> dims = v.getDimensions(); for (int j = 0; j < dims.size(); j++) { Dimension dim = dims.get(j); if (j != 0) out.format(" "); if (dim.isShared()) out.format("%s", StringUtil2.quoteXmlAttribute(dim.getShortName())); else out.format("%d", dim.getLength()); } out.format("'"); }
private boolean isTiled(Variable v) { for (Dimension d : v.getDimensions()) { for (Range r : section.getRanges()) { if (d.getShortName().equals(r.getName())) return true; } } return false; }
private boolean isTiled(Variable v) { for (Dimension d : v.getDimensions()) { for (Range r : section.getRanges()) { if (d.getShortName().equals(r.getName())) return true; } } return false; }
private boolean isTiled(Variable v) { for (Dimension d : v.getDimensions()) { for (Range r : section.getRanges()) { if (d.getShortName().equals(r.getName())) return true; } } return false; }
@Override public HdfDataField getDatafield(String name) throws ProductIOException { final Variable variable = netCDFVariables.get(name); final List<ucar.nc2.Dimension> dimensions = variable.getDimensions(); final HdfDataField result = new HdfDataField(); final String[] dimensionNames = new String[dimensions.size()]; for (int i = 0; i < dimensions.size(); i++) { ucar.nc2.Dimension dimension = dimensions.get(i); dimensionNames[i] = dimension.getShortName(); } result.setDimensionNames(dimensionNames); return result; }
@Override public HdfDataField getDatafield(String name) throws ProductIOException { final Variable variable = netCDFVariables.get(name); final java.util.List<ucar.nc2.Dimension> dimensions = variable.getDimensions(); final HdfDataField result = new HdfDataField(); final String[] dimensionNames = new String[dimensions.size()]; for (int i = 0; i < dimensions.size(); i++) { ucar.nc2.Dimension dimension = dimensions.get(i); dimensionNames[i] = dimension.getShortName(); } result.setDimensionNames(dimensionNames); return result; }
@Test public void testHybridCoordinates() throws IOException { String filename = TestDir.cdmUnitTestDir + "formats/grib1/07010418_arw_d01.GrbF01500"; System.out.println("\n\nReading File " + filename); NetcdfFile ncfile = NetcdfFile.open(filename); Group best = ncfile.findGroup("Best"); Variable hybrid = ncfile.findVariable(best, "hybrid1"); assert hybrid != null; assert (hybrid.getDimensions().size() == 1); Dimension d = hybrid.getDimension(0); assert (d.getLength() == 2); ncfile.close(); }