def read_station_file(file_name, dom_data, config_dict): """ Read a standard routing station file http://www.hydro.washington.edu/Lettenmaier/Models/VIC/Documentation/Routing/StationLocation.shtml """ outlets = {} f = open(file_name, 'r') i = -1 while True: i += 1 line1 = re.sub(' +', ' ', f.readline()) if not line1: break active, name, x, y, area = line1.split(' ') uhs_file = f.readline().strip() # move to zero based index y = int(y) - 1 x = int(x) - 1 # make sure files exist log.info('On station: %s, active: %s', name, active) uhs2_file = os.path.join(config_dict['UHS_FILES']['ROUT_DIR'], name + '.uh_s2') if active == '1': if os.path.isfile(uhs_file): active = True elif os.path.isfile(uhs2_file): active = True else: raise ValueError('missing uhs_file: (%s or %s)', uhs_file, uhs2_file) else: active = False if active: outlets[i] = Point(domx=x, domy=y) outlets[i].name = name outlets[i].area = float(area) outlets[i].uhs_file = uhs_file outlets[i].cell_id = i outlets[i].outlet_decomp_ind = dom_data['cell_ids'][y, x] outlets[i].lon = dom_data[config_dict['DOMAIN']['LONGITUDE_VAR']][ y, x] outlets[i].lat = dom_data[config_dict['DOMAIN']['LATITUDE_VAR']][y, x] else: log.info('%s not active... skipping', name) f.close() return outlets
def read_station_file(file_name, dom_data, config_dict): """ Read a standard routing station file http://www.hydro.washington.edu/Lettenmaier/Models/VIC/Documentation/Routing/StationLocation.shtml """ outlets = {} f = open(file_name, 'r') i = -1 while True: i += 1 line1 = re.sub(' +', ' ', f.readline()) if not line1: break active, name, x, y, area = line1.split(' ') uhs_file = f.readline().strip() # move to zero based index y = int(y)-1 x = int(x)-1 # make sure files exist log.info('On station: %s, active: %s', name, active) uhs2_file = os.path.join(config_dict['UHS_FILES']['ROUT_DIR'], name+'.uh_s2') if active == '1': if os.path.isfile(uhs_file): active = True elif os.path.isfile(uhs2_file): active = True else: raise ValueError('missing uhs_file: (%s or %s)', uhs_file, uhs2_file) else: active = False if active: outlets[i] = Point(domx=x, domy=y) outlets[i].name = name outlets[i].area = float(area) outlets[i].uhs_file = uhs_file outlets[i].cell_id = i outlets[i].outlet_decomp_ind = dom_data['cell_ids'][y, x] outlets[i].lon = dom_data[config_dict['DOMAIN']['LONGITUDE_VAR']][y, x] outlets[i].lat = dom_data[config_dict['DOMAIN']['LATITUDE_VAR']][y, x] else: log.info('%s not active... skipping', name) f.close() return outlets