ResInsight/GrpcInterface/Python/rips/PythonExamples/selected_cells.py
2023-02-01 10:32:58 +01:00

69 lines
2.4 KiB
Python

############################################################################
# This example prints center and corners for the currently selected cells
# in ResInsight
############################################################################
import rips
resinsight = rips.Instance.find()
if resinsight is not None:
cases = resinsight.project.cases()
print("Got " + str(len(cases)) + " cases: ")
for case in cases:
print(case.name)
cells = case.selected_cells()
print("Found " + str(len(cells)) + " selected cells")
time_step_info = case.time_steps()
for idx, cell in enumerate(cells):
print(
"Selected cell: [{}, {}, {}] grid: {}".format(
cell.ijk.i + 1, cell.ijk.j + 1, cell.ijk.k + 1, cell.grid_index
)
)
# Get the grid and dimensions
grid = case.grids()[cell.grid_index]
dimensions = grid.dimensions()
# Map ijk to cell index
cell_index = (
dimensions.i * dimensions.j * cell.ijk.k
+ dimensions.i * cell.ijk.j
+ cell.ijk.i
)
# Print the cell center
cell_centers = grid.cell_centers()
cell_center = cell_centers[cell_index]
print(
"Cell center: [{}, {}, {}]".format(
cell_center.x, cell_center.y, cell_center.z
)
)
# Print the cell corners
cell_corners = grid.cell_corners()[cell_index]
print("Cell corners:")
print("c0:\n" + str(cell_corners.c0))
print("c1:\n" + str(cell_corners.c1))
print("c2:\n" + str(cell_corners.c2))
print("c3:\n" + str(cell_corners.c3))
print("c4:\n" + str(cell_corners.c4))
print("c5:\n" + str(cell_corners.c5))
print("c6:\n" + str(cell_corners.c6))
print("c7:\n" + str(cell_corners.c7))
for tidx, timestep in enumerate(time_step_info):
# Read the full SOIL result for time step
soil_results = case.selected_cell_property(
"DYNAMIC_NATIVE", "SOIL", tidx
)
print(
"SOIL: {} ({}.{}.{})".format(
soil_results[idx], timestep.year, timestep.month, timestep.day
)
)