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()); } }
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()); }
private List<CoordSysSet> wireObjectsTogether(List<Coverage> coverages) { for (CoverageCoordAxis axis : coordAxes) axisMap.put(axis.getName(), axis); for (CoverageCoordAxis axis : coordAxes) axis.setDataset(this); // wire dependencies Map<String, CoordSysSet> map = new HashMap<>(); for (Coverage coverage : coverages) { coverageMap.put(coverage.getName(), coverage); CoordSysSet gset = map.get(coverage.getCoordSysName()); // duplicates get eliminated here if (gset == null) { CoverageCoordSys ccsys = findCoordSys(coverage.getCoordSysName()); if (ccsys == null) { throw new IllegalStateException("Cant find "+coverage.getCoordSysName()); } gset = new CoordSysSet(ccsys); // must use findByName because objects arent wired up yet map.put(coverage.getCoordSysName(), gset); gset.getCoordSys().setDataset(this); // wire dataset into coordSys } gset.addCoverage(coverage); coverage.setCoordSys(gset.getCoordSys()); // wire coordSys into coverage } // sort the coordsys sets List<CoordSysSet> csets = new ArrayList<>(map.values()); Collections.sort(csets, (o1, o2) -> o1.getCoordSys().getName().compareTo(o2.getCoordSys().getName())); return csets; }
resultCoordSys.setDataset(fakeDataset); resultCoordSys.setHorizCoordSys(resultCoordSys.makeHorizCoordSys()); resultCoordSys.setIsConstantForecast(isConstantForecast.get());