@@ -11,31 +11,31 @@ |
*/ |
package m.rusle2; |
|
-import csip.utils.Client; |
import csip.Config; |
-import csip.api.server.Executable; |
import csip.ModelDataService; |
-import static csip.ModelDataService.ERROR; |
-import static csip.ModelDataService.KEY_METAINFO; |
-import static csip.ModelDataService.KEY_NAME; |
-import static csip.ModelDataService.KEY_PARAMETER; |
-import static csip.ModelDataService.KEY_REQUEST_RESULTS; |
-import static csip.ModelDataService.KEY_RESULT; |
-import static csip.ModelDataService.KEY_STATUS; |
-import static csip.ModelDataService.KEY_VALUE; |
-import static csip.ModelDataService.REPORT_DESC; |
-import static csip.ModelDataService.REPORT_DIM; |
-import static csip.ModelDataService.REPORT_NAME; |
-import static csip.ModelDataService.REPORT_TYPE; |
-import static csip.ModelDataService.REPORT_UNITS; |
-import static csip.ModelDataService.VALUE; |
-import csip.api.server.ServiceException; |
+import static csip.ModelDataServiceConstants.ERROR; |
+import static csip.ModelDataServiceConstants.KEY_METAINFO; |
+import static csip.ModelDataServiceConstants.KEY_NAME; |
+import static csip.ModelDataServiceConstants.KEY_PARAMETER; |
+import static csip.ModelDataServiceConstants.KEY_REQUEST_RESULTS; |
+import static csip.ModelDataServiceConstants.KEY_RESULT; |
+import static csip.ModelDataServiceConstants.KEY_STATUS; |
+import static csip.ModelDataServiceConstants.KEY_VALUE; |
+import static csip.ModelDataServiceConstants.REPORT_DESC; |
+import static csip.ModelDataServiceConstants.REPORT_DIM; |
+import static csip.ModelDataServiceConstants.REPORT_NAME; |
+import static csip.ModelDataServiceConstants.REPORT_TYPE; |
+import static csip.ModelDataServiceConstants.REPORT_UNITS; |
+import static csip.ModelDataServiceConstants.VALUE; |
import static csip.Utils.removeFirstLastChar; |
import csip.annotations.*; |
import static csip.annotations.ResourceType.ARCHIVE; |
import static csip.annotations.ResourceType.FILE; |
import static csip.annotations.ResourceType.REFERENCE; |
import static csip.annotations.State.RELEASED; |
+import csip.api.server.Executable; |
+import csip.api.server.ServiceException; |
+import csip.utils.Client; |
import csip.utils.JSONUtils; |
import java.io.File; |
import java.io.FileOutputStream; |
@@ -53,6 +53,7 @@ |
import org.codehaus.jettison.json.JSONException; |
import org.codehaus.jettison.json.JSONObject; |
import org.w3c.dom.Document; |
+import org.w3c.dom.Node; |
import org.w3c.dom.NodeList; |
import org.xml.sax.SAXException; |
import static util.Constants.*; |
@@ -134,7 +135,7 @@ |
protected JSONArray managements; |
protected JSONArray aSoils; |
protected String climatePtr; |
- |
+ protected double r_factor; |
String[] reqResults; |
|
// |
@@ -202,6 +203,7 @@ |
LOG.log(Level.SEVERE, "ERROR EXECUTING PYTHON-RUSLE2", e); |
throw e; |
} |
+ getR_factor(); |
} |
|
|
@@ -270,9 +272,36 @@ |
results().put(KEY_MANAGEMENTS, new JSONArray(r2run.getResultPyromeArray("SEG_MAN", true, true, true))); |
} |
|
+ results().put("R_FACTOR", r_factor); |
additionalOutputs(); |
} |
|
+ protected void getR_factor() throws ParserConfigurationException, SAXException, IOException { |
+ boolean r_found = false; |
+ |
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); |
+ DocumentBuilder builder = factory.newDocumentBuilder(); |
+ Document doc = builder.parse(new File(workspace().getDir(), "cli_file0.xml")); |
+ NodeList floatNodes = doc.getElementsByTagName("Flt"); |
+ |
+ // go through all the flt nodes to find the specific r_factor node |
+ for (int i = 0; i < floatNodes.getLength() && !r_found; i++) { |
+ Node node = floatNodes.item(i); |
+ for (int j = 0; j < node.getChildNodes().getLength(); j++) { |
+ Node child = node.getChildNodes().item(j); |
+ // pull the r_factor value from the flt node |
+ if (r_found && child.getNodeName().equals("Data")) { |
+ r_factor = Double.parseDouble(child.getTextContent()); |
+ break; |
+ } |
+ if (child.getNodeName().equals("Name")) { |
+ if (child.getTextContent().equals("R_FACTOR")) { |
+ r_found = true; |
+ } |
+ } |
+ } |
+ } |
+ } |
|
protected void createInputFile(File file, Map<String, JSONObject> param) |
throws Exception { |
@@ -5,10 +5,7 @@ |
*/ |
package m.rusle2; |
|
-import csip.utils.Client; |
import csip.Config; |
-import csip.api.server.Executable; |
-import csip.api.server.ServiceException; |
import csip.annotations.Description; |
import csip.annotations.Name; |
import csip.annotations.Resource; |
@@ -18,12 +15,14 @@ |
import csip.annotations.State; |
import static csip.annotations.State.DEVELOPMENT; |
import csip.annotations.VersionInfo; |
+import csip.api.server.Executable; |
import csip.api.server.PayloadMetaInfo; |
+import csip.api.server.ServiceException; |
+import csip.utils.Client; |
import csip.utils.JSONUtils; |
import database.ServiceResources; |
import static database.ServiceResources.LMOD_ID; |
import java.io.File; |
-import java.io.IOException; |
import java.sql.Connection; |
import java.sql.SQLException; |
import java.util.Collection; |
@@ -31,9 +30,6 @@ |
import java.util.List; |
import java.util.logging.Level; |
import javax.ws.rs.Path; |
-import javax.xml.parsers.DocumentBuilder; |
-import javax.xml.parsers.DocumentBuilderFactory; |
-import javax.xml.parsers.ParserConfigurationException; |
import static m.rusle2.V3_0.OUT_JSON_TEMPLATE_FILENAME; |
import static m.rusle2.V3_0.PYROME; |
import static m.rusle2.V3_0.PYROMESRC; |
@@ -47,10 +43,6 @@ |
import org.codehaus.jettison.json.JSONArray; |
import org.codehaus.jettison.json.JSONException; |
import org.codehaus.jettison.json.JSONObject; |
-import org.w3c.dom.Document; |
-import org.w3c.dom.Node; |
-import org.w3c.dom.NodeList; |
-import org.xml.sax.SAXException; |
import soils.Component; |
import soils.MapUnit; |
import soils.db.SOILS_DATA; |
@@ -84,7 +76,6 @@ |
private Management man; |
private Component comp; |
private int contour = 0; |
- private double r_factor; |
private double ann_erosion; |
|
|
@@ -199,35 +190,6 @@ |
return value; |
} |
|
- |
- private void getR_factor() throws ParserConfigurationException, SAXException, IOException { |
- boolean r_found = false; |
- |
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); |
- DocumentBuilder builder = factory.newDocumentBuilder(); |
- Document doc = builder.parse(new File(workspace().getDir(), "cli_file0.xml")); |
- NodeList floatNodes = doc.getElementsByTagName("Flt"); |
- |
- // go through all the flt nodes to find the specific r_factor node |
- for (int i = 0; i < floatNodes.getLength() && !r_found; i++) { |
- Node node = floatNodes.item(i); |
- for (int j = 0; j < node.getChildNodes().getLength(); j++) { |
- Node child = node.getChildNodes().item(j); |
- // pull the r_factor value from the flt node |
- if (r_found && child.getNodeName().equals("Data")) { |
- r_factor = Double.parseDouble(child.getTextContent()); |
- break; |
- } |
- if (child.getNodeName().equals("Name")) { |
- if (child.getTextContent().equals("R_FACTOR")) { |
- r_found = true; |
- } |
- } |
- } |
- } |
- } |
- |
- |
@Override |
protected void doProcess() throws Exception { |
try { |