def _to_shapely_geom(self, values): if shapely is None: raise_import_exception('shapely') polygons = [] for i, coord in enumerate(values.T): # convert the bbox bottom-left and upper-right into a polygon polygon = Polygon([(coord[0], coord[1]), (coord[0], coord[3]), (coord[2], coord[3]), (coord[2], coord[1])]) polygon.index = i # the index is used in get_mask_by_geometry polygons.append(polygon) return polygons
# not that the reason we extract this out here is because dx and dz does not change across the whole script element.dx_array_m = element.dx_grid_zx_m.flatten() element.dz_array_m = element.dz_grid_zx_m.flatten() # generating mesh using shapley polygon element_cells = [] k = 0 for i in range(nblks_x * nblks_z): xy = [[element.x_array_m[i] - element.dx_array_m [i] / 2 , element.z_array_m[i] - element.dz_array_m [i]/ 2 ] , \ [element.x_array_m[i] + element.dx_array_m [i] / 2 , element.z_array_m[i] - element.dz_array_m [i]/ 2 ] , \ [element.x_array_m[i] + element.dx_array_m [i] / 2 , element.z_array_m[i] + element.dz_array_m [i]/ 2 ] , \ [element.x_array_m[i] - element.dx_array_m [i] / 2 , element.z_array_m[i] + element.dz_array_m [i]/ 2 ] , \ [element.x_array_m[i] - element.dx_array_m [i] / 2 , element.z_array_m[i] - element.dz_array_m [i]/ 2 ] ] p = Polygon(xy) p.index = k element_cells.append(p) k += 1 #%% generating connections using shapley polygon. all the connections are considered as a small polygon connection_cells = [] connection.x_centre_array_m = np.zeros(len(inp.grid.connectionlist)) connection.z_centre_array_m = np.zeros(len(inp.grid.connectionlist)) connection.dx_a_array_m = np.zeros(len(inp.grid.connectionlist)) connection.dz_a_array_m = np.zeros(len(inp.grid.connectionlist)) connection.dx_b_array_m = np.zeros(len(inp.grid.connectionlist)) connection.dz_b_array_m = np.zeros(len(inp.grid.connectionlist)) #connection_scaling_factor = 0.9 # in the visualisation, only show a fraction of the connection, with this scaling factor, centred at the interfacing area. this only affects visualisation, not model configuration. connection_scaling_factor = 0.89 offset_m = 0.01 #0.025 # the offset can make the connection to be a polygon, not rather a line, adjust this value to make the visualisation of connections clearer