├── Activity_1_Python_Basics.ipynb ├── Activity_2_Data_Visualization.ipynb ├── Activity_3_Data_Analysis.ipynb ├── Activity_4_Argo_Data.ipynb ├── Quickstart_Example.ipynb ├── README.md └── requirements.txt /Activity_1_Python_Basics.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Activity 1 Python Basics.ipynb", 7 | "provenance": [], 8 | "collapsed_sections": [] 9 | }, 10 | "kernelspec": { 11 | "name": "python3", 12 | "display_name": "Python 3" 13 | } 14 | }, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "metadata": { 19 | "id": "QxxH0AcX15bs", 20 | "colab_type": "text" 21 | }, 22 | "source": [ 23 | "# Activity 1 - Python Basics & NDBC Weather Data\n", 24 | "**2020 Data Labs REU**\n", 25 | "\n", 26 | "*Written by Sage Lichtenwalner, Rutgers University, June 9, 2020*\n", 27 | "\n", 28 | "Welcome to Python! In this notebook, we will demonstrate how you can quickly get started programming in Python, using Google's cool [Colaboratory](https://colab.research.google.com) platform. Colab is basically a free service that can run Python/Jupyter notebooks in the cloud.\n", 29 | "\n", 30 | "In this notebook, we will demonstrate some of the basics of programming Python. If you want to lean more, there are lots of other resources and training sessions out there, including the official [Python Tutorial](https://docs.python.org/3/tutorial/). But as an oceanographer, you don't really need to know all the ins-and-outs of programming (though it helps), especially when just starting out. \n", 31 | "\n", 32 | "Over the next few sessions we will cover many of the basic recipes you need to:\n", 33 | "* Quickly load some data\n", 34 | "* Make some quick plots, and make them look good\n", 35 | "* Calculate a few basic statistics and averages\n", 36 | "* And save the data to a new file you can use elsewhere." 37 | ] 38 | }, 39 | { 40 | "cell_type": "markdown", 41 | "metadata": { 42 | "id": "uHXHmHwv--ww", 43 | "colab_type": "text" 44 | }, 45 | "source": [ 46 | "## Getting Started\n", 47 | "\n", 48 | "Jupyter notebooks have two kids of cells. \"Markdown\" cells, like this one which can contain formatted text, and \"Code\" cells, which contain the code you will run.\n", 49 | "\n", 50 | "To execute the code in a cell, you can either:\n", 51 | "* click the **Play** icon on the left\n", 52 | "* type **Cmd (or Ctrl) + Enter** to run the cell in place \n", 53 | "* or type **Shift + Enter** to run the cell and move the focus to the next cell.\n", 54 | "\n", 55 | "You can try all these options on our first very elaborate piece of code in the next cell.\n", 56 | "\n", 57 | "After you execute the cell, the result will automatically display underneath the cell." 58 | ] 59 | }, 60 | { 61 | "cell_type": "code", 62 | "metadata": { 63 | "id": "gQSi2cI9_EZG", 64 | "colab_type": "code", 65 | "colab": {} 66 | }, 67 | "source": [ 68 | "2+2" 69 | ], 70 | "execution_count": 0, 71 | "outputs": [] 72 | }, 73 | { 74 | "cell_type": "code", 75 | "metadata": { 76 | "id": "0a6RP0OvBGpl", 77 | "colab_type": "code", 78 | "colab": {} 79 | }, 80 | "source": [ 81 | "print(\"Hello, world!\")" 82 | ], 83 | "execution_count": 0, 84 | "outputs": [] 85 | }, 86 | { 87 | "cell_type": "code", 88 | "metadata": { 89 | "id": "Dvqpvyi2BKOv", 90 | "colab_type": "code", 91 | "colab": {} 92 | }, 93 | "source": [ 94 | "# This is a comment" 95 | ], 96 | "execution_count": 0, 97 | "outputs": [] 98 | }, 99 | { 100 | "cell_type": "markdown", 101 | "metadata": { 102 | "id": "U9BweOkrFcf_", 103 | "colab_type": "text" 104 | }, 105 | "source": [ 106 | "As we go through the notebooks, you can add your own comments or text blocks to save your notes." 107 | ] 108 | }, 109 | { 110 | "cell_type": "code", 111 | "metadata": { 112 | "id": "wYHhEJnwBnsY", 113 | "colab_type": "code", 114 | "colab": {} 115 | }, 116 | "source": [ 117 | "# Your Turn: Create your own print() command here with your name\n", 118 | "print()" 119 | ], 120 | "execution_count": 0, 121 | "outputs": [] 122 | }, 123 | { 124 | "cell_type": "markdown", 125 | "metadata": { 126 | "colab_type": "text", 127 | "id": "i4k796DieJ0_" 128 | }, 129 | "source": [ 130 | "**A note about print()**\n", 131 | "\n", 132 | "* By default, a Colab/Jupyter notebook will print out the output from the last line, so you don't have to specify the `print()` command. \n", 133 | "* However, if we want to output the results from additional lines (as we do below), we need to use `print()` on each line.\n", 134 | "* Sometimes, you can suppress the output from the last line by adding a semi-colon `;` at the end." 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "metadata": { 140 | "id": "hP7VTnDB_dRh", 141 | "colab_type": "code", 142 | "colab": {} 143 | }, 144 | "source": [ 145 | "3\n", 146 | "4\n", 147 | "5" 148 | ], 149 | "execution_count": 0, 150 | "outputs": [] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "metadata": { 155 | "colab_type": "code", 156 | "id": "rbULmpXCFJIZ", 157 | "colab": {} 158 | }, 159 | "source": [ 160 | "print(3)\n", 161 | "print(4)\n", 162 | "print(5)" 163 | ], 164 | "execution_count": 0, 165 | "outputs": [] 166 | }, 167 | { 168 | "cell_type": "markdown", 169 | "metadata": { 170 | "id": "Jr_Htihg_E7B", 171 | "colab_type": "text" 172 | }, 173 | "source": [ 174 | "## Some Basics\n", 175 | "Let's review a few basic features of programming. \n", 176 | "\n", 177 | "First, it's great for math. You can use addition (+), subtraction (-), multiplication (\\*), division (/) and exponents (**)." 178 | ] 179 | }, 180 | { 181 | "cell_type": "code", 182 | "metadata": { 183 | "id": "NlDw--ocCZ28", 184 | "colab_type": "code", 185 | "colab": {} 186 | }, 187 | "source": [ 188 | "# Your Turn: Try some math here\n", 189 | "5*2" 190 | ], 191 | "execution_count": 0, 192 | "outputs": [] 193 | }, 194 | { 195 | "cell_type": "markdown", 196 | "metadata": { 197 | "id": "1THCSL0kCbYF", 198 | "colab_type": "text" 199 | }, 200 | "source": [ 201 | "The order of operations is also important." 202 | ] 203 | }, 204 | { 205 | "cell_type": "code", 206 | "metadata": { 207 | "id": "k5YEVycoCdco", 208 | "colab_type": "code", 209 | "colab": {} 210 | }, 211 | "source": [ 212 | "print(5 * 2 + 3)\n", 213 | "print(5 * (2+3))\n", 214 | "print((5 * 2) + 3)" 215 | ], 216 | "execution_count": 0, 217 | "outputs": [] 218 | }, 219 | { 220 | "cell_type": "markdown", 221 | "metadata": { 222 | "id": "nE9GQeevCveA", 223 | "colab_type": "text" 224 | }, 225 | "source": [ 226 | "## Variables" 227 | ] 228 | }, 229 | { 230 | "cell_type": "code", 231 | "metadata": { 232 | "id": "3Fao5FUxA8Me", 233 | "colab_type": "code", 234 | "colab": {} 235 | }, 236 | "source": [ 237 | "# We can eailsy assign variables, just like in other languages\n", 238 | "x = 4\n", 239 | "y = 2.5" 240 | ], 241 | "execution_count": 0, 242 | "outputs": [] 243 | }, 244 | { 245 | "cell_type": "code", 246 | "metadata": { 247 | "id": "Cv6oBNDLA91Q", 248 | "colab_type": "code", 249 | "colab": {} 250 | }, 251 | "source": [ 252 | "# And we can use them in our formulas\n", 253 | "print(x + y)\n", 254 | "print(x/y)" 255 | ], 256 | "execution_count": 0, 257 | "outputs": [] 258 | }, 259 | { 260 | "cell_type": "code", 261 | "metadata": { 262 | "id": "2_x4zV7LFCcs", 263 | "colab_type": "code", 264 | "colab": {} 265 | }, 266 | "source": [ 267 | "# What kind of objects are these?\n", 268 | "print(type(x))\n", 269 | "print(type(y))" 270 | ], 271 | "execution_count": 0, 272 | "outputs": [] 273 | }, 274 | { 275 | "cell_type": "markdown", 276 | "metadata": { 277 | "id": "AcUxD7ehCxRf", 278 | "colab_type": "text" 279 | }, 280 | "source": [ 281 | "## Strings" 282 | ] 283 | }, 284 | { 285 | "cell_type": "code", 286 | "metadata": { 287 | "id": "uXF3zKv6_zxt", 288 | "colab_type": "code", 289 | "colab": {} 290 | }, 291 | "source": [ 292 | "# A string needs to be in quotes (single or double)\n", 293 | "z = 'Python is great'\n", 294 | "z" 295 | ], 296 | "execution_count": 0, 297 | "outputs": [] 298 | }, 299 | { 300 | "cell_type": "code", 301 | "metadata": { 302 | "id": "jSjoVPLcAIDW", 303 | "colab_type": "code", 304 | "colab": {} 305 | }, 306 | "source": [ 307 | "# You can't concatenate (add) strings and integers\n", 308 | "print( z + x )" 309 | ], 310 | "execution_count": 0, 311 | "outputs": [] 312 | }, 313 | { 314 | "cell_type": "code", 315 | "metadata": { 316 | "id": "CtSvgM4yAJe7", 317 | "colab_type": "code", 318 | "colab": {} 319 | }, 320 | "source": [ 321 | "# But you can multiply them!\n", 322 | "print( z * x )" 323 | ], 324 | "execution_count": 0, 325 | "outputs": [] 326 | }, 327 | { 328 | "cell_type": "code", 329 | "metadata": { 330 | "id": "f1UOtr7HALCG", 331 | "colab_type": "code", 332 | "colab": {} 333 | }, 334 | "source": [ 335 | "# If you convert an integer into a string, you can then catenate them\n", 336 | "print( z + ' ' + str(x) + ' you!' )" 337 | ], 338 | "execution_count": 0, 339 | "outputs": [] 340 | }, 341 | { 342 | "cell_type": "code", 343 | "metadata": { 344 | "id": "-zCETuuXAMqr", 345 | "colab_type": "code", 346 | "colab": {} 347 | }, 348 | "source": [ 349 | "# A better way\n", 350 | "print( 'Python is great %s you!' % x )" 351 | ], 352 | "execution_count": 0, 353 | "outputs": [] 354 | }, 355 | { 356 | "cell_type": "markdown", 357 | "metadata": { 358 | "id": "zenkK_sXAPBs", 359 | "colab_type": "text" 360 | }, 361 | "source": [ 362 | "## Fun with Lists\n", 363 | "Remember, Python uses 0-based indexes, so to grab the first element in a list you actually use \"0\". The last element is n-1, or just \"-1\" for short. In Matlab this would be 1 to n, or 1:end." 364 | ] 365 | }, 366 | { 367 | "cell_type": "code", 368 | "metadata": { 369 | "id": "JTCl0vHGAPur", 370 | "colab_type": "code", 371 | "colab": {} 372 | }, 373 | "source": [ 374 | "my_list = [3, 4, 5, 9, 12, 13]" 375 | ], 376 | "execution_count": 0, 377 | "outputs": [] 378 | }, 379 | { 380 | "cell_type": "code", 381 | "metadata": { 382 | "id": "JcwapC7kAP7Q", 383 | "colab_type": "code", 384 | "colab": {} 385 | }, 386 | "source": [ 387 | "# The fist item\n", 388 | "my_list[0]" 389 | ], 390 | "execution_count": 0, 391 | "outputs": [] 392 | }, 393 | { 394 | "cell_type": "code", 395 | "metadata": { 396 | "id": "0oLk1TaYAP_0", 397 | "colab_type": "code", 398 | "colab": {} 399 | }, 400 | "source": [ 401 | "# The last item\n", 402 | "my_list[-1]" 403 | ], 404 | "execution_count": 0, 405 | "outputs": [] 406 | }, 407 | { 408 | "cell_type": "code", 409 | "metadata": { 410 | "id": "2hpVK9V8AP0T", 411 | "colab_type": "code", 412 | "colab": {} 413 | }, 414 | "source": [ 415 | "# Extract a subset\n", 416 | "my_list[2:5]" 417 | ], 418 | "execution_count": 0, 419 | "outputs": [] 420 | }, 421 | { 422 | "cell_type": "code", 423 | "metadata": { 424 | "id": "B4CYNZoKV-fq", 425 | "colab_type": "code", 426 | "colab": {} 427 | }, 428 | "source": [ 429 | "# A subset from the end\n", 430 | "my_list[-3:]" 431 | ], 432 | "execution_count": 0, 433 | "outputs": [] 434 | }, 435 | { 436 | "cell_type": "code", 437 | "metadata": { 438 | "id": "N4fVWQaQAPzS", 439 | "colab_type": "code", 440 | "colab": {} 441 | }, 442 | "source": [ 443 | "# Update a value\n", 444 | "my_list[3] = 99\n", 445 | "my_list" 446 | ], 447 | "execution_count": 0, 448 | "outputs": [] 449 | }, 450 | { 451 | "cell_type": "code", 452 | "metadata": { 453 | "id": "vWLYxQ3AAaDU", 454 | "colab_type": "code", 455 | "colab": {} 456 | }, 457 | "source": [ 458 | "# Warning, Python variables are object references and not copies by default\n", 459 | "my_second_list = my_list\n", 460 | "print( my_second_list )\n", 461 | "\n", 462 | "my_second_list[0] = 66\n", 463 | "\n", 464 | "print( my_second_list )\n", 465 | "print( my_list ) # The first list has been overwritten" 466 | ], 467 | "execution_count": 0, 468 | "outputs": [] 469 | }, 470 | { 471 | "cell_type": "code", 472 | "metadata": { 473 | "id": "jsBIFXDRAbyB", 474 | "colab_type": "code", 475 | "colab": {} 476 | }, 477 | "source": [ 478 | "# To avoid this, create a copy of the list, which keeps the original intact\n", 479 | "my_list = [3, 4, 5, 9, 12]\n", 480 | "\n", 481 | "my_second_list = list(my_list) # You can also use copy.copy() or my_list[:]\n", 482 | "\n", 483 | "my_second_list[0] = 66\n", 484 | "\n", 485 | "print( my_second_list )\n", 486 | "print( my_list )" 487 | ], 488 | "execution_count": 0, 489 | "outputs": [] 490 | }, 491 | { 492 | "cell_type": "markdown", 493 | "metadata": { 494 | "id": "kU1kERQCLFUu", 495 | "colab_type": "text" 496 | }, 497 | "source": [ 498 | "## Arrays\n", 499 | "Note, a list is not an array by default. But we can turn it into an array using the *NumPy* library.\n", 500 | "\n", 501 | "NumPy is an essential library for working with scientific data. It provides an array object that is very similar to Matlab's array functionality, allowing you to perform mathematical calculations or run linear algebra routines." 502 | ] 503 | }, 504 | { 505 | "cell_type": "code", 506 | "metadata": { 507 | "id": "jnf1SA8wJo5F", 508 | "colab_type": "code", 509 | "colab": {} 510 | }, 511 | "source": [ 512 | "my_list * x" 513 | ], 514 | "execution_count": 0, 515 | "outputs": [] 516 | }, 517 | { 518 | "cell_type": "code", 519 | "metadata": { 520 | "id": "C8mZCShbWtHj", 521 | "colab_type": "code", 522 | "colab": {} 523 | }, 524 | "source": [ 525 | "import numpy as np" 526 | ], 527 | "execution_count": 0, 528 | "outputs": [] 529 | }, 530 | { 531 | "cell_type": "code", 532 | "metadata": { 533 | "id": "D3-yiFQaJTAQ", 534 | "colab_type": "code", 535 | "colab": {} 536 | }, 537 | "source": [ 538 | "a = np.array(my_list)\n", 539 | "a * x" 540 | ], 541 | "execution_count": 0, 542 | "outputs": [] 543 | }, 544 | { 545 | "cell_type": "markdown", 546 | "metadata": { 547 | "id": "xhLtARB0WYOw", 548 | "colab_type": "text" 549 | }, 550 | "source": [ 551 | "Note, we won't be explicitly creating NumPy arrays much in this course. But later on, when we load datasets using Pandas or Xarray, the actually arrays under the hood will be numpy arrays." 552 | ] 553 | }, 554 | { 555 | "cell_type": "markdown", 556 | "metadata": { 557 | "id": "QSsn4neWAdIK", 558 | "colab_type": "text" 559 | }, 560 | "source": [ 561 | "## Dictionaries\n", 562 | "These are a great way to stored structured data of different types. You'll often find metadata information inside dictionaries." 563 | ] 564 | }, 565 | { 566 | "cell_type": "code", 567 | "metadata": { 568 | "id": "oAQykqhkAeHn", 569 | "colab_type": "code", 570 | "colab": {} 571 | }, 572 | "source": [ 573 | "my_dict = {'temperature': 21, 'salinity':35, 'sensor':'CTD 23'}\n", 574 | "my_dict" 575 | ], 576 | "execution_count": 0, 577 | "outputs": [] 578 | }, 579 | { 580 | "cell_type": "code", 581 | "metadata": { 582 | "id": "ADrxbbB7AhAC", 583 | "colab_type": "code", 584 | "colab": {} 585 | }, 586 | "source": [ 587 | "# Grab a list of dictionary keys\n", 588 | "my_dict.keys()" 589 | ], 590 | "execution_count": 0, 591 | "outputs": [] 592 | }, 593 | { 594 | "cell_type": "code", 595 | "metadata": { 596 | "id": "ndmWw7lSAfu2", 597 | "colab_type": "code", 598 | "colab": {} 599 | }, 600 | "source": [ 601 | "# Accessing a key/value pair\n", 602 | "my_dict['sensor']" 603 | ], 604 | "execution_count": 0, 605 | "outputs": [] 606 | }, 607 | { 608 | "cell_type": "markdown", 609 | "metadata": { 610 | "id": "vUPvO6YFAip2", 611 | "colab_type": "text" 612 | }, 613 | "source": [ 614 | "## Functions, Conditions and Loops\n", 615 | "If you're familiar with how to do these in Matlab or R, it's all very similar, just with a different syntax. \n", 616 | "\n", 617 | "Remember, Python uses spaces to group together sub-elements, rather than parentheses, curly braces, or end statements. Traditionally, you can use 2 or 4 spaces to indent lines." 618 | ] 619 | }, 620 | { 621 | "cell_type": "code", 622 | "metadata": { 623 | "id": "Qx0nnCutQG_5", 624 | "colab_type": "code", 625 | "colab": {} 626 | }, 627 | "source": [ 628 | "def times_two(num):\n", 629 | " return num * 2;" 630 | ], 631 | "execution_count": 0, 632 | "outputs": [] 633 | }, 634 | { 635 | "cell_type": "code", 636 | "metadata": { 637 | "id": "WdHlh20TQP5T", 638 | "colab_type": "code", 639 | "colab": {} 640 | }, 641 | "source": [ 642 | "times_two(3)" 643 | ], 644 | "execution_count": 0, 645 | "outputs": [] 646 | }, 647 | { 648 | "cell_type": "code", 649 | "metadata": { 650 | "id": "ED6K9R49OuX3", 651 | "colab_type": "code", 652 | "colab": {} 653 | }, 654 | "source": [ 655 | "def my_name(name='Sage'):\n", 656 | " return name;" 657 | ], 658 | "execution_count": 0, 659 | "outputs": [] 660 | }, 661 | { 662 | "cell_type": "code", 663 | "metadata": { 664 | "id": "nnNYgBDeOy5y", 665 | "colab_type": "code", 666 | "colab": {} 667 | }, 668 | "source": [ 669 | "my_name()" 670 | ], 671 | "execution_count": 0, 672 | "outputs": [] 673 | }, 674 | { 675 | "cell_type": "markdown", 676 | "metadata": { 677 | "id": "IcPlKcJ1V3lm", 678 | "colab_type": "text" 679 | }, 680 | "source": [ 681 | "Here one quick example that demonstrates how to define a function, use a conditional, and iterate over a for loop all at once." 682 | ] 683 | }, 684 | { 685 | "cell_type": "code", 686 | "metadata": { 687 | "id": "L9H3VuppAlLP", 688 | "colab_type": "code", 689 | "colab": {} 690 | }, 691 | "source": [ 692 | "# A more complicated function\n", 693 | "def my_func(number):\n", 694 | " print('Running my_func')\n", 695 | " if type(number)==int:\n", 696 | " for i in range(number):\n", 697 | " print(i)\n", 698 | " else:\n", 699 | " print(\"Not a number\")\n" 700 | ], 701 | "execution_count": 0, 702 | "outputs": [] 703 | }, 704 | { 705 | "cell_type": "code", 706 | "metadata": { 707 | "id": "nLhLban8HSSq", 708 | "colab_type": "code", 709 | "colab": {} 710 | }, 711 | "source": [ 712 | "my_func('Test')" 713 | ], 714 | "execution_count": 0, 715 | "outputs": [] 716 | }, 717 | { 718 | "cell_type": "code", 719 | "metadata": { 720 | "id": "2hX4I3FvHRbe", 721 | "colab_type": "code", 722 | "colab": {} 723 | }, 724 | "source": [ 725 | "my_func(4)" 726 | ], 727 | "execution_count": 0, 728 | "outputs": [] 729 | }, 730 | { 731 | "cell_type": "markdown", 732 | "metadata": { 733 | "id": "vY3zXFu9Hqxy", 734 | "colab_type": "text" 735 | }, 736 | "source": [ 737 | "## Fun with NDBC Data\n", 738 | "Now that we've covered some basics, let's start having some fun with actual ocean data.\n", 739 | "\n", 740 | "The [National Data Buoy Center (NDBC)](https://www.ndbc.noaa.gov) provides a great dataset to start with. And for this example, we'll use my favorite buoy [Station 44025](https://www.ndbc.noaa.gov/station_page.php?station=44025).\n", 741 | "\n", 742 | "![NDBC Mid-Atlantic Station Map](https://www.ndbc.noaa.gov/images/maps/NorthEast.gif)\n", 743 | "\n", 744 | "To load datasets like this, there are 2 popular libraries we can use.\n", 745 | "\n", 746 | "* Pandas\n", 747 | " * Great for working with \"spreadsheet-like\" tables that have headers and rows, like Excel or CSV files\n", 748 | " * Can easily load text or CSV files \n", 749 | "* Xarray\n", 750 | " * Supports multidimensional arrays (e.g. x,y,z,t)\n", 751 | " * Can open NetCDF files or data from Thredds servers which are common in Oceanography\n", 752 | " * If you're using a Thredds server, you don't have to load all the data to use it\n", 753 | "\n", 754 | "NDBC actually makes their data available in a variety of ways. Text files are often more intuitive. However, the NDBC text files require a few hoops to load a use (each file is a separate year, dates are in multiple columns, etc.).\n", 755 | "\n", 756 | "Luckily, NDBC also provides a Thredds server [DODS](https://dods.ndbc.noaa.gov), which we can use to quickly load some data to play with." 757 | ] 758 | }, 759 | { 760 | "cell_type": "code", 761 | "metadata": { 762 | "id": "U5xiYqAyPMka", 763 | "colab_type": "code", 764 | "colab": {} 765 | }, 766 | "source": [ 767 | "import xarray as xr\n", 768 | "!pip install netcdf4" 769 | ], 770 | "execution_count": 0, 771 | "outputs": [] 772 | }, 773 | { 774 | "cell_type": "code", 775 | "metadata": { 776 | "id": "MN7o_buKPO7E", 777 | "colab_type": "code", 778 | "colab": {} 779 | }, 780 | "source": [ 781 | "data = xr.open_dataset('https://dods.ndbc.noaa.gov/thredds/dodsC/data/stdmet/44025/44025.ncml')" 782 | ], 783 | "execution_count": 0, 784 | "outputs": [] 785 | }, 786 | { 787 | "cell_type": "code", 788 | "metadata": { 789 | "id": "WFKcrSUNPSNS", 790 | "colab_type": "code", 791 | "colab": {} 792 | }, 793 | "source": [ 794 | "# The Dataset\n", 795 | "data" 796 | ], 797 | "execution_count": 0, 798 | "outputs": [] 799 | }, 800 | { 801 | "cell_type": "code", 802 | "metadata": { 803 | "id": "YIgYXHz6an6A", 804 | "colab_type": "code", 805 | "colab": {} 806 | }, 807 | "source": [ 808 | "# Let's look at one variable\n", 809 | "data.air_temperature" 810 | ], 811 | "execution_count": 0, 812 | "outputs": [] 813 | }, 814 | { 815 | "cell_type": "code", 816 | "metadata": { 817 | "id": "-7BBHVRqb6te", 818 | "colab_type": "code", 819 | "colab": {} 820 | }, 821 | "source": [ 822 | "# And one piece of metadata\n", 823 | "data.air_temperature.long_name" 824 | ], 825 | "execution_count": 0, 826 | "outputs": [] 827 | }, 828 | { 829 | "cell_type": "code", 830 | "metadata": { 831 | "id": "OQxdcxzzaq-r", 832 | "colab_type": "code", 833 | "colab": {} 834 | }, 835 | "source": [ 836 | "# Now let's make a quick plot\n", 837 | "data.air_temperature.plot();" 838 | ], 839 | "execution_count": 0, 840 | "outputs": [] 841 | }, 842 | { 843 | "cell_type": "code", 844 | "metadata": { 845 | "id": "-bPP4Ue0avNf", 846 | "colab_type": "code", 847 | "colab": {} 848 | }, 849 | "source": [ 850 | "# Let's subset the data in time\n", 851 | "data2 = data.sel(time=slice('2019-01-01','2020-01-01'))" 852 | ], 853 | "execution_count": 0, 854 | "outputs": [] 855 | }, 856 | { 857 | "cell_type": "code", 858 | "metadata": { 859 | "id": "Fu6J6e3bawhG", 860 | "colab_type": "code", 861 | "colab": {} 862 | }, 863 | "source": [ 864 | "# Let's make that quick plot again\n", 865 | "data2.air_temperature.plot();" 866 | ], 867 | "execution_count": 0, 868 | "outputs": [] 869 | }, 870 | { 871 | "cell_type": "code", 872 | "metadata": { 873 | "id": "dOt2EDY0WXnl", 874 | "colab_type": "code", 875 | "colab": {} 876 | }, 877 | "source": [ 878 | "import matplotlib.pyplot as plt" 879 | ], 880 | "execution_count": 0, 881 | "outputs": [] 882 | }, 883 | { 884 | "cell_type": "code", 885 | "metadata": { 886 | "id": "Sm-cFGk1PSXR", 887 | "colab_type": "code", 888 | "colab": {} 889 | }, 890 | "source": [ 891 | "# We can even plot 2 variables on one graph\n", 892 | "data2.air_temperature.plot(label=\"Air Temperature\")\n", 893 | "data2.sea_surface_temperature.plot(label=\"Sea Surface Temperature\")\n", 894 | "plt.legend();" 895 | ], 896 | "execution_count": 0, 897 | "outputs": [] 898 | }, 899 | { 900 | "cell_type": "markdown", 901 | "metadata": { 902 | "id": "11_8VZyGa-J1", 903 | "colab_type": "text" 904 | }, 905 | "source": [ 906 | "Tomorrow, we'll delve a lot more into data visualization and many of the other plotting commands you can use. But now, it's your turn to create your own plots. \n", 907 | "\n", 908 | "Try plotting different:\n", 909 | "* Variables (see options above)\n", 910 | "* Time ranges (you will need to reload the dataset)\n", 911 | "* Different stations (you will need to change the dataset URL). Check out the [NDBC homepage](https://www.ndbc.noaa.gov) for available stations\n", 912 | "\n", 913 | "As you create your graphs, try to write *figure captions* that describe what you think is going on." 914 | ] 915 | }, 916 | { 917 | "cell_type": "code", 918 | "metadata": { 919 | "id": "DGeLchEtPSgm", 920 | "colab_type": "code", 921 | "colab": {} 922 | }, 923 | "source": [ 924 | "# Your Turn: Create some plots " 925 | ], 926 | "execution_count": 0, 927 | "outputs": [] 928 | }, 929 | { 930 | "cell_type": "code", 931 | "metadata": { 932 | "id": "43_sS5K4cm85", 933 | "colab_type": "code", 934 | "colab": {} 935 | }, 936 | "source": [ 937 | "" 938 | ], 939 | "execution_count": 0, 940 | "outputs": [] 941 | }, 942 | { 943 | "cell_type": "code", 944 | "metadata": { 945 | "id": "4ENykXphciuG", 946 | "colab_type": "code", 947 | "colab": {} 948 | }, 949 | "source": [ 950 | "" 951 | ], 952 | "execution_count": 0, 953 | "outputs": [] 954 | }, 955 | { 956 | "cell_type": "code", 957 | "metadata": { 958 | "id": "sdDkr17McjDd", 959 | "colab_type": "code", 960 | "colab": {} 961 | }, 962 | "source": [ 963 | "" 964 | ], 965 | "execution_count": 0, 966 | "outputs": [] 967 | }, 968 | { 969 | "cell_type": "code", 970 | "metadata": { 971 | "id": "ZrvA7X25KnDc", 972 | "colab_type": "code", 973 | "colab": {} 974 | }, 975 | "source": [ 976 | "" 977 | ], 978 | "execution_count": 0, 979 | "outputs": [] 980 | }, 981 | { 982 | "cell_type": "markdown", 983 | "metadata": { 984 | "id": "b5z6araEkYhC", 985 | "colab_type": "text" 986 | }, 987 | "source": [ 988 | "### Additional Intros and References\n", 989 | "[2019 Data Labs Quick Intro to Pytyon](https://github.com/ooi-data-lab/data-lab-workshops/blob/master/Summer_Examples/Python_Introduction.ipynb)\n", 990 | "\n", 991 | "[2018 Python Basics for Matlab Wizards](https://github.com/ooi-data-review/2018-data-workshops/blob/master/chemistry/examples/extras2/Python_Basics_for_Matlab_Wizards.ipynb)\n", 992 | "\n", 993 | "[Rowe Getting Started with Python](https://github.com/prowe12/python_resources/blob/master/Introduction_to_python3.ipynb)" 994 | ] 995 | } 996 | ] 997 | } -------------------------------------------------------------------------------- /Quickstart_Example.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Activity 0 Python Quickstart.ipynb", 7 | "provenance": [], 8 | "toc_visible": true 9 | }, 10 | "kernelspec": { 11 | "name": "python3", 12 | "display_name": "Python 3" 13 | } 14 | }, 15 | "cells": [ 16 | { 17 | "cell_type": "markdown", 18 | "metadata": { 19 | "id": "qRPHAjb-E-9Q", 20 | "colab_type": "text" 21 | }, 22 | "source": [ 23 | "# Activity 0 - Python Quickstart\n", 24 | "**2020 Data Labs REU**\n", 25 | "\n", 26 | "*Written by Sage Lichtenwalner, Rutgers University, June 8, 2020*\n", 27 | "\n", 28 | "This notebook is designed as a kickoff activity to our 3-day Intro to Oceanographic Data Processing in Python series. The commands here are simple and provided mostly without context (which will be discussed in later notebooks) in order to highlight some of the advantages of using Python in Research Computing.\n", 29 | "\n", 30 | "The code from this example was adapted from [A Quick Introduction to Python](https://github.com/ooi-data-lab/data-lab-workshops/blob/master/Summer_Examples/Python_Introduction.ipynb) develoed as part of our 2019 Summer workshop series." 31 | ] 32 | }, 33 | { 34 | "cell_type": "markdown", 35 | "metadata": { 36 | "id": "c5kbjL5UGBia", 37 | "colab_type": "text" 38 | }, 39 | "source": [ 40 | "## Notebook and Python Basics" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "metadata": { 46 | "id": "upDBJahnE4LV", 47 | "colab_type": "code", 48 | "outputId": "83de2152-68a4-4dbb-b88e-f84658f42a17", 49 | "colab": { 50 | "base_uri": "https://localhost:8080/", 51 | "height": 34 52 | } 53 | }, 54 | "source": [ 55 | "2+2" 56 | ], 57 | "execution_count": 0, 58 | "outputs": [ 59 | { 60 | "output_type": "execute_result", 61 | "data": { 62 | "text/plain": [ 63 | "4" 64 | ] 65 | }, 66 | "metadata": { 67 | "tags": [] 68 | }, 69 | "execution_count": 23 70 | } 71 | ] 72 | }, 73 | { 74 | "cell_type": "code", 75 | "metadata": { 76 | "id": "aZ680o6bFuIR", 77 | "colab_type": "code", 78 | "colab": {} 79 | }, 80 | "source": [ 81 | "a = 42" 82 | ], 83 | "execution_count": 0, 84 | "outputs": [] 85 | }, 86 | { 87 | "cell_type": "code", 88 | "metadata": { 89 | "id": "kzdOionBFuNg", 90 | "colab_type": "code", 91 | "outputId": "b18db6c3-daf0-48de-be0a-e0296dd21e61", 92 | "colab": { 93 | "base_uri": "https://localhost:8080/", 94 | "height": 34 95 | } 96 | }, 97 | "source": [ 98 | "a" 99 | ], 100 | "execution_count": 0, 101 | "outputs": [ 102 | { 103 | "output_type": "execute_result", 104 | "data": { 105 | "text/plain": [ 106 | "42" 107 | ] 108 | }, 109 | "metadata": { 110 | "tags": [] 111 | }, 112 | "execution_count": 25 113 | } 114 | ] 115 | }, 116 | { 117 | "cell_type": "code", 118 | "metadata": { 119 | "id": "fzKT_UMHFuSq", 120 | "colab_type": "code", 121 | "colab": {} 122 | }, 123 | "source": [ 124 | "b = 'Life, The Universe, and Everything'" 125 | ], 126 | "execution_count": 0, 127 | "outputs": [] 128 | }, 129 | { 130 | "cell_type": "code", 131 | "metadata": { 132 | "id": "ZOHMWqmzFuWq", 133 | "colab_type": "code", 134 | "outputId": "22204f80-6a89-461a-d747-61c8825d5921", 135 | "colab": { 136 | "base_uri": "https://localhost:8080/", 137 | "height": 34 138 | } 139 | }, 140 | "source": [ 141 | "b" 142 | ], 143 | "execution_count": 0, 144 | "outputs": [ 145 | { 146 | "output_type": "execute_result", 147 | "data": { 148 | "text/plain": [ 149 | "'Life, The Universe, and Everything'" 150 | ] 151 | }, 152 | "metadata": { 153 | "tags": [] 154 | }, 155 | "execution_count": 27 156 | } 157 | ] 158 | }, 159 | { 160 | "cell_type": "markdown", 161 | "metadata": { 162 | "id": "n4MoZJRaGFMX", 163 | "colab_type": "text" 164 | }, 165 | "source": [ 166 | "## A Quick Data Example" 167 | ] 168 | }, 169 | { 170 | "cell_type": "code", 171 | "metadata": { 172 | "id": "x9tzAxI7Fua3", 173 | "colab_type": "code", 174 | "colab": {} 175 | }, 176 | "source": [ 177 | "import pandas as pd" 178 | ], 179 | "execution_count": 0, 180 | "outputs": [] 181 | }, 182 | { 183 | "cell_type": "code", 184 | "metadata": { 185 | "id": "woP9UcXUGLOk", 186 | "colab_type": "code", 187 | "colab": {} 188 | }, 189 | "source": [ 190 | "url = 'https://marine.rutgers.edu/~sage/OOI_Data_Workshops/CP02PMUO_R9_ar24011.csv'" 191 | ], 192 | "execution_count": 0, 193 | "outputs": [] 194 | }, 195 | { 196 | "cell_type": "code", 197 | "metadata": { 198 | "id": "Fk3vEZakGMRD", 199 | "colab_type": "code", 200 | "outputId": "a437514a-b67b-4157-ca71-ed57c647dfdd", 201 | "colab": { 202 | "base_uri": "https://localhost:8080/", 203 | "height": 419 204 | } 205 | }, 206 | "source": [ 207 | "data = pd.read_csv(url)\n", 208 | "data" 209 | ], 210 | "execution_count": 0, 211 | "outputs": [ 212 | { 213 | "output_type": "execute_result", 214 | "data": { 215 | "text/html": [ 216 | "
\n", 217 | "\n", 230 | "\n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | " \n", 236 | " \n", 237 | " \n", 238 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | " \n", 244 | " \n", 245 | " \n", 246 | " \n", 247 | " \n", 248 | " \n", 249 | " \n", 250 | " \n", 251 | " \n", 252 | " \n", 253 | " \n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " \n", 360 | " \n", 361 | " \n", 362 | " \n", 363 | " \n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | "
DepthPressureTemperatureSalinityDensityFluorescenceTurbidityOxygen
01414.10920.026734.72211521.470.00720.372634.7187
11515.11620.091334.77721521.73-0.02450.370034.7693
21616.12420.214134.86841522.19-0.03610.378534.8652
31717.13220.313934.93351522.55-0.04010.375934.9386
41818.14020.445935.02501523.03-0.05090.374435.0229
...........................
86666.04619.910934.63421520.92-0.01850.384234.6310
86755.03919.913834.63591520.91-0.03230.381634.6319
86844.03119.914534.63711520.90-0.02360.387434.6333
86933.02319.916534.63851520.89-0.02180.384234.6347
87022.01519.912234.63541520.860.01870.404734.6308
\n", 368 | "

871 rows × 8 columns

\n", 369 | "
" 370 | ], 371 | "text/plain": [ 372 | " Depth Pressure Temperature ... Fluorescence Turbidity Oxygen\n", 373 | "0 14 14.109 20.0267 ... 0.0072 0.3726 34.7187\n", 374 | "1 15 15.116 20.0913 ... -0.0245 0.3700 34.7693\n", 375 | "2 16 16.124 20.2141 ... -0.0361 0.3785 34.8652\n", 376 | "3 17 17.132 20.3139 ... -0.0401 0.3759 34.9386\n", 377 | "4 18 18.140 20.4459 ... -0.0509 0.3744 35.0229\n", 378 | ".. ... ... ... ... ... ... ...\n", 379 | "866 6 6.046 19.9109 ... -0.0185 0.3842 34.6310\n", 380 | "867 5 5.039 19.9138 ... -0.0323 0.3816 34.6319\n", 381 | "868 4 4.031 19.9145 ... -0.0236 0.3874 34.6333\n", 382 | "869 3 3.023 19.9165 ... -0.0218 0.3842 34.6347\n", 383 | "870 2 2.015 19.9122 ... 0.0187 0.4047 34.6308\n", 384 | "\n", 385 | "[871 rows x 8 columns]" 386 | ] 387 | }, 388 | "metadata": { 389 | "tags": [] 390 | }, 391 | "execution_count": 30 392 | } 393 | ] 394 | }, 395 | { 396 | "cell_type": "code", 397 | "metadata": { 398 | "id": "5uja3oJrGQWF", 399 | "colab_type": "code", 400 | "outputId": "06b3603b-629b-4aa7-ba2c-a2bae651c045", 401 | "colab": { 402 | "base_uri": "https://localhost:8080/", 403 | "height": 297 404 | } 405 | }, 406 | "source": [ 407 | "data.describe()" 408 | ], 409 | "execution_count": 0, 410 | "outputs": [ 411 | { 412 | "output_type": "execute_result", 413 | "data": { 414 | "text/html": [ 415 | "
\n", 416 | "\n", 429 | "\n", 430 | " \n", 431 | " \n", 432 | " \n", 433 | " \n", 434 | " \n", 435 | " \n", 436 | " \n", 437 | " \n", 438 | " \n", 439 | " \n", 440 | " \n", 441 | " \n", 442 | " \n", 443 | " \n", 444 | " \n", 445 | " \n", 446 | " \n", 447 | " \n", 448 | " \n", 449 | " \n", 450 | " \n", 451 | " \n", 452 | " \n", 453 | " \n", 454 | " \n", 455 | " \n", 456 | " \n", 457 | " \n", 458 | " \n", 459 | " \n", 460 | " \n", 461 | " \n", 462 | " \n", 463 | " \n", 464 | " \n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | " \n", 484 | " \n", 485 | " \n", 486 | " \n", 487 | " \n", 488 | " \n", 489 | " \n", 490 | " \n", 491 | " \n", 492 | " \n", 493 | " \n", 494 | " \n", 495 | " \n", 496 | " \n", 497 | " \n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | " \n", 502 | " \n", 503 | " \n", 504 | " \n", 505 | " \n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | " \n", 510 | " \n", 511 | " \n", 512 | " \n", 513 | " \n", 514 | " \n", 515 | " \n", 516 | " \n", 517 | " \n", 518 | " \n", 519 | " \n", 520 | " \n", 521 | " \n", 522 | " \n", 523 | " \n", 524 | " \n", 525 | " \n", 526 | " \n", 527 | " \n", 528 | " \n", 529 | " \n", 530 | " \n", 531 | " \n", 532 | " \n", 533 | "
DepthPressureTemperatureSalinityDensityFluorescenceTurbidityOxygen
count871.000000871.000000871.000000871.000000871.000000871.000000871.000000871.000000
mean225.208955227.11023211.49393635.3539681498.607773-0.2593180.36145135.350359
std125.862021126.9724143.8700600.25503711.0982480.1598140.0274440.254881
min2.0000002.0150006.25290034.6342001483.100000-0.3759000.32860034.630800
25%116.500000117.4320007.90765035.1238501487.855000-0.3352000.34615035.120850
50%225.000000226.86100011.02140035.2883001497.670000-0.3350000.35220035.285600
75%334.000000336.85100013.77545035.6072501505.530000-0.2961000.36775035.603200
max443.000000446.90000020.64800035.7932001523.7900000.3277000.50170035.790500
\n", 534 | "
" 535 | ], 536 | "text/plain": [ 537 | " Depth Pressure ... Turbidity Oxygen\n", 538 | "count 871.000000 871.000000 ... 871.000000 871.000000\n", 539 | "mean 225.208955 227.110232 ... 0.361451 35.350359\n", 540 | "std 125.862021 126.972414 ... 0.027444 0.254881\n", 541 | "min 2.000000 2.015000 ... 0.328600 34.630800\n", 542 | "25% 116.500000 117.432000 ... 0.346150 35.120850\n", 543 | "50% 225.000000 226.861000 ... 0.352200 35.285600\n", 544 | "75% 334.000000 336.851000 ... 0.367750 35.603200\n", 545 | "max 443.000000 446.900000 ... 0.501700 35.790500\n", 546 | "\n", 547 | "[8 rows x 8 columns]" 548 | ] 549 | }, 550 | "metadata": { 551 | "tags": [] 552 | }, 553 | "execution_count": 31 554 | } 555 | ] 556 | }, 557 | { 558 | "cell_type": "code", 559 | "metadata": { 560 | "id": "siL32Li5GRBd", 561 | "colab_type": "code", 562 | "outputId": "a2997234-7958-490e-e093-a371cc2c5cf1", 563 | "colab": { 564 | "base_uri": "https://localhost:8080/", 565 | "height": 265 566 | } 567 | }, 568 | "source": [ 569 | "# Let's plot the depth column\n", 570 | "data['Depth'].plot();" 571 | ], 572 | "execution_count": 0, 573 | "outputs": [ 574 | { 575 | "output_type": "display_data", 576 | "data": { 577 | "image/png": "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\n", 578 | "text/plain": [ 579 | "
" 580 | ] 581 | }, 582 | "metadata": { 583 | "tags": [], 584 | "needs_background": "light" 585 | } 586 | } 587 | ] 588 | }, 589 | { 590 | "cell_type": "code", 591 | "metadata": { 592 | "id": "Yo6eAZOXGWyL", 593 | "colab_type": "code", 594 | "outputId": "47e5ae1f-6768-4ada-97e9-384ded995ffa", 595 | "colab": { 596 | "base_uri": "https://localhost:8080/", 597 | "height": 265 598 | } 599 | }, 600 | "source": [ 601 | "# Now let's plot temperature\n", 602 | "data['Temperature'].plot();" 603 | ], 604 | "execution_count": 0, 605 | "outputs": [ 606 | { 607 | "output_type": "display_data", 608 | "data": { 609 | "image/png": "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\n", 610 | "text/plain": [ 611 | "
" 612 | ] 613 | }, 614 | "metadata": { 615 | "tags": [], 616 | "needs_background": "light" 617 | } 618 | } 619 | ] 620 | }, 621 | { 622 | "cell_type": "code", 623 | "metadata": { 624 | "id": "xEBlWEjhGYDB", 625 | "colab_type": "code", 626 | "outputId": "10612c9b-e9d3-4629-8e9c-41461f60ce2f", 627 | "colab": { 628 | "base_uri": "https://localhost:8080/", 629 | "height": 279 630 | } 631 | }, 632 | "source": [ 633 | "# Temperature vs. Depth\n", 634 | "ax = data.plot(x='Temperature',y='Depth');\n", 635 | "ax.invert_yaxis(); # Flip the y-axis" 636 | ], 637 | "execution_count": 0, 638 | "outputs": [ 639 | { 640 | "output_type": "display_data", 641 | "data": { 642 | "image/png": "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\n", 643 | "text/plain": [ 644 | "
" 645 | ] 646 | }, 647 | "metadata": { 648 | "tags": [], 649 | "needs_background": "light" 650 | } 651 | } 652 | ] 653 | }, 654 | { 655 | "cell_type": "code", 656 | "metadata": { 657 | "id": "gfQT6GBSGma8", 658 | "colab_type": "code", 659 | "colab": {} 660 | }, 661 | "source": [ 662 | "data.describe().to_csv('ctd_summary.csv');" 663 | ], 664 | "execution_count": 0, 665 | "outputs": [] 666 | } 667 | ] 668 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 2020 Data Labs REU 2 | 3 | This repository contains Python scripts developed for the [2020 Data Labs Virtual Research Experience for Undergraduates (REU)](https://datalab.marine.rutgers.edu/2020-virtual-reu/), hosted by Rutgers University. 4 | 5 | ## Workshop Sessions 6 | 7 | * Activity 1 - Intro to Python & Accessing NDBC Data
8 | 9 | [Jupyter Notebook](Activity_1_Python_Basics.ipynb) | 10 | [Open in Colab](https://colab.research.google.com/github/ooi-data-lab/datalab-reu-2020/blob/master/Activity_1_Python_Basics.ipynb) 11 | 12 | * Activity 2 - Data Visualization
13 | 14 | [Jupyter Notebook](Activity_2_Data_Visualization.ipynb) | 15 | [Open in Colab](https://colab.research.google.com/github/ooi-data-lab/datalab-reu-2020/blob/master/Activity_2_Data_Visualization.ipynb) 16 | 17 | * Activity 3 - Data Analysis
18 | 19 | [Jupyter Notebook](Activity_3_Data_Analysis.ipynb) | 20 | [Open in Colab](https://colab.research.google.com/github/ooi-data-lab/datalab-reu-2020/blob/master/Activity_3_Data_Analysis.ipynb) 21 | 22 | * Bonus Activity 4 - Argo Float Data
23 | 24 | [Jupyter Notebook](Activity_4_Argo_Data.ipynb) | 25 | [Open in Colab](https://colab.research.google.com/github/ooi-data-lab/datalab-reu-2020/blob/master/Activity_4_Argo_Data.ipynb) 26 | 27 | 28 | For more information, please see the [Ocean Data Labs](https://datalab.marine.rutgers.edu) website. 29 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==1.18.* 2 | matplotlib==3.* 3 | seaborn==0.10.1 4 | pandas==1.0.* 5 | xarray==0.15.* 6 | netcdf4==1.5.3 --------------------------------------------------------------------------------