From 923b0baf830ff8063653e8a37e52689a584b5345 Mon Sep 17 00:00:00 2001 From: Paul Garlick Date: Fri, 11 Oct 2019 22:34:04 +0100 Subject: read panel markers and channel index from boundary definition file. --- makeBoundary.py | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) (limited to 'makeBoundary.py') diff --git a/makeBoundary.py b/makeBoundary.py index 730f96d..89b3769 100755 --- a/makeBoundary.py +++ b/makeBoundary.py @@ -29,6 +29,10 @@ n_co_east = definition_dict["n_co_east"] # coefficient for general surface # TODO: use weighted mean 'n' value. See http://help.floodmodeller.com/isis/ISIS/River_Section.htm (Eq. 4) # Note: weighted mean calculation requires roughness map. height_data = definition_dict["height_data"] # topography +markers = definition_dict["markers"] # distances from corner point +channel = definition_dict["channel"] # identifier of channel panel + +# print(len(markers)) # with open('./1D_top.txt', "r") as data: # xch, ych, zch = np.loadtxt(data, delimiter=' ', unpack=True) @@ -76,22 +80,38 @@ elif location == 'right': print(xin) -# array index and co-ordinates are related by: -# index = (co-ord - 0.25)*2 -xregion = xin[280:301] -zregion = zin[280:301] +num_panels = len(markers) + 1 # number of panels across boundary + +# convert panel co-ordinates to array indices: +panel_ind = [0] +for i in range(len(markers)): + panel_ind.append(int(markers[i]/dX - 1/2)) +if location == 'left' or location == 'right': + panel_ind.append(nrows-1) +elif location == 'top' or location == 'bottom': + panel_ind.append(ncols-1) + + +# print(panel_ind) + +xregion = [] +zregion = [] +for p in range(num_panels): + xregion.append(xin[panel_ind[p]:panel_ind[p+1]]) + zregion.append(zin[panel_ind[p]:panel_ind[p+1]]) -xregion_west = xin[100:281] -zregion_west = zin[100:281] +# xregion_west = xin[100:281] +# zregion_west = zin[100:281] -xregion_east = xin[300:408] -zregion_east = zin[300:408] +# xregion_east = xin[300:408] +# zregion_east = zin[300:408] -#print(zregion) +# print(zregion) +# print(xin[12:20]) -ztol = 0.01 # tolerance in overtopping height -zmin = zregion.min() # minimum height -zmax = zregion[-1]-ztol # overtopping height +ztol = 0.01 # tolerance in overtopping height +zmin = zregion[channel].min() # minimum height +zmax = zregion[channel].max()-ztol # overtopping height zmax_west = zmax zmax_east = zmax -- cgit