Merge remote-tracking branch 'origin/python-black-patches-0vrv2q8' into grid-geometry-extraction

This commit is contained in:
Jørgen Herje 2024-03-06 08:03:05 +01:00
commit d300869217
2 changed files with 101 additions and 54 deletions

View File

@ -14,13 +14,33 @@ rips_instance = Instance.find()
grid_geometry_extraction_stub = GridGeometryExtractionStub(rips_instance.channel) grid_geometry_extraction_stub = GridGeometryExtractionStub(rips_instance.channel)
grid_file_name = None grid_file_name = None
grid_file_name = "D:\\Git\\resinsight-tutorials\\model-data\\norne\\NORNE_ATW2013_RFTPLT_V2.EGRID" grid_file_name = (
"D:\\Git\\resinsight-tutorials\\model-data\\norne\\NORNE_ATW2013_RFTPLT_V2.EGRID"
)
# Test polylines # Test polylines
mocked_model_fence_poly_line_utm_xy = [11.2631, 11.9276, 14.1083, 18.2929, 18.3523, 10.9173] mocked_model_fence_poly_line_utm_xy = [
norne_case_fence_poly_line_utm_xy = [456221, 7.32113e+06, 457150, 7.32106e+06, 456885, 7.32176e+06, 457648, 7.3226e+06, 458805, 7.32278e+06] 11.2631,
norne_case_single_segment_poly_line_utm_xy = [457150, 7.32106e+06, 456885, 7.32176e+06] 11.9276,
norne_case_single_segment_poly_line_gap_utm_xy = [460877, 7.3236e+06, 459279, 7.32477e+06] 14.1083,
18.2929,
18.3523,
10.9173,
]
norne_case_fence_poly_line_utm_xy = [
456221,
7.32113e06,
457150,
7.32106e06,
456885,
7.32176e06,
457648,
7.3226e06,
458805,
7.32278e06,
]
norne_case_single_segment_poly_line_utm_xy = [457150, 7.32106e06, 456885, 7.32176e06]
norne_case_single_segment_poly_line_gap_utm_xy = [460877, 7.3236e06, 459279, 7.32477e06]
fence_poly_line_utm_xy = norne_case_single_segment_poly_line_utm_xy fence_poly_line_utm_xy = norne_case_single_segment_poly_line_utm_xy
@ -44,7 +64,13 @@ z_start = polygon_vertex_array_org[2]
# Subtract x_start, y_start, z_start from all x, y, z coordinates # Subtract x_start, y_start, z_start from all x, y, z coordinates
polygon_vertex_array = [] polygon_vertex_array = []
for i in range(0, len(polygon_vertex_array_org), 3): for i in range(0, len(polygon_vertex_array_org), 3):
polygon_vertex_array.extend([polygon_vertex_array_org[i] - x_start, polygon_vertex_array_org[i + 1] - y_start, polygon_vertex_array_org[i + 2] - z_start]) polygon_vertex_array.extend(
[
polygon_vertex_array_org[i] - x_start,
polygon_vertex_array_org[i + 1] - y_start,
polygon_vertex_array_org[i + 2] - z_start,
]
)
num_vertex_coords = 3 # [x, y, z] num_vertex_coords = 3 # [x, y, z]
@ -55,9 +81,9 @@ z_array = []
for i in range(0, len(polygon_vertex_array), num_vertex_coords): for i in range(0, len(polygon_vertex_array), num_vertex_coords):
# vertex array is provided as a single array of x, y, z coordinates # vertex array is provided as a single array of x, y, z coordinates
# i.e. [x1, y1, z1, x2, y2, z2, x3, y3, z3, ... , xn, yn, zn] # i.e. [x1, y1, z1, x2, y2, z2, x3, y3, z3, ... , xn, yn, zn]
x_array.append(polygon_vertex_array[i + 0] ) x_array.append(polygon_vertex_array[i + 0])
y_array.append(polygon_vertex_array[i + 1] ) y_array.append(polygon_vertex_array[i + 1])
z_array.append(polygon_vertex_array[i + 2] ) z_array.append(polygon_vertex_array[i + 2])
# Create triangular mesh # Create triangular mesh
vertices = np.array(polygon_vertex_array).reshape(-1, 3) vertices = np.array(polygon_vertex_array).reshape(-1, 3)
@ -106,9 +132,33 @@ for vertex_count in vertices_per_polygon:
triangle_v2_global_idx = triangle_v2_idx * coordinate_step triangle_v2_global_idx = triangle_v2_idx * coordinate_step
# Add x,y,z coordinates for the triangle vertices (closing triangle with 'None') # Add x,y,z coordinates for the triangle vertices (closing triangle with 'None')
triangle_edges_x.extend([polygon_vertex_array[triangle_v0_global_idx + 0], polygon_vertex_array[triangle_v1_global_idx + 0], polygon_vertex_array[triangle_v2_global_idx + 0], polygon_vertex_array[triangle_v0_global_idx + 0], None]) triangle_edges_x.extend(
triangle_edges_y.extend([polygon_vertex_array[triangle_v0_global_idx + 1], polygon_vertex_array[triangle_v1_global_idx + 1], polygon_vertex_array[triangle_v2_global_idx + 1], polygon_vertex_array[triangle_v0_global_idx + 1], None]) [
triangle_edges_z.extend([polygon_vertex_array[triangle_v0_global_idx + 2], polygon_vertex_array[triangle_v1_global_idx + 2], polygon_vertex_array[triangle_v2_global_idx + 2], polygon_vertex_array[triangle_v0_global_idx + 2], None]) polygon_vertex_array[triangle_v0_global_idx + 0],
polygon_vertex_array[triangle_v1_global_idx + 0],
polygon_vertex_array[triangle_v2_global_idx + 0],
polygon_vertex_array[triangle_v0_global_idx + 0],
None,
]
)
triangle_edges_y.extend(
[
polygon_vertex_array[triangle_v0_global_idx + 1],
polygon_vertex_array[triangle_v1_global_idx + 1],
polygon_vertex_array[triangle_v2_global_idx + 1],
polygon_vertex_array[triangle_v0_global_idx + 1],
None,
]
)
triangle_edges_z.extend(
[
polygon_vertex_array[triangle_v0_global_idx + 2],
polygon_vertex_array[triangle_v1_global_idx + 2],
polygon_vertex_array[triangle_v2_global_idx + 2],
polygon_vertex_array[triangle_v0_global_idx + 2],
None,
]
)
# Move to next polygon # Move to next polygon
polygon_v0_idx += vertex_count polygon_v0_idx += vertex_count
@ -143,18 +193,19 @@ for vertex_count in vertices_per_polygon:
polygon_global_start_index += vertex_count * coordinate_step polygon_global_start_index += vertex_count * coordinate_step
# Create mesh # Create mesh
mesh_3D = go.Mesh3d(x=x, y=y, z=z, i=i, j=j, k=k, opacity=0.8, color='rgba(244,22,100,0.6)') mesh_3D = go.Mesh3d(
x=x, y=y, z=z, i=i, j=j, k=k, opacity=0.8, color="rgba(244,22,100,0.6)"
)
# Create edge lines for triangles # Create edge lines for triangles
triangle_edges_3d = go.Scatter3d( triangle_edges_3d = go.Scatter3d(
x=triangle_edges_x, x=triangle_edges_x,
y=triangle_edges_y, y=triangle_edges_y,
z=triangle_edges_z, z=triangle_edges_z,
mode='lines', mode="lines",
name='', name="",
line=dict(color= 'rgb(0,0,0)', width=1) line=dict(color="rgb(0,0,0)", width=1),
) )
# Create outer edge lines for polygon # Create outer edge lines for polygon
@ -162,16 +213,16 @@ polygon_edges_3d = go.Scatter3d(
x=polygon_edges_x, x=polygon_edges_x,
y=polygon_edges_y, y=polygon_edges_y,
z=polygon_edges_z, z=polygon_edges_z,
mode='lines', mode="lines",
name='', name="",
line=dict(color= 'rgb(0,0,0)', width=1) line=dict(color="rgb(0,0,0)", width=1),
) )
fig = go.Figure( fig = go.Figure(
data=[ data=[
mesh_3D, mesh_3D,
# triangle_edges_3d, # triangle_edges_3d,
polygon_edges_3d polygon_edges_3d,
] ]
) )

View File

@ -35,9 +35,9 @@ x_array = []
y_array = [] y_array = []
z_array = [] z_array = []
for i in range(0, len(vertex_array), num_vertex_coords): for i in range(0, len(vertex_array), num_vertex_coords):
x_array.append(vertex_array[i + 0] ) x_array.append(vertex_array[i + 0])
y_array.append(vertex_array[i + 1] ) y_array.append(vertex_array[i + 1])
z_array.append(vertex_array[i + 2] ) z_array.append(vertex_array[i + 2])
# Create triangular mesh # Create triangular mesh
i_array = [] i_array = []
@ -59,7 +59,7 @@ mesh_3d = go.Mesh3d(
intensity=np.linspace(-5, 5, 1000, endpoint=True), intensity=np.linspace(-5, 5, 1000, endpoint=True),
showscale=True, showscale=True,
colorscale=[[0, "gold"], [0.5, "mediumturquoise"], [1.0, "magenta"]], colorscale=[[0, "gold"], [0.5, "mediumturquoise"], [1.0, "magenta"]],
) )
# Create edges between points in triangles # Create edges between points in triangles
Xe = [] Xe = []
@ -67,25 +67,21 @@ Ye = []
Ze = [] Ze = []
step_per_triangle = num_vertex_coords * num_vertices_per_triangle step_per_triangle = num_vertex_coords * num_vertices_per_triangle
for i in range(0, len(vertex_array), step_per_triangle): for i in range(0, len(vertex_array), step_per_triangle):
Xe.extend([vertex_array[i + 0], vertex_array[i + 3], vertex_array[i + 6], None]) # x-coordinates of start and end points of the edge Xe.extend(
Ye.extend([vertex_array[i + 1], vertex_array[i + 4], vertex_array[i + 7], None]) # y-coordinates of start and end points of the edge [vertex_array[i + 0], vertex_array[i + 3], vertex_array[i + 6], None]
Ze.extend([vertex_array[i + 2], vertex_array[i + 5], vertex_array[i + 8], None]) # z-coordinates of start and end points of the edge ) # x-coordinates of start and end points of the edge
Ye.extend(
[vertex_array[i + 1], vertex_array[i + 4], vertex_array[i + 7], None]
) # y-coordinates of start and end points of the edge
Ze.extend(
[vertex_array[i + 2], vertex_array[i + 5], vertex_array[i + 8], None]
) # z-coordinates of start and end points of the edge
edges_3d = go.Scatter3d( edges_3d = go.Scatter3d(
x=Xe, x=Xe, y=Ye, z=Ze, mode="lines", name="", line=dict(color="rgb(70,70,70)", width=1)
y=Ye,
z=Ze,
mode='lines',
name='',
line=dict(color= 'rgb(70,70,70)', width=1)
) )
fig = go.Figure( fig = go.Figure(data=[mesh_3d, edges_3d])
data=[
mesh_3d,
edges_3d
]
)
print(f"j array: {j_array}") print(f"j array: {j_array}")
print(f"Number of vertices: {len(vertex_array) / 3}") print(f"Number of vertices: {len(vertex_array) / 3}")