{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# GEONE - DEESSE - Using a mask" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import what is required" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import time\n", "import os\n", "\n", "# import package 'geone'\n", "import geone as gn" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "sys.version_info(major=3, minor=13, micro=7, releaselevel='final', serial=0)\n", "geone version: 1.3.0\n" ] } ], "source": [ "# Show version of python and version of geone\n", "import sys \n", "print(sys.version_info)\n", "print('geone version: ' + gn.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Training image (TI)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0., 1., 2.])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Read file \n", "data_dir = 'data'\n", "filename = os.path.join(data_dir, 'ti.txt')\n", "ti = gn.img.readImageTxt(filename)\n", "\n", "# Values in the TI\n", "ti.get_unique()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the image (using the function `geone.imgplot.drawImage2D`)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Setting for categories / colors\n", "categ_val = [0, 1, 2]\n", "categ_col = ['lightblue', 'darkgreen', 'orange']\n", "\n", "plt.figure(figsize=(5,5))\n", "gn.imgplot.drawImage2D(ti, categ=True, categVal=categ_val, categCol=categ_col, title='TI')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulation grid and mask\n", "Deesse requires a regular cartesian grid. However, one can specify to deesse to not simulate every cell in the simulation grid. For that, a mask is used: a value (`0` or `1`) is attached to each simulation grid cell indicating that the cell must be simulated (value `1`) or not (value `0`). These values are passed to deesse by an array." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Read the mask (image) from the file 'mask.txt'\n", "data_dir = 'data'\n", "filename = os.path.join(data_dir, 'mask.txt')\n", "mask = gn.img.readImageTxt(filename)\n", "\n", "# Set the simulation grid\n", "nx, ny, nz = mask.nx, mask.ny, mask.nz\n", "sx, sy, sz = mask.sx, mask.sy, mask.sz\n", "ox, oy, oz = mask.ox, mask.oy, mask.oz\n", "\n", "# Set mask values to simulation grid cells (1: cell to be simulated)\n", "mask_value = mask.val" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fill the input structure for deesse and launch deesse" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "deesseRun: DeeSse running... [VERSION 3.2 / BUILD NUMBER 20230914 / OpenMP 19 thread(s)]\n", "deesseRun: DeeSse run complete\n", "Elapsed time: 0.92 sec\n" ] } ], "source": [ "deesse_input = gn.deesseinterface.DeesseInput(\n", " nx=nx, ny=ny, nz=nz,\n", " sx=sx, sy=sy, sz=sz,\n", " ox=ox, oy=oy, oz=oz,\n", " nv=1, varname='categ',\n", " TI=ti,\n", " mask=mask_value, # set mask\n", " distanceType='categorical',\n", " nneighboringNode=24,\n", " distanceThreshold=0.02,\n", " maxScanFraction=0.25,\n", " npostProcessingPathMax=1,\n", " seed=444,\n", " nrealization=1)\n", "\n", "# Run deesse\n", "t1 = time.time() # start time\n", "deesse_output = gn.deesseinterface.deesseRun(deesse_input)\n", "t2 = time.time() # end time\n", "print(f'Elapsed time: {t2-t1:.2g} sec')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Display the \"mask\" and the simulation" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABNUAAAE9CAYAAAAs+VRaAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW2NJREFUeJzt3Xl8VOXd//93giYBIQkBkhBZXYoLixoFo1ZBkBBRVOICLsXlBquASrQq3laWLrFCqUIRfr1bpVoobqiVIpYdrYFqlFJUuIUbAYWAgiGsCcv5/eF3hkwyk8xyzpxlXs/Hg8eDOXPmnOucMzOcefO5rivJMAxDAAAAAAAAAMKWbHcDAAAAAAAAALchVAMAAAAAAAAiRKgGAAAAAAAARIhQDQAAAAAAAIgQoRoAAAAAAAAQIUI1AAAAAAAAIEKEagAAAAAAAECECNUAAAAAAACACBGqAQAAAAAAABEiVAPgOcuXL1dSUpJef/11u5sCAADQoE6dOunOO++0uxkx891/LV++3O6muFpSUpJGjRpldzMAhIlQDYDpZs2apaSkJCUlJemDDz6o97xhGGrfvr2SkpJ0zTXX2NBCAAAAa/3nP//RjTfeqI4dOyotLU2nnnqqrrrqKk2bNs3upgEATHKS3Q0A4F1paWmaM2eOLrvssoDlK1as0Ndff63U1FSbWgYAAGCdDz/8UH369FGHDh00fPhw5ebmatu2bVq1apWee+45jR492r/uhg0blJzs/lqHyy+/XIcOHVJKSordTQGAuCFUA2CZq6++Wq+99pqmTp2qk0468XUzZ84c5efn67vvvrOxdQAAANb41a9+pYyMDH300UfKzMwMeG7Xrl0Bj73yn4zJyclKS0uzuxkAEFfu/y8RAI41dOhQ7d69W4sWLfIvq6mp0euvv65bb7213vqTJ0/WJZdcolatWqlp06bKz88POi7aokWLdNlllykzM1PNmzdXly5d9MQTTzTYlurqal1zzTXKyMjQhx9+GPvBAQAAhLBp0yade+659QI1ScrOzg54XHdMNd8wGh988IEeeOABtWnTRpmZmbr33ntVU1OjyspK/eQnP1HLli3VsmVLPfroozIMI6p29u7dW7179663/M4771SnTp0Cls2dO1f5+flq0aKF0tPT1a1bNz333HP+54ONqda7d2917dpVn3/+ufr06aNmzZrp1FNP1TPPPFNvn1u2bNGgQYN0yimnKDs7W2PGjNF7770X1jhtW7Zs0f33368uXbqoadOmatWqlW666SZ99dVXjZ6Dr776SklJSZo8ebKmT5+u0047Tc2aNVP//v21bds2GYahX/ziF2rXrp2aNm2q6667Tnv27AnYxttvv62BAwcqLy9PqampOv300/WLX/xCx44dC1jvyy+/VHFxsXJzc5WWlqZ27dppyJAh2rt3b4Nt/OUvf6nk5GS6DgMORKUaAMt06tRJBQUF+utf/6qioiJJ0rvvvqu9e/dqyJAhmjp1asD6zz33nAYNGqTbbrtNNTU1mjt3rm666SbNnz9fAwcOlCR99tlnuuaaa9S9e3dNnDhRqamp2rhxo/75z3+GbMehQ4d03XXX6eOPP9bixYt10UUXWXfQAAAg4XXs2FFlZWVat26dunbtGtU2Ro8erdzcXE2YMEGrVq3SH/7wB2VmZurDDz9Uhw4d9Otf/1oLFizQpEmT1LVrV/3kJz8x+ShOWLRokYYOHaq+ffvqN7/5jSTpiy++0D//+U89+OCDDb72+++/14ABAzR48GDdfPPNev311/XYY4+pW7du/vvDAwcO6Morr9SOHTv04IMPKjc3V3PmzNGyZcvCat9HH32kDz/8UEOGDFG7du301VdfacaMGerdu7c+//xzNWvWrNFtzJ49WzU1NRo9erT27NmjZ555RjfffLOuvPJKLV++XI899pg2btyoadOm6ZFHHtELL7zgf+2sWbPUvHlzlZSUqHnz5lq6dKmeeuopVVVVadKkSZJ++I/lwsJCVVdX+6/tN998o/nz56uyslIZGRlB2/Xkk0/q17/+tf6//+//0/Dhw8M6HwDiyAAAk7344ouGJOOjjz4yfv/73xstWrQwDh48aBiGYdx0001Gnz59DMMwjI4dOxoDBw70v863jk9NTY3RtWtX48orr/Qv+93vfmdIMr799tuQ+1+2bJkhyXjttdeMffv2GVdccYXRunVr49NPPzXxKAEAAIL7xz/+YTRp0sRo0qSJUVBQYDz66KPGe++9Z9TU1NRbt2PHjsawYcP8j333UYWFhcbx48f9ywsKCoykpCTjpz/9qX/Z0aNHjXbt2hlXXHFFVO284oorgr522LBhRseOHf2PH3zwQSM9Pd04evRoyG357r+WLVsWsH1JxksvveRfVl1dbeTm5hrFxcX+Zb/97W8NScZbb73lX3bo0CHjrLPOqrfNYOreQxqGYZSVldXbdzCbN282JBlt2rQxKisr/cvHjh1rSDJ69OhhHDlyxL986NChRkpKinH48OEG93/vvfcazZo186/36aef+u9PGyLJGDlypGEYhvHwww8bycnJxqxZsxp8DQD70P0TgKVuvvlmHTp0SPPnz9e+ffs0f/78oF0/Jalp06b+v3///ffau3evfvzjH+uTTz7xL/d1o3j77bd1/PjxBve9d+9e9e/fX+vXr9fy5ct13nnnxXw8AAAAjbnqqqtUVlamQYMG6d///reeeeYZFRYW6tRTT9Xf/va3sLZxzz33KCkpyf+4V69eMgxD99xzj39ZkyZNdOGFF+r//u//TD+G2jIzM3XgwIGAIT3C1bx5c91+++3+xykpKerZs2dAmxcuXKhTTz1VgwYN8i9LS0sLuzKr9j3kkSNHtHv3bp1xxhnKzMwMuI9syE033RRQLdarVy9J0u233x4wNnCvXr1UU1Ojb775Juj+9+3bp++++04//vGPdfDgQa1fv16S/Nt+7733dPDgwQbbYhiGRo0apeeee05/+ctfNGzYsLCOAUD8EaoBsFSbNm3Ur18/zZkzR/PmzdOxY8d04403Bl13/vz5uvjii5WWlqasrCy1adNGM2bMCBhn4pZbbtGll16q//qv/1JOTo6GDBmiV199NWjA9tBDD+mjjz7S4sWLde6551p2jAAAAHVddNFFmjdvnr7//nv961//0tixY7Vv3z7deOON+vzzzxt9fYcOHQIe+0KZ9u3b11v+/fffm9fwIO6//3796Ec/UlFRkdq1a6e7775bCxcuDOu17dq1CwgHJally5YBbd6yZYtOP/30euudccYZYe3j0KFDeuqpp9S+fXulpqaqdevWatOmjSorKxsdr8wnkvMtKaD9n332mW644QZlZGQoPT1dbdq08QeJvv137txZJSUl+uMf/6jWrVursLBQ06dPD9q+l156SdOnT9e0adM0dOjQsNoPwB6EagAsd+utt+rdd9/VzJkzVVRUFHTQ3vfff1+DBg1SWlqann/+eS1YsECLFi3SrbfeGjD4btOmTbVy5UotXrxYd9xxh9auXatbbrlFV111Vb3BYK+77joZhqGnn3660ao2AAAAK6SkpOiiiy7Sr3/9a82YMUNHjhzRa6+9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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Retrieve the result\n", "sim = deesse_output['sim']\n", "\n", "# Display\n", "plt.subplots(1, 2, figsize=(15,5), sharey=True) # 1 x 2 sub-plots\n", "\n", "# ... the mask\n", "plt.subplot(1, 2, 1)\n", "gn.imgplot.drawImage2D(mask, categ=True, categCol=['gray', 'lightgreen'], title='Mask')\n", "\n", "# ... the simulation\n", "plt.subplot(1, 2, 2)\n", "gn.imgplot.drawImage2D(sim[0], categ=True, categVal=categ_val, categCol=categ_col, title='Sim. using a mask')\n", "\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "py313", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.7" } }, "nbformat": 4, "nbformat_minor": 4 }