Example #1
0
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
Example #2
0
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