Displaying differences for changeset
 
display as  

src/java/m/crp1/erosion/V3_0.java

@@ -579,18 +579,33 @@
       JSONArray topThreeDetails = new JSONArray();
       for (SignificantSoil tSoil : topThree) {
         JSONArray soilData = tSoil.toJSON();
-        try {
-          IFCFile ifc = new IFCFile(tSoil.mapUnit.toIfc(tSoil.component.cokey()));
-          SOLFile sol = new SOLFile(tSoil.component.toSol());
-          soilData.put(JSONUtils.data("sol_wepp_surface_sand", sol.sand[0]));
-          soilData.put(JSONUtils.data("sol_wepp_surface_clay", sol.clay[0]));
-          soilData.put(JSONUtils.data("sol_wepp_surface_cec", sol.cec[0]));
+        if (tSoil.ranAllModels()) {
+          try (SOILS_DATA soilsDb = SOILS_DB_Factory.createEngine(getClass(), LOG, SOILS_GIS_DATABASE_SOURCE)) {
+            MapUnit tMapUnit = soilsDb.findWEPSDataByCokey(tSoil.component, true, false, true);
+            IFCFile ifc = new IFCFile(tMapUnit.toIfc(tSoil.component.cokey()));
 
-          soilData.put(JSONUtils.data("ifc_weps_surface_wilting_point", ifc.wiltingPointSWC[0]));
-          soilData.put(JSONUtils.data("ifc_weps_surface_sand", ifc.fractionSand[0]));
-          soilData.put(JSONUtils.data("ifc_weps_surface_silt", ifc.fractionSilt[0]));
-          soilData.put(JSONUtils.data("ifc_weps_surface_clay", ifc.fractionClay[0]));
-        } catch (Exception ex) {
+            tMapUnit = soilsDb.findWEPPDataByCokey(tSoil.component);
+            SOLFile sol = new SOLFile(tMapUnit.components().get(tSoil.component.cokey()).toSol());
+
+            soilData.put(JSONUtils.data("sol_wepp_surface_sand", sol.sand[0]));
+            soilData.put(JSONUtils.data("sol_wepp_surface_clay", sol.clay[0]));
+            soilData.put(JSONUtils.data("sol_wepp_surface_cec", sol.cec[0]));
+
+            soilData.put(JSONUtils.data("ifc_weps_surface_wilting_point", ifc.wiltingPointSWC[0]));
+            soilData.put(JSONUtils.data("ifc_weps_surface_sand", ifc.fractionSand[0]));
+            soilData.put(JSONUtils.data("ifc_weps_surface_silt", ifc.fractionSilt[0]));
+            soilData.put(JSONUtils.data("ifc_weps_surface_clay", ifc.fractionClay[0]));
+          } catch (Exception ex) {
+            soilData.put(JSONUtils.data("sol_wepp_surface_sand", "NaN"));
+            soilData.put(JSONUtils.data("sol_wepp_surface_clay", "NaN"));
+            soilData.put(JSONUtils.data("sol_wepp_surface_cec", "NaN"));
+
+            soilData.put(JSONUtils.data("ifc_weps_surface_wilting_point", "NaN"));
+            soilData.put(JSONUtils.data("ifc_weps_surface_sand", "NaN"));
+            soilData.put(JSONUtils.data("ifc_weps_surface_silt", "NaN"));
+            soilData.put(JSONUtils.data("ifc_weps_surface_clay", "NaN"));
+          }
+        } else {
           soilData.put(JSONUtils.data("sol_wepp_surface_sand", "NaN"));
           soilData.put(JSONUtils.data("sol_wepp_surface_clay", "NaN"));
           soilData.put(JSONUtils.data("sol_wepp_surface_cec", "NaN"));