diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java index 86980ad6cc38a3596a777e2206897cf98f559021..29cc0e1c95edd80667f051b7844ce65cd9ab4836 100644 --- a/src/ac/ed/lurg/ModelMain.java +++ b/src/ac/ed/lurg/ModelMain.java @@ -33,6 +33,8 @@ import ac.ed.lurg.demand.DemandManagerFromFile; import ac.ed.lurg.demand.DemandManagerSSP; import ac.ed.lurg.landuse.CropUsageData; import ac.ed.lurg.landuse.CropUsageReader; +import ac.ed.lurg.landuse.FPUManager; +import ac.ed.lurg.landuse.IrrigationConstraintReader; import ac.ed.lurg.landuse.IrrigationItem; import ac.ed.lurg.landuse.IrrigationMaxAmountReader; import ac.ed.lurg.landuse.IrrigationRasterSet; @@ -43,7 +45,6 @@ import ac.ed.lurg.landuse.LandUseItem; import ac.ed.lurg.landuse.MaxCropAreaReader; import ac.ed.lurg.landuse.ProtectedAreasReader; import ac.ed.lurg.landuse.RunOffReader; -import ac.ed.lurg.landuse.FPUManager; import ac.ed.lurg.output.LandUseOutputer; import ac.ed.lurg.output.LpjgOutputer; import ac.ed.lurg.types.CommodityType; @@ -365,8 +366,10 @@ public class ModelMain { if (ModelConfig.IS_CALIBRATION_RUN) { serializeLandUse(landUseRaster); - if (timestep.isInitialTimestep()) + if (timestep.isInitialTimestep()) { outputClusters(clusterIdRaster); + outputWaterAvailablity(currentIrrigationData); + } } // Output LandUses to tabular file, for analysis (perhaps) @@ -379,6 +382,19 @@ public class ModelMain { // outputLandCover(timestep.getYear(), landUseRaster, LandCoverType.PASTURE); } + private void outputWaterAvailablity(IrrigationRasterSet irrigiationRS) { + new RasterOutputer<Double, IrrigationItem>(irrigiationRS, ModelConfig.OUTPUT_DIR + File.separator + "irrig_constraint.asc") { + @Override + public Double getValue(RasterKey location) { + IrrigationItem item = results.get(location); + if (item == null) + return null; + + return item.getIrrigConstraint(); + } + }.writeOutput(); + } + private void outputClusters(RasterSet<IntegerRasterItem> landUseRaster) { new RasterOutputer<Integer, IntegerRasterItem>(landUseRaster, ModelConfig.CLUSTERED_YIELD_FILE) { @Override @@ -391,7 +407,7 @@ public class ModelMain { } }.writeOutput(); } - + public RasterSet<IntegerRasterItem> getClusterRaster() { RasterSet<IntegerRasterItem> clusters = new RasterSet<IntegerRasterItem>(desiredProjection) { private static final long serialVersionUID = 2467452274591854417L; @@ -555,7 +571,8 @@ public class ModelMain { private IrrigationRasterSet getFixedIrrigationData() { IrrigationRasterSet fixedIrrigData = new IrrigationRasterSet(desiredProjection, fpuManager); new IrrigiationCostReader(fixedIrrigData).getRasterDataFromFile(ModelConfig.IRRIGATION_COST_FILE); - return fixedIrrigData; +// new IrrigationConstraintReader(fixedIrrigData).getRasterDataFromFile(ModelConfig.IRRIGATION_CONSTRAINT_FILE); + return fixedIrrigData; } private RasterSet<IrrigationItem> getUpdateIrrigationData(Timestep timestep, YieldRaster yieldSurfaces) {