{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# DUACS-L4\n", "\n", "Analyse des données DUACS/L4" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import xarray as xr\n", "import matplotlib.pyplot as plt\n", "import dask.array as da\n", "\n", "plt.rcParams['figure.figsize'] = (15,10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Initialisation de l'ensemble de données\n", "\n", "Ici, nous chargeons l'ensemble des données depuis un dépôt `zarr`. Notez que ce très grand ensemble de données s'initialise presque instantanément, et nous pouvons voir la liste complète des variables et des coordonnées." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.Dataset>\n", "Dimensions: (latitude: 720, longitude: 1440, nv: 2, time: 9629)\n", "Coordinates:\n", " * latitude (latitude) float64 -89.88 -89.62 -89.38 ... 89.38 89.62 89.88\n", " * longitude (longitude) float64 0.125 0.375 0.625 0.875 ... 359.4 359.6 359.9\n", " * nv (nv) int32 0 1\n", " * time (time) datetime64[ns] 1993-01-01 1993-01-02 ... 2019-05-13\n", "Data variables:\n", " adt (time, latitude, longitude) float64 dask.array<chunksize=(32, 720, 1440), meta=np.ndarray>\n", " crs int32 ...\n", " err (time, latitude, longitude) float64 dask.array<chunksize=(32, 720, 1440), meta=np.ndarray>\n", " lat_bnds (latitude, nv) float64 dask.array<chunksize=(720, 2), meta=np.ndarray>\n", " lon_bnds (longitude, nv) float64 dask.array<chunksize=(1440, 2), meta=np.ndarray>\n", " sla (time, latitude, longitude) float64 dask.array<chunksize=(32, 720, 1440), meta=np.ndarray>\n", " ugos (time, latitude, longitude) float64 dask.array<chunksize=(32, 720, 1440), meta=np.ndarray>\n", " ugosa (time, latitude, longitude) float64 dask.array<chunksize=(32, 720, 1440), meta=np.ndarray>\n", " vgos (time, latitude, longitude) float64 dask.array<chunksize=(32, 720, 1440), meta=np.ndarray>\n", " vgosa (time, latitude, longitude) float64 dask.array<chunksize=(32, 720, 1440), meta=np.ndarray>\n", "Attributes:\n", " Conventions: CF-1.6\n", " Metadata_Conventions: Unidata Dataset Discovery v1.0\n", " cdm_data_type: Grid\n", " comment: Sea Surface Height measured by Altimetry...\n", " contact: servicedesk.cmems@mercator-ocean.eu\n", " creator_email: servicedesk.cmems@mercator-ocean.eu\n", " creator_name: CMEMS - Sea Level Thematic Assembly Center\n", " creator_url: http://marine.copernicus.eu\n", " geospatial_lat_max: 89.875\n", " geospatial_lat_min: -89.875\n", " geospatial_lat_resolution: 0.25\n", " geospatial_lat_units: degrees_north\n", " geospatial_lon_max: 359.875\n", " geospatial_lon_min: 0.125\n", " geospatial_lon_resolution: 0.25\n", " geospatial_lon_units: degrees_east\n", " geospatial_vertical_max: 0.0\n", " geospatial_vertical_min: 0.0\n", " geospatial_vertical_positive: down\n", " geospatial_vertical_resolution: point\n", " geospatial_vertical_units: m\n", " institution: CLS, CNES\n", " keywords: Oceans > Ocean Topography > Sea Surface ...\n", " keywords_vocabulary: NetCDF COARDS Climate and Forecast Stand...\n", " license: http://marine.copernicus.eu/web/27-servi...\n", " platform: ERS-1, Topex/Poseidon,\n", " processing_level: L4\n", " product_version: 2019\n", " project: COPERNICUS MARINE ENVIRONMENT MONITORING...\n", " references: http://marine.copernicus.eu\n", " software_version: 6.2_DUACS_DT2018_baseline\n", " source: Altimetry measurements\n", " ssalto_duacs_comment: The reference mission used for the altim...\n", " standard_name_vocabulary: NetCDF Climate and Forecast (CF) Metadat...\n", " summary: SSALTO/DUACS Delayed-Time Level-4 sea su...\n", " title: DT merged all satellites Global Ocean Gr...
array([-89.875, -89.625, -89.375, ..., 89.375, 89.625, 89.875])
array([1.25000e-01, 3.75000e-01, 6.25000e-01, ..., 3.59375e+02, 3.59625e+02,\n", " 3.59875e+02])
array([0, 1], dtype=int32)
array(['1993-01-01T00:00:00.000000000', '1993-01-02T00:00:00.000000000',\n", " '1993-01-03T00:00:00.000000000', ..., '2019-05-11T00:00:00.000000000',\n", " '2019-05-12T00:00:00.000000000', '2019-05-13T00:00:00.000000000'],\n", " dtype='datetime64[ns]')
\n",
"
| \n",
"\n", "\n", " | \n", "
array(-2147483647, dtype=int32)
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
<xarray.DataArray 'sla' (time: 9629, latitude: 125, longitude: 200)>\n", "dask.array<sub, shape=(9629, 125, 200), dtype=float64, chunksize=(32, 125, 200), chunktype=numpy.ndarray>\n", "Coordinates:\n", " * latitude (latitude) float64 -69.88 -68.88 -67.88 ... 52.12 53.12 54.12\n", " * longitude (longitude) float64 180.1 180.4 180.6 180.9 ... 229.4 229.6 229.9\n", " * time (time) datetime64[ns] 1993-01-01 1993-01-02 ... 2019-05-13
\n",
"
| \n",
"\n", "\n", " | \n", "
array([-69.875, -68.875, -67.875, -66.875, -65.875, -64.875, -63.875, -62.875,\n", " -61.875, -60.875, -59.875, -58.875, -57.875, -56.875, -55.875, -54.875,\n", " -53.875, -52.875, -51.875, -50.875, -49.875, -48.875, -47.875, -46.875,\n", " -45.875, -44.875, -43.875, -42.875, -41.875, -40.875, -39.875, -38.875,\n", " -37.875, -36.875, -35.875, -34.875, -33.875, -32.875, -31.875, -30.875,\n", " -29.875, -28.875, -27.875, -26.875, -25.875, -24.875, -23.875, -22.875,\n", " -21.875, -20.875, -19.875, -18.875, -17.875, -16.875, -15.875, -14.875,\n", " -13.875, -12.875, -11.875, -10.875, -9.875, -8.875, -7.875, -6.875,\n", " -5.875, -4.875, -3.875, -2.875, -1.875, -0.875, 0.125, 1.125,\n", " 2.125, 3.125, 4.125, 5.125, 6.125, 7.125, 8.125, 9.125,\n", " 10.125, 11.125, 12.125, 13.125, 14.125, 15.125, 16.125, 17.125,\n", " 18.125, 19.125, 20.125, 21.125, 22.125, 23.125, 24.125, 25.125,\n", " 26.125, 27.125, 28.125, 29.125, 30.125, 31.125, 32.125, 33.125,\n", " 34.125, 35.125, 36.125, 37.125, 38.125, 39.125, 40.125, 41.125,\n", " 42.125, 43.125, 44.125, 45.125, 46.125, 47.125, 48.125, 49.125,\n", " 50.125, 51.125, 52.125, 53.125, 54.125])
array([180.125, 180.375, 180.625, 180.875, 181.125, 181.375, 181.625, 181.875,\n", " 182.125, 182.375, 182.625, 182.875, 183.125, 183.375, 183.625, 183.875,\n", " 184.125, 184.375, 184.625, 184.875, 185.125, 185.375, 185.625, 185.875,\n", " 186.125, 186.375, 186.625, 186.875, 187.125, 187.375, 187.625, 187.875,\n", " 188.125, 188.375, 188.625, 188.875, 189.125, 189.375, 189.625, 189.875,\n", " 190.125, 190.375, 190.625, 190.875, 191.125, 191.375, 191.625, 191.875,\n", " 192.125, 192.375, 192.625, 192.875, 193.125, 193.375, 193.625, 193.875,\n", " 194.125, 194.375, 194.625, 194.875, 195.125, 195.375, 195.625, 195.875,\n", " 196.125, 196.375, 196.625, 196.875, 197.125, 197.375, 197.625, 197.875,\n", " 198.125, 198.375, 198.625, 198.875, 199.125, 199.375, 199.625, 199.875,\n", " 200.125, 200.375, 200.625, 200.875, 201.125, 201.375, 201.625, 201.875,\n", " 202.125, 202.375, 202.625, 202.875, 203.125, 203.375, 203.625, 203.875,\n", " 204.125, 204.375, 204.625, 204.875, 205.125, 205.375, 205.625, 205.875,\n", " 206.125, 206.375, 206.625, 206.875, 207.125, 207.375, 207.625, 207.875,\n", " 208.125, 208.375, 208.625, 208.875, 209.125, 209.375, 209.625, 209.875,\n", " 210.125, 210.375, 210.625, 210.875, 211.125, 211.375, 211.625, 211.875,\n", " 212.125, 212.375, 212.625, 212.875, 213.125, 213.375, 213.625, 213.875,\n", " 214.125, 214.375, 214.625, 214.875, 215.125, 215.375, 215.625, 215.875,\n", " 216.125, 216.375, 216.625, 216.875, 217.125, 217.375, 217.625, 217.875,\n", " 218.125, 218.375, 218.625, 218.875, 219.125, 219.375, 219.625, 219.875,\n", " 220.125, 220.375, 220.625, 220.875, 221.125, 221.375, 221.625, 221.875,\n", " 222.125, 222.375, 222.625, 222.875, 223.125, 223.375, 223.625, 223.875,\n", " 224.125, 224.375, 224.625, 224.875, 225.125, 225.375, 225.625, 225.875,\n", " 226.125, 226.375, 226.625, 226.875, 227.125, 227.375, 227.625, 227.875,\n", " 228.125, 228.375, 228.625, 228.875, 229.125, 229.375, 229.625, 229.875])
array(['1993-01-01T00:00:00.000000000', '1993-01-02T00:00:00.000000000',\n", " '1993-01-03T00:00:00.000000000', ..., '2019-05-11T00:00:00.000000000',\n", " '2019-05-12T00:00:00.000000000', '2019-05-13T00:00:00.000000000'],\n", " dtype='datetime64[ns]')
<xarray.DataArray 'sla' (latitude: 125, time: 8760, longitude: 200)>\n", "dask.array<rechunk-merge, shape=(125, 8760, 200), dtype=float64, chunksize=(125, 365, 200), chunktype=numpy.ndarray>\n", "Coordinates:\n", " * latitude (latitude) float64 -69.88 -68.88 -67.88 ... 52.12 53.12 54.12\n", " * longitude (longitude) float64 180.1 180.4 180.6 180.9 ... 229.4 229.6 229.9\n", " * time (time) datetime64[ns] 1993-01-01 1993-01-02 ... 2016-12-25
\n",
"
| \n",
"\n", "\n", " | \n", "
array([-69.875, -68.875, -67.875, -66.875, -65.875, -64.875, -63.875, -62.875,\n", " -61.875, -60.875, -59.875, -58.875, -57.875, -56.875, -55.875, -54.875,\n", " -53.875, -52.875, -51.875, -50.875, -49.875, -48.875, -47.875, -46.875,\n", " -45.875, -44.875, -43.875, -42.875, -41.875, -40.875, -39.875, -38.875,\n", " -37.875, -36.875, -35.875, -34.875, -33.875, -32.875, -31.875, -30.875,\n", " -29.875, -28.875, -27.875, -26.875, -25.875, -24.875, -23.875, -22.875,\n", " -21.875, -20.875, -19.875, -18.875, -17.875, -16.875, -15.875, -14.875,\n", " -13.875, -12.875, -11.875, -10.875, -9.875, -8.875, -7.875, -6.875,\n", " -5.875, -4.875, -3.875, -2.875, -1.875, -0.875, 0.125, 1.125,\n", " 2.125, 3.125, 4.125, 5.125, 6.125, 7.125, 8.125, 9.125,\n", " 10.125, 11.125, 12.125, 13.125, 14.125, 15.125, 16.125, 17.125,\n", " 18.125, 19.125, 20.125, 21.125, 22.125, 23.125, 24.125, 25.125,\n", " 26.125, 27.125, 28.125, 29.125, 30.125, 31.125, 32.125, 33.125,\n", " 34.125, 35.125, 36.125, 37.125, 38.125, 39.125, 40.125, 41.125,\n", " 42.125, 43.125, 44.125, 45.125, 46.125, 47.125, 48.125, 49.125,\n", " 50.125, 51.125, 52.125, 53.125, 54.125])
array([180.125, 180.375, 180.625, 180.875, 181.125, 181.375, 181.625, 181.875,\n", " 182.125, 182.375, 182.625, 182.875, 183.125, 183.375, 183.625, 183.875,\n", " 184.125, 184.375, 184.625, 184.875, 185.125, 185.375, 185.625, 185.875,\n", " 186.125, 186.375, 186.625, 186.875, 187.125, 187.375, 187.625, 187.875,\n", " 188.125, 188.375, 188.625, 188.875, 189.125, 189.375, 189.625, 189.875,\n", " 190.125, 190.375, 190.625, 190.875, 191.125, 191.375, 191.625, 191.875,\n", " 192.125, 192.375, 192.625, 192.875, 193.125, 193.375, 193.625, 193.875,\n", " 194.125, 194.375, 194.625, 194.875, 195.125, 195.375, 195.625, 195.875,\n", " 196.125, 196.375, 196.625, 196.875, 197.125, 197.375, 197.625, 197.875,\n", " 198.125, 198.375, 198.625, 198.875, 199.125, 199.375, 199.625, 199.875,\n", " 200.125, 200.375, 200.625, 200.875, 201.125, 201.375, 201.625, 201.875,\n", " 202.125, 202.375, 202.625, 202.875, 203.125, 203.375, 203.625, 203.875,\n", " 204.125, 204.375, 204.625, 204.875, 205.125, 205.375, 205.625, 205.875,\n", " 206.125, 206.375, 206.625, 206.875, 207.125, 207.375, 207.625, 207.875,\n", " 208.125, 208.375, 208.625, 208.875, 209.125, 209.375, 209.625, 209.875,\n", " 210.125, 210.375, 210.625, 210.875, 211.125, 211.375, 211.625, 211.875,\n", " 212.125, 212.375, 212.625, 212.875, 213.125, 213.375, 213.625, 213.875,\n", " 214.125, 214.375, 214.625, 214.875, 215.125, 215.375, 215.625, 215.875,\n", " 216.125, 216.375, 216.625, 216.875, 217.125, 217.375, 217.625, 217.875,\n", " 218.125, 218.375, 218.625, 218.875, 219.125, 219.375, 219.625, 219.875,\n", " 220.125, 220.375, 220.625, 220.875, 221.125, 221.375, 221.625, 221.875,\n", " 222.125, 222.375, 222.625, 222.875, 223.125, 223.375, 223.625, 223.875,\n", " 224.125, 224.375, 224.625, 224.875, 225.125, 225.375, 225.625, 225.875,\n", " 226.125, 226.375, 226.625, 226.875, 227.125, 227.375, 227.625, 227.875,\n", " 228.125, 228.375, 228.625, 228.875, 229.125, 229.375, 229.625, 229.875])
array(['1993-01-01T00:00:00.000000000', '1993-01-02T00:00:00.000000000',\n", " '1993-01-03T00:00:00.000000000', ..., '2016-12-23T00:00:00.000000000',\n", " '2016-12-24T00:00:00.000000000', '2016-12-25T00:00:00.000000000'],\n", " dtype='datetime64[ns]')
\n",
"
| \n",
"\n", "\n", " | \n", "
\n",
"
| \n",
"\n", "\n", " | \n", "
<xarray.DataArray 'SSH_power_spectral_density' (latitude: 125, freq: 365, wavenumber: 200)>\n", "array([[[ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " ...,\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan]],\n", "\n", " [[ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", "...\n", " [1.08398899e-05, 9.75617559e-06, 7.52946669e-06, ...,\n", " 8.09454475e-06, 1.00422469e-05, 7.02225630e-06],\n", " [8.80102204e-06, 9.61390007e-06, 1.13834824e-05, ...,\n", " 8.23621628e-06, 8.93558453e-06, 8.51600719e-06],\n", " [9.45209779e-06, 9.77775549e-06, 1.13536292e-05, ...,\n", " 1.15640639e-05, 1.08063110e-05, 9.53551082e-06]],\n", "\n", " [[8.09582663e-06, 8.04442968e-06, 7.69118265e-06, ...,\n", " 6.35786351e-06, 9.25052901e-06, 8.71575457e-06],\n", " [6.31084572e-06, 7.30641509e-06, 6.12726067e-06, ...,\n", " 1.00510755e-05, 1.00625545e-05, 8.21150558e-06],\n", " [6.87443933e-06, 6.83419653e-06, 5.91478660e-06, ...,\n", " 9.92557973e-06, 7.67243268e-06, 7.23983009e-06],\n", " ...,\n", " [6.87443933e-06, 7.23983009e-06, 7.67243268e-06, ...,\n", " 7.11400271e-06, 5.91478660e-06, 6.83419653e-06],\n", " [6.31084572e-06, 8.21150558e-06, 1.00625545e-05, ...,\n", " 6.12838223e-06, 6.12726067e-06, 7.30641509e-06],\n", " [8.09582663e-06, 8.71575457e-06, 9.25052901e-06, ...,\n", " 5.63078087e-06, 7.69118265e-06, 8.04442968e-06]]])\n", "Coordinates:\n", " * latitude (latitude) float64 -69.88 -68.88 -67.88 ... 53.12 54.12\n", " * freq (freq) float64 0.4986 0.4959 0.4932 ... -0.4959 -0.4986\n", " inverse_wavelength (latitude, wavenumber) float64 -0.05228 ... 0.03039\n", "Dimensions without coordinates: wavenumber
array([[[ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " ...,\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan]],\n", "\n", " [[ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", " [ nan, nan, nan, ...,\n", " nan, nan, nan],\n", "...\n", " [1.08398899e-05, 9.75617559e-06, 7.52946669e-06, ...,\n", " 8.09454475e-06, 1.00422469e-05, 7.02225630e-06],\n", " [8.80102204e-06, 9.61390007e-06, 1.13834824e-05, ...,\n", " 8.23621628e-06, 8.93558453e-06, 8.51600719e-06],\n", " [9.45209779e-06, 9.77775549e-06, 1.13536292e-05, ...,\n", " 1.15640639e-05, 1.08063110e-05, 9.53551082e-06]],\n", "\n", " [[8.09582663e-06, 8.04442968e-06, 7.69118265e-06, ...,\n", " 6.35786351e-06, 9.25052901e-06, 8.71575457e-06],\n", " [6.31084572e-06, 7.30641509e-06, 6.12726067e-06, ...,\n", " 1.00510755e-05, 1.00625545e-05, 8.21150558e-06],\n", " [6.87443933e-06, 6.83419653e-06, 5.91478660e-06, ...,\n", " 9.92557973e-06, 7.67243268e-06, 7.23983009e-06],\n", " ...,\n", " [6.87443933e-06, 7.23983009e-06, 7.67243268e-06, ...,\n", " 7.11400271e-06, 5.91478660e-06, 6.83419653e-06],\n", " [6.31084572e-06, 8.21150558e-06, 1.00625545e-05, ...,\n", " 6.12838223e-06, 6.12726067e-06, 7.30641509e-06],\n", " [8.09582663e-06, 8.71575457e-06, 9.25052901e-06, ...,\n", " 5.63078087e-06, 7.69118265e-06, 8.04442968e-06]]])
array([-69.875, -68.875, -67.875, -66.875, -65.875, -64.875, -63.875, -62.875,\n", " -61.875, -60.875, -59.875, -58.875, -57.875, -56.875, -55.875, -54.875,\n", " -53.875, -52.875, -51.875, -50.875, -49.875, -48.875, -47.875, -46.875,\n", " -45.875, -44.875, -43.875, -42.875, -41.875, -40.875, -39.875, -38.875,\n", " -37.875, -36.875, -35.875, -34.875, -33.875, -32.875, -31.875, -30.875,\n", " -29.875, -28.875, -27.875, -26.875, -25.875, -24.875, -23.875, -22.875,\n", " -21.875, -20.875, -19.875, -18.875, -17.875, -16.875, -15.875, -14.875,\n", " -13.875, -12.875, -11.875, -10.875, -9.875, -8.875, -7.875, -6.875,\n", " -5.875, -4.875, -3.875, -2.875, -1.875, -0.875, 0.125, 1.125,\n", " 2.125, 3.125, 4.125, 5.125, 6.125, 7.125, 8.125, 9.125,\n", " 10.125, 11.125, 12.125, 13.125, 14.125, 15.125, 16.125, 17.125,\n", " 18.125, 19.125, 20.125, 21.125, 22.125, 23.125, 24.125, 25.125,\n", " 26.125, 27.125, 28.125, 29.125, 30.125, 31.125, 32.125, 33.125,\n", " 34.125, 35.125, 36.125, 37.125, 38.125, 39.125, 40.125, 41.125,\n", " 42.125, 43.125, 44.125, 45.125, 46.125, 47.125, 48.125, 49.125,\n", " 50.125, 51.125, 52.125, 53.125, 54.125])
array([ 0.49863 , 0.49589 , 0.493151, ..., -0.493151, -0.49589 , -0.49863 ])
array([[-0.0522838 , -0.05176096, -0.05123812, ..., 0.05071528,\n", " 0.05123812, 0.05176096],\n", " [-0.04991416, -0.04941502, -0.04891588, ..., 0.04841674,\n", " 0.04891588, 0.04941502],\n", " [-0.04776393, -0.04728629, -0.04680865, ..., 0.04633101,\n", " 0.04680865, 0.04728629],\n", " ...,\n", " [-0.02930129, -0.02900827, -0.02871526, ..., 0.02842225,\n", " 0.02871526, 0.02900827],\n", " [-0.02997853, -0.02967875, -0.02937896, ..., 0.02907918,\n", " 0.02937896, 0.02967875],\n", " [-0.0306974 , -0.03039043, -0.03008345, ..., 0.02977648,\n", " 0.03008345, 0.03039043]])