/// bool RUSLE2() { //Set climate pointer rusle2.leaf_wrapper_rusle2.SetObjPtr( rusle2.ObjectType.OBJTYP_CLIMATE, clir2.ConvertString()); //Create RUSLE2 soil file string ck = soil.ConvertString(); ck = ck.Replace(':', '-'); string soiR2 = name.ConvertString() + "_" + ck + ".soi"; SoilError err = rusle2.leaf_wrapper_rusle2.CreateSoilFile( component, soiR2); if (err != SoilError.SOIERR_NONE) { return(false); } //Set soil pointer rusle2.leaf_wrapper_rusle2.SetObjPtr( rusle2.ObjectType.OBJTYP_SOIL, soiR2, rusle2.FilePrefix.HASHTAG_XML); double slope = component.GetSlope().value().ConvertDouble(); if (slope <= 0.0 || slope > 100.0 /*|| slope == NaN*/) { return(false); } rusle2.leaf_wrapper_rusle2.AssignSlopeVals( new Var(slope), new Var(lightle.SlopeLen(slope))); //Set management pointer string manr2 = man.ConvertString(); rusle2.leaf_wrapper_rusle2.SetObjPtr( rusle2.ObjectType.OBJTYP_MANAGEMENT, manr2); rusle2.leaf_wrapper_rusle2.AssignYields(cropMap); //Set wind erosion loss rusle2.leaf_wrapper_rusle2.SetWindErosionLoss(dataWeps.GetWindEros()); //Run Rusle2 model Console.WriteLine("{0}: Running Rusle2........", 1); dataR2 = rusle2.leaf_wrapper_rusle2.CallRusle2(scenario, false); //Manual reset...this is still janky... rusle2.leaf_wrapper_rusle2.ResetObjPtr( rusle2.ObjectType.OBJTYP_MANAGEMENT); rusle2.leaf_wrapper_rusle2.ResetObjPtr( rusle2.ObjectType.OBJTYP_CLIMATE); rusle2.leaf_wrapper_rusle2.ResetObjPtr( rusle2.ObjectType.OBJTYP_SOIL); return(true); }
/// bool WEPS() { weru.leaf_wrapper_weru.UseCycleCount(cycleCount); weru.leaf_wrapper_weru.SetLocation(name.ConvertString()); //Set climate pointer string cliWeps = name.ConvertString() + ".cli"; weru.leaf_wrapper_weru.SetRfdFilePtr(weru.File.CLIMATE, cliWeps); //Set wind pointer string winWeps = name.ConvertString() + ".win"; weru.leaf_wrapper_weru.SetRfdFilePtr(weru.File.WIND, winWeps); //Create WEPS soil file string ck = soil.ConvertString(); ck = ck.Replace(':', '-'); string ifcWeps = name.ConvertString() + "_" + ck + ".ifc"; SoilError err = weru.leaf_wrapper_weru.CreateSoilFile(component, ifcWeps); if (err != SoilError.SOIERR_NONE) { return(false); } //Set soil pointer weru.leaf_wrapper_weru.SetRfdFilePtr(weru.File.SOIL, ifcWeps); double slope = component.GetSlope().value().ConvertDouble(); if (slope <= 0.0 || slope > 100.0 /*|| slope == NaN*/) { return(false); } weru.leaf_wrapper_weru.AssignSlopeVals( new Var(slope), new Var(lightle.SlopeLen(slope))); //Set management pointer string manWeps = man.ConvertString() + ".man"; weru.leaf_wrapper_weru.SetRfdFilePtr(weru.File.MANAGEMENT, manWeps); weru.leaf_wrapper_weru.AssignYields(cropMap); //Set water erosion loss weru.leaf_wrapper_weru.SetWaterErosionLoss(new Var(0.0)); //Run Weps model Console.WriteLine("{0}: Running Weps........", 1); dataWeps = weru.leaf_wrapper_weru.CallWeps( scenario, numCropCalItrs, cycleCount, 0); return(true); }