# time attributes used by date grid handlers to access data by date time_attrs = factory.tool.datasets.time.attrs datasets['reported.maxt'].update(time_attrs) datasets['reported.mint'].update(time_attrs) # time attributes used by date grid handlers to access provenance by date provenance_attrs = factory.tool.datasets.provenance.attrs # copy frost temperature file to frapple build directory reader = Hdf5DateGridFileReader(frost_filepath) season_dates['last_valid_date'] = \ reader.datasetAttribute('reported.maxt', 'last_valid_date') season_dates['last_obs_date'] = season_dates['last_valid_date'] print 'Copying : ', reader.filepath manager = Hdf5DateGridFileManager(tool_filepath, mode='a') print 'To : ', manager.filepath copyHdf5DategridFile(reader, manager, factory.tool.fileattrs.attrs, datasets, exclusions) del reader manager.open('a') manager.move('reported', 'temps') manager.close() # copy forecast tempratures to the build file if add_forecast: fcast_reader = factory.sourceFileReader(source, fcast_year, region, 'temps', filepath=shared_filepath) fcast_end = fcast_reader.dateAttribute('temps.maxt', 'fcast_end_date') if fcast_end <= today: fcast_reader.close()
date_attrs['fcast_start_date'] = temps_dates['fcast_start_date'] date_attrs['fcast_end_date'] = temps_dates['fcast_end_date'] # add key dates to each dataset's attributes datasets['Carolina.L43H86.gdd.accumulated'].update(date_attrs) datasets['Carolina.L43H86.gdd.chill_mask'].update(date_attrs) datasets['Carolina.L43H86.gdd.provenance'].update(date_attrs) datasets['Carolina.L43H86.stage.index'].update(date_attrs) datasets['Carolina.L43H86.stage.provenance'].update(date_attrs) datasets['Carolina.L43H86.kill.level'].update(date_attrs) datasets['Carolina.L43H86.kill.provenance'].update(date_attrs) print 'Copying : ', frost_reader.filepath frost_reader.open() builder = Hdf5DateGridFileManager(tool_filepath, mode='a') print 'To : ', builder.filepath copyHdf5DategridFile(frost_reader, builder, factory.tool.fileattrs.attrs, datasets, exclusions, debug) builder.close() frost_reader.close() del frost_reader, builder # filter annoying numpy warnings warnings.filterwarnings('ignore',"All-NaN axis encountered") warnings.filterwarnings('ignore',"All-NaN slice encountered") warnings.filterwarnings('ignore',"invalid value encountered in greater") warnings.filterwarnings('ignore',"invalid value encountered in less") warnings.filterwarnings('ignore',"Mean of empty slice") # MUST ALSO TURN OFF WARNING FILTERS AT END OF SCRIPT !!!!! # update the stage grids with 6-day forecast manager = AppleVarietyGridManager(target_year, variety, mode='a', filepath=tool_filepath)