├── .gitignore ├── 0_TEST.ipynb ├── 1_Welcome.ipynb ├── 2_Intro_to_Python_and_SciPy.ipynb ├── 3_Basic_PyART.ipynb ├── 4a_PyART_IO_in_detail.ipynb ├── 4b_PyART_data_model.ipynb ├── 5_Simple_proccessing_and_adding_a_field.ipynb ├── 6_Texture_and_Dealiasing.ipynb ├── 7_Mapping_to_a_cartesian_grid.ipynb ├── 8a_artview_demo_ams37.ipynb ├── 8b_plot_current_nexrad_open_artview.ipynb ├── 9a_CSU_RadarTools_Demo-AMS_OSRSC.ipynb ├── 9b_PyTDA_Demo-AMS_OSRSC.ipynb ├── LICENSE ├── README.md ├── course_outline.rst ├── data ├── README.md └── provision_data.sh ├── images ├── ams.jpg ├── arm_logo.png ├── freebeer.png ├── jupyter-logo.svg ├── matplotlib_logo.png ├── numpylogo.svg ├── python-logo.png └── scipy.png └── testme.py /.gitignore: -------------------------------------------------------------------------------- 1 | .ipynb_checkpoints 2 | data/ 3 | # ignore netCDF files created output by notebooks 4 | *.nc 5 | -------------------------------------------------------------------------------- /0_TEST.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "This notebook will test your system to check if Anaconda and Py-ART have been installed correctly. Select the cell below and execute by hitting shift+enter. If **Ready to go** is printed as the first line, everything is installed correctly. If **ISSUES** is printed or you get an error, something is mis-configured with your system, ask one of the instructors for help." 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": null, 13 | "metadata": { 14 | "collapsed": false 15 | }, 16 | "outputs": [], 17 | "source": [ 18 | "import pyart\n", 19 | "\n", 20 | "if pyart.__version__ == \"1.7.0\":\n", 21 | " if hasattr(pyart.graph, 'RadarMapDisplay'):\n", 22 | " print \"Ready to go\"\n", 23 | " else:\n", 24 | " print \"ISSUES\\n\\nMissing\\Broken Basemap\\n\"\n", 25 | " pyart._debug_info()\n", 26 | "else:\n", 27 | " print \"ISSUES\\n\\nWrong Py-ART version\\n\"\n", 28 | " pyart._debug_info()" 29 | ] 30 | } 31 | ], 32 | "metadata": { 33 | "kernelspec": { 34 | "display_name": "Python 3", 35 | "language": "python", 36 | "name": "python3" 37 | }, 38 | "language_info": { 39 | "codemirror_mode": { 40 | "name": "ipython", 41 | "version": 3 42 | }, 43 | "file_extension": ".py", 44 | "mimetype": "text/x-python", 45 | "name": "python", 46 | "nbconvert_exporter": "python", 47 | "pygments_lexer": "ipython3", 48 | "version": "3.5.2" 49 | } 50 | }, 51 | "nbformat": 4, 52 | "nbformat_minor": 0 53 | } 54 | -------------------------------------------------------------------------------- /1_Welcome.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "slideshow": { 7 | "slide_type": "slide" 8 | } 9 | }, 10 | "source": [ 11 | "# Welcome to the AMS Short Course on Open Source Radar Software" 12 | ] 13 | }, 14 | { 15 | "cell_type": "markdown", 16 | "metadata": { 17 | "slideshow": { 18 | "slide_type": "notes" 19 | } 20 | }, 21 | "source": [ 22 | "Stuff" 23 | ] 24 | }, 25 | { 26 | "cell_type": "markdown", 27 | "metadata": { 28 | "slideshow": { 29 | "slide_type": "fragment" 30 | } 31 | }, 32 | "source": [ 33 | "\n", 34 | "- Scott Collis, Argonne National Laboratory\n", 35 | "- Jonathan Helmus, Argonne National Laboratory\n", 36 | "- Nick Guy, University of Wyoming\n", 37 | "- Timothy Lang, NASA Marshall Space Flight Center \n", 38 | "- Joseph Hardin, Pacific Northwest National Laboratory\n", 39 | "- Marcus van Lier-Walqui, NASA Goddard Institute of Space Studies\n", 40 | "\n", 41 | "
\n", 42 | " \n", 43 | " \n", 44 | "
\n", 45 | "\n" 46 | ] 47 | }, 48 | { 49 | "cell_type": "markdown", 50 | "metadata": { 51 | "slideshow": { 52 | "slide_type": "slide" 53 | } 54 | }, 55 | "source": [ 56 | "#What Is Open Source?\n" 57 | ] 58 | }, 59 | { 60 | "cell_type": "markdown", 61 | "metadata": { 62 | "slideshow": { 63 | "slide_type": "fragment" 64 | } 65 | }, 66 | "source": [ 67 | "###\"Free software is a matter of liberty, not price. To understand the concept, you should think of free as in free speech, not as in free beer.\"\n", 68 | " #####—Richard Stallman\n", 69 | " \n", 70 | "######
Isummit 2008, Japan, free beer crop\" by shaddim - https://commons.wikimedia.org/wiki/File:Isummit_2008,_Japan,_free_beer.jpg. Licensed under CC BY-SA 2.5 via Commons
" 71 | ] 72 | }, 73 | { 74 | "cell_type": "markdown", 75 | "metadata": { 76 | "slideshow": { 77 | "slide_type": "slide" 78 | } 79 | }, 80 | "source": [ 81 | "#Course Objectives " 82 | ] 83 | }, 84 | { 85 | "cell_type": "markdown", 86 | "metadata": { 87 | "slideshow": { 88 | "slide_type": "fragment" 89 | } 90 | }, 91 | "source": [ 92 | "- To give a familiarity with Python and the Scientific Python ecosystem and IPython and project Jupyter" 93 | ] 94 | }, 95 | { 96 | "cell_type": "markdown", 97 | "metadata": { 98 | "slideshow": { 99 | "slide_type": "fragment" 100 | } 101 | }, 102 | "source": [ 103 | "- To introduce the Python ARM Radar Toolkit and reveal the data model used" 104 | ] 105 | }, 106 | { 107 | "cell_type": "markdown", 108 | "metadata": { 109 | "slideshow": { 110 | "slide_type": "fragment" 111 | } 112 | }, 113 | "source": [ 114 | "- To show how to plot a variety of different radar data with Py-ART" 115 | ] 116 | }, 117 | { 118 | "cell_type": "markdown", 119 | "metadata": { 120 | "slideshow": { 121 | "slide_type": "fragment" 122 | } 123 | }, 124 | "source": [ 125 | "- Demonstrate how to add a field so you can do processing on your own data" 126 | ] 127 | }, 128 | { 129 | "cell_type": "markdown", 130 | "metadata": { 131 | "slideshow": { 132 | "slide_type": "fragment" 133 | } 134 | }, 135 | "source": [ 136 | "- Introduce you to several tools in Py-ART including texture retrieval, dealiasing and gridding" 137 | ] 138 | }, 139 | { 140 | "cell_type": "markdown", 141 | "metadata": { 142 | "slideshow": { 143 | "slide_type": "slide" 144 | } 145 | }, 146 | "source": [ 147 | "#Course objectives\n", 148 | "- Introduce you to ART-View" 149 | ] 150 | }, 151 | { 152 | "cell_type": "markdown", 153 | "metadata": { 154 | "slideshow": { 155 | "slide_type": "fragment" 156 | } 157 | }, 158 | "source": [ 159 | "- Introduce you to an array of tools built on and independant of Py-ART for working with radar data" 160 | ] 161 | }, 162 | { 163 | "cell_type": "markdown", 164 | "metadata": { 165 | "slideshow": { 166 | "slide_type": "slide" 167 | } 168 | }, 169 | "source": [ 170 | "8:30 a.m.\tARRIVAL AND INTRODUCTIONS AND INSTALLATION OF SOFTWARE AND DATA. Collis and Helmus\n", 171 | "
9:15 a.m.\tAN INTRODUCTION TO PYTHON AND IPYTHON Jonathan Helmus\t \n", 172 | "9:30 a.m.\tBASIC PY-ART AND THE PY-ART DATA MODEL Jonathan Helmus\n", 173 | "
10:00 a.m.\tCOFFEE BREAK " 174 | ] 175 | }, 176 | { 177 | "cell_type": "markdown", 178 | "metadata": { 179 | "slideshow": { 180 | "slide_type": "fragment" 181 | } 182 | }, 183 | "source": [ 184 | "10:15 a.m.\tBASIC PY-ART AND THE PY-ART DATA MODEL (CONT) Jonathan Helmus\n", 185 | "
11:30 a.m.\tEXAMPLES OF RADAR PROCESSING USING PY-ART Scott Collis\n", 186 | "
12:00 a.m.\tLUNCH (included)" 187 | ] 188 | }, 189 | { 190 | "cell_type": "markdown", 191 | "metadata": { 192 | "slideshow": { 193 | "slide_type": "slide" 194 | } 195 | }, 196 | "source": [ 197 | "1:30 p.m.\tEXAMPLES OF RADAR PROCESSING USING PY-ART (CONT) Scott Collis\n", 198 | "
2:00 p.m.\tPy-ART TOOLS, TEXTURE, DEALIAS AND GRID Scott Collis\n", 199 | "
2:30 p.m.\tPYTHON TOOLS 1: ART-VIEW Nick Guy.\n", 200 | "
3:00 p.m\tCOFFEE BREAK" 201 | ] 202 | }, 203 | { 204 | "cell_type": "markdown", 205 | "metadata": { 206 | "slideshow": { 207 | "slide_type": "fragment" 208 | } 209 | }, 210 | "source": [ 211 | "3:30 p.m.\tPYTHON TOOLS 2: RADAR MET TOOLS. Tim Lang\n", 212 | "
4:15 p.m.\tWRAP UP AND FUTHER DISCUSSION. ALL\n", 213 | "
5:00 p.m.\tAdjourn. " 214 | ] 215 | }, 216 | { 217 | "cell_type": "markdown", 218 | "metadata": { 219 | "collapsed": true, 220 | "slideshow": { 221 | "slide_type": "slide" 222 | } 223 | }, 224 | "source": [ 225 | "#This is a living course" 226 | ] 227 | }, 228 | { 229 | "cell_type": "markdown", 230 | "metadata": { 231 | "collapsed": true, 232 | "slideshow": { 233 | "slide_type": "fragment" 234 | } 235 | }, 236 | "source": [ 237 | "- Data is at: This figshare repository\n" 238 | ] 239 | }, 240 | { 241 | "cell_type": "markdown", 242 | "metadata": { 243 | "slideshow": { 244 | "slide_type": "fragment" 245 | } 246 | }, 247 | "source": [ 248 | "- Materials live This GitHub Repository" 249 | ] 250 | }, 251 | { 252 | "cell_type": "code", 253 | "execution_count": null, 254 | "metadata": { 255 | "collapsed": true 256 | }, 257 | "outputs": [], 258 | "source": [] 259 | } 260 | ], 261 | "metadata": { 262 | "celltoolbar": "Slideshow", 263 | "kernelspec": { 264 | "display_name": "Python 2", 265 | "language": "python", 266 | "name": "python2" 267 | }, 268 | "language_info": { 269 | "codemirror_mode": { 270 | "name": "ipython", 271 | "version": 2 272 | }, 273 | "file_extension": ".py", 274 | "mimetype": "text/x-python", 275 | "name": "python", 276 | "nbconvert_exporter": "python", 277 | "pygments_lexer": "ipython2", 278 | "version": "2.7.10" 279 | } 280 | }, 281 | "nbformat": 4, 282 | "nbformat_minor": 0 283 | } 284 | -------------------------------------------------------------------------------- /2_Intro_to_Python_and_SciPy.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "slideshow": { 7 | "slide_type": "slide" 8 | } 9 | }, 10 | "source": [ 11 | "\n", 12 | "\n", 13 | "### Python\n", 14 | "\n", 15 | "* General-purpose.\n", 16 | "* Interpreted.\n", 17 | "* Focuses on readability.\n", 18 | "* Excellent for interfacing with C, C++ and Fortran code. \n", 19 | "* Comprehesive standard library.\n", 20 | "* Extended with a large number of third-party packages.\n", 21 | "* Widely used in scientific programming." 22 | ] 23 | }, 24 | { 25 | "cell_type": "markdown", 26 | "metadata": { 27 | "slideshow": { 28 | "slide_type": "notes" 29 | } 30 | }, 31 | "source": [ 32 | "This presentation will give a brief into to some key features of Python and the Scientific Python ecosystem to help those not familar with the language with the remainder of the class. This is in no way a comprehensive introduction to either topic. Excellent tutorials on Python and Scientific Python can be found online.\n", 33 | "\n", 34 | "We will be using IPython for this class which is a package which allows Python code to be run inside a browser. This is in no way the only way to run python, the Python/IPython shell, scripts and various IDEs can also be used but will not be coverted.\n", 35 | "\n", 36 | "The notebook for this materials is available if you wish to follow along on your own computer, but we will be moving fast..." 37 | ] 38 | }, 39 | { 40 | "cell_type": "markdown", 41 | "metadata": { 42 | "slideshow": { 43 | "slide_type": "slide" 44 | } 45 | }, 46 | "source": [ 47 | "## Variables\n", 48 | "\n", 49 | "* ### Integers" 50 | ] 51 | }, 52 | { 53 | "cell_type": "code", 54 | "execution_count": null, 55 | "metadata": { 56 | "collapsed": false, 57 | "slideshow": { 58 | "slide_type": "fragment" 59 | } 60 | }, 61 | "outputs": [], 62 | "source": [ 63 | "a = 1" 64 | ] 65 | }, 66 | { 67 | "cell_type": "code", 68 | "execution_count": null, 69 | "metadata": { 70 | "collapsed": false, 71 | "slideshow": { 72 | "slide_type": "-" 73 | } 74 | }, 75 | "outputs": [], 76 | "source": [ 77 | "a + 1" 78 | ] 79 | }, 80 | { 81 | "cell_type": "markdown", 82 | "metadata": { 83 | "slideshow": { 84 | "slide_type": "fragment" 85 | } 86 | }, 87 | "source": [ 88 | "* ### Floating point numbers" 89 | ] 90 | }, 91 | { 92 | "cell_type": "code", 93 | "execution_count": null, 94 | "metadata": { 95 | "collapsed": false, 96 | "slideshow": { 97 | "slide_type": "fragment" 98 | } 99 | }, 100 | "outputs": [], 101 | "source": [ 102 | "b = 2.1" 103 | ] 104 | }, 105 | { 106 | "cell_type": "code", 107 | "execution_count": null, 108 | "metadata": { 109 | "collapsed": false, 110 | "slideshow": { 111 | "slide_type": "-" 112 | } 113 | }, 114 | "outputs": [], 115 | "source": [ 116 | "b + 1" 117 | ] 118 | }, 119 | { 120 | "cell_type": "code", 121 | "execution_count": null, 122 | "metadata": { 123 | "collapsed": false, 124 | "slideshow": { 125 | "slide_type": "-" 126 | } 127 | }, 128 | "outputs": [], 129 | "source": [ 130 | "a + b" 131 | ] 132 | }, 133 | { 134 | "cell_type": "code", 135 | "execution_count": null, 136 | "metadata": { 137 | "collapsed": false, 138 | "slideshow": { 139 | "slide_type": "-" 140 | } 141 | }, 142 | "outputs": [], 143 | "source": [ 144 | "type(a + b)" 145 | ] 146 | }, 147 | { 148 | "cell_type": "markdown", 149 | "metadata": { 150 | "slideshow": { 151 | "slide_type": "slide" 152 | } 153 | }, 154 | "source": [ 155 | "## Variables\n", 156 | "\n", 157 | "* ### Complex numbers" 158 | ] 159 | }, 160 | { 161 | "cell_type": "code", 162 | "execution_count": null, 163 | "metadata": { 164 | "collapsed": true, 165 | "slideshow": { 166 | "slide_type": "fragment" 167 | } 168 | }, 169 | "outputs": [], 170 | "source": [ 171 | "c = 1.5 + 0.5j # complex numbers" 172 | ] 173 | }, 174 | { 175 | "cell_type": "code", 176 | "execution_count": null, 177 | "metadata": { 178 | "collapsed": false, 179 | "slideshow": { 180 | "slide_type": "-" 181 | } 182 | }, 183 | "outputs": [], 184 | "source": [ 185 | "print c.real\n", 186 | "print c.imag" 187 | ] 188 | }, 189 | { 190 | "cell_type": "markdown", 191 | "metadata": { 192 | "slideshow": { 193 | "slide_type": "fragment" 194 | } 195 | }, 196 | "source": [ 197 | " * ### Booleans" 198 | ] 199 | }, 200 | { 201 | "cell_type": "code", 202 | "execution_count": null, 203 | "metadata": { 204 | "collapsed": true, 205 | "slideshow": { 206 | "slide_type": "fragment" 207 | } 208 | }, 209 | "outputs": [], 210 | "source": [ 211 | "d = 3 > 4 " 212 | ] 213 | }, 214 | { 215 | "cell_type": "code", 216 | "execution_count": null, 217 | "metadata": { 218 | "collapsed": false, 219 | "slideshow": { 220 | "slide_type": "-" 221 | } 222 | }, 223 | "outputs": [], 224 | "source": [ 225 | "print d" 226 | ] 227 | }, 228 | { 229 | "cell_type": "code", 230 | "execution_count": null, 231 | "metadata": { 232 | "collapsed": false, 233 | "slideshow": { 234 | "slide_type": "-" 235 | } 236 | }, 237 | "outputs": [], 238 | "source": [ 239 | "type(d)" 240 | ] 241 | }, 242 | { 243 | "cell_type": "markdown", 244 | "metadata": { 245 | "slideshow": { 246 | "slide_type": "slide" 247 | } 248 | }, 249 | "source": [ 250 | "## Variables\n", 251 | "\n", 252 | "* ### Strings" 253 | ] 254 | }, 255 | { 256 | "cell_type": "code", 257 | "execution_count": null, 258 | "metadata": { 259 | "collapsed": false, 260 | "slideshow": { 261 | "slide_type": "fragment" 262 | } 263 | }, 264 | "outputs": [], 265 | "source": [ 266 | "s = \"Hello everyone\"\n", 267 | "type(s)" 268 | ] 269 | }, 270 | { 271 | "cell_type": "code", 272 | "execution_count": null, 273 | "metadata": { 274 | "collapsed": false, 275 | "slideshow": { 276 | "slide_type": "fragment" 277 | } 278 | }, 279 | "outputs": [], 280 | "source": [ 281 | "a = \"Hello \" \n", 282 | "b = \"World\"\n", 283 | "print a + b" 284 | ] 285 | }, 286 | { 287 | "cell_type": "markdown", 288 | "metadata": { 289 | "slideshow": { 290 | "slide_type": "slide" 291 | } 292 | }, 293 | "source": [ 294 | "## Variables can be cast from one type to another" 295 | ] 296 | }, 297 | { 298 | "cell_type": "code", 299 | "execution_count": null, 300 | "metadata": { 301 | "collapsed": false, 302 | "slideshow": { 303 | "slide_type": "fragment" 304 | } 305 | }, 306 | "outputs": [], 307 | "source": [ 308 | "a = 1\n", 309 | "print a\n", 310 | "print type(a)" 311 | ] 312 | }, 313 | { 314 | "cell_type": "code", 315 | "execution_count": null, 316 | "metadata": { 317 | "collapsed": false, 318 | "slideshow": { 319 | "slide_type": "-" 320 | } 321 | }, 322 | "outputs": [], 323 | "source": [ 324 | "b = float(a)\n", 325 | "print b\n", 326 | "print type(b)" 327 | ] 328 | }, 329 | { 330 | "cell_type": "code", 331 | "execution_count": null, 332 | "metadata": { 333 | "collapsed": false, 334 | "slideshow": { 335 | "slide_type": "fragment" 336 | } 337 | }, 338 | "outputs": [], 339 | "source": [ 340 | "s = \"1.23\"\n", 341 | "print s\n", 342 | "print type(s)" 343 | ] 344 | }, 345 | { 346 | "cell_type": "code", 347 | "execution_count": null, 348 | "metadata": { 349 | "collapsed": false, 350 | "slideshow": { 351 | "slide_type": "-" 352 | } 353 | }, 354 | "outputs": [], 355 | "source": [ 356 | "f = float(s)\n", 357 | "print f\n", 358 | "print type(f)" 359 | ] 360 | }, 361 | { 362 | "cell_type": "markdown", 363 | "metadata": { 364 | "slideshow": { 365 | "slide_type": "slide" 366 | } 367 | }, 368 | "source": [ 369 | "## Containers" 370 | ] 371 | }, 372 | { 373 | "cell_type": "markdown", 374 | "metadata": { 375 | "slideshow": { 376 | "slide_type": "-" 377 | } 378 | }, 379 | "source": [ 380 | "* ### Lists" 381 | ] 382 | }, 383 | { 384 | "cell_type": "code", 385 | "execution_count": null, 386 | "metadata": { 387 | "collapsed": false, 388 | "slideshow": { 389 | "slide_type": "fragment" 390 | } 391 | }, 392 | "outputs": [], 393 | "source": [ 394 | "l = ['red', 'blue', 'green', 'black', 'white']" 395 | ] 396 | }, 397 | { 398 | "cell_type": "code", 399 | "execution_count": null, 400 | "metadata": { 401 | "collapsed": false, 402 | "slideshow": { 403 | "slide_type": "fragment" 404 | } 405 | }, 406 | "outputs": [], 407 | "source": [ 408 | "len(l)" 409 | ] 410 | }, 411 | { 412 | "cell_type": "markdown", 413 | "metadata": { 414 | "slideshow": { 415 | "slide_type": "slide" 416 | } 417 | }, 418 | "source": [ 419 | "### Indexing" 420 | ] 421 | }, 422 | { 423 | "cell_type": "code", 424 | "execution_count": null, 425 | "metadata": { 426 | "collapsed": false, 427 | "slideshow": { 428 | "slide_type": "fragment" 429 | } 430 | }, 431 | "outputs": [], 432 | "source": [ 433 | "l" 434 | ] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "execution_count": null, 439 | "metadata": { 440 | "collapsed": false, 441 | "slideshow": { 442 | "slide_type": "fragment" 443 | } 444 | }, 445 | "outputs": [], 446 | "source": [ 447 | "print l[0]\n", 448 | "print l[1]\n", 449 | "print l[2]" 450 | ] 451 | }, 452 | { 453 | "cell_type": "code", 454 | "execution_count": null, 455 | "metadata": { 456 | "collapsed": false, 457 | "slideshow": { 458 | "slide_type": "fragment" 459 | } 460 | }, 461 | "outputs": [], 462 | "source": [ 463 | "print l[-1] # last element\n", 464 | "print l[-2]" 465 | ] 466 | }, 467 | { 468 | "cell_type": "code", 469 | "execution_count": null, 470 | "metadata": { 471 | "collapsed": false, 472 | "slideshow": { 473 | "slide_type": "fragment" 474 | } 475 | }, 476 | "outputs": [], 477 | "source": [ 478 | "l[0] = 'orange'\n", 479 | "print l" 480 | ] 481 | }, 482 | { 483 | "cell_type": "markdown", 484 | "metadata": { 485 | "slideshow": { 486 | "slide_type": "slide" 487 | } 488 | }, 489 | "source": [ 490 | "### Slicing" 491 | ] 492 | }, 493 | { 494 | "cell_type": "code", 495 | "execution_count": null, 496 | "metadata": { 497 | "collapsed": false, 498 | "slideshow": { 499 | "slide_type": "fragment" 500 | } 501 | }, 502 | "outputs": [], 503 | "source": [ 504 | "print l[2:5]" 505 | ] 506 | }, 507 | { 508 | "cell_type": "code", 509 | "execution_count": null, 510 | "metadata": { 511 | "collapsed": false, 512 | "slideshow": { 513 | "slide_type": "fragment" 514 | } 515 | }, 516 | "outputs": [], 517 | "source": [ 518 | "print l[2:-1]" 519 | ] 520 | }, 521 | { 522 | "cell_type": "code", 523 | "execution_count": null, 524 | "metadata": { 525 | "collapsed": false, 526 | "slideshow": { 527 | "slide_type": "fragment" 528 | } 529 | }, 530 | "outputs": [], 531 | "source": [ 532 | "print l[1:6:2]" 533 | ] 534 | }, 535 | { 536 | "cell_type": "code", 537 | "execution_count": null, 538 | "metadata": { 539 | "collapsed": false, 540 | "slideshow": { 541 | "slide_type": "fragment" 542 | } 543 | }, 544 | "outputs": [], 545 | "source": [ 546 | "l[::-1]" 547 | ] 548 | }, 549 | { 550 | "cell_type": "markdown", 551 | "metadata": { 552 | "slideshow": { 553 | "slide_type": "slide" 554 | } 555 | }, 556 | "source": [ 557 | "### Lists can store different type of variable in each element" 558 | ] 559 | }, 560 | { 561 | "cell_type": "code", 562 | "execution_count": null, 563 | "metadata": { 564 | "collapsed": false, 565 | "slideshow": { 566 | "slide_type": "fragment" 567 | } 568 | }, 569 | "outputs": [], 570 | "source": [ 571 | "ll = [5, 22.9, 14.8+1j, 'hello', [1,2,3]]" 572 | ] 573 | }, 574 | { 575 | "cell_type": "code", 576 | "execution_count": null, 577 | "metadata": { 578 | "collapsed": false, 579 | "slideshow": { 580 | "slide_type": "fragment" 581 | } 582 | }, 583 | "outputs": [], 584 | "source": [ 585 | "ll" 586 | ] 587 | }, 588 | { 589 | "cell_type": "code", 590 | "execution_count": null, 591 | "metadata": { 592 | "collapsed": false, 593 | "slideshow": { 594 | "slide_type": "fragment" 595 | } 596 | }, 597 | "outputs": [], 598 | "source": [ 599 | "print ll[0]\n", 600 | "print ll[1]\n", 601 | "print ll[2]\n", 602 | "print ll[3]\n", 603 | "print ll[4]" 604 | ] 605 | }, 606 | { 607 | "cell_type": "markdown", 608 | "metadata": { 609 | "slideshow": { 610 | "slide_type": "slide" 611 | } 612 | }, 613 | "source": [ 614 | "## Containers\n", 615 | "\n", 616 | "* ### Dictionaries" 617 | ] 618 | }, 619 | { 620 | "cell_type": "code", 621 | "execution_count": null, 622 | "metadata": { 623 | "collapsed": false, 624 | "slideshow": { 625 | "slide_type": "fragment" 626 | } 627 | }, 628 | "outputs": [], 629 | "source": [ 630 | "d = {'name': 'Jonathan', 'id': 223984, 'location': 'USA'}" 631 | ] 632 | }, 633 | { 634 | "cell_type": "code", 635 | "execution_count": null, 636 | "metadata": { 637 | "collapsed": false, 638 | "slideshow": { 639 | "slide_type": "fragment" 640 | } 641 | }, 642 | "outputs": [], 643 | "source": [ 644 | "d.keys()" 645 | ] 646 | }, 647 | { 648 | "cell_type": "code", 649 | "execution_count": null, 650 | "metadata": { 651 | "collapsed": false, 652 | "slideshow": { 653 | "slide_type": "fragment" 654 | } 655 | }, 656 | "outputs": [], 657 | "source": [ 658 | "d.values()" 659 | ] 660 | }, 661 | { 662 | "cell_type": "code", 663 | "execution_count": null, 664 | "metadata": { 665 | "collapsed": false, 666 | "slideshow": { 667 | "slide_type": "fragment" 668 | } 669 | }, 670 | "outputs": [], 671 | "source": [ 672 | "d['name']" 673 | ] 674 | }, 675 | { 676 | "cell_type": "code", 677 | "execution_count": null, 678 | "metadata": { 679 | "collapsed": false, 680 | "slideshow": { 681 | "slide_type": "fragment" 682 | } 683 | }, 684 | "outputs": [], 685 | "source": [ 686 | "d['id']" 687 | ] 688 | }, 689 | { 690 | "cell_type": "code", 691 | "execution_count": null, 692 | "metadata": { 693 | "collapsed": false, 694 | "slideshow": { 695 | "slide_type": "fragment" 696 | } 697 | }, 698 | "outputs": [], 699 | "source": [ 700 | "d['id'] = 1234" 701 | ] 702 | }, 703 | { 704 | "cell_type": "code", 705 | "execution_count": null, 706 | "metadata": { 707 | "collapsed": false, 708 | "slideshow": { 709 | "slide_type": "fragment" 710 | } 711 | }, 712 | "outputs": [], 713 | "source": [ 714 | "d['id']" 715 | ] 716 | }, 717 | { 718 | "cell_type": "markdown", 719 | "metadata": { 720 | "slideshow": { 721 | "slide_type": "slide" 722 | } 723 | }, 724 | "source": [ 725 | "## Containers\n", 726 | "\n", 727 | "* ### Tuples" 728 | ] 729 | }, 730 | { 731 | "cell_type": "code", 732 | "execution_count": null, 733 | "metadata": { 734 | "collapsed": false, 735 | "slideshow": { 736 | "slide_type": "fragment" 737 | } 738 | }, 739 | "outputs": [], 740 | "source": [ 741 | "t = ('red', 'blue', 'green')" 742 | ] 743 | }, 744 | { 745 | "cell_type": "code", 746 | "execution_count": null, 747 | "metadata": { 748 | "collapsed": false, 749 | "slideshow": { 750 | "slide_type": "fragment" 751 | } 752 | }, 753 | "outputs": [], 754 | "source": [ 755 | "t[0]" 756 | ] 757 | }, 758 | { 759 | "cell_type": "code", 760 | "execution_count": null, 761 | "metadata": { 762 | "collapsed": false, 763 | "slideshow": { 764 | "slide_type": "fragment" 765 | } 766 | }, 767 | "outputs": [], 768 | "source": [ 769 | "t[1:3]" 770 | ] 771 | }, 772 | { 773 | "cell_type": "code", 774 | "execution_count": null, 775 | "metadata": { 776 | "collapsed": false, 777 | "slideshow": { 778 | "slide_type": "fragment" 779 | } 780 | }, 781 | "outputs": [], 782 | "source": [ 783 | "t[1] = 'orange'" 784 | ] 785 | }, 786 | { 787 | "cell_type": "markdown", 788 | "metadata": { 789 | "slideshow": { 790 | "slide_type": "slide" 791 | } 792 | }, 793 | "source": [ 794 | "## Flow control\n", 795 | "\n", 796 | "* ### conditional (if, else, elif)" 797 | ] 798 | }, 799 | { 800 | "cell_type": "code", 801 | "execution_count": null, 802 | "metadata": { 803 | "collapsed": false, 804 | "slideshow": { 805 | "slide_type": "fragment" 806 | } 807 | }, 808 | "outputs": [], 809 | "source": [ 810 | "a = 10\n", 811 | "if a == 10:\n", 812 | " print \"a is 10\"" 813 | ] 814 | }, 815 | { 816 | "cell_type": "code", 817 | "execution_count": null, 818 | "metadata": { 819 | "collapsed": false, 820 | "slideshow": { 821 | "slide_type": "fragment" 822 | } 823 | }, 824 | "outputs": [], 825 | "source": [ 826 | "a = 10\n", 827 | "if a > 10:\n", 828 | " print \"a is larger than 10\"\n", 829 | "else:\n", 830 | " print \"a is less than 10... or maybe equal too\"" 831 | ] 832 | }, 833 | { 834 | "cell_type": "code", 835 | "execution_count": null, 836 | "metadata": { 837 | "collapsed": false, 838 | "slideshow": { 839 | "slide_type": "fragment" 840 | } 841 | }, 842 | "outputs": [], 843 | "source": [ 844 | "a = 4\n", 845 | "if a > 10:\n", 846 | " print \"a is larger than 10\"\n", 847 | "elif a < 10:\n", 848 | " print \"a is less than 10\"\n", 849 | "else:\n", 850 | " print \"a is equal to 10\"" 851 | ] 852 | }, 853 | { 854 | "cell_type": "markdown", 855 | "metadata": { 856 | "slideshow": { 857 | "slide_type": "slide" 858 | } 859 | }, 860 | "source": [ 861 | "## Flow control\n", 862 | "\n", 863 | "* ### Loops" 864 | ] 865 | }, 866 | { 867 | "cell_type": "code", 868 | "execution_count": null, 869 | "metadata": { 870 | "collapsed": false, 871 | "slideshow": { 872 | "slide_type": "fragment" 873 | } 874 | }, 875 | "outputs": [], 876 | "source": [ 877 | "for i in range(10):\n", 878 | " print i" 879 | ] 880 | }, 881 | { 882 | "cell_type": "code", 883 | "execution_count": null, 884 | "metadata": { 885 | "collapsed": false, 886 | "slideshow": { 887 | "slide_type": "fragment" 888 | } 889 | }, 890 | "outputs": [], 891 | "source": [ 892 | "for color in ['red', 'blue', 'orange']:\n", 893 | " print \"My favorite color is\", color" 894 | ] 895 | }, 896 | { 897 | "cell_type": "markdown", 898 | "metadata": { 899 | "slideshow": { 900 | "slide_type": "slide" 901 | } 902 | }, 903 | "source": [ 904 | "## Functions" 905 | ] 906 | }, 907 | { 908 | "cell_type": "code", 909 | "execution_count": null, 910 | "metadata": { 911 | "collapsed": false, 912 | "slideshow": { 913 | "slide_type": "fragment" 914 | } 915 | }, 916 | "outputs": [], 917 | "source": [ 918 | "def func():\n", 919 | " print \"Hello world\"" 920 | ] 921 | }, 922 | { 923 | "cell_type": "code", 924 | "execution_count": null, 925 | "metadata": { 926 | "collapsed": false, 927 | "slideshow": { 928 | "slide_type": "-" 929 | } 930 | }, 931 | "outputs": [], 932 | "source": [ 933 | "func()" 934 | ] 935 | }, 936 | { 937 | "cell_type": "code", 938 | "execution_count": null, 939 | "metadata": { 940 | "collapsed": false, 941 | "slideshow": { 942 | "slide_type": "fragment" 943 | } 944 | }, 945 | "outputs": [], 946 | "source": [ 947 | "def func2(name):\n", 948 | " print \"Hello\", name" 949 | ] 950 | }, 951 | { 952 | "cell_type": "code", 953 | "execution_count": null, 954 | "metadata": { 955 | "collapsed": false, 956 | "slideshow": { 957 | "slide_type": "-" 958 | } 959 | }, 960 | "outputs": [], 961 | "source": [ 962 | "func2(\"Jonathan\")" 963 | ] 964 | }, 965 | { 966 | "cell_type": "code", 967 | "execution_count": null, 968 | "metadata": { 969 | "collapsed": false, 970 | "slideshow": { 971 | "slide_type": "fragment" 972 | } 973 | }, 974 | "outputs": [], 975 | "source": [ 976 | "def times2(x):\n", 977 | " return x * 2" 978 | ] 979 | }, 980 | { 981 | "cell_type": "code", 982 | "execution_count": null, 983 | "metadata": { 984 | "collapsed": false, 985 | "slideshow": { 986 | "slide_type": "fragment" 987 | } 988 | }, 989 | "outputs": [], 990 | "source": [ 991 | "y = times2(2)\n", 992 | "print y" 993 | ] 994 | }, 995 | { 996 | "cell_type": "code", 997 | "execution_count": null, 998 | "metadata": { 999 | "collapsed": false, 1000 | "slideshow": { 1001 | "slide_type": "slide" 1002 | } 1003 | }, 1004 | "outputs": [], 1005 | "source": [ 1006 | "def times_something(x, y=2):\n", 1007 | " print x*y" 1008 | ] 1009 | }, 1010 | { 1011 | "cell_type": "code", 1012 | "execution_count": null, 1013 | "metadata": { 1014 | "collapsed": false, 1015 | "slideshow": { 1016 | "slide_type": "-" 1017 | } 1018 | }, 1019 | "outputs": [], 1020 | "source": [ 1021 | "times_something(3)" 1022 | ] 1023 | }, 1024 | { 1025 | "cell_type": "code", 1026 | "execution_count": null, 1027 | "metadata": { 1028 | "collapsed": false, 1029 | "slideshow": { 1030 | "slide_type": "-" 1031 | } 1032 | }, 1033 | "outputs": [], 1034 | "source": [ 1035 | "times_something(3, 3)" 1036 | ] 1037 | }, 1038 | { 1039 | "cell_type": "markdown", 1040 | "metadata": { 1041 | "slideshow": { 1042 | "slide_type": "slide" 1043 | } 1044 | }, 1045 | "source": [ 1046 | "## Classes" 1047 | ] 1048 | }, 1049 | { 1050 | "cell_type": "code", 1051 | "execution_count": null, 1052 | "metadata": { 1053 | "collapsed": false, 1054 | "slideshow": { 1055 | "slide_type": "fragment" 1056 | } 1057 | }, 1058 | "outputs": [], 1059 | "source": [ 1060 | "class Car(object):\n", 1061 | " \n", 1062 | " engine = 'V4' # class attribute\n", 1063 | " \n", 1064 | " def start(self): # class method\n", 1065 | " print \"Starting the car with a\", self.engine, \"engine\"" 1066 | ] 1067 | }, 1068 | { 1069 | "cell_type": "code", 1070 | "execution_count": null, 1071 | "metadata": { 1072 | "collapsed": false, 1073 | "slideshow": { 1074 | "slide_type": "-" 1075 | } 1076 | }, 1077 | "outputs": [], 1078 | "source": [ 1079 | "mycar = Car()" 1080 | ] 1081 | }, 1082 | { 1083 | "cell_type": "code", 1084 | "execution_count": null, 1085 | "metadata": { 1086 | "collapsed": false, 1087 | "slideshow": { 1088 | "slide_type": "-" 1089 | } 1090 | }, 1091 | "outputs": [], 1092 | "source": [ 1093 | "type(mycar)" 1094 | ] 1095 | }, 1096 | { 1097 | "cell_type": "code", 1098 | "execution_count": null, 1099 | "metadata": { 1100 | "collapsed": false, 1101 | "slideshow": { 1102 | "slide_type": "-" 1103 | } 1104 | }, 1105 | "outputs": [], 1106 | "source": [ 1107 | "mycar.engine" 1108 | ] 1109 | }, 1110 | { 1111 | "cell_type": "code", 1112 | "execution_count": null, 1113 | "metadata": { 1114 | "collapsed": false, 1115 | "slideshow": { 1116 | "slide_type": "-" 1117 | } 1118 | }, 1119 | "outputs": [], 1120 | "source": [ 1121 | "mycar.start()" 1122 | ] 1123 | }, 1124 | { 1125 | "cell_type": "code", 1126 | "execution_count": null, 1127 | "metadata": { 1128 | "collapsed": false, 1129 | "slideshow": { 1130 | "slide_type": "fragment" 1131 | } 1132 | }, 1133 | "outputs": [], 1134 | "source": [ 1135 | "mycar.engine = 'V6'" 1136 | ] 1137 | }, 1138 | { 1139 | "cell_type": "code", 1140 | "execution_count": null, 1141 | "metadata": { 1142 | "collapsed": false, 1143 | "slideshow": { 1144 | "slide_type": "-" 1145 | } 1146 | }, 1147 | "outputs": [], 1148 | "source": [ 1149 | "mycar.engine" 1150 | ] 1151 | }, 1152 | { 1153 | "cell_type": "code", 1154 | "execution_count": null, 1155 | "metadata": { 1156 | "collapsed": false, 1157 | "slideshow": { 1158 | "slide_type": "-" 1159 | } 1160 | }, 1161 | "outputs": [], 1162 | "source": [ 1163 | "mycar.start()" 1164 | ] 1165 | }, 1166 | { 1167 | "cell_type": "markdown", 1168 | "metadata": { 1169 | "slideshow": { 1170 | "slide_type": "slide" 1171 | } 1172 | }, 1173 | "source": [ 1174 | "## The Scientific Python ecosystem \n", 1175 | "\n", 1176 | "* ### NumPy\n", 1177 | "\n", 1178 | "![NumPy logo](images/numpylogo.svg)" 1179 | ] 1180 | }, 1181 | { 1182 | "cell_type": "code", 1183 | "execution_count": null, 1184 | "metadata": { 1185 | "collapsed": false, 1186 | "slideshow": { 1187 | "slide_type": "slide" 1188 | } 1189 | }, 1190 | "outputs": [], 1191 | "source": [ 1192 | "import numpy as np" 1193 | ] 1194 | }, 1195 | { 1196 | "cell_type": "code", 1197 | "execution_count": null, 1198 | "metadata": { 1199 | "collapsed": false, 1200 | "slideshow": { 1201 | "slide_type": "fragment" 1202 | } 1203 | }, 1204 | "outputs": [], 1205 | "source": [ 1206 | "a = np.array([0, 1, 2, 3, 4, 5, 6, 7])" 1207 | ] 1208 | }, 1209 | { 1210 | "cell_type": "code", 1211 | "execution_count": null, 1212 | "metadata": { 1213 | "collapsed": false, 1214 | "slideshow": { 1215 | "slide_type": "-" 1216 | } 1217 | }, 1218 | "outputs": [], 1219 | "source": [ 1220 | "a" 1221 | ] 1222 | }, 1223 | { 1224 | "cell_type": "code", 1225 | "execution_count": null, 1226 | "metadata": { 1227 | "collapsed": false, 1228 | "slideshow": { 1229 | "slide_type": "-" 1230 | } 1231 | }, 1232 | "outputs": [], 1233 | "source": [ 1234 | "a.shape" 1235 | ] 1236 | }, 1237 | { 1238 | "cell_type": "code", 1239 | "execution_count": null, 1240 | "metadata": { 1241 | "collapsed": false, 1242 | "slideshow": { 1243 | "slide_type": "-" 1244 | } 1245 | }, 1246 | "outputs": [], 1247 | "source": [ 1248 | "a.ndim" 1249 | ] 1250 | }, 1251 | { 1252 | "cell_type": "code", 1253 | "execution_count": null, 1254 | "metadata": { 1255 | "collapsed": false, 1256 | "slideshow": { 1257 | "slide_type": "-" 1258 | } 1259 | }, 1260 | "outputs": [], 1261 | "source": [ 1262 | "a.dtype" 1263 | ] 1264 | }, 1265 | { 1266 | "cell_type": "code", 1267 | "execution_count": null, 1268 | "metadata": { 1269 | "collapsed": false, 1270 | "slideshow": { 1271 | "slide_type": "slide" 1272 | } 1273 | }, 1274 | "outputs": [], 1275 | "source": [ 1276 | "a[0::2]" 1277 | ] 1278 | }, 1279 | { 1280 | "cell_type": "code", 1281 | "execution_count": null, 1282 | "metadata": { 1283 | "collapsed": false, 1284 | "slideshow": { 1285 | "slide_type": "-" 1286 | } 1287 | }, 1288 | "outputs": [], 1289 | "source": [ 1290 | "a[a>3]" 1291 | ] 1292 | }, 1293 | { 1294 | "cell_type": "code", 1295 | "execution_count": null, 1296 | "metadata": { 1297 | "collapsed": false, 1298 | "slideshow": { 1299 | "slide_type": "-" 1300 | } 1301 | }, 1302 | "outputs": [], 1303 | "source": [ 1304 | "a * 2 + 100" 1305 | ] 1306 | }, 1307 | { 1308 | "cell_type": "code", 1309 | "execution_count": null, 1310 | "metadata": { 1311 | "collapsed": false, 1312 | "slideshow": { 1313 | "slide_type": "-" 1314 | } 1315 | }, 1316 | "outputs": [], 1317 | "source": [ 1318 | "a.mean()" 1319 | ] 1320 | }, 1321 | { 1322 | "cell_type": "markdown", 1323 | "metadata": { 1324 | "slideshow": { 1325 | "slide_type": "slide" 1326 | } 1327 | }, 1328 | "source": [ 1329 | "### Arrays can be multi-dimensional" 1330 | ] 1331 | }, 1332 | { 1333 | "cell_type": "code", 1334 | "execution_count": null, 1335 | "metadata": { 1336 | "collapsed": false, 1337 | "slideshow": { 1338 | "slide_type": "fragment" 1339 | } 1340 | }, 1341 | "outputs": [], 1342 | "source": [ 1343 | "b = np.arange(12).reshape(3,4)" 1344 | ] 1345 | }, 1346 | { 1347 | "cell_type": "code", 1348 | "execution_count": null, 1349 | "metadata": { 1350 | "collapsed": false, 1351 | "slideshow": { 1352 | "slide_type": "-" 1353 | } 1354 | }, 1355 | "outputs": [], 1356 | "source": [ 1357 | "b.shape" 1358 | ] 1359 | }, 1360 | { 1361 | "cell_type": "code", 1362 | "execution_count": null, 1363 | "metadata": { 1364 | "collapsed": false, 1365 | "slideshow": { 1366 | "slide_type": "-" 1367 | } 1368 | }, 1369 | "outputs": [], 1370 | "source": [ 1371 | "b" 1372 | ] 1373 | }, 1374 | { 1375 | "cell_type": "code", 1376 | "execution_count": null, 1377 | "metadata": { 1378 | "collapsed": false, 1379 | "slideshow": { 1380 | "slide_type": "-" 1381 | } 1382 | }, 1383 | "outputs": [], 1384 | "source": [ 1385 | "b[1,2]" 1386 | ] 1387 | }, 1388 | { 1389 | "cell_type": "code", 1390 | "execution_count": null, 1391 | "metadata": { 1392 | "collapsed": false, 1393 | "slideshow": { 1394 | "slide_type": "-" 1395 | } 1396 | }, 1397 | "outputs": [], 1398 | "source": [ 1399 | "b[0:2, ::-1]" 1400 | ] 1401 | }, 1402 | { 1403 | "cell_type": "markdown", 1404 | "metadata": { 1405 | "slideshow": { 1406 | "slide_type": "slide" 1407 | } 1408 | }, 1409 | "source": [ 1410 | "## The Scientific Python ecosystem \n", 1411 | "\n", 1412 | "* ### SciPy\n", 1413 | "\n", 1414 | "![SciPy logo](images/scipy.png)" 1415 | ] 1416 | }, 1417 | { 1418 | "cell_type": "code", 1419 | "execution_count": null, 1420 | "metadata": { 1421 | "collapsed": true, 1422 | "slideshow": { 1423 | "slide_type": "slide" 1424 | } 1425 | }, 1426 | "outputs": [], 1427 | "source": [ 1428 | "import scipy" 1429 | ] 1430 | }, 1431 | { 1432 | "cell_type": "code", 1433 | "execution_count": null, 1434 | "metadata": { 1435 | "collapsed": false, 1436 | "slideshow": { 1437 | "slide_type": "-" 1438 | } 1439 | }, 1440 | "outputs": [], 1441 | "source": [ 1442 | "print scipy.__doc__" 1443 | ] 1444 | }, 1445 | { 1446 | "cell_type": "markdown", 1447 | "metadata": { 1448 | "slideshow": { 1449 | "slide_type": "slide" 1450 | } 1451 | }, 1452 | "source": [ 1453 | "## The Scientific Python ecosystem \n", 1454 | "\n", 1455 | "* ### matplotlib\n", 1456 | "\n", 1457 | "![matplotlib logo](images/matplotlib_logo.png)" 1458 | ] 1459 | }, 1460 | { 1461 | "cell_type": "code", 1462 | "execution_count": null, 1463 | "metadata": { 1464 | "collapsed": false, 1465 | "slideshow": { 1466 | "slide_type": "slide" 1467 | } 1468 | }, 1469 | "outputs": [], 1470 | "source": [ 1471 | "%pylab inline" 1472 | ] 1473 | }, 1474 | { 1475 | "cell_type": "code", 1476 | "execution_count": null, 1477 | "metadata": { 1478 | "collapsed": false, 1479 | "slideshow": { 1480 | "slide_type": "-" 1481 | } 1482 | }, 1483 | "outputs": [], 1484 | "source": [ 1485 | "plot([1,2,3])" 1486 | ] 1487 | }, 1488 | { 1489 | "cell_type": "code", 1490 | "execution_count": null, 1491 | "metadata": { 1492 | "collapsed": false, 1493 | "slideshow": { 1494 | "slide_type": "slide" 1495 | } 1496 | }, 1497 | "outputs": [], 1498 | "source": [ 1499 | "a = np.random.rand(30, 30)\n", 1500 | "imshow(a)\n", 1501 | "colorbar()" 1502 | ] 1503 | } 1504 | ], 1505 | "metadata": { 1506 | "celltoolbar": "Slideshow", 1507 | "kernelspec": { 1508 | "display_name": "Python 2", 1509 | "language": "python", 1510 | "name": "python2" 1511 | }, 1512 | "language_info": { 1513 | "codemirror_mode": { 1514 | "name": "ipython", 1515 | "version": 2 1516 | }, 1517 | "file_extension": ".py", 1518 | "mimetype": "text/x-python", 1519 | "name": "python", 1520 | "nbconvert_exporter": "python", 1521 | "pygments_lexer": "ipython2", 1522 | "version": "2.7.10" 1523 | } 1524 | }, 1525 | "nbformat": 4, 1526 | "nbformat_minor": 0 1527 | } 1528 | -------------------------------------------------------------------------------- /8b_plot_current_nexrad_open_artview.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "Import needed libraries" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 3, 13 | "metadata": { 14 | "collapsed": false 15 | }, 16 | "outputs": [ 17 | { 18 | "name": "stderr", 19 | "output_type": "stream", 20 | "text": [ 21 | "/Users/guy/anaconda/lib/python2.7/site-packages/matplotlib/__init__.py:1318: UserWarning: This call to matplotlib.use() has no effect\n", 22 | "because the backend has already been chosen;\n", 23 | "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", 24 | "or matplotlib.backends is imported for the first time.\n", 25 | "\n", 26 | " warnings.warn(_use_error_msg)\n" 27 | ] 28 | } 29 | ], 30 | "source": [ 31 | "import os\n", 32 | "import urllib2\n", 33 | "import pyart\n", 34 | "#import numpy as np\n", 35 | "import matplotlib.pyplot as plt\n", 36 | "import artview\n", 37 | "\n", 38 | "%matplotlib inline" 39 | ] 40 | }, 41 | { 42 | "cell_type": "markdown", 43 | "metadata": {}, 44 | "source": [ 45 | "Create a class for accessing and plotting latest radar image" 46 | ] 47 | }, 48 | { 49 | "cell_type": "code", 50 | "execution_count": 4, 51 | "metadata": { 52 | "collapsed": true 53 | }, 54 | "outputs": [], 55 | "source": [ 56 | "class Get88D(object):\n", 57 | " \"\"\"\n", 58 | " A class mentod to retrieve and plot NEXRAD data.\n", 59 | " \n", 60 | " The metar retrieval is a modification of code found at:\n", 61 | " https://github.com/akrherz/iem/blob/master/scripts/asos/iem_scraper_example.py\n", 62 | " \n", 63 | " It is dependent upon the Iowa State Mesonet database.\n", 64 | " \"\"\"\n", 65 | " def __init__(self, radarID):\n", 66 | " '''Initialize the class'''\n", 67 | "\n", 68 | " # Set date formats to be used with datetime\n", 69 | " self.d_fmt = \"%Y-%m-%d %H:%M\"\n", 70 | " self.dout_fmt = \"%Y-%m-%d_%H:%M\"\n", 71 | " \n", 72 | " # Use passed arguments\n", 73 | " self.radarID = radarID\n", 74 | "\n", 75 | " def get_data(self):\n", 76 | " '''Function to return metar data and create output text file'''\n", 77 | " # Query the radarID directory to get file list\n", 78 | " SERVICE = \"http://nomads.ncep.noaa.gov/pub/data/nccf/radar/nexrad_level2\"\n", 79 | " nexurl = '%s/%s/'%(SERVICE, self.radarID)\n", 80 | " response = urllib2.urlopen(\"%s%s\"%(nexurl, \"dir.list\"))\n", 81 | " self.list88D = response.read().split(\"\\n\")\n", 82 | " \n", 83 | " # At this point you have a list of data files, BUT there are 2 columns\n", 84 | " # col 1 = file size, col2 = filename\n", 85 | " \n", 86 | " # Now grab the latest data file and save it locally to open\n", 87 | " data = urllib2.urlopen(\"%s%s\"%(nexurl,self.list88D[-2].split(\" \")[1]))\n", 88 | " with open(\"latest88D.bz\", \"wb\") as code:\n", 89 | " code.write(data.read())\n", 90 | "\n", 91 | " def plot_nexrad(self, vmin=None, vmax=None, xlims=None, ylims=None):\n", 92 | " '''Create a plot'''\n", 93 | " # Create a PyArt radar instance\n", 94 | " fig, ax = plt.subplots()\n", 95 | " #ax = plt.axes()\n", 96 | " self.r=pyart.io.read_nexrad_archive(\"latest88D.bz\")\n", 97 | " d=pyart.graph.RadarDisplay(self.r)\n", 98 | " d.plot('reflectivity',0, vmin=vmin, vmax=vmax, cmap=\"pyart_Carbone42\")\n", 99 | " if xlims is None:\n", 100 | " xlims = (-250., 250)\n", 101 | " if ylims is None:\n", 102 | " ylims = (-250., 250)\n", 103 | " d.set_limits(xlims, ylims)\n", 104 | " \n", 105 | " def remove_bz(self):\n", 106 | " os.remove(\"latest88D.bz\")" 107 | ] 108 | }, 109 | { 110 | "cell_type": "markdown", 111 | "metadata": {}, 112 | "source": [ 113 | "Now lets make a current plot!" 114 | ] 115 | }, 116 | { 117 | "cell_type": "code", 118 | "execution_count": 6, 119 | "metadata": { 120 | "collapsed": false 121 | }, 122 | "outputs": [ 123 | { 124 | "data": { 125 | "image/png": "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\n", 126 | "text/plain": [ 127 | "" 128 | ] 129 | }, 130 | "metadata": {}, 131 | "output_type": "display_data" 132 | } 133 | ], 134 | "source": [ 135 | "radarID = \"KABR\"#KCYS\"\n", 136 | "Radar = Get88D(radarID)\n", 137 | "Radar.get_data()\n", 138 | "Radar.plot_nexrad(vmin=-10, vmax=60.)\n", 139 | "Radar.remove_bz()" 140 | ] 141 | }, 142 | { 143 | "cell_type": "markdown", 144 | "metadata": {}, 145 | "source": [ 146 | " Now we can open using ARTView to access features via GUI" 147 | ] 148 | }, 149 | { 150 | "cell_type": "code", 151 | "execution_count": 8, 152 | "metadata": { 153 | "collapsed": false 154 | }, 155 | "outputs": [ 156 | { 157 | "name": "stdout", 158 | "output_type": "stream", 159 | "text": [ 160 | "Changed Scan types, reinitializing\n" 161 | ] 162 | } 163 | ], 164 | "source": [ 165 | "artview.view.view(Radar.r)" 166 | ] 167 | }, 168 | { 169 | "cell_type": "code", 170 | "execution_count": null, 171 | "metadata": { 172 | "collapsed": true 173 | }, 174 | "outputs": [], 175 | "source": [] 176 | } 177 | ], 178 | "metadata": { 179 | "kernelspec": { 180 | "display_name": "Python 2", 181 | "language": "python", 182 | "name": "python2" 183 | }, 184 | "language_info": { 185 | "codemirror_mode": { 186 | "name": "ipython", 187 | "version": 2 188 | }, 189 | "file_extension": ".py", 190 | "mimetype": "text/x-python", 191 | "name": "python", 192 | "nbconvert_exporter": "python", 193 | "pygments_lexer": "ipython2", 194 | "version": "2.7.10" 195 | } 196 | }, 197 | "nbformat": 4, 198 | "nbformat_minor": 0 199 | } 200 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AMS Short Course on Open Source Radar Software 2 | Welcome to the AMS Short Course on Open Source Radar Software 3 | 4 | This living repository was first created for the 37th conference on Radar Meteorology 5 | 6 | ### Pre-course install instructions 7 | 8 | Prior to the course it would be extremely helpful if all attenders could 9 | install Anaconda and Py-ART using the following steps. 10 | 11 | 12 | 1. Download and install Anaconda from Continuum Analytics using the 13 | instructions on the site, http://continuum.io/downloads. 14 | Add Anaconda to your path if/when asked. 15 | 16 | 2. Open a terminal or command prompt and install basemap and netcdf using the 17 | command: 18 | 19 | ``` 20 | conda install basemap netcdf4 21 | ``` 22 | 23 | Answer yes to any prompts. 24 | 25 | 3. In the same terminal or command prompt install Py-ART using the command: 26 | 27 | ``` 28 | conda install -c https://conda.anaconda.org/jjhelmus pyart 29 | ``` 30 | 31 | Answer yes to any prompts. 32 | 33 | ### Contents 34 | 35 | > Course Outline 36 | > 37 | > Welcome Slides 38 | > 39 | >Intro to Python and SciPy 40 | > 41 | >Basic Py-ART 42 | > 43 | >Py-ART IO in Detail 44 | > 45 | >Py-ART Data Model 46 | > 47 | >Simple proccessing and adding a field 48 | > 49 | >Texture and Dealiasing 50 | > 51 | >Gridding radars to a Cartesian Grid 52 | > 53 | >ARTView Demo 54 | > 55 | >Plot Current Nexrad in ARTView 56 | > 57 | >CSU Radar Tools 58 | > 59 | >PyTDA Demo 60 | > 61 | 62 | 63 | ###FigShare data repository 64 | 65 | 66 | -------------------------------------------------------------------------------- /course_outline.rst: -------------------------------------------------------------------------------- 1 | AMS Short Course on Open Source Radar Software 2 | ============================= 3 | 4 | Render this document as pdf by ``rst2pdf course_outline.rst`` 5 | 6 | **08:30 - 09:15** `ARRIVAL AND INTRODUCTIONS AND INSTALLATION OF SOFTWARE AND DATA`_:: 7 | 8 | Taking seats, booting notebooks... 9 | 10 | Intro slides by Scott. 11 | 12 | **09:15 - 9:30** `AN INTRODUCTION TO PYTHON AND IPYTHON`_:: 13 | 14 | Python will be the key to use the presented radar software tools. 15 | 16 | Learn how to use Python for writing scripts and for interactive data analysis. 17 | 18 | Scipy, Numpy and Matplotlib 19 | 20 | What is IPython and the IPython notebook? 21 | 22 | **9:30 - 10:00** `BASIC PY-ART AND THE PY-ART DATA MODEL`_:: 23 | 24 | How Py-ART reads data into Python and how to access the raw data 25 | 26 | **10:00 - 10:15** Coffee break 27 | 28 | **10:15 - 11:30** `BASIC PY-ART AND THE PY-ART DATA MODEL`_:: 29 | 30 | Plotting in Py-ART 31 | 32 | **11:30 - 12:00** `EXAMPLES OF RADAR PROCESSING USING PY-ART`_:: 33 | 34 | Example based study from Miami of how to view data, modify data and add the 35 | data to a radar object 36 | 37 | **12:00 - 13:30** Lunch break 38 | 39 | 40 | **13:30 - 14:00** `EXAMPLES OF RADAR PROCESSING USING PY-ART`_:: 41 | 42 | Example based study from Miami of how to view data, modify data and add the 43 | data to a radar object 44 | 45 | 46 | **14:00 - 14:30** `Py-ART TOOLS, TEXTURE, DEALIAS AND GRID`_:: 47 | 48 | The Gatefilter and how to use it. 49 | 50 | Processing: Texture and dealiasing. 51 | 52 | Gridding: Gridding one or more radars. 53 | 54 | **14:30 - 15:00** `PYTHON TOOLS 1: ART-VIEW`_:: 55 | 56 | How to use the ARTview visualization package. 57 | 58 | How to launch a "quick" ARTview window from command line during interactive data analysis. 59 | 60 | 61 | **15:00 - 15:30** Coffee break 62 | 63 | **15:30 - 16:15** `PYTHON TOOLS 2: RADAR MET TOOLS`_:: 64 | 65 | PyTDMA and CSU Radar Tools 66 | 67 | **16:15 - 17:00** `WRAP UP AND FUTHER DISCUSSION`_:: 68 | 69 | Questions and comments. 70 | 71 | Feedback. 72 | 73 | 74 | .. raw:: pdf 75 | 76 | PageBreak 77 | 78 | 79 | ARRIVAL AND INTRODUCTIONS AND INSTALLATION OF SOFTWARE AND DATA 80 | --------------------------------------------------------------- 81 | 82 | Time to settle in and say hello. Course tutors will open the course and introduce themselves and their projects, as well as the general structure and concept of the short course. 83 | 84 | 85 | AN INTRODUCTION TO PYTHON AND IPYTHON 86 | ------------------------------------- 87 | 88 | Run By Jonathan 89 | 90 | BASIC PY-ART AND THE PY-ART DATA MODEL 91 | -------------------------------------- 92 | 93 | Run By Jonathan 94 | 95 | 96 | EXAMPLES OF RADAR PROCESSING USING PY-ART 97 | ----------------------------------------- 98 | 99 | Investigating data from the Miami Nexrad by Scott. 100 | 101 | 102 | Py-ART TOOLS, TEXTURE, DEALIAS AND GRID 103 | --------------------------------------- 104 | 105 | All Oklahoma centric run by Scott 106 | 107 | 108 | PYTHON TOOLS 1: ART-VIEW 109 | ------------------------ 110 | 111 | Nick will show us ART View! 112 | 113 | 114 | PYTHON TOOLS 2: RADAR MET TOOLS 115 | ------------------------------- 116 | 117 | The Great work from CSU and NASA MSFC by Tim 118 | 119 | 120 | WRAP UP AND FUTHER DISCUSSION 121 | ----------------------------- 122 | 123 | Feedback and further discussion 124 | ALL 125 | 126 | -------------------------------------------------------------------------------- /data/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openradar/AMS-Short-Course-on-Open-Source-Radar-Software/9c668386b747f654deeb91e19cf2ac823139b38b/data/README.md -------------------------------------------------------------------------------- /data/provision_data.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | wget \ 3 | https://ndownloader.figshare.com/articles/1537461/versions/6 \ 4 | -O pyart_course_data.zip 5 | unzip -o pyart_course_data.zip 6 | mv 3402575_KAMX_20140417_1056 KAMX_20140417_1056 7 | rm -f pyart_course_data.zip 8 | 9 | -------------------------------------------------------------------------------- /images/ams.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openradar/AMS-Short-Course-on-Open-Source-Radar-Software/9c668386b747f654deeb91e19cf2ac823139b38b/images/ams.jpg -------------------------------------------------------------------------------- /images/arm_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openradar/AMS-Short-Course-on-Open-Source-Radar-Software/9c668386b747f654deeb91e19cf2ac823139b38b/images/arm_logo.png -------------------------------------------------------------------------------- /images/freebeer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openradar/AMS-Short-Course-on-Open-Source-Radar-Software/9c668386b747f654deeb91e19cf2ac823139b38b/images/freebeer.png -------------------------------------------------------------------------------- /images/jupyter-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Artboard 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /images/matplotlib_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openradar/AMS-Short-Course-on-Open-Source-Radar-Software/9c668386b747f654deeb91e19cf2ac823139b38b/images/matplotlib_logo.png -------------------------------------------------------------------------------- /images/python-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openradar/AMS-Short-Course-on-Open-Source-Radar-Software/9c668386b747f654deeb91e19cf2ac823139b38b/images/python-logo.png -------------------------------------------------------------------------------- /images/scipy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openradar/AMS-Short-Course-on-Open-Source-Radar-Software/9c668386b747f654deeb91e19cf2ac823139b38b/images/scipy.png -------------------------------------------------------------------------------- /testme.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import pyart 3 | from matplotlib import pyplot as plt 4 | import numpy as np 5 | from scipy import ndimage, signal 6 | import time 7 | 8 | if __name__ == "__main__": 9 | radar = pyart.io.read('./data/csapr_test_case.nc') 10 | display = pyart.graph.RadarMapDisplay(radar) 11 | fig = plt.figure(figsize = [10,8]) 12 | display.plot_ppi_map('reflectivity', sweep = 2, resolution = 'i', 13 | vmin = -10, vmax = 64, mask_outside = False, 14 | cmap = pyart.graph.cm.NWSRef) 15 | plt.savefig('./awesome.png') 16 | 17 | --------------------------------------------------------------------------------