# Determine output variables
variables = ['patchID'] + args.outputVariables

sys.stdout.write('scenario,patchid')
for var in args.outputVariables:
    sys.stdout.write(',sum_' + var)
sys.stdout.write('\n')

# For each rhessys output file ...
for (i, patchDailyFilepath) in enumerate(patchDailyFilepaths):
    
    scenario = os.path.basename( os.path.dirname(patchDailyFilepath) )
    
    f = open(patchDailyFilepath)
    data = RHESSysOutput.readColumnsFromPatchDailyFile(f, variables)
    f.close()
    if len(data) < 1:
        sys.exit("No data found for variable in RHESSys output file '%s'" % \
                 (patchDailyFilepath,) )
    
    # For each day
    variablesDict = {}
    patchIDs = None
    variable = None
    for (i, key) in enumerate(data):
        if startDate and key < startDate:
            continue
        if endDate and key > endDate:
            break
        #import pdb; pdb.set_trace()
Ejemplo n.º 2
0
    # Zoom to map extent
    result = grassLib.script.run_command('g.region', rast='MASK', zoom='MASK')
    if result != 0:
        sys.exit("Failed to set region to layer %s" % \
                 (args.mask,) )

# Set environment variables for GRASS PNG output driver
os.environ['GRASS_RENDER_IMMEDIATE'] = 'FALSE'
os.environ['GRASS_TRUECOLOR'] = 'TRUE'
os.environ['GRASS_WIDTH'] = '960'
os.environ['GRASS_HEIGHT'] = '720'

# 3. Open file ending in "patch.daily" in rhessys output dir
print("Reading RHESSys output data (this may take a while)...")
f = open(patchDailyFilepath)
data = RHESSysOutput.readColumnsFromPatchDailyFile(f, variables)
f.close()
if len(data) < 1:
    sys.exit("No data found for variable in RHESSys output file '%s'" % \
             (patchDailyFilepath,) )

# 4. For each day
for (i, key) in enumerate(data):
    dateStr = "%d/%d/%d" % (key.month, key.day, key.year)
    # Set filename env for PNG driver
    imageFilename = "%s%04d.png" % (RECLASS_MAP_TMP, i + 1)
    reclassImagePath = os.path.join(tmpDir, imageFilename)
    os.environ['GRASS_PNGFILE'] = reclassImagePath

    dataForDate = data[key]
    # a. Write reclass rule to temp file