├── 0_Welcome_VisualizationMiniCourse.pdf ├── 1_Introduction_to_2D_images.ipynb ├── 2_Introduction_3D_images_volumetric_exploration.ipynb ├── 3_SurfaceVisualization.ipynb └── README.md /0_Welcome_VisualizationMiniCourse.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dr-masha/drp_visualization_mini_course/09630dc38092ee13929fb08966cfd6fa7e2642f3/0_Welcome_VisualizationMiniCourse.pdf -------------------------------------------------------------------------------- /2_Introduction_3D_images_volumetric_exploration.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Objectives\n", 8 | "\n", 9 | "Authors/Copyright: Masa Prodanovic and James McClure, all right reserved.\\\n", 10 | "Update: October 2020\n", 11 | "\n", 12 | "In this lecture we will work with visual inspection of a volumetric data (3D stack). Unlike 2D images that have widely adopted, if different, image formats (jpeg, png, tiff...), the same is not true for 3D data. \n", 13 | "\n", 14 | "In addition to well documented formats (tiff, netcdf, or simply a stack of indexed 2D images stored as tifs or jpegs), it is very common to store them as binary arrays in which case someone has to tell you what image size, data type and endian-ness is (or email you or save somewhere or...you see how that information can be easily lost). \n", 15 | "\n", 16 | "Sometimes images are even saved as text (ASCII, human-readable rather than binary) data, which has limitations on number types, accuracy and size.\n", 17 | "\n", 18 | "Additional resources: \n", 19 | "- Check out associated introduction slides\n", 20 | "- http://scipy-lectures.org/packages/3d_plotting/index.html" 21 | ] 22 | }, 23 | { 24 | "cell_type": "markdown", 25 | "metadata": {}, 26 | "source": [ 27 | "## Imports\n", 28 | "For better clarity, let's import all required modules here at the beginning." 29 | ] 30 | }, 31 | { 32 | "cell_type": "code", 33 | "execution_count": 1, 34 | "metadata": { 35 | "ExecuteTime": { 36 | "end_time": "2020-10-22T04:17:20.386318Z", 37 | "start_time": "2020-10-22T04:17:17.387551Z" 38 | } 39 | }, 40 | "outputs": [], 41 | "source": [ 42 | "import requests # library for file download\n", 43 | "\n", 44 | "import numpy as np\n", 45 | "import matplotlib.pyplot as plt\n", 46 | "\n", 47 | "# - Requires 'conda install mayavi' in Terminal (note that under Windows, \n", 48 | "# - You need to run Anaconda Powershell as administrator (right click on it))\n", 49 | "# - You might need to update all installed packages to make it work. \n", 50 | "# 'conda update --all', also as an administrator\n", 51 | "\n", 52 | "from mayavi import mlab" 53 | ] 54 | }, 55 | { 56 | "cell_type": "markdown", 57 | "metadata": { 58 | "ExecuteTime": { 59 | "end_time": "2020-06-26T06:19:17.846849Z", 60 | "start_time": "2020-06-26T06:19:17.843855Z" 61 | } 62 | }, 63 | "source": [ 64 | "## Basic review of 3D data ordering in NumPy array" 65 | ] 66 | }, 67 | { 68 | "cell_type": "code", 69 | "execution_count": 2, 70 | "metadata": { 71 | "ExecuteTime": { 72 | "end_time": "2020-10-22T04:17:20.405223Z", 73 | "start_time": "2020-10-22T04:17:20.394251Z" 74 | } 75 | }, 76 | "outputs": [ 77 | { 78 | "name": "stdout", 79 | "output_type": "stream", 80 | "text": [ 81 | "original\n", 82 | " [[[0. 0. 0. 0.]\n", 83 | " [0. 0. 0. 0.]\n", 84 | " [0. 0. 0. 0.]]\n", 85 | "\n", 86 | " [[0. 0. 0. 0.]\n", 87 | " [0. 0. 0. 0.]\n", 88 | " [0. 0. 0. 0.]]]\n", 89 | "change\n", 90 | " [[[0. 0. 0. 0.]\n", 91 | " [0. 0. 0. 0.]\n", 92 | " [0. 0. 0. 0.]]\n", 93 | "\n", 94 | " [[1. 1. 1. 1.]\n", 95 | " [1. 1. 1. 1.]\n", 96 | " [1. 1. 1. 1.]]]\n", 97 | "change\n", 98 | " [[[0. 0. 0. 0.]\n", 99 | " [0. 0. 0. 0.]\n", 100 | " [6. 6. 6. 6.]]\n", 101 | "\n", 102 | " [[1. 1. 1. 1.]\n", 103 | " [1. 1. 1. 1.]\n", 104 | " [1. 1. 1. 1.]]]\n", 105 | "This shows how 3D array would be fit into a continous section of memory when written as a binary file\n", 106 | " [[0. 0. 0. 0. 0. 0. 0. 0. 6. 6. 6. 6. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]\n" 107 | ] 108 | } 109 | ], 110 | "source": [ 111 | "# create a simple 3D array of all zeros and print it, \n", 112 | "# so we see how NumPy visualizes positions.\n", 113 | "slices = 2\n", 114 | "height = 3\n", 115 | "width = 4\n", 116 | "A = np.zeros([slices,height,width])\n", 117 | "\n", 118 | "print('original\\n',A)\n", 119 | "\n", 120 | "# Now we will modify certain positions to understand where \n", 121 | "# specific locations are\n", 122 | "\n", 123 | "A[1,:,:]=1\n", 124 | "print('change\\n',A)\n", 125 | "\n", 126 | "\n", 127 | "A[0,2,:] = 6\n", 128 | "print('change\\n',A)\n", 129 | "\n", 130 | "A.shape = (1,24)\n", 131 | "print('This shows how 3D array would be fit into a continous section', \n", 132 | " 'of memory when written as a binary file\\n',A)" 133 | ] 134 | }, 135 | { 136 | "cell_type": "code", 137 | "execution_count": 3, 138 | "metadata": { 139 | "ExecuteTime": { 140 | "end_time": "2020-10-22T04:17:08.444938Z", 141 | "start_time": "2020-10-22T04:17:08.345839Z" 142 | } 143 | }, 144 | "outputs": [ 145 | { 146 | "name": "stdout", 147 | "output_type": "stream", 148 | "text": [ 149 | "[[1. 1. 1. 1.]\n", 150 | " [1. 1. 1. 1.]\n", 151 | " [1. 1. 1. 1.]]\n" 152 | ] 153 | }, 154 | { 155 | "data": { 156 | "image/png": "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\n", 157 | "text/plain": [ 158 | "
" 159 | ] 160 | }, 161 | "metadata": { 162 | "needs_background": "light" 163 | }, 164 | "output_type": "display_data" 165 | } 166 | ], 167 | "source": [ 168 | "# reshape to the original shape\n", 169 | "A.shape = (2,3,4)\n", 170 | "\n", 171 | "fig, axes = plt.subplots(1, 2, tight_layout=True);\n", 172 | "\n", 173 | "axes[0].imshow(A[0,:,:], cmap='gray',vmin=0,vmax=6);\n", 174 | "axes[1].imshow(A[1,:,:], cmap='gray',vmin=0,vmax=6);\n", 175 | "print(A[1,:,:])\n", 176 | "\n" 177 | ] 178 | }, 179 | { 180 | "cell_type": "markdown", 181 | "metadata": {}, 182 | "source": [ 183 | "## Example: proxy vuggy carbonate CT scan\n", 184 | "Straining in vuggy media, Project 214, VS4005\n", 185 | "\n", 186 | "Numpy data types -- select the data type that matches your data!\n", 187 | "\n", 188 | "- ```np.byte``` -- signed 8-bit integer\n", 189 | "- ```np.ubyte``` -- unsigned 8-bit integer\n", 190 | "- ```np.int16``` -- signed 16-bit integer\n", 191 | "- ```np.unit16``` -- unsigned 16-bit integer \n", 192 | "- ```np.single``` -- single precision floating point\n", 193 | "- ```np.double``` -- double precision floating point\n", 194 | "\n", 195 | "Refer to the following for a complete list\n", 196 | "https://numpy.org/doc/stable/user/basics.types.html\n", 197 | "\n", 198 | "Byte ordering convention also matters (big vs little endian)\n", 199 | "\n", 200 | "```np.dtype.byteorder```\n", 201 | "\n", 202 | "https://numpy.org/doc/stable/user/basics.byteswapping.html" 203 | ] 204 | }, 205 | { 206 | "cell_type": "code", 207 | "execution_count": 4, 208 | "metadata": { 209 | "ExecuteTime": { 210 | "end_time": "2020-10-22T04:17:53.372896Z", 211 | "start_time": "2020-10-22T04:17:52.620233Z" 212 | } 213 | }, 214 | "outputs": [ 215 | { 216 | "data": { 217 | "text/plain": [ 218 | "'|'" 219 | ] 220 | }, 221 | "execution_count": 4, 222 | "metadata": {}, 223 | "output_type": "execute_result" 224 | } 225 | ], 226 | "source": [ 227 | "#Read the image from Digital Rocks Portal\n", 228 | "\n", 229 | "file_url = \"https://www.digitalrocksportal.org/projects/214/images/133772/download/\"\n", 230 | "filename = \"VS4005f_234x234x19x8bit.raw\"\n", 231 | "\n", 232 | "# download file\n", 233 | "r = requests.get(file_url, stream = True) \n", 234 | " \n", 235 | "with open(filename,\"wb\") as f: \n", 236 | " for chunk in r.iter_content(chunk_size=1024): \n", 237 | " \n", 238 | " #writing one chunk at a time to pdf file \n", 239 | " if chunk: \n", 240 | " f.write(chunk) \n", 241 | "\n", 242 | "# the file is binary (.raw) file, and requires information from \n", 243 | "# the webpage on how to read it.\n", 244 | "width = 234\n", 245 | "height = 234\n", 246 | "slices = 19\n", 247 | "\n", 248 | "# read date from file\n", 249 | "alldata = np.fromfile(filename, np.ubyte, sep=\"\")\n", 250 | "\n", 251 | "alldata.dtype.byteorder" 252 | ] 253 | }, 254 | { 255 | "cell_type": "markdown", 256 | "metadata": {}, 257 | "source": [ 258 | "## Layout for 3D data\n", 259 | "\n", 260 | "- Computer memory is one-dimensional\n", 261 | "\n", 262 | "- Order for data layout must match the convention from the original input file\n", 263 | "\n", 264 | "We will plot the 5th slice (cross-section) below.\n", 265 | "Note that there is a vug (large opening) embeded in the matrix of sintered glass beads." 266 | ] 267 | }, 268 | { 269 | "cell_type": "code", 270 | "execution_count": 5, 271 | "metadata": { 272 | "ExecuteTime": { 273 | "end_time": "2020-10-22T04:19:41.425596Z", 274 | "start_time": "2020-10-22T04:19:41.252922Z" 275 | } 276 | }, 277 | "outputs": [ 278 | { 279 | "data": { 280 | "image/png": "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13D2sc1bkNW8FfmuS9G3oRpY3KdswcJWeLlRMcwDwJW1MHsDsAv+SyNNX1G8yap25F5Jt+m+KwtYsx3YDpuhY6tyZAqt+eIKYB5UDKJY7H3wh41ykUdEHA0jRdRJkjTyRrEFv72DkKr7pvBmLOpRn0UiJgb6eKOlvW4QrqkTaS/3mX+tkG4xq7sXuTo+C9yLnN++rmF+I2yRLHROPiL3926ABuj+ivnCgAV1MOdHQAvUN4RC5eQDPVBUAit9pXXLfGx+UppQt2FVbyIijoEzRo96LGaRiImJxxlmqbYQ4pnR7L12n1wQVYOwrR1K28WlPn9lmj0D8CwKneuF/BL4uo8qmYMWEAegOhueGID6WnlbYsmriJFATCGPOGPRBtxnr78GfOQo+8xALovcbsjfGUKru1A03kAb9LfJko+IGA2cMRZ1RMTposceERHjhQSVE50siEQdERFxRiJa1BERERETGFGPOiIiImKCIxJ1RERExCRAdH1ERERETGDEKuQRERERExzR9RERERExCRCJOiIiImICIya8REREREwCRIs6IiIiYgIj+qgjIiIiJjgmW9THlBPvEhEREfHWw+BJPk4E51yZc+5J59yLzrkXnHN/btu/4pxrds5ts8flpzvWaFFHRESccRhh18cR4HNJktQ65/KB551zj9l7306S5PY320Ek6oiIiDMSI1jh5RXgFXvd7Zx7EdU3GjFE10dERMQZBx+eNxKuj+FwzpUDb0e1iwBudM5td8790Dl31umONxJ1RETEGYnMST6As51zW4c9PnG09pxzecBPgb9IkuR1VKp5PrAEWdzfOt2xRtdHRETEGYdBTinq47UkSZYdbwfnXDYi6R8nSbIBIEmStmHv/wB4+HTGCtGijoiIOENxChb1ceFU4fsfgBeTJPnbYdvPGbbbB4CdpzvWaFFHRESccRjhFPJ3o/KgO5xz22zbrcCHnHNLrLsm4IbT7SASdURExBmJEYz6eBpwR3nrFyPURSTqiIiIMw8xhTwiIiJigmOypZBHoo6IiDgjES3qiIiIiAmMqEcdERERMQkQLeqIiIiICYxoUUdERERMAkSLOiIiImICI0Z9RERERExwxDjqiIiIiAmOSNQRERERkwBxMTEiIiJiAiNa1BERERGTANGijoiIiJjASID+8R7EKSASdURExBmHmPASERERMQkwmXzUo1aKyzn3fudcg3PuJefczaPVT0RERMSpwi8mjlAprlHnulEhaudcFvA94DKgGpWkqR6NviIiIiJOB4Mn+TgexorrRsuifgfwUpIkjUmS9AP3A1eNUl8RERERpwSfQn4yjxNgTLjOJUky0m3inLsGeH+SJB+3/z8CLE+S5MZh+3wC+IT9uwBoGPGB/P84G3htDPoZacRxjz0m69gn67jh5Mc+L0mS4jfTkXPul9bfySAX6B32/51Jktxp7ZyQ60YCo7WYeLRCj2+YEexE7xyl/o8K59zWJEmWjWWfI4E47rHHZB37ZB03jO3YkyR5/wg1dUKuGwmMluvjAFA27P9zgZZR6isiIiJivDAmXDdaRP0cUOmc+z3nXA7wQeBno9RXRERExHhhTLhuVFwfSZIccc7dCGwEsoAfJknywmj0dYoYU1fLCCKOe+wxWcc+WccNk3DsY8V1o7KYGBERERExchi1hJeIiIiIiJFBJOqIiIiICY4zgqgnUzq7c67JObfDObfNObfVts1yzj3mnNtjz2eN9zgBnHM/dM696pzbOWzbMcfqnLvFPoMG59z7xmfUxxz3V5xzzXbdtznnLh/23oQYt42lzDn3pHPuRefcC865P7ftE/q6H2fck+K6jzuSJHlLP5CDfy9QAeQAdUD1eI/rOONtAs7+nW23ATfb65uB/zbe47SxvAeoAXaeaKwovbYOmAb8nn0mWRNo3F8BbjrKvhNm3DkJ828AAAJHSURBVDaec4Aae50P7LYxTujrfpxxT4rrPt6PM8Gifiuks18F/Mhe/wj4w3EcyxCSJPln4ODvbD7WWK8C7k+SpC9Jkt8AL6HPZsxxjHEfCxNm3ABJkrySJEmtve4GXgRKmeDX/TjjPhYmxLgnCs4Eoi4F9g/7/wDH/4KMNxLgUefc85ZmD1CSJMkroC88MHvcRndiHGusk+FzuNE5t91cI951MGHH7ZwrB94ObGESXfffGTdMsus+HjgTiHpMUjxHEO9OkqQGqXF9yjn3nvEe0Ahhon8OdwDzgSXAK8C3bPuEHLdzLg/4KfAXSZK8frxdj7Jt3MZ/lHFPqus+XjgTiHpSpbMnSdJiz68CD6LbvTbn3DkA9vzq+I3whDjWWCf055AkSVuSJJkkSQaBHxBusyfcuJ1z2YjsfpwkyQbbPOGv+9HGPZmu+3jiTCDqSZPO7pxLOefy/WvgvcBONN7rbLfrgIfGZ4QnhWON9WfAB51z05xzvwdUAr8eh/EdFZ7kDB9A1x0m2Lidcw74B+DFJEn+dthbE/q6H2vck+W6jzvGezVzLB7A5WiVeS/wxfEez3HGWYFWuuuAF/xYgSLgV8Aee5413mO1cd2HblcHkAX0seONFfiifQYNwGUTbNz/G9gBbEckcc5EG7eN5WLkAtgObLPH5RP9uh9n3JPiuo/3I6aQR0RERExwnAmuj4iIiIhJjUjUERERERMckagjIiIiJjgiUUdERERMcESijoiIiJjgiEQdERERMcERiToiIiJiguP/Ae6sXDvL997eAAAAAElFTkSuQmCC\n", 281 | "text/plain": [ 282 | "
" 283 | ] 284 | }, 285 | "metadata": { 286 | "needs_background": "light" 287 | }, 288 | "output_type": "display_data" 289 | } 290 | ], 291 | "source": [ 292 | "alldata.shape = (slices,height,width)\n", 293 | "\n", 294 | "# Test what happens when you mix up dimensions\n", 295 | "#alldata.shape = (height,width,slices)\n", 296 | "\n", 297 | "image=alldata[5,:,:]\n", 298 | "plt.figure(1)\n", 299 | "plt.pcolormesh(image,cmap='hot')\n", 300 | "plt.grid(True)\n", 301 | "plt.axis('equal')\n", 302 | "plt.colorbar()\n", 303 | "plt.show()" 304 | ] 305 | }, 306 | { 307 | "cell_type": "markdown", 308 | "metadata": {}, 309 | "source": [ 310 | "## Interactive Visualization with Mayavi\n", 311 | "\n", 312 | "We review interactive 3D visualization with Mayavi.\n", 313 | "\n", 314 | "Enthought company that specializes in scientific Python tools also maintains 3D visualization software Mayavi; as a result the two are well integrated. Most importantly for our applications, we can directly visualize NumPy arrays.\n", 315 | "\n", 316 | "Mayavi can be used as a standalone visualizing software, but we will use it within Python (specific library is called mlab).\n", 317 | "\n", 318 | "Installation:\n", 319 | "\n", 320 | "first update your Anaconda distribution (as that removes issues that could pop up): ‘conda update –all’\n", 321 | "Install Mayavi: ‘conda install mayavi’\n", 322 | "The above commands need to be run as an administrator in Anaconda powershell or Anaconda prompt (on Windows 10, right-click on the prompt)\n", 323 | "Online resources:\n", 324 | "\n", 325 | "https://docs.enthought.com/mayavi/mayavi/\n", 326 | "\n" 327 | ] 328 | }, 329 | { 330 | "cell_type": "markdown", 331 | "metadata": { 332 | "ExecuteTime": { 333 | "end_time": "2020-10-22T03:32:35.866696Z", 334 | "start_time": "2020-10-22T03:32:35.863530Z" 335 | } 336 | }, 337 | "source": [ 338 | "## Volume slicing example from Digital Rocks Portal\n", 339 | "\n", 340 | "See the following link for tips on using mayavi in jupyter notebooks\n", 341 | "\n", 342 | "https://docs.enthought.com/mayavi/mayavi/tips.html\n" 343 | ] 344 | }, 345 | { 346 | "cell_type": "code", 347 | "execution_count": 6, 348 | "metadata": { 349 | "ExecuteTime": { 350 | "end_time": "2020-10-22T04:20:06.323511Z", 351 | "start_time": "2020-10-22T04:19:55.267923Z" 352 | } 353 | }, 354 | "outputs": [], 355 | "source": [ 356 | "mlab.options.offscreen = True\n", 357 | "mlab.volume_slice(alldata, plane_orientation='x_axes', colormap='hot')\n", 358 | "mlab.savefig('VS4005f_slice3D.png')" 359 | ] 360 | }, 361 | { 362 | "cell_type": "markdown", 363 | "metadata": {}, 364 | "source": [ 365 | "## mlab.points3d \n", 366 | "This function plots points in 3D, represented with markers (or “glyphs”) and optionaly different sizes." 367 | ] 368 | }, 369 | { 370 | "cell_type": "code", 371 | "execution_count": 7, 372 | "metadata": { 373 | "ExecuteTime": { 374 | "end_time": "2020-10-22T03:55:23.863861Z", 375 | "start_time": "2020-10-22T03:55:19.839061Z" 376 | } 377 | }, 378 | "outputs": [], 379 | "source": [ 380 | "# A simple 3D plot of points in space\n", 381 | "mlab.options.offscreen = False\n", 382 | "# Create data\n", 383 | "# a 1D array\n", 384 | "x=np.linspace(1,4,4)\n", 385 | "\n", 386 | "# structured grid of 4 by 4 by 4 points (i.e. 3D) dictated by 1D array x\n", 387 | "X,Y,Z=np.meshgrid(x,x,x) \n", 388 | "r = np.sqrt(X*X + Y*Y + Z*Z) #\n", 389 | "\n", 390 | "# opens up a separate Mayavi scene\n", 391 | "mlab.figure(bgcolor=(1,1,1),size=(800,800))\n", 392 | "\n", 393 | "# point3d is a function for plotting individual points with coordinates \n", 394 | "# (x,y,z), with optional parameters 'r' that\n", 395 | "# modify sizes/colors of the markers for each point.\n", 396 | "mlab.points3d(X,Y,Z,r,resolution=16,opacity=0.7)\n", 397 | "mlab.show() #IMPORTANT to include in J. Notebooks or Spyder " 398 | ] 399 | }, 400 | { 401 | "cell_type": "markdown", 402 | "metadata": {}, 403 | "source": [ 404 | "## 3D surface plot using mplotlib\n", 405 | "This is classical way to do 3D plots in Python. It works fine, but the result is not interactive. For 3D data, whose visualization requires quite a bit of user input (there is no such thing as a default option working in most scientific 3D data visualization applications), this is barely adequate." 406 | ] 407 | }, 408 | { 409 | "cell_type": "code", 410 | "execution_count": 8, 411 | "metadata": { 412 | "ExecuteTime": { 413 | "end_time": "2020-10-22T03:22:36.895054Z", 414 | "start_time": "2020-10-22T03:22:36.465207Z" 415 | } 416 | }, 417 | "outputs": [ 418 | { 419 | "data": { 420 | "text/plain": [ 421 | "" 422 | ] 423 | }, 424 | "execution_count": 8, 425 | "metadata": {}, 426 | "output_type": "execute_result" 427 | }, 428 | { 429 | "data": { 430 | "image/png": "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\n", 431 | "text/plain": [ 432 | "
" 433 | ] 434 | }, 435 | "metadata": { 436 | "needs_background": "light" 437 | }, 438 | "output_type": "display_data" 439 | } 440 | ], 441 | "source": [ 442 | "# 3D surface plot\n", 443 | "\n", 444 | "# Create data for surface plot\n", 445 | "# Native matplotlib image is static\n", 446 | "\n", 447 | "import numpy as np\n", 448 | "x=np.linspace(-2,2,500)\n", 449 | "y = np.linspace(-2,2,500)\n", 450 | "#print(x)\n", 451 | "#print(y)\n", 452 | "\n", 453 | "X,Y = np.meshgrid(x,y)\n", 454 | "#print(X)\n", 455 | "#print(Y)\n", 456 | "\n", 457 | "Z = -X*(np.exp(- X**2 - Y**2))\n", 458 | "#print(Z)\n", 459 | "\n", 460 | "#First we plot it with matplotlib\n", 461 | "import matplotlib.pyplot as plt\n", 462 | "from mpl_toolkits.mplot3d import Axes3D\n", 463 | "\n", 464 | "fig = plt.figure() #opens up empty figure\n", 465 | "\n", 466 | "# tell the figure there will be a 3d projection\n", 467 | "ax = fig.add_subplot(111,projection='3d')\n", 468 | "\n", 469 | "# surface plot\n", 470 | "surf = ax.plot_surface(X,Y,Z,cmap='jet')\n", 471 | "# add colorbar\n", 472 | "fig.colorbar(surf)" 473 | ] 474 | }, 475 | { 476 | "cell_type": "markdown", 477 | "metadata": { 478 | "ExecuteTime": { 479 | "end_time": "2020-06-26T20:14:04.686520Z", 480 | "start_time": "2020-06-26T18:46:48.870210Z" 481 | } 482 | }, 483 | "source": [ 484 | "## 3D surface plot using Mayavi\n", 485 | "This script opens up a separate Mayavi scene, and the main benefit is that we can interact with the plot. The sequence of required steps (creating data on a regular grid) is similar to the above matplotlib example, alas slightly different gridding function has to be used (mgrid).\n", 486 | "\n", 487 | "Documentation on Python scripting that visualizes data in Mayavi (mlab module): https://docs.enthought.com/mayavi/mayavi/mlab.html\n" 488 | ] 489 | }, 490 | { 491 | "cell_type": "code", 492 | "execution_count": 9, 493 | "metadata": { 494 | "ExecuteTime": { 495 | "end_time": "2020-10-22T03:30:24.704482Z", 496 | "start_time": "2020-10-22T03:30:03.238291Z" 497 | } 498 | }, 499 | "outputs": [], 500 | "source": [ 501 | "#Create data\n", 502 | "\n", 503 | "# for Mayavi applications, we need to use mgrid, \n", 504 | "# do not confuse with meshgrid.\n", 505 | "# http://louistiao.me/posts/numpy-mgrid-vs-meshgrid/\n", 506 | "# Note the square brackets and the use of complex number \n", 507 | "# 100j to define 100 points \n", 508 | "X,Y = np.mgrid[-2:2:100j,-2:2:100j]\n", 509 | "\n", 510 | "# Create surface by defining height Z(i,j) for every (X(i,j), Y(i,j))\n", 511 | "Z = -X*(np.exp(- X**2 - Y**2))\n", 512 | "\n", 513 | "mlab.figure(size=(800,800)) # changing size because default is too small\n", 514 | "\n", 515 | "# optional: test this\n", 516 | "# color (1,1,1) is white\n", 517 | "# color (0,0,0) is black\n", 518 | "# mlab.figure(size=(600,600),bgcolor=(1,1,1),fgcolor=(0,0,0))\n", 519 | "\n", 520 | "# Option 1,\n", 521 | "mlab.surf(X,Y,Z,warp_scale=4.0) #warp_scale is optional; if ommitted scaling does not look right \n", 522 | "\n", 523 | "# Option 2: contour plot\n", 524 | "#mlab.contour_surf(X,Y,Z,contours=16) # 16 is the number of contours\n", 525 | "\n", 526 | "\n", 527 | "mlab.outline() # show box outline of the plot\n", 528 | " \n", 529 | "mlab.axes(xlabel='x',ylabel='y',zlabel='z', ranges=(-2, 2, -2, 2, -2, 2),nb_labels=5)\n", 530 | "\n", 531 | "mlab.orientation_axes() #small axes pointing in x,y,z directions\n", 532 | "\n", 533 | "mlab.colorbar()\n", 534 | "\n", 535 | "mlab.show() " 536 | ] 537 | }, 538 | { 539 | "cell_type": "markdown", 540 | "metadata": {}, 541 | "source": [ 542 | "## Plot 2D image slice as a 3D surface\n", 543 | "This example interprets 2D image data as height.\n", 544 | "\n", 545 | "We will go back to the image downloaded above and plot 5th slice.\n", 546 | "\n", 547 | "Note that this is CT image where only vug is well resolved, and the\n", 548 | "rest of the data is noisy (unresolved).\n", 549 | "\n", 550 | "We are providing only slice data (of heights), equivalent to Z array in the nice surface plot examples above.\n" 551 | ] 552 | }, 553 | { 554 | "cell_type": "code", 555 | "execution_count": null, 556 | "metadata": { 557 | "ExecuteTime": { 558 | "end_time": "2020-10-22T04:32:03.880338Z", 559 | "start_time": "2020-10-22T04:32:00.288202Z" 560 | } 561 | }, 562 | "outputs": [], 563 | "source": [ 564 | "mlab.figure(size=(800,800))\n", 565 | "mlab.surf(alldata[5,:,:])\n", 566 | "mlab.colorbar()\n", 567 | "mlab.show()" 568 | ] 569 | }, 570 | { 571 | "cell_type": "code", 572 | "execution_count": null, 573 | "metadata": {}, 574 | "outputs": [], 575 | "source": [] 576 | } 577 | ], 578 | "metadata": { 579 | "kernelspec": { 580 | "display_name": "Python 3", 581 | "language": "python", 582 | "name": "python3" 583 | }, 584 | "language_info": { 585 | "codemirror_mode": { 586 | "name": "ipython", 587 | "version": 3 588 | }, 589 | "file_extension": ".py", 590 | "mimetype": "text/x-python", 591 | "name": "python", 592 | "nbconvert_exporter": "python", 593 | "pygments_lexer": "ipython3", 594 | "version": "3.6.10" 595 | }, 596 | "toc": { 597 | "base_numbering": 1, 598 | "nav_menu": {}, 599 | "number_sections": true, 600 | "sideBar": true, 601 | "skip_h1_title": false, 602 | "title_cell": "Table of Contents", 603 | "title_sidebar": "Contents", 604 | "toc_cell": false, 605 | "toc_position": {}, 606 | "toc_section_display": true, 607 | "toc_window_display": false 608 | }, 609 | "varInspector": { 610 | "cols": { 611 | "lenName": 16, 612 | "lenType": 16, 613 | "lenVar": 40 614 | }, 615 | "kernels_config": { 616 | "python": { 617 | "delete_cmd_postfix": "", 618 | "delete_cmd_prefix": "del ", 619 | "library": "var_list.py", 620 | "varRefreshCmd": "print(var_dic_list())" 621 | }, 622 | "r": { 623 | "delete_cmd_postfix": ") ", 624 | "delete_cmd_prefix": "rm(", 625 | "library": "var_list.r", 626 | "varRefreshCmd": "cat(var_dic_list()) " 627 | } 628 | }, 629 | "types_to_exclude": [ 630 | "module", 631 | "function", 632 | "builtin_function_or_method", 633 | "instance", 634 | "_Feature" 635 | ], 636 | "window_display": false 637 | } 638 | }, 639 | "nbformat": 4, 640 | "nbformat_minor": 4 641 | } 642 | -------------------------------------------------------------------------------- /3_SurfaceVisualization.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "ExecuteTime": { 7 | "end_time": "2020-10-22T04:42:21.386172Z", 8 | "start_time": "2020-10-22T04:42:21.383180Z" 9 | } 10 | }, 11 | "source": [ 12 | "\n", 13 | "\n" 14 | ] 15 | }, 16 | { 17 | "cell_type": "markdown", 18 | "metadata": { 19 | "ExecuteTime": { 20 | "end_time": "2020-10-22T04:43:21.319426Z", 21 | "start_time": "2020-10-22T04:43:21.316421Z" 22 | } 23 | }, 24 | "source": [ 25 | "# Surface visualization in 3D\n", 26 | "Authors/Copyright: Masa Prodanovic and James McClure, all right reserved.\n", 27 | "\n", 28 | "Update: October 2020\n", 29 | "\n", 30 | "## Motivation\n", 31 | "\n", 32 | "Segmented (also sometimes binary) images are those where each pixel or voxel has been classified as a member of a finite number of groups (phases, physical objects, elements or whatever is of interest to identify).\n", 33 | "\n", 34 | "We will here not spend more on the subject of segmentation (__extremely important one!__), but will use one such segmented image to plot surfaces between different phases(e.g. fluids, mineral phases in subsurface porous media) has already been made. \n", 35 | "\n", 36 | "In 3D, it is very useful to draw surface that separates two phases or it is placed at an interpolated \"level\" of data. It is also called isosurface." 37 | ] 38 | }, 39 | { 40 | "cell_type": "markdown", 41 | "metadata": { 42 | "ExecuteTime": { 43 | "end_time": "2020-10-22T04:46:32.964979Z", 44 | "start_time": "2020-10-22T04:46:32.951944Z" 45 | } 46 | }, 47 | "source": [ 48 | "## Useful functions for download and statistics" 49 | ] 50 | }, 51 | { 52 | "cell_type": "code", 53 | "execution_count": 5, 54 | "metadata": { 55 | "ExecuteTime": { 56 | "end_time": "2020-10-22T04:44:15.865632Z", 57 | "start_time": "2020-10-22T04:44:15.858670Z" 58 | } 59 | }, 60 | "outputs": [], 61 | "source": [ 62 | "import requests # library for file download\n", 63 | "\n", 64 | "import numpy as np\n", 65 | "import matplotlib.pyplot as plt\n", 66 | " \n", 67 | "def download_file_url(file_url,filename):\n", 68 | "\n", 69 | " # download file\n", 70 | " r = requests.get(file_url, stream = True) \n", 71 | "\n", 72 | " with open(filename,\"wb\") as f: \n", 73 | " for chunk in r.iter_content(chunk_size=1024): \n", 74 | "\n", 75 | " # writing one chunk at a time to pdf file \n", 76 | " if chunk: \n", 77 | " f.write(chunk)\n", 78 | " return()\n", 79 | "\n", 80 | "\n", 81 | "\n", 82 | "def image_statistics(image,plot_histogram=False):\n", 83 | " print('\\nImage (ndarray) shape',image.shape)\n", 84 | " print('\\nImage data type',image.dtype)\n", 85 | "\n", 86 | " # This is a 2D image, and min, max and mean functions are programmed to work by dimension. \n", 87 | " # So we will reshape the array. \n", 88 | " # Be mindful that below we are on purpose creating another copy of the array (and doubles the memory use)\n", 89 | " dims = image.shape;\n", 90 | " reshaped_image = np.copy(image) \n", 91 | " reshaped_image.shape = (np.prod(dims),)\n", 92 | "\n", 93 | " # min, max, mean are functions that are built into ndarray class in NumPy. If we call them such as in example below,\n", 94 | " # then they will execute on the ndarray reshaped_image\n", 95 | " print('\\nImage values min:', reshaped_image.min(), 'max:',reshaped_image.max(), 'mean:',reshaped_image.mean())\n", 96 | "\n", 97 | " if plot_histogram:\n", 98 | " #Histogram\n", 99 | " # histogram has 256 bins, is normalized (density=True),\n", 100 | " # so that comparison with other images of different size is possible and is shown in green color\n", 101 | " plt.hist(reshaped_image, 256, density=True, facecolor='g', alpha=0.75)\n", 102 | "\n", 103 | " plt.xlabel('Image value')\n", 104 | " plt.ylabel('Probability')\n", 105 | "\n", 106 | " #plt.axis([40, 160, 0, 0.03])\n", 107 | " plt.grid(True)\n", 108 | " plt.show()\n", 109 | "\n", 110 | " return()" 111 | ] 112 | }, 113 | { 114 | "cell_type": "markdown", 115 | "metadata": {}, 116 | "source": [ 117 | "\n", 118 | "# Example from DRP\n", 119 | "\n", 120 | "We will download Digital Rocks Portal Example for the purpose from\n", 121 | "https://www.digitalrocksportal.org/projects/125/analysis_data/187/\n" 122 | ] 123 | }, 124 | { 125 | "cell_type": "code", 126 | "execution_count": 17, 127 | "metadata": { 128 | "ExecuteTime": { 129 | "end_time": "2020-10-22T05:10:41.679334Z", 130 | "start_time": "2020-10-22T05:10:31.332577Z" 131 | } 132 | }, 133 | "outputs": [ 134 | { 135 | "data": { 136 | "text/plain": [ 137 | "()" 138 | ] 139 | }, 140 | "execution_count": 17, 141 | "metadata": {}, 142 | "output_type": "execute_result" 143 | } 144 | ], 145 | "source": [ 146 | "# File download\n", 147 | "\n", 148 | "file_url = \"https://www.digitalrocksportal.org/projects/125/images/101255/download/\"\n", 149 | "filename = \"Ketton_segmented_oil_blob.raw\"\n", 150 | "\n", 151 | "download_file_url(file_url,filename)" 152 | ] 153 | }, 154 | { 155 | "cell_type": "code", 156 | "execution_count": 34, 157 | "metadata": { 158 | "ExecuteTime": { 159 | "end_time": "2020-10-22T05:27:52.047111Z", 160 | "start_time": "2020-10-22T05:27:52.032130Z" 161 | } 162 | }, 163 | "outputs": [], 164 | "source": [ 165 | "# Read downloaded file.\n", 166 | "\n", 167 | "# the file is binary (.raw) file, \n", 168 | "# and requires information from the webpage on how to read it.\n", 169 | "width = 365\n", 170 | "height = 255\n", 171 | "slices = 225\n", 172 | "\n", 173 | "# Alternative\n", 174 | "#dtype = 'u1'\n", 175 | "#byte = '<' # little endian byte order\n", 176 | "# read date from file\n", 177 | "#datatype = byte + dtype \n", 178 | "\n", 179 | "alldata = np.fromfile(filename, dtype=np.ubyte, sep=\"\")\n", 180 | "image = alldata.reshape([slices, height, width])" 181 | ] 182 | }, 183 | { 184 | "cell_type": "markdown", 185 | "metadata": { 186 | "ExecuteTime": { 187 | "end_time": "2020-07-16T06:12:52.765307Z", 188 | "start_time": "2020-07-16T06:12:52.760323Z" 189 | } 190 | }, 191 | "source": [ 192 | "## Image rescaling\n", 193 | "We rescale image to a smaller one in this exercise: this is useful for larger images where surface rendering might take a long time." 194 | ] 195 | }, 196 | { 197 | "cell_type": "code", 198 | "execution_count": 19, 199 | "metadata": { 200 | "ExecuteTime": { 201 | "end_time": "2020-10-22T05:13:21.254486Z", 202 | "start_time": "2020-10-22T05:13:20.397204Z" 203 | } 204 | }, 205 | "outputs": [ 206 | { 207 | "name": "stdout", 208 | "output_type": "stream", 209 | "text": [ 210 | "Original image stats\n", 211 | "\n", 212 | "\n", 213 | "Image (ndarray) shape (225, 255, 365)\n", 214 | "\n", 215 | "Image data type uint8\n", 216 | "\n", 217 | "Image values min: 1 max: 3 mean: 2.7589871967051662\n", 218 | "\n", 219 | "Image (ndarray) shape (112, 128, 182)\n", 220 | "\n", 221 | "Image data type float64\n", 222 | "\n", 223 | "Image values min: 0.9999999999999998 max: 2.999999999999999 mean: 2.758989161169739\n" 224 | ] 225 | }, 226 | { 227 | "data": { 228 | "text/plain": [ 229 | "()" 230 | ] 231 | }, 232 | "execution_count": 19, 233 | "metadata": {}, 234 | "output_type": "execute_result" 235 | } 236 | ], 237 | "source": [ 238 | "from mayavi import mlab\n", 239 | "import skimage.transform\n", 240 | "\n", 241 | "print('Original image stats\\n')\n", 242 | "image_statistics(image, plot_histogram=False)\n", 243 | "\n", 244 | "# need to downsample image since it is too large\n", 245 | "# Note - if I provide integer image below, then rescaling \n", 246 | "# shifts the image values even if I preserve_range (i.e. set it to True). \n", 247 | "# Hence I do a type conversion (image.astype(float))\n", 248 | "# Likely culprit:\n", 249 | "# Some online sites warn that skimage converts all floats to [-1,1]\n", 250 | "# and many functions return float even if they get integer array.\n", 251 | "image_rescaled = skimage.transform.rescale(image.astype(float), 0.5, preserve_range=True)\n", 252 | "\n", 253 | "# check stats on rescaled image to make sure the values are preserved\n", 254 | "image_statistics(image_rescaled, plot_histogram=False)\n", 255 | "\n", 256 | "# resizing has the same trouble with integer array input, \n", 257 | "# so would have to use image.astype(float) conversion\n", 258 | "\n", 259 | "#factor = 2\n", 260 | "#image_resized = skimage.transform.resize(image,[width/factor,height/factor, slices/factor])\n", 261 | "#image_statistics(image_resized,plot_histogram=False)" 262 | ] 263 | }, 264 | { 265 | "cell_type": "code", 266 | "execution_count": 41, 267 | "metadata": { 268 | "ExecuteTime": { 269 | "end_time": "2020-10-22T05:49:57.311214Z", 270 | "start_time": "2020-10-22T05:41:21.373427Z" 271 | } 272 | }, 273 | "outputs": [], 274 | "source": [ 275 | "mlab.volume_slice(image, plane_orientation='x_axes', colormap='gray')\n", 276 | "mlab.show()" 277 | ] 278 | }, 279 | { 280 | "cell_type": "markdown", 281 | "metadata": { 282 | "ExecuteTime": { 283 | "end_time": "2020-10-22T05:26:36.243976Z", 284 | "start_time": "2020-10-22T05:26:36.238990Z" 285 | } 286 | }, 287 | "source": [ 288 | "## Plot just oil blob\n", 289 | "\n", 290 | "In the segmented image, we have 1, 2 and 3 represent oil, brine and rock respectively.\n", 291 | "\n", 292 | "The interpolated value of 1.5 separated oil from everything else.\n", 293 | "\n", 294 | "Thus the surface passing through points where interpolated image values \n", 295 | "are 2.5 is a surface that separates both fluids and the rock." 296 | ] 297 | }, 298 | { 299 | "cell_type": "code", 300 | "execution_count": 33, 301 | "metadata": { 302 | "ExecuteTime": { 303 | "end_time": "2020-10-22T05:26:53.289216Z", 304 | "start_time": "2020-10-22T05:26:45.735390Z" 305 | } 306 | }, 307 | "outputs": [], 308 | "source": [ 309 | "from mayavi import mlab\n", 310 | "\n", 311 | "mlab.figure(bgcolor=(1,1,1),size=(800,800))\n", 312 | "mlab.clf()\n", 313 | "\n", 314 | "iso_oil=1.5\n", 315 | "mlab.contour3d(image,contours = [iso_oil],colormap='hot',opacity=1)\n", 316 | "mlab.show()" 317 | ] 318 | }, 319 | { 320 | "cell_type": "markdown", 321 | "metadata": {}, 322 | "source": [ 323 | "## Plot oil blob and grain surface" 324 | ] 325 | }, 326 | { 327 | "cell_type": "code", 328 | "execution_count": 28, 329 | "metadata": { 330 | "ExecuteTime": { 331 | "end_time": "2020-10-22T05:17:41.515659Z", 332 | "start_time": "2020-10-22T05:16:57.396031Z" 333 | } 334 | }, 335 | "outputs": [], 336 | "source": [ 337 | "from mayavi import mlab\n", 338 | "\n", 339 | "mlab.figure(bgcolor=(1,1,1),size=(800,800))\n", 340 | "mlab.clf()\n", 341 | "\n", 342 | "iso_grain = 2.5\n", 343 | "iso_oil=1.5\n", 344 | "mlab.contour3d(image_rescaled,contours = [iso_oil,iso_grain],opacity=0.25,colormap=\"hot\")\n", 345 | "mlab.outline(color=(0,0,0))\n", 346 | "mlab.show()" 347 | ] 348 | } 349 | ], 350 | "metadata": { 351 | "kernelspec": { 352 | "display_name": "Python 3", 353 | "language": "python", 354 | "name": "python3" 355 | }, 356 | "language_info": { 357 | "codemirror_mode": { 358 | "name": "ipython", 359 | "version": 3 360 | }, 361 | "file_extension": ".py", 362 | "mimetype": "text/x-python", 363 | "name": "python", 364 | "nbconvert_exporter": "python", 365 | "pygments_lexer": "ipython3", 366 | "version": "3.7.9" 367 | }, 368 | "toc": { 369 | "base_numbering": 1, 370 | "nav_menu": {}, 371 | "number_sections": true, 372 | "sideBar": true, 373 | "skip_h1_title": false, 374 | "title_cell": "Table of Contents", 375 | "title_sidebar": "Contents", 376 | "toc_cell": false, 377 | "toc_position": {}, 378 | "toc_section_display": true, 379 | "toc_window_display": false 380 | }, 381 | "varInspector": { 382 | "cols": { 383 | "lenName": 16, 384 | "lenType": 16, 385 | "lenVar": 40 386 | }, 387 | "kernels_config": { 388 | "python": { 389 | "delete_cmd_postfix": "", 390 | "delete_cmd_prefix": "del ", 391 | "library": "var_list.py", 392 | "varRefreshCmd": "print(var_dic_list())" 393 | }, 394 | "r": { 395 | "delete_cmd_postfix": ") ", 396 | "delete_cmd_prefix": "rm(", 397 | "library": "var_list.r", 398 | "varRefreshCmd": "cat(var_dic_list()) " 399 | } 400 | }, 401 | "types_to_exclude": [ 402 | "module", 403 | "function", 404 | "builtin_function_or_method", 405 | "instance", 406 | "_Feature" 407 | ], 408 | "window_display": false 409 | } 410 | }, 411 | "nbformat": 4, 412 | "nbformat_minor": 4 413 | } 414 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # drp_visualization_mini_course 2 | 3 | These are files related to the visualization mini course held on Oct 22, 2020 by Masa Prodanovic and James McClure 4 | 5 | Python Notebooks in this directory sample data from Digital Rocks Portal and explain basics of images stored there. 6 | 7 | More information: https://www.digitalrocksportal.org/visualization-challenge/ 8 | --------------------------------------------------------------------------------