Source code for flopy.mf6.utils.testutils

from ...utils import datautil


[docs]def make_int_tuple(str_list): int_list = [] for item in str_list: int_list.append(int(item) - 1) return tuple(int_list)
[docs]def read_vertices(vert_file): fd = open(vert_file, "r") vertrecarray = [] for line in fd: fd_spl = line.strip().split() vertrecarray.append( (int(fd_spl[0]) - 1, float(fd_spl[1]), float(fd_spl[2])) ) fd.close() return vertrecarray
[docs]def read_cell2d(cell2d_file): fd = open(cell2d_file, "r") c2drecarray = [] for line in fd: fd_spl = line.strip().split() rec_array = [int(fd_spl[0]) - 1, float(fd_spl[1]), float(fd_spl[2])] rec_array.append(int(fd_spl[3])) for item in fd_spl[4:]: rec_array.append(int(item) - 1) c2drecarray.append(tuple(rec_array)) fd.close() return c2drecarray
[docs]def read_exchangedata(gwf_file, cellid_size=3): exgrecarray = [] fd = open(gwf_file, "r") for line in fd: linesp = line.strip().split() exgrecarray.append( ( make_int_tuple(linesp[0:cellid_size]), make_int_tuple(linesp[cellid_size : cellid_size * 2]), int(linesp[cellid_size * 2]), float(linesp[cellid_size * 2 + 1]), float(linesp[cellid_size * 2 + 2]), float(linesp[cellid_size * 2 + 3]), float(linesp[cellid_size * 2 + 4]), ) ) return exgrecarray
[docs]def read_gncrecarray(gnc_file, cellid_size=3): gncrecarray = [] fd = open(gnc_file, "r") for line in fd: linesp = line.strip().split() gncrecarray.append( ( make_int_tuple(linesp[0:cellid_size]), make_int_tuple(linesp[cellid_size : cellid_size * 2]), make_int_tuple(linesp[cellid_size * 2 : cellid_size * 3]), float(linesp[cellid_size * 3]), ) ) return gncrecarray
[docs]def read_chdrecarray(chd_file, cellid_size=3): fd = open(chd_file, "r") chdrecarray = [] for line in fd: fd_spl = line.strip().split() chdrecarray.append( (make_int_tuple(fd_spl[0:cellid_size]), float(fd_spl[cellid_size])) ) fd.close() return chdrecarray
[docs]def read_ghbrecarray(chd_file, cellid_size=3): fd = open(chd_file, "r") ghbrecarray = [] for line in fd: fd_spl = line.strip().split() ghbrecarray.append( ( make_int_tuple(fd_spl[0:cellid_size]), float(fd_spl[cellid_size]), float(fd_spl[cellid_size + 1]), ) ) fd.close() return ghbrecarray
[docs]def read_obs(obs_file, cellid_size=3): fd = open(obs_file, "r") obsrecarray = [] for line in fd: fd_spl = line.strip().split() if len(fd_spl) >= 2 + cellid_size * 2: obsrecarray.append( ( fd_spl[0], fd_spl[1], make_int_tuple(fd_spl[2 : 2 + cellid_size]), make_int_tuple( fd_spl[2 + cellid_size : 2 + 2 * cellid_size] ), ) ) else: obsrecarray.append( ( fd_spl[0], fd_spl[1], make_int_tuple(fd_spl[2 : 2 + cellid_size]), ) ) fd.close() return obsrecarray
[docs]def read_std_array(array_file, data_type): data_list = [] fd = open(array_file, "r") for current_line in fd: split_line = datautil.PyListUtil.split_data_line(current_line) for data in split_line: if data_type == "float": data_list.append(float(data)) elif data_type == "int": data_list.append(int(data)) else: data_list.append(data) fd.close() return data_list
[docs]def read_sfr_rec(sfr_file, cellid_size=3): fd = open(sfr_file, "r") sfrrecarray = [] for line in fd: fd_spl = line.strip().split() try: cellid = make_int_tuple(fd_spl[1 : 1 + cellid_size]) temp_size = cellid_size except ValueError: cellid = fd_spl[1] temp_size = 1 sfrrecarray.append( ( int(fd_spl[0]) - 1, cellid, float(fd_spl[temp_size + 1]), int(fd_spl[temp_size + 2]), float(fd_spl[temp_size + 3]), float(fd_spl[temp_size + 4]), float(fd_spl[temp_size + 5]), float(fd_spl[temp_size + 6]), float(fd_spl[temp_size + 7]), int(fd_spl[temp_size + 8]), float(fd_spl[temp_size + 9]), int(fd_spl[temp_size + 10]), ) ) fd.close() return sfrrecarray
[docs]def read_reach_con_rec(sfr_file): fd = open(sfr_file, "r") sfrrecarray = [] for line in fd: fd_spl = line.strip().split() con_arr = [] for index, item in enumerate(fd_spl): item_val = int(item) if index == 0: item_val -= 1 else: if item_val == -1: item_val = -0.0 elif item_val < 0: item_val += 1 item_val = float(item_val) else: item_val -= 1 item_val = float(item_val) con_arr.append(item_val) sfrrecarray.append(tuple(con_arr)) fd.close() return sfrrecarray
[docs]def read_reach_div_rec(sfr_file): fd = open(sfr_file, "r") sfrrecarray = [] for line in fd: fd_spl = line.strip().split() sfrrecarray.append( ( int(fd_spl[0]) - 1, int(fd_spl[1]) - 1, int(fd_spl[2]) - 1, fd_spl[3], ) ) fd.close() return sfrrecarray
[docs]def read_reach_per_rec(sfr_file): fd = open(sfr_file, "r") sfrrecarray = [] for line in fd: fd_spl = line.strip().split() per_arr = [int(fd_spl[0]) - 1, fd_spl[1]] first = True for item in fd_spl[2:]: if fd_spl[1].lower() == "diversion" and first: per_arr.append(str(int(item) - 1)) first = False else: per_arr.append(item) sfrrecarray.append(tuple(per_arr)) fd.close() return sfrrecarray
[docs]def read_wells(wel_file, cellid_size=3): fd = open(wel_file, "r") welrecarray = [] for line in fd: fd_spl = line.strip().split() new_wel = [] new_wel.append(make_int_tuple(fd_spl[0:cellid_size])) new_wel.append(float(fd_spl[cellid_size])) for item in fd_spl[cellid_size + 1 :]: new_wel.append(item) welrecarray.append(tuple(new_wel)) fd.close() return welrecarray