V1_0.java [src/java/m/groundwater] Revision: 87d1785a457caf03ed52dccdce3c74db5108caaa  Date: Fri Feb 05 09:59:57 MST 2016
package m.groundwater;

import csip.ModelDataService;
import java.io.File;
import javax.ws.rs.Path;
import oms3.annotations.Description;
import oms3.annotations.Name;
import oms3.annotations.VersionInfo;

@Name("groundwater")
@Description("USGS Groundwater time series analysis tool")
@VersionInfo("1.0")
@Path("m/groundwater/groundwater/1.0")
public class V1_0 extends ModelDataService {

    guiGroundwater_Model model = new guiGroundwater_Model();

    @Override
    protected String process() throws Exception {
        model.setMainFolder(getWorkspaceDir().toString());
        model.setDatabase(getStringParam("database"));
        model.setStationID(getStringParam("station_id"));
        model.setStationName(getStringParam("station_name"));
        model.setWQtest(getStringParam("wq_test"));
        model.setBeginDate(getStringParam("begin_date"));
        model.setEndDate(getStringParam("end_date"));
        model.setTimeStep(getStringParam("time_step"));
        model.setMethod(getStringParam("method"));
        model.setPeriod1End(getStringParam("period1_end"));
        model.setPeriod2Begin(getStringParam("period2_begin"));
        model.setPeriod2End(getStringParam("period2_end"));
        model.setPeriod3Begin(getStringParam("period3_begin"));
        model.setPeriod3End(getStringParam("period3_end"));
        model.setMedianTF(getBooleanParam("medianTF"));
        model.setMergeDatasets(getBooleanParam("merge_datasets"));
        model.setMergeMethod(getStringParam("merge_method"));
        model.setUserData(getStringParam("user_data"));

        model.run();
        return EXEC_OK;
    }
    
    @Override
    protected void postProcess() throws Exception {
        // files
        putResult(new File(model.getGraph()),
                  //Below are the result graph files for use by JHighCharts on eRAMS for duplicating the above graphs
                  model.getGWgraphOutput());

        // values
        putResult("len", model.getLen());
        putResult("start", model.getStart());
        putResult("end", model.getEnd());
        putResult("units", model.getUnits());
        putResult("data_source", model.getDataSource());
        //Get all data results
        putResult("max", model.getMax());
        putResult("min", model.getMin());
        putResult("upperQuartile", model.getUpperQuartile());
        putResult("lowerQuartile", model.getLowerQuartile());
        putResult("median", model.getMedian());
        putResult("mean", model.getMean());
        putResult("standardDeviation", model.getStandardDeviation());
        putResult("variance", model.getVariance());
        putResult("skewness", model.getSkewness());
        putResult("coefficientOfVariation", model.getCoefficientOfVariation());
        putResult("kendalCorrelationCoefficient", model.getKendallCorrelationCoefficient());
        //Get Period 1 results
        putResult("len_period1", model.getLen_period1());
        putResult("max_period1", model.getMax_period1());
        putResult("min_period1", model.getMin_period1());
        putResult("upperQuartile_period1", model.getUpperQuartile_period1());
        putResult("lowerQuartile_period1", model.getLowerQuartile_period1());
        putResult("median_period1", model.getMedian_period1());
        putResult("mean_period1", model.getMean_period1());
        putResult("standardDeviation_period1", model.getStandardDeviation_period1());
        putResult("variance_period1", model.getVariance_period1());
        putResult("skewness_period1", model.getSkewness_period1());
        putResult("coefficientOfVariation_period1", model.getCoefficientOfVariation_period1());
        putResult("kendalCorrelationCoefficient_period1", model.getKendallCorrelationCoefficient_period1());
        //Get Period 2 results
        putResult("len_period2", model.getLen_period2());
        putResult("max_period2", model.getMax_period2());
        putResult("min_period2", model.getMin_period2());
        putResult("upperQuartile_period2", model.getUpperQuartile_period2());
        putResult("lowerQuartile_period2", model.getLowerQuartile_period2());
        putResult("median_period2", model.getMedian_period2());
        putResult("mean_period2", model.getMean_period2());
        putResult("standardDeviation_period2", model.getStandardDeviation_period2());
        putResult("variance_period2", model.getVariance_period2());
        putResult("skewness_period2", model.getSkewness_period2());
        putResult("coefficientOfVariation_period2", model.getCoefficientOfVariation_period2());
        putResult("kendalCorrelationCoefficient_period2", model.getKendallCorrelationCoefficient_period2());
        //Get Period 3 results
        putResult("len_period3", model.getLen_period3());
        putResult("max_period3", model.getMax_period3());
        putResult("min_period3", model.getMin_period3());
        putResult("upperQuartile_period3", model.getUpperQuartile_period3());
        putResult("lowerQuartile_period3", model.getLowerQuartile_period3());
        putResult("median_period3", model.getMedian_period3());
        putResult("mean_period3", model.getMean_period3());
        putResult("standardDeviation_period3", model.getStandardDeviation_period3());
        putResult("variance_period3", model.getVariance_period3());
        putResult("skewness_period3", model.getSkewness_period3());
        putResult("coefficientOfVariation_period3", model.getCoefficientOfVariation_period3());
        putResult("kendalCorrelationCoefficient_period3", model.getKendallCorrelationCoefficient_period3());
        //Get other results
        putResult("graph", model.getGraph());
        
        //Get result files for JSHighCharts
        String graphDataFiles = model.getGWgraphOutput().getName();
        putResult("graph_data_files", graphDataFiles);
    }
}