V3_0.java [src/java/m/watershed/average_slope] Revision: default  Date:
///*
// * To change this license header, choose License Headers in Project Properties.
// * To change this template file, choose Tools | Templates
// * and open the template in the editor.
// */
//package m.watershed.average_slope;
//
//import csip.ModelDataService;
//import csip.annotations.Name;
//import csip.annotations.Resource;
//import javax.ws.rs.Path;
//import m.watershed.Resources;
//import static m.watershed.Resources.D8;
//import static m.watershed.Resources.GDAL;
//import static m.watershed.Resources.LOCATION_MNT_DATA1;
//import static m.watershed.Resources.MPI;
//import static m.watershed.Resources.OGR;
//import static m.watershed.Resources.PITREMOVE;
//import static m.watershed.Resources.PYTHON;
//import static m.watershed.Resources.ZONALSTATS;
//import static m.watershed.Utils.exec;
//import static m.watershed.Utils.checkExist;
//import csip.annotations.Description;
//import org.apache.commons.io.FileUtils;
//import org.codehaus.jettison.json.JSONObject;
//
///**
// * average_slope
// *
// * @author @author HK (using JK's template (using OD's template))
// */
//@Name("average_slope")
//@Description("Example of average_slope")
//@Path("m/average_slope/3.0")
//@Resource(from = Resources.class)
//public class V3_0 extends ModelDataService {
//
//  static final String BOUNDARY = "boundary";
//  static final String RESULTID = "result_ID";
//
//  String ID = "";
//
//
//  @Override
//  protected void preProcess() throws Exception {
//    //Import user specified boundary
//    JSONObject boundary = parameter().getJSONArray(BOUNDARY).getJSONObject(0);
//    FileUtils.writeStringToFile(workspace().getFile("boundary.geojson"), boundary.toString());
//    ID = parameter().getString(RESULTID);
//  }
//
//
//  @Override
//  protected void doProcess() throws Exception {
//
//    int threads = Resources.mpiThreads(parameter());
//
//    checkExist(workspace().getDir(), "boundary.geojson");
//
//    exec(resources(), LOG,
//        OGR,
//        "-t_srs", "EPSG:5070",
//        "-f", "ESRI Shapefile",
//        workspace().getFile("boundary.shp"),
//        workspace().getFile("boundary.geojson")
//    );
//
//    checkExist(workspace().getDir(), "boundary.shp");
//
//    exec(resources(), LOG,
//        GDAL,
//        LOCATION_MNT_DATA1 + "/DEM.vrt",
//        workspace().getFile("DEM_clip0.tif"),
//        "-crop_to_cutline",
//        "-cutline",
//        workspace().getFile("boundary.shp"),
//        "-multi",
//        "-of", "GTiff",
//        "-co", "TILED=YES",
//        "-co", "COMPRESS=LZW",
//        "-co", "BIGTIFF=YES",
//        "-ot", "Float32",
//        "-co", "NUM_THREADS=" + threads,
//        "-wo", "NUM_THREADS=" + threads,
//        "--config",
//        "GDAL_CACHEMAX", "1000",
//        "-wm", "1000"
//    );
//
//    checkExist(workspace().getDir(), "DEM_clip0.tif");
//
//    exec(resources(), LOG,
//        GDAL,
//        "-t_srs", "EPSG:5070",
//        "-tr", "30", "30",
//        "-r", "cubicspline",
//        workspace().getFile("DEM_clip0.tif"),
//        workspace().getFile("DEM_clip.tif")
//    );
//
//    checkExist(workspace().getDir(), "DEM_clip.tif");
//
//    exec(resources(), LOG,
//        MPI,
//        "--allow-run-as-root",
//        "--path", resources().getFile(PITREMOVE).getParent(),
//        "-wdir", workspace().getDir(),
//        "--oversubscribe",
//        "-np", threads,
//        resources().getFile(PITREMOVE).getName(),
//        "-z", workspace().getFile("DEM_clip.tif"),
//        "-fel", workspace().getFile("dem_fill.tif")
//    );
//
//    checkExist(workspace().getDir(), "dem_fill.tif");
//
//    exec(resources(), LOG,
//        MPI,
//        "--allow-run-as-root",
//        "--path", resources().getFile(D8).getParent(),
//        "-wdir", workspace().getDir(),
//        "--oversubscribe",
//        "-np", threads,
//        resources().getFile(D8).getName(),
//        "-fel", workspace().getFile("dem_fill.tif"),
//        "-sd8", workspace().getFile("sd8.tif"),
//        "-p", workspace().getFile("p.tif")
//    );
//
//    checkExist(workspace().getDir(), "s8.tif");
//
//    // zonal stats
//    exec(resources(), LOG,
//        PYTHON,
//        resources().getFile(ZONALSTATS),
//        workspace().getFile("boundary.shp"),
//        workspace().getFile("sd8.tif"),
//        ID,
//        "avg_slope_",
//        "False"
//    );
//  }
//
//
//  @Override
//  protected void postProcess() throws Exception {
////    results().put(workspace().getFile("boundary.geojson"), "boundary");
////    results().put(workspace().getFile("avg_slope_results.csv"), "results");
//  }
//
//}