protected void setSpectralBand(Product product) { int spectralBandIndex = 0; for (String name : product.getBandNames()) { Band band = product.getBandAt(product.getBandIndex(name)); if (name.matches("\\w+_\\d{3,}")) { String[] parts = name.split("_"); String wvlstr = parts[parts.length - 1].trim(); // Some bands have the wvl portion in the middle... if (!wvlstr.matches("^\\d{3,}")) { wvlstr = parts[parts.length - 2].trim(); } final float wavelength = Float.parseFloat(wvlstr); band.setSpectralWavelength(wavelength); band.setSpectralBandIndex(spectralBandIndex++); } } }
private boolean checkFlagDatasetIncluded() { final String[] nodeNames = productSubsetDef.getNodeNames(); final List<String> flagDsNameList = new ArrayList<String>(10); boolean flagDsInSubset = false; for (int i = 0; i < product.getNumBands(); i++) { Band band = product.getBandAt(i); if (band.getFlagCoding() != null) { flagDsNameList.add(band.getName()); if (StringUtils.contains(nodeNames, band.getName())) { flagDsInSubset = true; } break; } } final int numFlagDs = flagDsNameList.size(); boolean ok = true; if (numFlagDs > 0 && !flagDsInSubset) { int status = JOptionPane.showConfirmDialog( getJDialog(), "No flag dataset selected.\n\n" + "If you do not include a flag dataset in the subset,\n" + "you will not be able to create bitmask overlays.\n\n" + "Do you wish to include the available flag dataset(s)\n" + "in the current subset?\n", "No Flag Dataset Selected", JOptionPane.YES_NO_CANCEL_OPTION); if (status == JOptionPane.YES_OPTION) { productSubsetDef.addNodeNames(flagDsNameList.toArray(new String[numFlagDs])); ok = true; } else if (status == JOptionPane.NO_OPTION) { /* OK, no flag datasets wanted */ ok = true; } else if (status == JOptionPane.CANCEL_OPTION) { ok = false; } } return ok; }