private static RasterRegion[] createRasterRegions(final Term[] terms, final int width, final int height) { final Set<RasterDataSymbol> rasterSymbolSet = new HashSet<RasterDataSymbol>(); for (final Term term : terms) { final RasterDataSymbol[] refRasterDataSymbols = BandArithmetic.getRefRasterDataSymbols(term); rasterSymbolSet.addAll(Arrays.asList(refRasterDataSymbols)); } List<RasterRegion> rasterRegions = new ArrayList<RasterRegion>(rasterSymbolSet.size()); for (RasterDataSymbol symbol : rasterSymbolSet) { RasterRegion rasterRegion = RasterRegion.createRasterRegion(symbol.getRaster(), width, height); rasterRegions.add(rasterRegion); symbol.setData(rasterRegion.getData().getElems()); } return rasterRegions.toArray(new RasterRegion[rasterRegions.size()]); }