Issue #2947 ensure consistent interpolation levels for derived satellite.

Former-commit-id: 33d87894c4385cb8f6982c1833f6956fd60d7368
This commit is contained in:
Ben Steffensmeier 2014-04-28 13:00:39 -05:00
parent cb23307e20
commit f318c9eb62

View file

@ -73,13 +73,9 @@ public class DerivedSatelliteRecord extends SatelliteRecord {
Set<SatelliteRecord> base = findBaseRecords(requestableData); Set<SatelliteRecord> base = findBaseRecords(requestableData);
Set<String> creatingEntities = new HashSet<String>(); Set<String> creatingEntities = new HashSet<String>();
int interpolationLevels = 1;
for (SatelliteRecord record : base) { for (SatelliteRecord record : base) {
creatingEntities.add(record.getCreatingEntity()); creatingEntities.add(record.getCreatingEntity());
interpolationLevels = Math.max(interpolationLevels,
record.getInterpolationLevels());
} }
setInterpolationLevels(interpolationLevels);
if (creatingEntities.size() == 1) { if (creatingEntities.size() == 1) {
setCreatingEntity(creatingEntities.iterator().next()); setCreatingEntity(creatingEntities.iterator().next());
} else { } else {
@ -92,6 +88,10 @@ public class DerivedSatelliteRecord extends SatelliteRecord {
setCoverage(((ComparableSatMapCoverage) requestableData.getSpace()) setCoverage(((ComparableSatMapCoverage) requestableData.getSpace())
.getCoverage()); .getCoverage());
} }
Rectangle[] levels = GridDownscaler
.getDownscaleSizes(getGridGeometry());
setInterpolationLevels(levels.length - 1);
} }
/** /**