public CoverageDataResponse(List<CoverageCoordAxis> axes, List<CoverageCoordSys> coordSys, List<CoverageTransform> transforms) { this.axes = axes; this.coordSys = coordSys; this.transforms = transforms; this.arrayResponse = new ArrayList<>(); // set after the constructor is done, because we need to put coordsys in geoArray for (CoverageCoordSys csys : coordSys) { csys.setDataset(this); // LOOK More that should be done ?? csys.setHorizCoordSys(csys.makeHorizCoordSys()); } }
private HorizCoordSys wireHorizCoordSys() { CoverageCoordSys csys1 = coordSys.get(0); HorizCoordSys hcs = csys1.makeHorizCoordSys(); // we want them to share the same object for efficiency, esp 2D for (CoverageCoordSys csys : coordSys) { csys.setHorizCoordSys(hcs); csys.setImmutable(); } return hcs; }
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()); }
MyCoordSysContainer fakeDataset = new MyCoordSysContainer(subsetAxes, getTransforms()); resultCoordSys.setDataset(fakeDataset); resultCoordSys.setHorizCoordSys(resultCoordSys.makeHorizCoordSys()); resultCoordSys.setIsConstantForecast(isConstantForecast.get()); if (finish) resultCoordSys.setImmutable();