cfg['OPTION']['start_date'][1], \ cfg['OPTION']['start_date'][2], 12, 0) end_date = dt.datetime(cfg['OPTION']['end_date'][0], \ cfg['OPTION']['end_date'][1], \ cfg['OPTION']['end_date'][2], 12, 0) #================================================# # Load dam info #================================================# df_dam_info = pd.read_csv(cfg['INPUT']['dam_to_model_info_path']) #================================================# # Load and process RVIC flow #================================================# # Load data da_rvic = my_functions.read_RVIC_output(cfg['INPUT']['rvic_output_nc'], \ output_format='grid', outlet_ind=-1) # [cfs] # Extract period of time to consider da_rvic_to_consider = da_rvic.sel(time=slice(start_date, end_date)) #================================================# # Process each dam # 10% exceedence, daily data #================================================# #=== Loop over each dam ===# for i in range(len(df_dam_info)): #=== Get dam info ===# lat = df_dam_info.ix[i, 'grid_lat'] lon = df_dam_info.ix[i, 'grid_lon'] dam_number = df_dam_info.ix[i, 'dam_number'] dam_name = df_dam_info.ix[i, 'dam_name'] print 'Processing dam {}...'.format(dam_number)
names.append('flow%d' %i) df_usgs = my_functions.read_USGS_data(cfg[input_section]['ts_path'], \ columns=usgs_flow_col_split, \ names=names) / 1000 # convert to thousand cfs s = df_usgs.mean(axis=1, skipna=False) # if either column is missing, # return NaN # If TVA pass-through flow data elif cfg[input_section]['ts_format']=='TVA': s = my_functions.read_TVA_pass_through_flow(cfg[input_section]['ts_path'], \ dam_num=cfg[input_section]['dam_num']) \ / 1000 # convert to thousand cfs # If RVIC output array format elif cfg[input_section]['ts_format']=='RVIC_array': df, dict_outlet = my_functions.read_RVIC_output(cfg[input_section]['ts_path'], \ output_format='array', \ outlet_ind=cfg[input_section]['outlet_ind']) df = df / 1000 # convert to thousand cfs s = df.ix[:,0] s.index -= dt.timedelta(hours=12) # If RVIC output grid format elif cfg[input_section]['ts_format']=='RVIC_grid': s = my_functions.read_RVIC_output(cfg[input_section]['ts_path'], \ output_format='grid', \ outlet_ind=(cfg[input_section]['outlet_lat'], \ cfg[input_section]['outlet_lon'])) s = s / 1000 # convert to thousand cfs s.index -= dt.timedelta(hours=12) # If reservoir simulation output format
df_usgs = my_functions.read_USGS_data(cfg[input_section]['ts_path'], \ columns=usgs_flow_col_split, \ names=names) / 1000 # convert to thousand cfs s = df_usgs.mean(axis=1, skipna=False) # if either column is missing, # return NaN # If TVA pass-through flow data elif cfg[input_section]['ts_format'] == 'TVA': s = my_functions.read_TVA_pass_through_flow(cfg[input_section]['ts_path'], \ dam_num=cfg[input_section]['dam_num']) \ / 1000 # convert to thousand cfs # If RVIC output array format elif cfg[input_section]['ts_format'] == 'RVIC_array': df, dict_outlet = my_functions.read_RVIC_output(cfg[input_section]['ts_path'], \ output_format='array', \ outlet_ind=cfg[input_section]['outlet_ind']) df = df / 1000 # convert to thousand cfs s = df.ix[:, 0] s.index -= dt.timedelta(hours=12) # If RVIC output grid format elif cfg[input_section]['ts_format'] == 'RVIC_grid': s = my_functions.read_RVIC_output(cfg[input_section]['ts_path'], \ output_format='grid', \ outlet_ind=(cfg[input_section]['outlet_lat'], \ cfg[input_section]['outlet_lon'])) s = s / 1000 # convert to thousand cfs s.index -= dt.timedelta(hours=12) # If reservoir simulation output format