/* * This file is part of JGrasstools (http://www.jgrasstools.org) * (C) HydroloGIS - www.hydrologis.com * * JGrasstools is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.jgrasstools.gears.utils.colors; import org.geotools.coverage.grid.GridCoverage2D; import org.jgrasstools.gears.libs.exceptions.ModelsIllegalargumentException; import org.jgrasstools.gears.modules.r.summary.OmsRasterSummary; import org.jgrasstools.gears.utils.colors.EColorTables; import org.jgrasstools.gears.utils.colors.RasterStyleUtilities; /** * A simple raster styling utility for scripting environment. * * @author Andrea Antonello (www.hydrologis.com) */ public class RasterStyle { private double min; private double max; private double alpha = 1.0; public RasterStyle() { } public RasterStyle(GridCoverage2D raster) throws Exception { OmsRasterSummary summary = new OmsRasterSummary(); summary.inRaster = raster; summary.process(); min = summary.outMin; max = summary.outMax; } public RasterStyle(int min, int max) throws Exception { this.min = min; this.max = max; } public void setAlpha(double alpha) { this.alpha = alpha; } public String style(String colorTableName) throws Exception { String createStyleForColortable = RasterStyleUtilities.createStyleForColortable(colorTableName, min, max, null, alpha); if (createStyleForColortable != null) return createStyleForColortable; StringBuilder sb = new StringBuilder(); sb.append("The colortable "); sb.append(colorTableName); sb.append(" could not be found in the default colortables.\n"); sb.append("Available colortables are:\n"); for (EColorTables colorTable : EColorTables.values()) { sb.append("\t"); sb.append(colorTable.name()); sb.append("\n"); } throw new ModelsIllegalargumentException(sb.toString(), this); } }