private CoverageCoordSys makeCoordSys(GribCollectionImmutable.VariableIndex gribVar, List<CoverageTransform> transforms, Map<Coordinate, List<CoverageCoordAxis>> coord2axisMap) { List<String> axisNames = makeAxisNameList(gribVar, coord2axisMap); List<String> transformNames = transforms.stream().map(CoverageTransform::getName).collect(Collectors.toList()); return new CoverageCoordSys(null, axisNames, transformNames, coverageType); }
private static CoverageCoordSys makeCoordSys(DtCoverageCS dt, Map<String, CoverageCoordAxis> covAxesMap) { List<String> transformNames = new ArrayList<>(); for (CoordinateTransform ct : dt.getCoordTransforms()) transformNames.add(ct.getName()); Set<CoverageCoordAxis> covAxes = new HashSet<>(); for (CoordinateAxis axis : dt.getCoordAxes()) { CoverageCoordAxis covAxis = covAxesMap.get(axis.getFullName()); if (covAxis == null) continue; // some may have been rejected covAxes.add(covAxis); for (String dep : covAxis.getDependsOnList()) { // add in dependencies CoverageCoordAxis depAxis = covAxesMap.get(dep); if (depAxis != null) covAxes.add(depAxis); } } // make list of names - sorted by axis type List<CoverageCoordAxis> covAxesList = new ArrayList<>(covAxes); Collections.sort(covAxesList); List<String> covAxesNames = new ArrayList<>(); for (CoverageCoordAxis axis : covAxesList) covAxesNames.add(axis.getName()); return new CoverageCoordSys(dt.getName(), covAxesNames, transformNames, dt.getCoverageType()); }
CoverageCoordSys decodeCoordSys(CdmrFeatureProto.CoordSys proto) { // public CoverageCoordSys(String name, List<String> axisNames, List<String> transformNames, Type type) { return new CoverageCoordSys(proto.getName(), proto.getAxisNamesList(), proto.getTransformNamesList(), convertCoverageType(proto.getCoverageType())); }
public GeoReferencedArray(String coverageName, DataType dataType, Array data, List<CoverageCoordAxis> axes, List<CoverageTransform> transforms, FeatureType type) { this.coverageName = coverageName; this.dataType = dataType; this.data = data; this.axes = axes; this.transforms = transforms; List<String> names = axes.stream().map(CoverageCoordAxis::getName).collect(Collectors.toList()); this.csSubset = new CoverageCoordSys(null, names, null, type); this.csSubset.setDataset(this); this.csSubset.setHorizCoordSys(this.csSubset.makeHorizCoordSys()); // check consistency Section cs = new Section(csSubset.getShape()); Section sdata = new Section(data.getShape()); assert cs.conformal(sdata); // reshape data if needed if (!cs.equalShape(sdata)) this.data = data.reshape(csSubset.getShape()); }
names.add(axis.getName()); CoverageCoordSys resultCoordSys = new CoverageCoordSys(null, names, this.getTransformNames(), this.getCoverageType()); MyCoordSysContainer fakeDataset = new MyCoordSysContainer(subsetAxes, getTransforms()); resultCoordSys.setDataset(fakeDataset);