{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Read D-FLOW FM model output from NetCDF and render using VTK" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import src.vtk_utils as vtk_utils" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "grid = vtk_utils.read_grid('../../test_data/par32/par32_dt0d6_24h_0000_map.nc')\n", "actor = vtk_utils.create_grid_actor(grid)\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "vtk_utils.show(actor, zoom = 1.95, cells=False, edges=True)\n", "\n", "# isolines=True,\n", "# wireframe=True) \n", "# camera_position=grid.GetPoint(0)\n", "\n", "# from vtk.util import numpy_support\n", "# xyz = numpy_support.vtk_to_numpy(grid.GetPoints().GetData())\n", "# plot(xyz)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "png": "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\n62arCrpR+SDNQjANJO4k6xkeyS2JY+0/qJ0HdXlPO3fr69/UXixJW6s6v66HNnXmhLYu6MQL43G+\nF5Pa4y3tv1sXnV68rhdv6eqBhrGc09aKHljXWzb1wCmd+JrcK75XNK3Gxfr4nN54u16P9eJ1Xbyl\ns4/rO09r4HR6RY/frXMb2npNJ56Wu97oCnsVR9p/RDuP6LV93bpbX/+m9mNJ2lzVmXU9tKm7Btr6\nU62/VH6JBs4DxXdo/wntn9HTL+ilW9pJNO/z6zq3oXsjbT0p95rvFc0Rx3IFd/LlnIreO6fd9+pK\npEs39PIt3fO4vvO0Vp3uXNH7H1e0q80XdOIbcrfaWWkf4lXtv027j+qNAx3erSe/qcNYkk6s6ty6\nzm/ozqE2v6b1y41+6978j7Qqvkf7H9D+ef3pBV2+pd1E8z67rntP6txtnfii3Oue17OMOU09Ye9+\n7f6grq7plRu6uKtbsSStOp1e0fse1/BNbT6jE0/J9egqQbyh/fdq9xFdvKbLt3T14Lh5n13XmZO6\nY093PSn3QrerZTAFMpC4Iy1+OLdo/1D7P6zvXddntvSkdPEdOpSG0pb0gPQj0nul97xfu7e11Zuf\ndnfaPSN3j56Tfv9ufVOajPCnpe+XPiRtSds/pI3nup3SGkntZRUruv4O7a/qS7G+cLcuSDtS9E6t\nSXdJPyT9uPTWc3LS4BUN+vIAhP113Xxcl1b0OelJ6fl3KJJiaU36PulD0vul7Y8p/vz4HwSflM8X\nafd+ubN6Svr8g3paenVcclp6p/RB6bR048PaeDq8Gdvj49JFL0scDrT/hIbreibWZ6UXpGuSe6fW\npLul70k/tqVz3ycXa/CqBn35ifj9U7r5dr1yQl+RvjZu3sNx8/6A9IS09ROKv1C6YcfBzw+JtP+4\nDs/rWekrD+obidF7XfpB6UekeyT3Qa19y0aCNdvUs45LD1e0/xFFG3r+UF+RnpOuSZLWpHuki9JH\nT2vlB3X7trZutL7CHXHav1d779CVdT17Wn8s/ZmOm/ej0vul969o/x6tfb65cdtVOS4Nf2/p4jjo\nC73nz5/njHtafNEpzt5JXzull1f087G+JL04PdCtSfdJ/670s9KZQ21d62p1W3a4ope39Vnp/5R+\nV9qZLt2QPir9jPQx6V6ntTea+2Kve8Trd+raiv5f6W9LF6cPEAbSQ9IHpZ+UPn6ozdd1IvyhqJxr\np/X6Cf38UF+VLkxv9Yb0gPQfST/ldL806Muwcbiu1+/UF6X/S/oX0ivTczE2pE9If0X6kHR6qLVm\nz8XO1dpx0e5Z3Tih35H+J+l70s3EaLcqPSp9VPrz0o/d1vqLOtGXcxDXzugP1vXPpS9J3xknc5Ii\naVt6WPrr0ied7trX2iUp6sO8+d27dPu0npT+H+nT0oVERQ+kTekvSJ+S3ieduhVep67a/nfv196W\nfk/6p9K/lHbHW30orUtvlz4ufUJ6/02dutDc2np16HT9AT25od+RviA9K10dFznplPQ26W9IH3fa\n2tWJF8stdNjKqQr3waCzYpk4484c9wynxxMop081Xd/VzZP61L6+IkkD6S3SR6U3JUnX9vXdC7r6\nq7qyJf2bA23eIzdzpqrxOd8VFr749+7t6Z9Jvyg9JUlO+ovJ+YA39M8+rfiSdE36S7HuO1P6e/M6\n72Q6qfMWiuu7urWhf76vX5Se17Z0SnpI2h6dez3U157XS89L35PeNtBbt3Viq/VVauVkWGKZcawb\nN3RlVT831B8e/e2M9KD0kPS6tHtDF76lG7+g3c1YP+l079my16xDFsfaH+rT0i9K46sIn5jka7HW\nruuF/1vPvCJdkz4x0H33lV90ic90c4IzNaX7+nUdbuvT+/oV6WltSuvS/eNJ+nff1hee0evPSN+R\n3r6qx9+SP7PcHS/zuNumZ43HiX+YvndIWQtJF6VfFxellnD9uq6t66L0a3LXFEt3SOelR6XXh7py\nVRef0tX/Qm4jjv/cmu48K6dmvretonIfu7WmP5B+UfrdozMhj0iPS69JOtD1q9r7dT3/mvTvSx89\nqXseaOx7SxUdlPhXi+8Wr19XdLc+u6dfkX5Lkh6WVse/1Xfmlr78de18Q/oz6fGT2n4gtZsuXHh3\nu+OZvxeKpVs3tbuhl6V/OKpdnZQekE5K90oX3tCLX9TNb0u/HOtHt7X2gJw8XT+0sNcwkLiTrKfF\n61l/jHXyHv03O/qanPQe6W9I/6p0SrGTJLcnPS39xrP61f9ZVw6lv76uEx2vdwviWE/d1j+R/kRO\n+qT0H0rvS/xg6TXpp6VfeFqf/XXFd0l/ea3iF41Gz3g4+7pa0WQsrlAUD7V3qN/e19+Svqs7pJ+R\n/qr0tkRickX6DemXv6pn/670n5/U1sbx2Fp5lcpvb6lfwoqzfmxr5mOTM6mHimOdvEO/vKOvStIj\n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\n", "prompt_number": 4, "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "path = '../../test_data/par32/par32_dt0d6_24h_0000_map.nc'\n", "time_step = 0\n", "\n", "grid_water = vtk_utils.read_water_grid_from_nc(grid, time_step, path)\n", "\n", "vtk_utils.write_grid_to_vtk(grid_water, path + \"_water_\" + str(time_step) + \".vtk\", \"water_level\")\n", "# show(create_grid_actor(grid_water), zoom = 1.5, wireframe=True)" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "AttributeError", "evalue": "'NoneType' object has no attribute 'SetName'", "output_type": "pyerr", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mtime_step\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[0mgrid_water\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mvtk_utils\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_water_grid_from_nc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mgrid\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtime_step\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpath\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 5\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[0mvtk_utils\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwrite_grid_to_vtk\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mgrid_water\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpath\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m\"_water_\"\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtime_step\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m\".vtk\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"water_level\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32mD:\\src\\ds\\trunk\\additional\\unstruc\\python\\notebooks\\src\\vtk_utils.pyc\u001b[0m in \u001b[0;36mread_water_grid_from_nc\u001b[1;34m(bathymetry_grid, time_step, path)\u001b[0m\n\u001b[0;32m 237\u001b[0m \u001b[0mpoint_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgrid_water\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGetPointData\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGetArray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 238\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 239\u001b[1;33m \u001b[0mgrid_water\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGetPointData\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGetScalars\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSetName\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"water_level\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 240\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 241\u001b[0m \u001b[1;32mprint\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGetComponentName\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mAttributeError\u001b[0m: 'NoneType' object has no attribute 'SetName'" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "import glob\n", "\n", "# for f in []:\n", "for f in glob.glob('./*.nc'):\n", " grid = vtk_utils.read_grid(f)\n", " vtk_utils.write_grid_to_vtk(grid, f + '.vtk')\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ ".\\par32_dt0d6_24h_0000_map.nc.vtk\n", ".\\par32_dt0d6_24h_0001_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0002_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0003_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0004_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0005_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0006_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0007_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0008_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0009_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0010_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0011_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0012_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0013_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0014_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0015_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0016_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0017_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0018_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0019_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0020_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0021_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0022_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0023_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0024_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0025_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0026_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0027_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0028_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0029_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0030_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", ".\\par32_dt0d6_24h_0031_map.nc.vtk" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "pylab.rcParams['figure.figsize'] = (15.0, 8.0)\n", "pylab.rcParams['image.aspect'] = 'equal'\n", "\n", "files = glob.glob('../../test_data/par32/*.nc')\n", "\n", "p = ProgressBar(len(files))\n", "\n", "for i, f in enumerate(files):\n", " x, y, z, cells = read_grid_parameters_from_nc(f)\n", " plot(x, y, marker=',', linestyle='')\n", " p.animate(i)\n", " \n", "# plt.xlim(10000, 40000)\n", "# plt.ylim(0, 30000)\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }