{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# `xarray` Practice" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### `xarray` Data Structures" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import xarray as xr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. The relative filepath for the SST dataset we saw in the lesson is `../data/oisst-avhrr-v02r01.20220304.nc`. Use the `open_dataset()` function to access the file." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "sst = xr.open_dataset('../data/oisst-avhrr-v02r01.20220304.nc')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Display the HTML representation of the dataset (Put the Python variable name of the dataset alone in a cell, or as the last line of a cell). Read the following information from the visual display of the dataset.\n", "- What is the first and last values for latitude?\n", "- What is the \"institution\" listed in the metadata?\n", "- What date was this data taken?\n", "- How many latitude values are there? How many longitude values?" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# -89.875, 89.875\n", "# NOAA/National Centers for Environmental Information\n", "# March 4th 2022\n", "# 720 latitudes, 1440 longitudes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Display just the `ice` data variable" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.DataArray 'ice' (time: 1, zlev: 1, lat: 720, lon: 1440)>\n", "[1036800 values with dtype=float32]\n", "Coordinates:\n", " * time (time) datetime64[ns] 2022-03-04T12:00:00\n", " * zlev (zlev) float32 0.0\n", " * lat (lat) float32 -89.88 -89.62 -89.38 -89.12 ... 89.38 89.62 89.88\n", " * lon (lon) float32 0.125 0.375 0.625 0.875 ... 359.1 359.4 359.6 359.9\n", "Attributes:\n", " long_name: Sea ice concentration\n", " units: %\n", " valid_min: 0\n", " valid_max: 100
<xarray.DataArray 'sst' (time: 1, zlev: 1, lat: 20, lon: 56)>\n", "array([[[[ nan, ..., 15.589999],\n", " ...,\n", " [13.799999, ..., 14.83 ]]]], dtype=float32)\n", "Coordinates:\n", " * time (time) datetime64[ns] 2022-03-04T12:00:00\n", " * zlev (zlev) float32 0.0\n", " * lat (lat) float32 35.12 35.38 35.62 35.88 ... 39.12 39.38 39.62 39.88\n", " * lon (lon) float32 6.125 6.375 6.625 6.875 ... 19.12 19.38 19.62 19.88\n", "Attributes:\n", " long_name: Daily sea surface temperature\n", " units: Celsius\n", " valid_min: -300\n", " valid_max: 4500
<xarray.DataArray (latitude: 5, longitude: 6)>\n", "array([[0.67083346, 0.47625056, 0.9184469 , 0.72651922, 0.24089677,\n", " 0.42439379],\n", " [0.74107856, 0.34296362, 0.15820154, 0.00260383, 0.36022595,\n", " 0.54278431],\n", " [0.67529301, 0.27380767, 0.81509022, 0.57376185, 0.68329026,\n", " 0.58127945],\n", " [0.15154031, 0.01281331, 0.47285499, 0.73580387, 0.25116267,\n", " 0.13986412],\n", " [0.81409422, 0.85724215, 0.6082621 , 0.53236705, 0.67348339,\n", " 0.16232365]])\n", "Coordinates:\n", " time <U10 '2022-02-01'\n", " * latitude (latitude) float64 34.3 34.4 34.5 34.6 34.7\n", " * longitude (longitude) float64 -118.3 -118.2 -118.1 -118.0 -117.9 -117.8
<xarray.DataArray (latitude: 5, longitude: 6)>\n", "array([[0.85944156, 0.60486722, 0.4022808 , 0.64124882, 0.11660878,\n", " 0.01823579],\n", " [0.21625069, 0.30129969, 0.13065388, 0.68583432, 0.60307187,\n", " 0.7742624 ],\n", " [0.18151129, 0.79046703, 0.15992203, 0.34329714, 0.35068125,\n", " 0.67729431],\n", " [0.26272801, 0.53743027, 0.98338776, 0.53127037, 0.00764959,\n", " 0.65894408],\n", " [0.9652911 , 0.74733132, 0.12345072, 0.43297156, 0.66680729,\n", " 0.59720625]])\n", "Coordinates:\n", " time <U10 '2022-03-01'\n", " * latitude (latitude) float64 34.3 34.4 34.5 34.6 34.7\n", " * longitude (longitude) float64 -118.3 -118.2 -118.1 -118.0 -117.9 -117.8" ], "text/plain": [ "
<xarray.DataArray (time: 4, latitude: 5, longitude: 6)>\n", "array([[[0.68651228, 0.5851944 , 0.14046095, 0.59327207, 0.78192937,\n", " 0.23258851],\n", " [0.56747023, 0.25054011, 0.16226242, 0.6702321 , 0.00622384,\n", " 0.74636596],\n", " [0.82834206, 0.98365364, 0.81008953, 0.89104479, 0.50119321,\n", " 0.18034013],\n", " [0.39552168, 0.7685103 , 0.29270878, 0.35350123, 0.06396502,\n", " 0.68518688],\n", " [0.77865295, 0.02244898, 0.39574131, 0.72681943, 0.69823106,\n", " 0.78399236]],\n", "\n", " [[0.3034127 , 0.50315087, 0.54412261, 0.9464592 , 0.03947505,\n", " 0.20151896],\n", " [0.43834579, 0.0129699 , 0.70769749, 0.84084285, 0.77547243,\n", " 0.1261322 ],\n", " [0.11577085, 0.66309952, 0.82591069, 0.89350214, 0.46393369,\n", " 0.58286982],\n", " [0.04440652, 0.7262668 , 0.63666472, 0.82946562, 0.63421775,\n", " 0.84509512],\n", " [0.91268321, 0.6802709 , 0.23631077, 0.6578946 , 0.37326292,\n", "...\n", " 0.25262583],\n", " [0.89830431, 0.28967795, 0.92183892, 0.84662734, 0.19008297,\n", " 0.8993965 ],\n", " [0.85601438, 0.24355797, 0.58250651, 0.83372457, 0.36688617,\n", " 0.15849763],\n", " [0.59965386, 0.28360166, 0.81056124, 0.23754156, 0.49870335,\n", " 0.01619106],\n", " [0.49591348, 0.42610319, 0.76554572, 0.418863 , 0.02294933,\n", " 0.74291927]],\n", "\n", " [[0.95872348, 0.16487148, 0.64698601, 0.61055661, 0.55359241,\n", " 0.33421169],\n", " [0.86063478, 0.99652218, 0.08394284, 0.99336335, 0.54771534,\n", " 0.42460203],\n", " [0.76669502, 0.2152985 , 0.44321571, 0.85627454, 0.28993714,\n", " 0.26782118],\n", " [0.53552128, 0.69865866, 0.92453794, 0.45578608, 0.91698321,\n", " 0.91403326],\n", " [0.95763688, 0.10645779, 0.95289543, 0.92874398, 0.44976787,\n", " 0.28583248]]])\n", "Coordinates:\n", " * time (time) <U10 '2022-02-01' '2022-03-01' '2022-04-01' '2022-05-01'\n", " * latitude (latitude) float64 34.3 34.4 34.5 34.6 34.7\n", " * longitude (longitude) float64 -118.3 -118.2 -118.1 -118.0 -117.9 -117.8
<xarray.DataArray (time: 4, latitude: 5, longitude: 6)>\n", "array([[[0.68651228, 0.5851944 , 0.14046095, 0.59327207, 0.78192937,\n", " 0.23258851],\n", " [0.56747023, 0.25054011, 0.16226242, 0.6702321 , 0.00622384,\n", " 0.74636596],\n", " [0.82834206, 0.98365364, 0.81008953, 0.89104479, 0.50119321,\n", " 0.18034013],\n", " [0.39552168, 0.7685103 , 0.29270878, 0.35350123, 0.06396502,\n", " 0.68518688],\n", " [0.77865295, 0.02244898, 0.39574131, 0.72681943, 0.69823106,\n", " 0.78399236]],\n", "\n", " [[0.3034127 , 0.50315087, 0.54412261, 0.9464592 , 0.03947505,\n", " 0.20151896],\n", " [0.43834579, 0.0129699 , 0.70769749, 0.84084285, 0.77547243,\n", " 0.1261322 ],\n", " [0.11577085, 0.66309952, 0.82591069, 0.89350214, 0.46393369,\n", " 0.58286982],\n", " [0.04440652, 0.7262668 , 0.63666472, 0.82946562, 0.63421775,\n", " 0.84509512],\n", " [0.91268321, 0.6802709 , 0.23631077, 0.6578946 , 0.37326292,\n", "...\n", " 0.25262583],\n", " [0.89830431, 0.28967795, 0.92183892, 0.84662734, 0.19008297,\n", " 0.8993965 ],\n", " [0.85601438, 0.24355797, 0.58250651, 0.83372457, 0.36688617,\n", " 0.15849763],\n", " [0.59965386, 0.28360166, 0.81056124, 0.23754156, 0.49870335,\n", " 0.01619106],\n", " [0.49591348, 0.42610319, 0.76554572, 0.418863 , 0.02294933,\n", " 0.74291927]],\n", "\n", " [[0.95872348, 0.16487148, 0.64698601, 0.61055661, 0.55359241,\n", " 0.33421169],\n", " [0.86063478, 0.99652218, 0.08394284, 0.99336335, 0.54771534,\n", " 0.42460203],\n", " [0.76669502, 0.2152985 , 0.44321571, 0.85627454, 0.28993714,\n", " 0.26782118],\n", " [0.53552128, 0.69865866, 0.92453794, 0.45578608, 0.91698321,\n", " 0.91403326],\n", " [0.95763688, 0.10645779, 0.95289543, 0.92874398, 0.44976787,\n", " 0.28583248]]])\n", "Coordinates:\n", " * time (time) <U10 '2022-02-01' '2022-03-01' '2022-04-01' '2022-05-01'\n", " * latitude (latitude) float64 34.3 34.4 34.5 34.6 34.7\n", " * longitude (longitude) float64 -118.3 -118.2 -118.1 -118.0 -117.9 -117.8" ], "text/plain": [ "
<xarray.DataArray (time: 4, latitude: 5, longitude: 6)>\n", "array([[[0.68651228, 0.5851944 , 0.14046095, 0.59327207, 0.78192937,\n", " 0.23258851],\n", " [0.56747023, 0.25054011, 0.16226242, 0.6702321 , 0.00622384,\n", " 0.74636596],\n", " [0.82834206, 0.98365364, 0.81008953, 0.89104479, 0.50119321,\n", " 0.18034013],\n", " [0.39552168, 0.7685103 , 0.29270878, 0.35350123, 0.06396502,\n", " 0.68518688],\n", " [0.77865295, 0.02244898, 0.39574131, 0.72681943, 0.69823106,\n", " 0.78399236]],\n", "\n", " [[0.3034127 , 0.50315087, 0.54412261, 0.9464592 , 0.03947505,\n", " 0.20151896],\n", " [0.43834579, 0.0129699 , 0.70769749, 0.84084285, 0.77547243,\n", " 0.1261322 ],\n", " [0.11577085, 0.66309952, 0.82591069, 0.89350214, 0.46393369,\n", " 0.58286982],\n", " [0.04440652, 0.7262668 , 0.63666472, 0.82946562, 0.63421775,\n", " 0.84509512],\n", " [0.91268321, 0.6802709 , 0.23631077, 0.6578946 , 0.37326292,\n", "...\n", " 0.25262583],\n", " [0.89830431, 0.28967795, 0.92183892, 0.84662734, 0.19008297,\n", " 0.8993965 ],\n", " [0.85601438, 0.24355797, 0.58250651, 0.83372457, 0.36688617,\n", " 0.15849763],\n", " [0.59965386, 0.28360166, 0.81056124, 0.23754156, 0.49870335,\n", " 0.01619106],\n", " [0.49591348, 0.42610319, 0.76554572, 0.418863 , 0.02294933,\n", " 0.74291927]],\n", "\n", " [[0.95872348, 0.16487148, 0.64698601, 0.61055661, 0.55359241,\n", " 0.33421169],\n", " [0.86063478, 0.99652218, 0.08394284, 0.99336335, 0.54771534,\n", " 0.42460203],\n", " [0.76669502, 0.2152985 , 0.44321571, 0.85627454, 0.28993714,\n", " 0.26782118],\n", " [0.53552128, 0.69865866, 0.92453794, 0.45578608, 0.91698321,\n", " 0.91403326],\n", " [0.95763688, 0.10645779, 0.95289543, 0.92874398, 0.44976787,\n", " 0.28583248]]])\n", "Coordinates:\n", " * time (time) <U10 '2022-02-01' '2022-03-01' '2022-04-01' '2022-05-01'\n", " * latitude (latitude) float64 34.3 34.4 34.5 34.6 34.7\n", " * longitude (longitude) float64 -118.3 -118.2 -118.1 -118.0 -117.9 -117.8" ], "text/plain": [ "
<xarray.DataArray (time: 4, latitude: 5, longitude: 6)>\n", "array([[[0.68651228, 0.5851944 , 0.14046095, 0.59327207, 0.78192937,\n", " 0.23258851],\n", " [0.56747023, 0.25054011, 0.16226242, 0.6702321 , 0.00622384,\n", " 0.74636596],\n", " [0.82834206, 0.98365364, 0.81008953, 0.89104479, 0.50119321,\n", " 0.18034013],\n", " [0.39552168, 0.7685103 , 0.29270878, 0.35350123, 0.06396502,\n", " 0.68518688],\n", " [0.77865295, 0.02244898, 0.39574131, 0.72681943, 0.69823106,\n", " 0.78399236]],\n", "\n", " [[0.3034127 , 0.50315087, 0.54412261, 0.9464592 , 0.03947505,\n", " 0.20151896],\n", " [0.43834579, 0.0129699 , 0.70769749, 0.84084285, 0.77547243,\n", " 0.1261322 ],\n", " [0.11577085, 0.66309952, 0.82591069, 0.89350214, 0.46393369,\n", " 0.58286982],\n", " [0.04440652, 0.7262668 , 0.63666472, 0.82946562, 0.63421775,\n", " 0.84509512],\n", " [0.91268321, 0.6802709 , 0.23631077, 0.6578946 , 0.37326292,\n", "...\n", " 0.25262583],\n", " [0.89830431, 0.28967795, 0.92183892, 0.84662734, 0.19008297,\n", " 0.8993965 ],\n", " [0.85601438, 0.24355797, 0.58250651, 0.83372457, 0.36688617,\n", " 0.15849763],\n", " [0.59965386, 0.28360166, 0.81056124, 0.23754156, 0.49870335,\n", " 0.01619106],\n", " [0.49591348, 0.42610319, 0.76554572, 0.418863 , 0.02294933,\n", " 0.74291927]],\n", "\n", " [[0.95872348, 0.16487148, 0.64698601, 0.61055661, 0.55359241,\n", " 0.33421169],\n", " [0.86063478, 0.99652218, 0.08394284, 0.99336335, 0.54771534,\n", " 0.42460203],\n", " [0.76669502, 0.2152985 , 0.44321571, 0.85627454, 0.28993714,\n", " 0.26782118],\n", " [0.53552128, 0.69865866, 0.92453794, 0.45578608, 0.91698321,\n", " 0.91403326],\n", " [0.95763688, 0.10645779, 0.95289543, 0.92874398, 0.44976787,\n", " 0.28583248]]])\n", "Dimensions without coordinates: time, latitude, longitude" ], "text/plain": [ "
<xarray.DataArray (dim_0: 4, dim_1: 5, dim_2: 6)>\n", "array([[[0.68651228, 0.5851944 , 0.14046095, 0.59327207, 0.78192937,\n", " 0.23258851],\n", " [0.56747023, 0.25054011, 0.16226242, 0.6702321 , 0.00622384,\n", " 0.74636596],\n", " [0.82834206, 0.98365364, 0.81008953, 0.89104479, 0.50119321,\n", " 0.18034013],\n", " [0.39552168, 0.7685103 , 0.29270878, 0.35350123, 0.06396502,\n", " 0.68518688],\n", " [0.77865295, 0.02244898, 0.39574131, 0.72681943, 0.69823106,\n", " 0.78399236]],\n", "\n", " [[0.3034127 , 0.50315087, 0.54412261, 0.9464592 , 0.03947505,\n", " 0.20151896],\n", " [0.43834579, 0.0129699 , 0.70769749, 0.84084285, 0.77547243,\n", " 0.1261322 ],\n", " [0.11577085, 0.66309952, 0.82591069, 0.89350214, 0.46393369,\n", " 0.58286982],\n", " [0.04440652, 0.7262668 , 0.63666472, 0.82946562, 0.63421775,\n", " 0.84509512],\n", " [0.91268321, 0.6802709 , 0.23631077, 0.6578946 , 0.37326292,\n", "...\n", " 0.25262583],\n", " [0.89830431, 0.28967795, 0.92183892, 0.84662734, 0.19008297,\n", " 0.8993965 ],\n", " [0.85601438, 0.24355797, 0.58250651, 0.83372457, 0.36688617,\n", " 0.15849763],\n", " [0.59965386, 0.28360166, 0.81056124, 0.23754156, 0.49870335,\n", " 0.01619106],\n", " [0.49591348, 0.42610319, 0.76554572, 0.418863 , 0.02294933,\n", " 0.74291927]],\n", "\n", " [[0.95872348, 0.16487148, 0.64698601, 0.61055661, 0.55359241,\n", " 0.33421169],\n", " [0.86063478, 0.99652218, 0.08394284, 0.99336335, 0.54771534,\n", " 0.42460203],\n", " [0.76669502, 0.2152985 , 0.44321571, 0.85627454, 0.28993714,\n", " 0.26782118],\n", " [0.53552128, 0.69865866, 0.92453794, 0.45578608, 0.91698321,\n", " 0.91403326],\n", " [0.95763688, 0.10645779, 0.95289543, 0.92874398, 0.44976787,\n", " 0.28583248]]])\n", "Coordinates:\n", " * dim_0 (dim_0) <U10 '2022-02-01' '2022-03-01' '2022-04-01' '2022-05-01'\n", " * dim_1 (dim_1) float64 34.3 34.4 34.5 34.6 34.7\n", " * dim_2 (dim_2) float64 -118.3 -118.2 -118.1 -118.0 -117.9 -117.8
<xarray.Dataset>\n", "Dimensions: (time: 1, zlev: 1, lat: 60, lon: 152)\n", "Coordinates:\n", " * time (time) datetime64[ns] 2022-03-04T12:00:00\n", " * zlev (zlev) float32 0.0\n", " * lat (lat) float32 10.12 10.38 10.62 10.88 ... 24.12 24.38 24.62 24.88\n", " * lon (lon) float32 272.1 272.4 272.6 272.9 ... 309.1 309.4 309.6 309.9\n", "Data variables:\n", " sst (time, zlev, lat, lon) float32 23.22 22.64 22.08 ... 23.94 23.87\n", " anom (time, zlev, lat, lon) float32 -3.2 -3.85 -4.49 ... 0.79 0.75 0.7\n", " err (time, zlev, lat, lon) float32 0.12 0.12 0.12 ... 0.11 0.11 0.11\n", " ice (time, zlev, lat, lon) float32 nan nan nan nan ... nan nan nan nan\n", "Attributes: (12/37)\n", " Conventions: CF-1.6, ACDD-1.3\n", " title: NOAA/NCEI 1/4 Degree Daily Optimum Interpolat...\n", " references: Reynolds, et al.(2007) Daily High-Resolution-...\n", " source: ICOADS, NCEP_GTS, GSFC_ICE, NCEP_ICE, Pathfin...\n", " id: oisst-avhrr-v02r01.20220304.nc\n", " naming_authority: gov.noaa.ncei\n", " ... ...\n", " time_coverage_start: 2022-03-04T00:00:00Z\n", " time_coverage_end: 2022-03-04T23:59:59Z\n", " metadata_link: https://doi.org/10.25921/RE9P-PT57\n", " ncei_template_version: NCEI_NetCDF_Grid_Template_v2.0\n", " comment: Data was converted from NetCDF-3 to NetCDF-4 ...\n", " sensor: Thermometer, AVHRR" ], "text/plain": [ "
<xarray.Dataset>\n", "Dimensions: (time: 1, zlev: 1, lat: 60, lon: 152)\n", "Coordinates:\n", " * time (time) datetime64[ns] 2022-03-04T12:00:00\n", " * zlev (zlev) float32 0.0\n", " * lat (lat) float32 10.12 10.38 10.62 10.88 ... 24.12 24.38 24.62 24.88\n", " * lon (lon) float32 272.1 272.4 272.6 272.9 ... 309.1 309.4 309.6 309.9\n", "Data variables:\n", " sst (time, zlev, lat, lon) float32 23.22 22.64 22.08 ... 23.94 23.87\n", " anom (time, zlev, lat, lon) float32 -3.2 -3.85 -4.49 ... 0.79 0.75 0.7\n", " err (time, zlev, lat, lon) float32 0.12 0.12 0.12 ... 0.11 0.11 0.11\n", " ice (time, zlev, lat, lon) float32 nan nan nan nan ... nan nan nan nan\n", "Attributes: (12/37)\n", " Conventions: CF-1.6, ACDD-1.3\n", " title: NOAA/NCEI 1/4 Degree Daily Optimum Interpolat...\n", " references: Reynolds, et al.(2007) Daily High-Resolution-...\n", " source: ICOADS, NCEP_GTS, GSFC_ICE, NCEP_ICE, Pathfin...\n", " id: oisst-avhrr-v02r01.20220304.nc\n", " naming_authority: gov.noaa.ncei\n", " ... ...\n", " time_coverage_start: 2022-03-04T00:00:00Z\n", " time_coverage_end: 2022-03-04T23:59:59Z\n", " metadata_link: https://doi.org/10.25921/RE9P-PT57\n", " ncei_template_version: NCEI_NetCDF_Grid_Template_v2.0\n", " comment: Data was converted from NetCDF-3 to NetCDF-4 ...\n", " sensor: Thermometer, AVHRR