public static RasterDataNode[] getRefRasters(String expression, Product[] products, int defaultProductNamePrefix) throws ParseException { RasterDataSymbol[] symbols = getRefRasterDataSymbols( new Term[]{parseExpression(expression, products, defaultProductNamePrefix)}); RasterDataNode[] rasters = new RasterDataNode[symbols.length]; for (int i = 0; i < symbols.length; i++) { rasters[i] = symbols[i].getRaster(); } return rasters; }
private Term parseExpression() { final Term term; try { term = BandArithmetic.parseExpression(expression, products, defaultProductIndex); } catch (ParseException e) { throw new RuntimeException(MessageFormat.format( "Could not parse expression: ''{0}''. {1}", expression, e.getMessage()), e); } final ImageManager imageManager = ImageManager.getInstance(); for (final RasterDataSymbol symbol : BandArithmetic.getRefRasterDataSymbols(term)) { if (imageManager.getSourceImage(symbol.getRaster(), getLevel()) == this) { throw new RuntimeException(MessageFormat.format( "Invalid reference ''{0}''.", symbol.getName())); } } return term; }
if (!validExpression.isEmpty()) { try { BandArithmetic.parseExpression(validExpression, new Product[]{contextProduct}, 0); } catch (ParseException e) { String errorMessage = "The valid pixel expression could not be parsed:\n" + e.getMessage(); /*I18N*/
final Scaling scaling, ProgressMonitor pm) throws ParseException, IOException { final Term term = parseExpression(expression, sourceProducts, defaultProductIndex); final Term validMaskTerm; if (validMaskExpression != null && !validMaskExpression.trim().isEmpty()) { validMaskTerm = parseExpression(validMaskExpression, sourceProducts, defaultProductIndex); } else { validMaskTerm = null;