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)
コード例 #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
コード例 #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
コード例 #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()
コード例 #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
コード例 #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
コード例 #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
コード例 #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
コード例 #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))
コード例 #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
コード例 #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
コード例 #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))
コード例 #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
コード例 #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
コード例 #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
コード例 #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)
コード例 #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