{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"2020-11-10 - class #11 - activities.ipynb","provenance":[],"collapsed_sections":[],"toc_visible":true},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":[{"cell_type":"markdown","metadata":{"id":"BRAp37uklN9X"},"source":["# Class \\#11 activities"]},{"cell_type":"markdown","metadata":{"id":"8d6J9xZiFtU2"},"source":["# Practice with `xarray`: World Ocean Atlas global ocean temperatures"]},{"cell_type":"code","metadata":{"id":"XR63HVK2Fsu1","executionInfo":{"status":"ok","timestamp":1605052102457,"user_tz":480,"elapsed":4965,"user":{"displayName":"Katy Christensen","photoUrl":"","userId":"13309436073132227481"}},"outputId":"9456c807-81dc-4502-dba7-bef44e1b9004","colab":{"base_uri":"https://localhost:8080/"}},"source":["# Import NumPy, Pandas, xarray, Matplotlib, and datetime at the top of your code\n","import numpy as np\n","import pandas as pd\n","import xarray as xr\n","import matplotlib.pyplot as plt\n","from datetime import datetime, timedelta\n","\n","# Download netCDF4 library\n","!pip install netcdf4 # You can comment this out once it has run\n","\n","# Give Colab access to Google Drive\n","from google.colab import drive\n","drive.mount('/content/drive')"],"execution_count":null,"outputs":[{"output_type":"stream","text":["Collecting netcdf4\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/09/39/3687b2ba762a709cd97e48dfaf3ae36a78ae603ec3d1487f767ad58a7b2e/netCDF4-1.5.4-cp36-cp36m-manylinux1_x86_64.whl (4.3MB)\n","\u001b[K |████████████████████████████████| 4.3MB 2.7MB/s \n","\u001b[?25hRequirement already satisfied: numpy>=1.9 in /usr/local/lib/python3.6/dist-packages (from netcdf4) (1.18.5)\n","Collecting cftime\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/81/f4/31cb9b65f462ea960bd334c5466313cb7b8af792f272546b68b7868fccd4/cftime-1.2.1-cp36-cp36m-manylinux1_x86_64.whl (287kB)\n","\u001b[K |████████████████████████████████| 296kB 36.2MB/s \n","\u001b[?25hInstalling collected packages: cftime, netcdf4\n","Successfully installed cftime-1.2.1 netcdf4-1.5.4\n","Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"eNufKrAzPJjt"},"source":["# Filepath for World Ocean Atlas 2018 (WOA18) temperature netCDF file\n","\n","# Note: you may need to change this to match your own filepath,\n","# which you can get by opening the left sidebar (folder icon),\n","# navigating to the file, clicking the \"...\" on the file, and\n","# selecting \"Copy path\"\n","filepath = '/content/drive/My Drive/OCEAN 215 - Autumn \\'20/OCEAN 215 - Autumn \\'20 - Course documents/Zoom class slides and notebooks/2020-11-10 - class #11 - data/woa18_temp.nc'"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"2RgrRzzmS2lF"},"source":["## **Breakout rooms, round 1**"]},{"cell_type":"markdown","metadata":{"id":"mgowxnn4Jr0-"},"source":["0. Assign roles:\n","> * **Choose one person to write code and share their screen.**\n","> * **Choose a different person to take notes on the answers to report back to the class.**\n","1. Load the WOA18 netCDF file into xarray using `xr.open_dataset()`.\n","2. Display the data.\n","3. Using just the interactive display, answer the following questions with your group:\n","\n","* How many data variables are there?\n","* The variable abbreviations aren't very informative. Using the attributes button (page icon), can you tell what the variables represent?\n","* What is the time range of the data?\n","* What is the latitude and longitude resolution (spacing) of the data? Note that we call this the \"grid spacing\" or \"resolution\" of the data.\n","* What is the deepest depth level in the data?\n","* Take a peek at the 46 attributes. What is one thing you can learn from them?"]},{"cell_type":"code","metadata":{"id":"7r4RNUVAJr0_","executionInfo":{"status":"ok","timestamp":1605052103990,"user_tz":480,"elapsed":486,"user":{"displayName":"Katy Christensen","photoUrl":"","userId":"13309436073132227481"}},"outputId":"0711efde-fe39-46aa-dae2-104986074610","colab":{"base_uri":"https://localhost:8080/","height":285}},"source":["# Load the data file from Google Drive as an xarray Dataset\n","temp = xr.open_dataset(filepath)\n","\n","# View data and stats\n","display(temp)\n","\n","# Answers\n","# a. 2 variables\n","# b. Average temperature and number of observations per grid cell\n","# c. 1960-2011\n","# d. 1°\n","# e. 5500 m"],"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/html":["
\n","\n","\n","Show/Hide data repr\n","\n","\n","\n","\n","\n","Show/Hide attributes\n","\n","\n","\n","\n","\n","\n","\n","
xarray.Dataset
"],"text/plain":["\n","Dimensions: (depth: 102, lat: 180, lon: 360, time: 6)\n","Coordinates:\n"," * lat (lat) float32 -89.5 -88.5 -87.5 -86.5 -85.5 ... 86.5 87.5 88.5 89.5\n"," * lon (lon) float32 -179.5 -178.5 -177.5 -176.5 ... 177.5 178.5 179.5\n"," * depth (depth) float32 0.0 5.0 10.0 15.0 ... 5200.0 5300.0 5400.0 5500.0\n"," * time (time) datetime64[ns] 1960-01-01 1970-01-01 ... 2011-01-01\n","Data variables:\n"," t_an (time, depth, lat, lon) float32 ...\n"," t_dd (time, depth, lat, lon) float64 ...\n","Attributes:\n"," Conventions: CF-1.6, ACDD-1.3\n"," title: World Ocean Atlas 2018 : sea_water_tempe...\n"," summary: Climatological mean temperature for the ...\n"," references: Locarnini, R. A., A. V. Mishonov, O. K. ...\n"," institution: National Centers for Environmental Infor...\n"," comment: global climatology as part of the World ...\n"," naming_authority: gov.noaa.ncei\n"," sea_name: World-Wide Distribution\n"," time_coverage_duration: P10Y\n"," time_coverage_resolution: P01Y\n"," geospatial_lat_min: -90.0\n"," geospatial_lat_max: 90.0\n"," geospatial_lon_min: -180.0\n"," geospatial_lon_max: 180.0\n"," geospatial_vertical_min: 0.0\n"," geospatial_vertical_max: 5500.0\n"," geospatial_lat_units: degrees_north\n"," geospatial_lat_resolution: 1.00 degrees\n"," geospatial_lon_units: degrees_east\n"," geospatial_lon_resolution: 1.00 degrees\n"," geospatial_vertical_units: m\n"," geospatial_vertical_resolution: SPECIAL\n"," geospatial_vertical_positive: down\n"," creator_name: Ocean Climate Laboratory\n"," creator_email: NCEI.info@noaa.gov\n"," creator_url: http://www.ncei.noaa.gov\n"," creator_type: group\n"," creator_institution: National Centers for Environmental Infor...\n"," project: World Ocean Atlas Project\n"," processing_level: processed\n"," keywords: Oceans< Ocean Temperature > Water Temper...\n"," keywords_vocabulary: ISO 19115\n"," standard_name_vocabulary: CF Standard Name Table v49\n"," contributor_name: Ocean Climate Laboratory\n"," contributor_role: Calculation of climatologies\n"," cdm_data_type: Grid\n"," publisher_name: National Centers for Environmental Infor...\n"," publisher_institution: National Centers for Environmental Infor...\n"," publisher_type: institution\n"," publisher_url: http://www.ncei.noaa.gov/\n"," publisher_email: NCEI.info@noaa.gov\n"," nodc_template_version: NODC_NetCDF_Grid_Template_v2.0\n"," license: These data are openly available to the p...\n"," metadata_link: https://www.nodc.noaa.gov/OC5/woa18/\n"," date_created: 2019-07-28 \n"," date_modified: 2019-07-28 "]},"metadata":{"tags":[]}}]},{"cell_type":"markdown","metadata":{"id":"QP5nPdjQS4fV"},"source":["## **Breakout rooms, round 2**"]},{"cell_type":"markdown","metadata":{"id":"iF62lvBHNQn2"},"source":["![Image](https://i.pinimg.com/originals/af/a6/71/afa67151f8c1ae920a24f2ff98087417.gif)\n","\n","Steps to work on as a group:\n","\n","1. Use the ocean map to find the longitude (in units of °N) and latitude (in units of °E) of your favorite part of the global oceans.\n","2. Use indexing to find out the most recent ocean surface temperature (in 2011) at that location. Hint: you'll need either `.isel()` or `.sel()` to do this.\n","3. Convert this result from `xarray` format to a single float number.\n","\n","Steps that we'll discuss as a class:\n","\n","1. Use indexing to get a time series of ocean surface temperature at the location you choose earlier. Save this as a new variable, `time_series`. (In other words, select in latitude, longitude, and depth, leaving a single dimension: time.)\n","2. Use indexing to get a depth profile of ocean temperature at the location you choose earlier in 2011. Save this as a new variable, `depth_profile`. (In other words, select in latitude, longitude, and time, leaving a single dimension: depth.)\n","3. Take a peek into these new variables using `display()`. How would we convert these from `xarray` format to 1-D NumPy arrays?\n","4. Plot the data."]},{"cell_type":"code","metadata":{"id":"vDQK3HYuJpOe","executionInfo":{"status":"ok","timestamp":1605052111080,"user_tz":480,"elapsed":309,"user":{"displayName":"Katy Christensen","photoUrl":"","userId":"13309436073132227481"}},"outputId":"4bb31a92-5208-411a-f66d-58161a82179c","colab":{"base_uri":"https://localhost:8080/","height":581}},"source":["# Write code here:\n","# -35°N, 110°E\n","temp.sel(depth=0,lat=-35,lon=110,time=datetime(2011,1,1),method='nearest')['t_an'].item()\n","\n","time_series = temp.sel(depth=0,lat=46,lon=-128,method='nearest')['t_an']\n","display(time_series)\n","\n","depth_profile = temp.sel(lat=46,lon=-128,time=datetime(2011,1,1),method='nearest')['t_an']\n","display(depth_profile)"],"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/html":["
\n","\n","\n","Show/Hide data repr\n","\n","\n","\n","\n","\n","Show/Hide attributes\n","\n","\n","\n","\n","\n","\n","\n","
xarray.DataArray
't_an'
  • time: 6
  • 12.13939 11.557309 12.053809 12.469 12.54699 12.28359
    array([12.13939 , 11.557309, 12.053809, 12.469   , 12.54699 , 12.28359 ],\n","      dtype=float32)
    • lat
      ()
      float32
      46.5
      standard_name :
      latitude
      long_name :
      latitude
      units :
      degrees_north
      axis :
      Y
      bounds :
      lat_bnds
      array(46.5, dtype=float32)
    • lon
      ()
      float32
      -127.5
      standard_name :
      longitude
      long_name :
      longitude
      units :
      degrees_east
      axis :
      X
      bounds :
      lon_bnds
      array(-127.5, dtype=float32)
    • depth
      ()
      float32
      0.0
      standard_name :
      depth
      bounds :
      depth_bnds
      positive :
      down
      units :
      meters
      axis :
      Z
      array(0., dtype=float32)
    • time
      (time)
      datetime64[ns]
      1960-01-01 ... 2011-01-01
      array(['1960-01-01T00:00:00.000000000', '1970-01-01T00:00:00.000000000',\n","       '1980-01-01T00:00:00.000000000', '1990-01-01T00:00:00.000000000',\n","       '2000-01-01T00:00:00.000000000', '2011-01-01T00:00:00.000000000'],\n","      dtype='datetime64[ns]')
  • standard_name :
    sea_water_temperature
    long_name :
    Objectively analyzed mean fields for sea_water_temperature at standard depth levels.
    cell_methods :
    area: mean depth: mean time: mean within years time: mean over years
    grid_mapping :
    crs
    units :
    degrees_celsius
"],"text/plain":["\n","array([12.13939 , 11.557309, 12.053809, 12.469 , 12.54699 , 12.28359 ],\n"," dtype=float32)\n","Coordinates:\n"," lat float32 46.5\n"," lon float32 -127.5\n"," depth float32 0.0\n"," * time (time) datetime64[ns] 1960-01-01 1970-01-01 ... 2011-01-01\n","Attributes:\n"," standard_name: sea_water_temperature\n"," long_name: Objectively analyzed mean fields for sea_water_temperatur...\n"," cell_methods: area: mean depth: mean time: mean within years time: mean...\n"," grid_mapping: crs\n"," units: degrees_celsius"]},"metadata":{"tags":[]}},{"output_type":"display_data","data":{"text/html":["
\n","\n","\n","Show/Hide data repr\n","\n","\n","\n","\n","\n","Show/Hide attributes\n","\n","\n","\n","\n","\n","\n","\n","
xarray.DataArray
't_an'
  • depth: 102
  • 12.28359 12.236891 12.1214905 11.995391 11.823 ... nan nan nan nan nan
    array([12.28359 , 12.236891, 12.12149 , 11.995391, 11.823   , 11.56039 ,\n","       11.2394  , 10.86769 , 10.48499 , 10.13469 ,  9.80599 ,  9.45741 ,\n","        9.22761 ,  9.02841 ,  8.845091,  8.67829 ,  8.51851 ,  8.385091,\n","        8.262091,  8.151409,  8.057509,  7.78181 ,  7.60519 ,  7.3891  ,\n","        7.13661 ,  6.87709 ,  6.62841 ,  6.39269 ,  6.17411 ,  5.97299 ,\n","        5.79171 ,  5.62489 ,  5.4736  ,  5.3348  ,  5.20839 ,  5.09211 ,\n","        4.98801 ,  4.78741 ,  4.60779 ,  4.44011 ,  4.28301 ,  4.1431  ,\n","        3.99991 ,  3.86751 ,  3.74121 ,  3.61401 ,  3.49789 ,  3.3786  ,\n","        3.26571 ,  3.15461 ,  3.05081 ,  2.9508  ,  2.8504  ,  2.75689 ,\n","        2.6666  ,  2.58041 ,  2.49761 ,  2.41569 ,  2.34019 ,  2.26849 ,\n","        2.20359 ,  2.1448  ,  2.09019 ,  2.03921 ,  1.99301 ,  1.95381 ,\n","        1.91519 ,  1.86401 ,  1.8251  ,  1.79659 ,  1.7768  ,  1.76599 ,\n","        1.76079 ,  1.76041 ,  1.765   ,       nan,       nan,       nan,\n","             nan,       nan,       nan,       nan,       nan,       nan,\n","             nan,       nan,       nan,       nan,       nan,       nan,\n","             nan,       nan,       nan,       nan,       nan,       nan,\n","             nan,       nan,       nan,       nan,       nan,       nan],\n","      dtype=float32)
    • lat
      ()
      float32
      46.5
      standard_name :
      latitude
      long_name :
      latitude
      units :
      degrees_north
      axis :
      Y
      bounds :
      lat_bnds
      array(46.5, dtype=float32)
    • lon
      ()
      float32
      -127.5
      standard_name :
      longitude
      long_name :
      longitude
      units :
      degrees_east
      axis :
      X
      bounds :
      lon_bnds
      array(-127.5, dtype=float32)
    • depth
      (depth)
      float32
      0.0 5.0 10.0 ... 5400.0 5500.0
      standard_name :
      depth
      bounds :
      depth_bnds
      positive :
      down
      units :
      meters
      axis :
      Z
      array([0.00e+00, 5.00e+00, 1.00e+01, 1.50e+01, 2.00e+01, 2.50e+01, 3.00e+01,\n","       3.50e+01, 4.00e+01, 4.50e+01, 5.00e+01, 5.50e+01, 6.00e+01, 6.50e+01,\n","       7.00e+01, 7.50e+01, 8.00e+01, 8.50e+01, 9.00e+01, 9.50e+01, 1.00e+02,\n","       1.25e+02, 1.50e+02, 1.75e+02, 2.00e+02, 2.25e+02, 2.50e+02, 2.75e+02,\n","       3.00e+02, 3.25e+02, 3.50e+02, 3.75e+02, 4.00e+02, 4.25e+02, 4.50e+02,\n","       4.75e+02, 5.00e+02, 5.50e+02, 6.00e+02, 6.50e+02, 7.00e+02, 7.50e+02,\n","       8.00e+02, 8.50e+02, 9.00e+02, 9.50e+02, 1.00e+03, 1.05e+03, 1.10e+03,\n","       1.15e+03, 1.20e+03, 1.25e+03, 1.30e+03, 1.35e+03, 1.40e+03, 1.45e+03,\n","       1.50e+03, 1.55e+03, 1.60e+03, 1.65e+03, 1.70e+03, 1.75e+03, 1.80e+03,\n","       1.85e+03, 1.90e+03, 1.95e+03, 2.00e+03, 2.10e+03, 2.20e+03, 2.30e+03,\n","       2.40e+03, 2.50e+03, 2.60e+03, 2.70e+03, 2.80e+03, 2.90e+03, 3.00e+03,\n","       3.10e+03, 3.20e+03, 3.30e+03, 3.40e+03, 3.50e+03, 3.60e+03, 3.70e+03,\n","       3.80e+03, 3.90e+03, 4.00e+03, 4.10e+03, 4.20e+03, 4.30e+03, 4.40e+03,\n","       4.50e+03, 4.60e+03, 4.70e+03, 4.80e+03, 4.90e+03, 5.00e+03, 5.10e+03,\n","       5.20e+03, 5.30e+03, 5.40e+03, 5.50e+03], dtype=float32)
    • time
      ()
      datetime64[ns]
      2011-01-01
      array('2011-01-01T00:00:00.000000000', dtype='datetime64[ns]')
  • standard_name :
    sea_water_temperature
    long_name :
    Objectively analyzed mean fields for sea_water_temperature at standard depth levels.
    cell_methods :
    area: mean depth: mean time: mean within years time: mean over years
    grid_mapping :
    crs
    units :
    degrees_celsius
"],"text/plain":["\n","array([12.28359 , 12.236891, 12.12149 , 11.995391, 11.823 , 11.56039 ,\n"," 11.2394 , 10.86769 , 10.48499 , 10.13469 , 9.80599 , 9.45741 ,\n"," 9.22761 , 9.02841 , 8.845091, 8.67829 , 8.51851 , 8.385091,\n"," 8.262091, 8.151409, 8.057509, 7.78181 , 7.60519 , 7.3891 ,\n"," 7.13661 , 6.87709 , 6.62841 , 6.39269 , 6.17411 , 5.97299 ,\n"," 5.79171 , 5.62489 , 5.4736 , 5.3348 , 5.20839 , 5.09211 ,\n"," 4.98801 , 4.78741 , 4.60779 , 4.44011 , 4.28301 , 4.1431 ,\n"," 3.99991 , 3.86751 , 3.74121 , 3.61401 , 3.49789 , 3.3786 ,\n"," 3.26571 , 3.15461 , 3.05081 , 2.9508 , 2.8504 , 2.75689 ,\n"," 2.6666 , 2.58041 , 2.49761 , 2.41569 , 2.34019 , 2.26849 ,\n"," 2.20359 , 2.1448 , 2.09019 , 2.03921 , 1.99301 , 1.95381 ,\n"," 1.91519 , 1.86401 , 1.8251 , 1.79659 , 1.7768 , 1.76599 ,\n"," 1.76079 , 1.76041 , 1.765 , nan, nan, nan,\n"," nan, nan, nan, nan, nan, nan,\n"," nan, nan, nan, nan, nan, nan,\n"," nan, nan, nan, nan, nan, nan,\n"," nan, nan, nan, nan, nan, nan],\n"," dtype=float32)\n","Coordinates:\n"," lat float32 46.5\n"," lon float32 -127.5\n"," * depth (depth) float32 0.0 5.0 10.0 15.0 ... 5200.0 5300.0 5400.0 5500.0\n"," time datetime64[ns] 2011-01-01\n","Attributes:\n"," standard_name: sea_water_temperature\n"," long_name: Objectively analyzed mean fields for sea_water_temperatur...\n"," cell_methods: area: mean depth: mean time: mean within years time: mean...\n"," grid_mapping: crs\n"," units: degrees_celsius"]},"metadata":{"tags":[]}}]},{"cell_type":"code","metadata":{"id":"8OGoRiGZfdzg","executionInfo":{"status":"ok","timestamp":1605053286700,"user_tz":480,"elapsed":990,"user":{"displayName":"Ethan C Campbell","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjCBYTiuomqOsCakND1k_5wj0kYvFY53Jt7kunt=s64","userId":"11255944928409084259"}},"outputId":"03825512-15bd-44b9-bdb4-b1d1ea8fedcb","colab":{"base_uri":"https://localhost:8080/","height":370}},"source":["fig, (ax1,ax2) = plt.subplots(nrows=1,ncols=2,figsize=(14,5))\n","\n","ax1.plot(time_series['time'].values,time_series,c='k')\n","ax1.set_xlabel('Time')\n","ax1.set_ylabel('Temperature (°C)')\n","ax1.set_title('Time series')\n","ax1.grid()\n","\n","ax2.plot(depth_profile.values,depth_profile['depth'],c='k')\n","ax2.invert_yaxis()\n","ax2.set_xlabel('Temperature (°C)')\n","ax2.set_ylabel('Depth (m)')\n","ax2.set_title('Profile')\n","ax2.grid()"],"execution_count":null,"outputs":[{"output_type":"display_data","data":{"image/png":"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ww03eB1HROSiUrvGqD7wCDDXzMoAR4AcQFZgNTDRObct8BFFgs/IkSPZu3cv8+bNIyLioqvei0iA+Kd8/+acS/I6i/zPggULGD9+PN26daNFiwutji4iElwuOGLknPvNOfe8c+42oBS++zvc7Jwr5Zxrn5mKol9++YV27dqxbVum6ZIE0Keffsr48eNp27Yt1apV8zqOSFgxsyxm9k8zW25mB4CdwM9m9rmZPWNmupGYx77++mseeeQRqlSpwrPPPut1HBGRNEvTLaedc6edcz87544EOpAX8uTJw5IlS3j9dS2+J6lzztGlSxeio6N56qmnvI4jEo42ANcCA4GrnXMlnHOFgerAVuBpM3vIy4Dh7NSpU7Ro0YKIiAhef/11IiMjvY4kIpJmmgME5MiRg86dO/PEE0+wa9cuypYt63UkCVKzZ89m06ZNzJw5k4IFC3odRyQc1XbOnT6/0Tl3GFgILDSzbBkfSwCGDBnCBx98wMKFCylRooTXcURELkmaRozCQefOnYmIiGDKlCleR5EgdfjwYfr06UPVqlVp06aN13FEwlLyosjM8plZRTO7+dx2/msk46xdu5axY8fSoUMH7r33Xq/jiIhcsjQVRmZWysxq+x/nNLOowMbKeFdffTU1a9bkpZde4ujRo17HkSA0ePBgDh8+zLRp08iSRZ8piHjJzEYC24HJwLP+bZynocLYL7/8wr/+9S/Kly+v+7qJSMi66G93ZtYeWAD8299UHFgUyFBeadasGceOHePFF1/0OooEmffee49///vf9OjRg5tuusnrOCICzYFrnXOxzrma/u1Or0OFI+cc7du359ChQ8ydO5dcuXJ5HUlE5LKk5WPvrsBtQDyAc24XUDiQobzyl7/8herVqzN58mSSkrTyq/gkJSXRuXNnihQpwvDhw72OIyI+nwJ5vQ4h8Morr7Bo0SJGjx6tD45EJKSlpTA66Zw7de6JmUUALnCRvNWzZ0/27NnD0qVLvY4iQWLatGl89NFHTJgwQXduFwkeY4BtZvaWmS05t3kdKtx8++239OjRg9jYWHr16uV1HBGRK5KWVek2mtkgIKeZ1QG6AJm2arjnnnsoWbIkEydO5J577vE6jnhs3759DB48mLp163L//fd7HUdE/ucV4GlgB3DW4yxhKSkpidatW2NmvPzyy7r2UkRCXlr+F+sPHMR38ukI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\n","text/plain":["
"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"markdown","metadata":{"id":"T-9fo04ZRGHj"},"source":["## **Breakout rooms, round 3**\n","\n","\n"]},{"cell_type":"markdown","metadata":{"id":"qf3rgaoBBRS1"},"source":["1. Create a 1-dimensional array that contains all of the temperature measurements from the WOA dataset.\n","2. Create figure with a histogram of these temperatures, using 50 bins.\n","3. Put a line on the histogram showing the average temperature. Put text next to the line that shows the average temperature.\n","4. Put two dashed lines on the histogram. Have one line show the average temperature plus the standard deviation. Have the other line show the average temperature minus the standard deviation.\n","5. Format your figure with a grid and proper labels. Make sure that the y limits match your average and standard deviation lines.\n","6. Save your figure as a png to your Google drive using `plt.savefig()`\n"]},{"cell_type":"code","metadata":{"id":"TyUljlReP5U3","executionInfo":{"status":"ok","timestamp":1605052936586,"user_tz":480,"elapsed":1764,"user":{"displayName":"Katy Christensen","photoUrl":"","userId":"13309436073132227481"}},"outputId":"497e9259-c9c7-430e-80f3-78fe5c5220ea","colab":{"base_uri":"https://localhost:8080/","height":733}},"source":["temperature = temp['t_an'].values.flatten()\n","print(temperature.shape)\n","\n","fig = plt.figure(figsize=(10,10))\n","p = plt.hist(temperature,bins=50, rwidth=0.85)\n","\n","temp_ave = np.nanmean(temperature)\n","temp_std = np.nanstd(temperature)\n","\n","\n","plt.plot([temp_ave,temp_ave],[0,2.7e6],c='k',lw=2)\n","plt.text(temp_ave,1.5e6,'Average='+str(round(temp_ave,2))+'˚C')\n","plt.plot([temp_ave+temp_std,temp_ave+temp_std],[0,2.7e6],c ='k',ls='--',lw=2)\n","plt.plot([temp_ave-temp_std,temp_ave-temp_std],[0,2.7e6],c ='k',ls='--',lw=2)\n","\n","plt.grid()\n","plt.ylim((0,2.7e6))\n","plt.xlabel('Temperatures ˚C',fontsize=14)\n","plt.ylabel('Counts',fontsize=14)\n","plt.title('WOA temperatures',fontsize=14)\n","\n","plt.savefig('drive/My Drive/WOA_hist.png')"],"execution_count":null,"outputs":[{"output_type":"stream","text":["(39657600,)\n"],"name":"stdout"},{"output_type":"stream","text":["/usr/local/lib/python3.6/dist-packages/numpy/lib/histograms.py:839: RuntimeWarning: invalid value encountered in greater_equal\n"," keep = (tmp_a >= first_edge)\n","/usr/local/lib/python3.6/dist-packages/numpy/lib/histograms.py:840: RuntimeWarning: invalid value encountered in less_equal\n"," keep &= (tmp_a <= last_edge)\n"],"name":"stderr"},{"output_type":"display_data","data":{"image/png":"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GMokPStPPPEEBxxwAK985StZuXJl1eVI0qRlKJM6cP755xMR/OxnP6u6lK6ceuqpbL/99uy444587GMfG7bNiSeeyBZbbMFOO+30F9uXL1/O3nvvzW677UZfXx/XXnstANdffz0vf/nL+cxnPsN55523pv33vvc9+vr62GGHHdh999058sgjJ+4bk6QpwFBWgvnz5zN//vyqy1APLFq0iFe/+tUsWrToWR/rqaeeKqGi8VuyZAkXXHAB119/PTfddBNHHXXUsO3mzZvHJZdc8oztH/vYxzjmmGNYvnw5xx577JpQt8suu3DTTTfxqU99in/4h38A4MYbb+Swww7j61//OjfffDPLli1j2223nbhvrkuOXUk5MZSVoNFo0Gg0qi5DE2zVqlVcffXVnHnmmSxevJhLLrmEt7/97Wv2L126lP322w+Ayy67jFe84hXMnj2bt7/97axatQqAWbNmcfTRRzN79mzOPfdcBgYG2GOPPdh1111529vexqOPPgrAL37xC/bee2923nlnPvnJTzJjxow1z/O5z32OPfbYg1122YVjjjlm3PWffvrpLFiwgOc+97kAbLHFFsO223XXXdlkk02esT0i+OMf/wjAQw89xPOf/3wA1l13Xc4//3yuueYa/uZv/gaAk046iX/7t39j++23B2DttdfmQx/60Lhr7RXHrqScGMqkcbrggguYN28eL33pS9l0003ZeOON+elPf8ojjzwCwDe/+U0OOugg7r//fv793/+dH/zgBwwODtLX18cXvvCFNcfZdNNNGRwc5KCDDuKAAw7guuuuW7MEeOaZZwJw+OGHc/jhh7NixQpe8IIXrPnayy67jNtuu41rr72W5cuX02w2ufLKKwF4zWtew2677faMjx/84AcA3HrrrVx11VXstdde/O3f/i3XXXddR9//Kaecwkc/+lG22WYbjjrqKI4//vgR2954443elFWSOtSzm8dGxFnAfsC9KaWdhtk/B7gA+FWx6TsppWN7Vd+z0Ww2AfwlNMUtWrSIww8/HICDDjqIc889l3nz5vHf//3fHHjggVx00UWcdNJJXHHFFdx888286lWvAuDxxx/nFa94xZrjvPOd71zz+Y033sgnP/lJ/vCHP7Bq1Sr22WcfAK655hrOP/98AN71rnetWWq87LLLuOyyy9h9992B1uzdbbfdxmtf+1quuuqqUet/8sknefDBB/nJT37Cddddxzve8Q5++ctfEhHj+v5PP/10vvjFL/K2t72Nb33rW3zgAx9YE/gmK8eupJz08o7+ZwOnAV8bpc1VKaX9elNOefr6+gBIKVVciSbSD3/4Q1asWEFE8NRTTxERfPWrX+XLX/4ym2yyCX19fWywwQaklHjjG9844nln66+//prPDznkEM4//3x23XVXzj77bJYuXTpqDSklPv7xj9Pf3/+Mfa95zWt4+OGHn7H95JNP5g1veAMveMELOOCAA4gI9txzT9Zaay3uv/9+Nt9883F9/+eccw5f+tKXAHj729/OoYceOmLbHXfckWazya677jquY1fFsSspJz1bvkwpXQk82Kvnk8r23ve+lzvuuIOVK1dy55138uIXv5jnPOc5DA4OMjAwwEEHHQTA3nvvzY9+9CNuv/12AB555BFuvfXWYY/58MMPs9VWW/HEE0/wjW98Y832vffee82VjIsXL16zfZ999uGss85ac47a3Xffzb333gvAVVddxfLly5/x8YY3vAGA/fffnyVLlgCtpczHH3+czTbbbNzf//Of/3yuuOIKoBVQt9tuuxHbfvSjH+Wzn/3smu/76aef5owzzhj3c0nSdBS9/AsxImYBF46yfHkecBfwG+ColNJNIxynDtQBZs6cWWv/pVWFuXPnAqz5hVe2VatW/cWJ3s/GirsfGrPNzltvOK62nbbrtbL6bfXP98QTT2TPPfdcs/28887j17/+NWuttRaXXHIJ//Vf/8Xznvc8oPWeio1GgyeeeAKAf/qnf+JVr3oVBx10EAsXLmTDDVt9csEFF7B48WI22mgjXv7yl/Poo4+yYMEC7rrrLo477jgef/xx9thjDy6//HLOPfdcAL797W9z8cUXA7DeeuvxiU98gq233nrM7+OJJ57gpJNO4vbbb2edddbhgx/8ILNnz+b+++/n5JNP5oQTTgDgmGOO4cYbb+Shhx5i44035pBDDmHfffdlxYoVnHrqqTz11FOsu+66HHHEEbzsZS8b8fmuueYavvrVr/LYY48REey999588IMf7LT7J1SZY7fMcTpd2Gfdsd+6k0u/zZ07t5lS6htuX06h7K+Bp1NKqyLizcCXUkoj/yle6OvrS8uWLSu91k6sPidnovpy6dKlzJkzp5RjzVpw0ZhtVp6w77jadtqu18rqt4n++Q7n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\n","text/plain":["
"]},"metadata":{"tags":[],"needs_background":"light"}}]},{"cell_type":"markdown","metadata":{"id":"t_CISyMbJsyx"},"source":["## **Debugging activity**\n","\n","\n"]},{"cell_type":"markdown","metadata":{"id":"Q3PLSRJZKGKe"},"source":["Below, you are given code from the lesson #11 code demo video. However, this code is filled with 18 different errors. \n","1. Find and write down the error type for each error that occurs (use the flowchart as a reference).\n","2. Fix the errors and run the code. Note that you may need to change your folder path to access the data.\n","\n",""]},{"cell_type":"code","metadata":{"id":"n-b6DJOdKFnq"},"source":["# Import statements and drive mount\n","import numpy as np\n","import matplotlib.pyplot as pl\n","from google.drive import drive\n","drive.mount('/content/drive')\n","\n","# Where the file is and its name\n","folderpath= '/content/drive/My Drive/Data_folder/'\n","filename = 'Dissolved Inorganic Nutrients.csv\n","\n","# Read the data\n","data = pd.read_csv(folderpath + filname, parse_dates=[1], na_values=-999)\n","data.describe\n","\n","# Clean the data and take averages for each day of data\n","nitrate = data['Nitrite and Nitrate (µmol/L)']\n","data['Nitrite and Nitrate (µmol/L)'] = nitrate.where(nitrate>0)\n","\n","cleandata = data.groupby('Datetime GMT').mean\n","\n","# Assign variable names and change to np arrays\n","P = cleandata['Phosphate (µmol/L)'.values\n","S = clandata['Silicate (µmol/L)'].values\n","N = cleandata[\"Nitrite and Nitrate (µmol/L)'].values\n","dates = cleandata.index.values\n","\n","# Make a figure and plot the data\n","fig = plt.figure(figsize=(10,10))\n","ax.plot(data,S,'s-',c='mediumblue',label='S')\n","ax.plot(dates,N,'*-',c='darkgreen',label='N')\n","ax.plot(datas,P,'o-',c='firebrick',label='P')\n","\n","# Format the figure\n","plt.set_xlabel('Dates')\n","plt.set_ylabel('Concentration (µmol/L)\")\n","plt.title('Inorganic nutrients')\n","plt.grid()\n","plt.yscale('log')\n","plt.gca.legend()\n","\n","# Save the figure\n","plt.savefig(folderpath 'lineplots.png')"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"mRhF5EJcQ-3y"},"source":[""],"execution_count":null,"outputs":[]}]}