@@ -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")); |