def test_compute_table(self): # print self.crosstab.T # CrossTab: # [[ 3. 1. 0.] # [ 0. 1. 0.] # [ 1. 0. 2.]] # prediction = self.model.getPrediction() # prediction = [[2.0 2.0 1.0] # [1.0 3.0 1.0] # [-- 1.0 2.0]] # confidence = self.model.getConfidence() # confidence = [[1.0 0.5 0.33] # [0.5 0.33 0.25] # [-- 0.25 0.2]] result = np.array([ [2.0, 1.0, 3.0], [1.0, 2.0, 1.0], [0, 3.0, 1.0] ]) result = np.ma.array(result, mask = (result==0)) simulator = Simulator(self.raster1, None, self.model, self.crosstab) # The model does't use factors simulator.sim() state = simulator.getState().getBand(1) assert_array_equal(result, state) result = np.array([ [2.0, 2.0, 1.0], [1.0, 2.0, 1.0], [0, 3.0, 1.0] ]) result = np.ma.array(result, mask = (result==0)) simulator = Simulator(self.raster1, None, self.model, self.crosstab) simulator.simN(2) state = simulator.getState().getBand(1) assert_array_equal(result, state)
def main(initRaster, finalRaster, factors): print 'Start Reading Init Data...', clock() initRaster = Raster(initRaster) finalRaster = Raster(finalRaster) factors = [Raster(rasterName) for rasterName in factors] print 'Finish Reading Init Data', clock(), '\n' print "Start Making CrossTable...", clock() crosstab = CrossTableManager(initRaster, finalRaster) print "Finish Making CrossTable", clock(), '\n' #~ # Create and Train ANN Model #~ model = MlpManager(ns=0) #~ model.createMlp(initRaster, factors, finalRaster, [10]) #~ print 'Start Setting MLP Trainig Data...', clock() #~ model.setTrainingData(initRaster, factors, finalRaster, mode='Balanced', samples=1000) #~ print 'Finish Setting Trainig Data', clock(), '\n' #~ print 'Start MLP Training...', clock() #~ model.train(1000, valPercent=20) #~ print 'Finish Trainig', clock(), '\n' #~ #~ print 'Start ANN Prediction...', clock() #~ predict = model.getPrediction(initRaster, factors) #~ filename = 'ann_predict.tiff' #~ try: #~ predict.save(filename) #~ finally: #~ #os.remove(filename) #~ pass #~ print 'Finish ANN Prediction...', clock(), '\n' #~ # Create and Train LR Model #~ model = LR(ns=1) #~ print 'Start Setting LR Trainig Data...', clock() #~ model.setTrainingData(initRaster, factors, finalRaster, mode='Balanced', samples=1000) #~ print 'Finish Setting Trainig Data', clock(), '\n' #~ print 'Start LR Training...', clock() #~ model.train() #~ print 'Finish Trainig', clock(), '\n' #~ #~ #~ print 'Start LR Prediction...', clock() #~ predict = model.getPrediction(initRaster, factors) #~ filename = 'lr_predict.tiff' #~ try: #~ predict.save(filename) #~ finally: #~ #os.remove(filename) #~ pass #~ print 'Finish LR Prediction...', clock(), '\n' #~ # Create and Train WoE Model #~ print 'Start creating AreaAnalyst...', clock() #~ analyst = AreaAnalyst(initRaster, finalRaster) #~ print 'Finish creating AreaAnalyst ...', clock(), '\n' #~ print 'Start creating WoE model...', clock() #~ bins = {0: [[1000, 2000, 3000]], 1: [[200, 500, 1000, 1500]]} #~ model = WoeManager(factors, analyst, bins= bins) #~ print 'Finish creating WoE model...', clock(), '\n' # Create and Train MCE Model print 'Start creating MCE model...', clock() matrix = [ [1, 6], [1.0/6, 1] ] model = MCE(factors, matrix, 2, 3) print 'Finish creating MCE model...', clock(), '\n' # simulation print 'Start Simulation...', clock() simulator = Simulator(initRaster, factors, model, crosstab) # Make 1 cycle of simulation: simulator.sim() monteCarloSim = simulator.getState() # Result of MonteCarlo simulation errors = simulator.errorMap(finalRaster) # Risk class validation riskFunct = simulator.getConfidence() # Risk function # Make K cycles of simulation: # simulator.simN(K) try: monteCarloSim.save('simulation_result.tiff') errors.save('risk_validation.tiff') riskFunct.save('risk_func.tiff') finally: pass # os.remove('simulation_result.tiff') # os.remove('risk_validation.tiff') # os.remove('risk_func.tiff') print 'Finish Simulation', clock(), '\n' print 'Done', clock()