/*
* JGrass - Free Open Source Java GIS http://www.jgrass.org
* (C) HydroloGIS - www.hydrologis.com
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Library General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option) any
* later version.
*
* This library 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 Library General Public License for more
* details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; if not, write to the Free Foundation, Inc., 59
* Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.jgrasstools.modules;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_AUTHORCONTACTS;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_AUTHORNAMES;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_KEYWORDS;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_LABEL;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_LICENSE;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_NAME;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_STATUS;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_inAspect_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_inBasins_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_inCurvatures_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_inElev_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_inSlope_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_outAltimetry_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_outArea_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_outEnergy_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_pDt_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_pEi_DESCRIPTION;
import static org.jgrasstools.hortonmachine.i18n.HortonMessages.OMSENERGYINDEXCALCULATOR_pEs_DESCRIPTION;
import java.util.List;
import oms3.annotations.Author;
import oms3.annotations.Description;
import oms3.annotations.Execute;
import oms3.annotations.In;
import oms3.annotations.Keywords;
import oms3.annotations.Label;
import oms3.annotations.License;
import oms3.annotations.Name;
import oms3.annotations.Status;
import oms3.annotations.UI;
import org.jgrasstools.gears.io.eicalculator.EIAltimetry;
import org.jgrasstools.gears.io.eicalculator.EIAreas;
import org.jgrasstools.gears.io.eicalculator.EIEnergy;
import org.jgrasstools.gears.io.eicalculator.OmsEIAltimetryWriter;
import org.jgrasstools.gears.io.eicalculator.OmsEIAreasWriter;
import org.jgrasstools.gears.io.eicalculator.OmsEIEnergyWriter;
import org.jgrasstools.gears.libs.modules.JGTConstants;
import org.jgrasstools.gears.libs.modules.JGTModel;
import org.jgrasstools.hortonmachine.modules.hydrogeomorphology.energyindexcalculator.OmsEnergyIndexCalculator;
@Description(OMSENERGYINDEXCALCULATOR_DESCRIPTION)
@Author(name = OMSENERGYINDEXCALCULATOR_AUTHORNAMES, contact = OMSENERGYINDEXCALCULATOR_AUTHORCONTACTS)
@Keywords(OMSENERGYINDEXCALCULATOR_KEYWORDS)
@Label(OMSENERGYINDEXCALCULATOR_LABEL)
@Name("_" + OMSENERGYINDEXCALCULATOR_NAME)
@Status(OMSENERGYINDEXCALCULATOR_STATUS)
@License(OMSENERGYINDEXCALCULATOR_LICENSE)
public class EnergyIndexCalculator extends JGTModel {
@Description(OMSENERGYINDEXCALCULATOR_inElev_DESCRIPTION)
@UI(JGTConstants.FILEIN_UI_HINT)
@In
public String inElev = null;
@Description(OMSENERGYINDEXCALCULATOR_inBasins_DESCRIPTION)
@UI(JGTConstants.FILEIN_UI_HINT)
@In
public String inBasins = null;
@Description(OMSENERGYINDEXCALCULATOR_inCurvatures_DESCRIPTION)
@UI(JGTConstants.FILEIN_UI_HINT)
@In
public String inCurvatures = null;
@Description(OMSENERGYINDEXCALCULATOR_inAspect_DESCRIPTION)
@UI(JGTConstants.FILEIN_UI_HINT)
@In
public String inAspect = null;
@Description(OMSENERGYINDEXCALCULATOR_inSlope_DESCRIPTION)
@UI(JGTConstants.FILEIN_UI_HINT)
@In
public String inSlope = null;
@Description(OMSENERGYINDEXCALCULATOR_pEs_DESCRIPTION)
@In
public int pEs = -1;
@Description(OMSENERGYINDEXCALCULATOR_pEi_DESCRIPTION)
@In
public int pEi = -1;
@Description(OMSENERGYINDEXCALCULATOR_pDt_DESCRIPTION)
@In
public double pDt = -1;
@Description(OMSENERGYINDEXCALCULATOR_outAltimetry_DESCRIPTION)
@UI(JGTConstants.FILEOUT_UI_HINT)
@In
public String outAltimetry;
@Description(OMSENERGYINDEXCALCULATOR_outEnergy_DESCRIPTION)
@UI(JGTConstants.FILEOUT_UI_HINT)
@In
public String outEnergy;
@Description(OMSENERGYINDEXCALCULATOR_outArea_DESCRIPTION)
@UI(JGTConstants.FILEOUT_UI_HINT)
@In
public String outArea;
@Execute
public void process() throws Exception {
OmsEnergyIndexCalculator energyindexcalculator = new OmsEnergyIndexCalculator();
energyindexcalculator.inElev = getRaster(inElev);
energyindexcalculator.inBasins = getRaster(inBasins);
energyindexcalculator.inCurvatures = getRaster(inCurvatures);
energyindexcalculator.inAspect = getRaster(inAspect);
energyindexcalculator.inSlope = getRaster(inSlope);
energyindexcalculator.pEs = pEs;
energyindexcalculator.pEi = pEi;
energyindexcalculator.pDt = pDt;
energyindexcalculator.pm = pm;
energyindexcalculator.process();
List<EIAltimetry> outAltimetryObj = energyindexcalculator.outAltimetry;
List<EIEnergy> outEnergyObj = energyindexcalculator.outEnergy;
List<EIAreas> outAreaObj = energyindexcalculator.outArea;
OmsEIAltimetryWriter altimetryWriter = new OmsEIAltimetryWriter();
altimetryWriter.inAltimetry = outAltimetryObj;
altimetryWriter.file = outAltimetry;
altimetryWriter.write();
altimetryWriter.close();
OmsEIEnergyWriter energyWriter = new OmsEIEnergyWriter();
energyWriter.inEnergy = outEnergyObj;
energyWriter.file = outEnergy;
energyWriter.write();
energyWriter.close();
OmsEIAreasWriter areasWriter = new OmsEIAreasWriter();
areasWriter.inAreas = outAreaObj;
areasWriter.file = outArea;
areasWriter.write();
areasWriter.close();
}
}