# 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()
# 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