def createAllGstatRealizations(nameCommandFile, nameOutMapList,
                               nrRealPerGstatCall, sampleNumbers, timeSteps):
    # create list names with filenames required
    names = []
    names.append([])
    i = 0
    j = 0
    for sample in sampleNumbers:
        for step in timeSteps:
            if j == nrRealPerGstatCall:
                j = 1
                i = i + 1
                names.append([])
            else:
                j = j + 1
            namesOneSampleOneTimeStep = []
            for nameOutMap in nameOutMapList:
                if staticInput(timeSteps):
                    fileName = generateNameS(nameOutMap, sample) + '.map'
                else:
                    fileName = generateNameST(nameOutMap, sample, step)
                namesOneSampleOneTimeStep.append(fileName)
            names[i].append(namesOneSampleOneTimeStep)
    for setOfRealizations in names:
        createGstatRealizations(setOfRealizations, nameCommandFile,
                                nameOutMapList)
Example #2
0
def uniquesamples(name, sampleNumbers):
  """
  Retrieves the unique samples.

  name
    Name of the raster for which each sample has a realization.

  sampleNumbers
    List of numbers of samples to aggregate.

  Returns a list with sets of corresponding loops.
  """
  uniqueSets=[]
  for sample in sampleNumbers:
    filename = generateNameS(name, sample)
    raster   = readmap(filename)
    setNumber=0
    sampleAddedToExistingSet=False
    for uniqueSet in uniqueSets:
      if generalfunctions.mapeq(uniqueSet[0],raster):
        uniqueSets[setNumber].append(sample)
        sampleAddedToExistingSet=True
        break
      setNumber += 1
    if sampleAddedToExistingSet==False:
      uniqueSets.append([raster,sample])
  firstLoopOfEachUniqueSet=[]
  for uniqueSet in uniqueSets:
    firstLoopOfEachUniqueSet.append(uniqueSet[1])
  return len(firstLoopOfEachUniqueSet),firstLoopOfEachUniqueSet
Example #3
0
def uniquesamples(name, sampleNumbers):
  """
  Retrieves the unique samples.

  name
    Name of the raster for which each sample has a realization.

  sampleNumbers
    List of numbers of samples to aggregate.

  Returns a list with sets of corresponding loops.
  """
  uniqueSets=[]
  for sample in sampleNumbers:
    filename = generateNameS(name, sample)
    raster   = readmap(filename)
    setNumber=0
    sampleAddedToExistingSet=False
    for uniqueSet in uniqueSets:
      if generalfunctions.mapeq(uniqueSet[0],raster):
        uniqueSets[setNumber].append(sample)
        sampleAddedToExistingSet=True
        break
      setNumber += 1
    if sampleAddedToExistingSet==False:
      uniqueSets.append([raster,sample])
  firstLoopOfEachUniqueSet=[]
  for uniqueSet in uniqueSets:
    firstLoopOfEachUniqueSet.append(uniqueSet[1])
  return len(firstLoopOfEachUniqueSet),firstLoopOfEachUniqueSet
Example #4
0
def createtimeseries(names, nameExtension, locations,sampleNumbers,timeSteps):
  if deterministicInput(sampleNumbers):
    for name in names:
      tssFile = file(name + nameExtension + '.tss', "w")
      tssFile.write("timeseries scalar\n")
      tssFile.write("2\n")
      tssFile.write("timestep\n")
      tssFile.write("%s\n" % (name))
      for step in timeSteps:
        timeseriesValue=mapmaximum(ifthen(locations,generateNameT(name,step)))
        value, valid = cellvalue(timeseriesValue, 1, 1); assert valid
        tssFile.write("%d %g\n" % (step, value))
      tssFile.close()
  else:
    for name in names:
      for sample in sampleNumbers:
        tssFile = file(generateNameS("%s%s.tss" % (name,nameExtension), sample), "w")
        tssFile.write("timeseries scalar\n")
        tssFile.write("2\n")
        tssFile.write("timestep\n")
        tssFile.write("%s\n" % (name))
        for step in timeSteps:
          timeseriesValue=mapmaximum(ifthen(locations,generateNameST(name,sample,step)))
          value, valid = cellvalue(timeseriesValue, 1, 1); assert valid
          tssFile.write("%d %g\n" % (step, value))
        tssFile.close()
Example #5
0
def createtimeseries(names, nameExtension, locations,sampleNumbers,timeSteps):
  if deterministicInput(sampleNumbers):
    for name in names:
      tssFile = file(name + nameExtension + '.tss', "w")
      tssFile.write("timeseries scalar\n")
      tssFile.write("2\n")
      tssFile.write("timestep\n")
      tssFile.write("%s\n" % (name))
      for step in timeSteps:
        timeseriesValue=mapmaximum(ifthen(locations,generateNameT(name,step)))
        value, valid = cellvalue(timeseriesValue, 1, 1); assert valid
        tssFile.write("%d %g\n" % (step, value))
      tssFile.close()
  else:
    for name in names:
      for sample in sampleNumbers:
        tssFile = file(generateNameS("%s%s.tss" % (name,nameExtension), sample), "w")
        tssFile.write("timeseries scalar\n")
        tssFile.write("2\n")
        tssFile.write("timestep\n")
        tssFile.write("%s\n" % (name))
        for step in timeSteps:
          timeseriesValue=mapmaximum(ifthen(locations,generateNameST(name,sample,step)))
          value, valid = cellvalue(timeseriesValue, 1, 1); assert valid
          tssFile.write("%d %g\n" % (step, value))
        tssFile.close()
def selectSArrays(name, sampleNumbers):
    masks = []
    arrays = []
    nrCells = clone().nrRows() * clone().nrCols()

    # For each cell.
    # Create empty arrays for cell values and 'missing valueness'.
    c = 0
    while c < nrCells:
        masks.append(numpy.zeros(len(sampleNumbers)).astype(numpy.bool_))
        arrays.append(numpy.zeros(len(sampleNumbers)).astype(numpy.float32))
        c += 1

    # For each sample.
    # Read raster and assign cell values to arrays.
    s = 0
    while s < len(sampleNumbers):
        raster = readmap(generateNameS(name, sampleNumbers[s]))

        # For each cell.
        c = 0
        while c < nrCells:
            arrays[c][s], masks[c][s] = cellvalue(raster, c + 1)
            c += 1
        s += 1

    # For each cell.
    # Compress each array with cell values.
    c = 0
    while c < nrCells:
        arrays[c] = numpy.compress(masks[c], arrays[c])
        c += 1

    return arrays
Example #7
0
def sampleMax(name, sampleNumbers):
  """
  Calculates the maximum value of each cell.

  name
    Name of the scalar raster for which each sample has a realization.

  sampleNumbers
    List of numbers of samples to aggregate.

  Returns a raster with maximum values.
  """
  maximum = scalar(-1e31)
  for sample in sampleNumbers:
    filename = generateNameS(name, sample)
    raster   = scalar(readmap(filename))
    maximum      = ifthenelse(pcrgt(raster,maximum),raster,maximum)
  return maximum
Example #8
0
def sampleMax(name, sampleNumbers):
  """
  Calculates the maximum value of each cell.

  name
    Name of the scalar raster for which each sample has a realization.

  sampleNumbers
    List of numbers of samples to aggregate.

  Returns a raster with maximum values.
  """
  maximum = scalar(-1e31)
  for sample in sampleNumbers:
    filename = generateNameS(name, sample)
    raster   = scalar(readmap(filename))
    maximum      = ifthenelse(pcrgt(raster,maximum),raster,maximum)
  return maximum
Example #9
0
def selectSArray(name, sampleNumbers, row, col):
  """Selects values at row, col from raster name in Monte Carlo samples.

  name -- Name of raster.
  sampleNumber -- Numbers of MC samples to use.
  row -- Row index of cell to read.
  col -- Col index of cell to read.
  The returned array does not contain missing values so the size is maximimal
  sampleNumbers but possibly smaller.

  Returned array has elements of type numpy.float32"""
  mask = numpy.zeros(len(sampleNumbers)).astype(numpy.bool_)
  array = numpy.zeros(len(sampleNumbers)).astype(numpy.float32)
  i = 0
  while i < len(sampleNumbers):
    filename = generateNameS(name, sampleNumbers[i])
    array[i], mask[i] = readFieldCell(filename, row, col)
    i += 1
  array = numpy.compress(numpy.logical_not(mask), array)
  return array
Example #10
0
def variance(name, sampleNumbers):
  """
  Calculates the variance of each cell.

  name
    Name of the scalar raster for which each sample has a realization.

  sampleNumbers
    List of numbers of samples to aggregate.

  Returns a raster with variances.
  """
  sumOfSquaredValues, sumOfValues, count = scalar(0), scalar(0), scalar(0)
  for sample in sampleNumbers:
    filename           = generateNameS(name, sample)
    raster             = readmap(filename)
    sumOfSquaredValues = sumOfSquaredValues + raster ** 2
    sumOfValues        = sumOfValues + raster
    count              = ifthen(defined(raster), count + 1)
  return (count * sumOfSquaredValues - sumOfValues ** 2) / (count * (count - 1))
Example #11
0
def average(name, sampleNumbers):
  """
  Calculates the average value of each cell.

  name
    Name of the scalar raster for which each sample has a realization.

  sampleNumbers
    List of numbers of samples to aggregate.

  Returns a raster with average values.
  """
  sum = scalar(0)
  count = scalar(0)
  for sample in sampleNumbers:
    filename = generateNameS(name, sample)
    raster   = readmap(filename)
    sum      = sum + raster
    count    = ifthen(defined(raster), count + 1)
  return sum / count
Example #12
0
def selectSArray(name, sampleNumbers, row, col):
  """Selects values at row, col from raster name in Monte Carlo samples.

  name -- Name of raster.
  sampleNumber -- Numbers of MC samples to use.
  row -- Row index of cell to read.
  col -- Col index of cell to read.
  The returned array does not contain missing values so the size is maximimal
  sampleNumbers but possibly smaller.

  Returned array has elements of type numpy.float32"""
  mask = numpy.zeros(len(sampleNumbers)).astype(numpy.bool_)
  array = numpy.zeros(len(sampleNumbers)).astype(numpy.float32)
  i = 0
  while i < len(sampleNumbers):
    filename = generateNameS(name, sampleNumbers[i])
    array[i], mask[i] = readFieldCell(filename, row, col)
    i += 1
  array = numpy.compress(numpy.logical_not(mask), array)
  return array
Example #13
0
def variance(name, sampleNumbers):
  """
  Calculates the variance of each cell.

  name
    Name of the scalar raster for which each sample has a realization.

  sampleNumbers
    List of numbers of samples to aggregate.

  Returns a raster with variances.
  """
  sumOfSquaredValues, sumOfValues, count = scalar(0), scalar(0), scalar(0)
  for sample in sampleNumbers:
    filename           = generateNameS(name, sample)
    raster             = readmap(filename)
    sumOfSquaredValues = sumOfSquaredValues + raster ** 2
    sumOfValues        = sumOfValues + raster
    count              = ifthen(defined(raster), count + 1)
  return (count * sumOfSquaredValues - sumOfValues ** 2) / (count * (count - 1))
Example #14
0
def average(name, sampleNumbers):
  """
  Calculates the average value of each cell.

  name
    Name of the scalar raster for which each sample has a realization.

  sampleNumbers
    List of numbers of samples to aggregate.

  Returns a raster with average values.
  """
  sum = scalar(0)
  count = scalar(0)
  for sample in sampleNumbers:
    filename = generateNameS(name, sample)
    raster   = readmap(filename)
    sum      = sum + raster
    count    = ifthen(defined(raster), count + 1)
  return sum / count
Example #15
0
def probability(name, sampleNumbers):
  """
  Calculates the probability that a cell is TRUE.

  name
    Name of the (boolean) raster for which each sample has a realization.

  sampleNumbers 
    List of numbers of samples to aggregate.

  Returns a raster with probabilities.
  """
  present = scalar(0)
  count = scalar(0)
  for sample in sampleNumbers:
    filename = generateNameS(name, sample)
    raster   = readmap(filename)
    present  = ifthenelse(raster, present + 1, present)
    count    = ifthen(defined(raster), count + 1)
  return present / count
Example #16
0
def probability(name, sampleNumbers):
  """
  Calculates the probability that a cell is TRUE.

  name
    Name of the (boolean) raster for which each sample has a realization.

  sampleNumbers 
    List of numbers of samples to aggregate.

  Returns a raster with probabilities.
  """
  present = scalar(0)
  count = scalar(0)
  for sample in sampleNumbers:
    filename = generateNameS(name, sample)
    raster   = readmap(filename)
    present  = ifthenelse(raster, present + 1, present)
    count    = ifthen(defined(raster), count + 1)
  return present / count
Example #17
0
def createAllGstatRealizations(nameCommandFile,nameOutMapList,nrRealPerGstatCall,sampleNumbers,timeSteps):
  # create list names with filenames required
  names=[]
  names.append([])
  i = 0
  j = 0
  for sample in sampleNumbers:
    for step in timeSteps:
      if j == nrRealPerGstatCall:
        j = 1
        i = i+1
        names.append([])
      else:
        j = j+1
      namesOneSampleOneTimeStep=[]
      for nameOutMap in nameOutMapList:
        if staticInput(timeSteps):
          fileName=generateNameS(nameOutMap,sample) + '.map'
        else:
          fileName=generateNameST(nameOutMap,sample,step)
        namesOneSampleOneTimeStep.append(fileName)
      names[i].append(namesOneSampleOneTimeStep)
  for setOfRealizations in names:
    createGstatRealizations(setOfRealizations,nameCommandFile, nameOutMapList)
Example #18
0
def selectSArrays(
  name,
  sampleNumbers):
  masks = []
  arrays = []
  nrCells = clone().nrRows() * clone().nrCols()

  # For each cell.
  # Create empty arrays for cell values and 'missing valueness'.
  c = 0
  while c < nrCells:
    masks.append(numpy.zeros(len(sampleNumbers)).astype(numpy.bool_))
    arrays.append(numpy.zeros(len(sampleNumbers)).astype(numpy.float32))
    c += 1

  # For each sample.
  # Read raster and assign cell values to arrays.
  s = 0
  while s < len(sampleNumbers):
    raster = readmap(generateNameS(name, sampleNumbers[s]))

    # For each cell.
    c = 0
    while c < nrCells:
      arrays[c][s], masks[c][s] = cellvalue(raster, c + 1)
      c += 1
    s += 1

  # For each cell.
  # Compress each array with cell values.
  c = 0
  while c < nrCells:
    arrays[c] = numpy.compress(masks[c], arrays[c])
    c += 1

  return arrays