V2_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.ServiceException;
//import csip.annotations.Description;
//import csip.annotations.Name;
//import csip.annotations.Resource;
//import javax.ws.rs.Path;
//import java.io.*;
//import m.watershed.Resources;
//import static m.watershed.Resources.CLEAN;
//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;
//
///**
// * 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/2.0")
//@Resource(from = Resources.class)
//public class V2_0 extends ModelDataService {
//
//  static final String BOUNDARY = "boundary";
//
//
//  @Override
//  protected void doProcess() throws Exception {
//
//    if (!attachments().hasFile(parameter().getString(BOUNDARY))) {
//      throw new ServiceException("No Boundary input listet!");
//    }
//
//    String result_ID = parameter().getString("result_ID");
//    String b = parameter().getString(BOUNDARY);
//    File boundary = attachments().getFile(b);
//
//    int threads = Resources.mpiThreads(parameter());
//
//    if (boundary.getName().endsWith("shp")) {
//      exec(resources(), LOG,
//          PYTHON,
//          resources().getFile(CLEAN),
//          boundary,
//          workspace().getFile("geometry_validated.shp")
//      );
//
//      checkExist(workspace().getDir(), "geometry_validated.shp");
//
//      exec(resources(), LOG,
//          OGR,
//          "-t_srs", "EPSG:5070",
//          workspace().getFile("boundary.shp"),
//          workspace().getFile("geometry_validated.shp")
//      );
//    } else {
//      exec(resources(), LOG,
//          OGR,
//          "-t_srs", "EPSG:5070",
//          "-f", "ESRI Shapefile",
//          workspace().getFile("boundary.shp"),
//          boundary
//      );
//    }
//
//    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(), "sd8.tif");
//
//    // zonal stats
//    exec(resources(), LOG,
//        PYTHON,
//        resources().getFile(ZONALSTATS),
//        workspace().getFile("boundary.shp"),
//        workspace().getFile("sd8.tif"),
//        result_ID,
//        "avg_slope_",
//        "False"
//    );
//
//  }
//
//
//  @Override
//  protected void postProcess() throws Exception {
//    //results().put(workspace().getFile("sd8.tif"), "cutoff direction");
//    //results().put(workspace().getFile("avg_slope_results.csv"), "results");
//  }
//}