def createValidationSetMapUsingStatement(self, statement): """ FIXME """ try: utils.executePCRCalc(statement, logFilename=self.logFilename()) # createValidationSetMapUsingFilename will apply the mask for us. self.createValidationSetMapUsingFilename(self.__validationMapFilename()) except AssertionError, exception: raise
def createMapsPerClass(self, aClass): statements = [] # Model, birth. statements.append( "%s = if(%s == %d, if(%s != %s and %s == %s, boolean(1), 0))" % (utils.filenameToPCRasterStatement(self.modelSampleBirthMapFilename(aClass)), utils.filenameToPCRasterStatement(self.splitMapFilename()), constants.modelSetSampleClass, utils.filenameToPCRasterStatement(self.landUseMap1Filename()), aClass, utils.filenameToPCRasterStatement(self.landUseMap2Filename()), aClass)) # Model, death. statements.append( "%s = if(%s == %d, if(%s == %s and %s != %s, boolean(1), 0))" % (utils.filenameToPCRasterStatement(self.modelSampleDeathMapFilename(aClass)), utils.filenameToPCRasterStatement(self.splitMapFilename()), constants.modelSetSampleClass, utils.filenameToPCRasterStatement(self.landUseMap1Filename()), aClass, utils.filenameToPCRasterStatement(self.landUseMap2Filename()), aClass)) # Validation, birth. statements.append( "%s = if(%s == %d, if(%s != %s and %s == %s, boolean(1), 0))" % (utils.filenameToPCRasterStatement(self.validationSampleBirthMapFilename(aClass)), utils.filenameToPCRasterStatement(self.splitMapFilename()), constants.validationSetClass, utils.filenameToPCRasterStatement(self.landUseMap1Filename()), aClass, utils.filenameToPCRasterStatement(self.landUseMap2Filename()), aClass)) # Validation, death. statements.append( "%s = if(%s == %d, if(%s == %s and %s != %s, boolean(1), 0))" % (utils.filenameToPCRasterStatement(self.validationSampleDeathMapFilename(aClass)), utils.filenameToPCRasterStatement(self.splitMapFilename()), constants.validationSetClass, utils.filenameToPCRasterStatement(self.landUseMap1Filename()), aClass, utils.filenameToPCRasterStatement(self.landUseMap2Filename()), aClass)) try: for statement in statements: utils.executePCRCalc("%s" % (statement), logFilename=self.logFilename()) except AssertionError, exception: raise
def createSampleMaps(self): assert os.path.exists(self.splitMapFilename()) for variable in self.variables(): validationStatement = "%s = if(%s == %d, %s)" % \ (utils.filenameToPCRasterStatement(self.validationSampleMapFilename(variable)), utils.filenameToPCRasterStatement(self.splitMapFilename()), constants.validationSetClass, utils.filenameToPCRasterStatement(variable)) modelStatement = "%s = if(%s == %d, %s)" % \ (utils.filenameToPCRasterStatement(self.modelSampleMapFilename(variable)), utils.filenameToPCRasterStatement(self.splitMapFilename()), constants.modelSetSampleClass, utils.filenameToPCRasterStatement(variable)) try: utils.executePCRCalc(validationStatement, logFilename=self.logFilename()) utils.executePCRCalc(modelStatement, logFilename=self.logFilename()) except AssertionError, exception: raise except Exception, exception: utils.raiseException(u"error drawing sample for %s" % (variable), exception)
def createChangeMaps(self): statements = [] statements.append( "%s = if(%s == %d, if(%s != %s, boolean(1), 0))" % (utils.filenameToPCRasterStatement(self.modelSampleChangeMapFilename()), utils.filenameToPCRasterStatement(self.splitMapFilename()), constants.modelSetSampleClass, utils.filenameToPCRasterStatement(self.landUseMap1Filename()), utils.filenameToPCRasterStatement(self.landUseMap2Filename()))) statements.append( "%s = if(%s == %d, if(%s != %s, boolean(1), 0))" % (utils.filenameToPCRasterStatement(self.validationChangeMapFilename()), utils.filenameToPCRasterStatement(self.splitMapFilename()), constants.validationSetClass, utils.filenameToPCRasterStatement(self.landUseMap1Filename()), utils.filenameToPCRasterStatement(self.landUseMap2Filename()))) try: for statement in statements: utils.executePCRCalc("%s" % (statement), logFilename=self.logFilename()) except AssertionError, exception: raise
def createMaps(self): assert not os.path.exists(self.modelSampleMapFilename()) assert not os.path.exists(self.validationSampleMapFilename()) statements = [] selection = [] for classId in self.classes(): selection.append("\"%s\" == %s" % (self.landUseMap2Filename(), classId)) # Model. statements.append( "%s = if(%s == %d, if(%s != %s and (%s), %s, nominal(-9999)))" % (utils.filenameToPCRasterStatement(self.modelSampleMapFilename()), utils.filenameToPCRasterStatement(self.splitMapFilename()), constants.modelSetSampleClass, utils.filenameToPCRasterStatement(self.landUseMap1Filename()), utils.filenameToPCRasterStatement(self.landUseMap2Filename()), " or ".join(selection), utils.filenameToPCRasterStatement(self.landUseMap2Filename()))) # Validation. statements.append( "%s = if(%s == %d, if(%s != %s and (%s), %s, nominal(-9999)))" % (utils.filenameToPCRasterStatement(self.validationSampleMapFilename()), utils.filenameToPCRasterStatement(self.splitMapFilename()), constants.validationSetClass, utils.filenameToPCRasterStatement(self.landUseMap1Filename()), utils.filenameToPCRasterStatement(self.landUseMap2Filename()), " or ".join(selection), utils.filenameToPCRasterStatement(self.landUseMap2Filename()))) try: for statement in statements: utils.executePCRCalc("%s" % (statement), logFilename=self.logFilename()) except AssertionError, exception: raise
def createValidationSetMapUsingFilename(self, filename): """ FIXME """ # Default selection mask is the whole raster of course. mask = "1" if self.maskIsSet(): mask = "%s" % (utils.filenameToPCRasterStatement(self.mask())) # self.__validationMapFilename = filename self.__validationMapFilenameBla = filename statement = "%s = if(%s, %s)" % ( utils.filenameToPCRasterStatement(filename), mask, utils.filenameToPCRasterStatement(filename), ) try: # self.createValidationSetMapUsingStatement(statement) utils.executePCRCalc(statement, logFilename=self.logFilename()) except AssertionError, exception: raise