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
Example #2
0
    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
Example #3
0
  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 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)
Example #5
0
  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