{ "cells": [ { "cell_type": "markdown", "id": "a39005bc-f1d3-4363-a157-a8f0e6f08349", "metadata": {}, "source": [ "\"argopy \n", "\n", "# BGC-Argo data mode census\n", "\n", "This notebook shows how to:\n", "- download BGC-Argo index\n", "- search for profiles with a specific parameter\n", "- search for profile with a specific data mode for one parameter\n", "- export search results as a Pandas DataFrame\n", "- extract data mode values for this parameter\n", "- download info from Argo NVS Reference Tables about a parameter\n", "- make a pie plot color coded with parameter data mode census" ] }, { "cell_type": "markdown", "id": "44a80811-1b3e-4d61-9ae8-40c9ee01d601", "metadata": { "tags": [] }, "source": [ "## Import and set-up" ] }, { "cell_type": "code", "execution_count": 1, "id": "a73e49bd-4447-403d-95ea-ad0e6ed08649", "metadata": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/gmaze/miniconda3/envs/argopy-docs/lib/python3.8/site-packages/pyproj/__init__.py:89: UserWarning: pyproj unable to set database path.\n", " _pyproj_global_context_initialize()\n" ] } ], "source": [ "from argopy import ArgoIndex # This is the class to work with Argo index content\n", "from argopy import ArgoNVSReferenceTables # This is the class to retrieve data from Argo reference tables\n", "from argopy import ArgoColors # This is a class with usefull pre-defined colors\n", "from argopy.plot import scatter_map # This is a function to easily make maps \n", "\n", "import numpy as np\n", "from matplotlib import pyplot as plt" ] }, { "cell_type": "markdown", "id": "9ae7b86f-7fcd-4220-a143-d997fbf7b76d", "metadata": { "tags": [] }, "source": [ "## Load the index of BGC profiles" ] }, { "cell_type": "code", "execution_count": 2, "id": "4e374d68-1c30-4b28-9dce-1cb527361efd", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "\n", "Host: https://data-argo.ifremer.fr\n", "Index: argo_bio-profile_index.txt\n", "Convention: argo_bio-profile_index (Bio-Profile directory file of the Argo GDAC)\n", "Loaded: True (289254 records)\n", "Searched: False" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx = ArgoIndex(index_file='bgc-b').load() # 'bgc-b' is a shortcut for 'argo_bio-profile_index.txt'\n", "idx" ] }, { "cell_type": "markdown", "id": "c208048f-a81c-4a6e-a42a-4c1053a64a44", "metadata": {}, "source": [ "## Define a parameter to work with" ] }, { "cell_type": "code", "execution_count": 3, "id": "29106422-6a89-4160-b69d-2d7e8cef67e7", "metadata": {}, "outputs": [], "source": [ "param = 'BBP700'" ] }, { "cell_type": "code", "execution_count": 4, "id": "a290fc9f-b981-436e-9d4a-62e9e3e87d4e", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "altLabel BBP700\n", "prefLabel Particle backscattering at 700 nanometers\n", "definition Particle backscattering (/m) at 700 nm wavelen...\n", "deprecated false\n", "id http://vocab.nerc.ac.uk/collection/R03/current...\n", "Name: 3, dtype: object" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get more verbose information about this parameter (usefull for plot titles):\n", "reftbl = ArgoNVSReferenceTables().tbl('R03')\n", "param_info = reftbl[reftbl['altLabel']==param].iloc[0]\n", "param_info" ] }, { "cell_type": "markdown", "id": "3d61a51f-c476-4ae2-b858-a62edd009955", "metadata": {}, "source": [ "## Data mode census" ] }, { "cell_type": "code", "execution_count": 5, "id": "d8d47313-5577-4eae-b19a-476066e85f74", "metadata": {}, "outputs": [], "source": [ "# List of all possible data mode values\n", "# a blank string is where no data mode is found (parameter exists but data mode is empty)\n", "# an empty string is for profiles without the parameter\n", "dm_values = ['R', 'A', 'D', ' ', ''] " ] }, { "cell_type": "code", "execution_count": 6, "id": "7b24cff6-f032-4a16-9438-dd5fa4598347", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'R': 64360, 'A': 34992, 'D': 17529, ' ': 0, '': 172373}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Make a census of profiles in each of possible data modes for this parameter:\n", "n, N = [], {}\n", "for dm in dm_values:\n", " n_match = idx.search_parameter_data_mode({param: dm}).N_MATCH\n", " n.append(n_match), N.update({dm: n_match})\n", "\n", "# Census result\n", "N " ] }, { "cell_type": "code", "execution_count": 7, "id": "7d29fa40-bd6f-483c-8e21-f1ed028f8733", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Check that the census is correct:\n", "\n", "# Number of profiles with this PARAMETER vs decomposition by data mode:\n", "assert idx.search_params(param).N_MATCH == np.sum(n[0:-1])\n", "\n", "# Number of index profiles vs all expected data modes:\n", "assert idx.N_RECORDS == np.sum(n)" ] }, { "cell_type": "markdown", "id": "cf3b8f43-78de-47bc-9a81-118bad4666d2", "metadata": { "tags": [] }, "source": [ "## Make a pie plot to visualise census" ] }, { "cell_type": "code", "execution_count": 12, "id": "8ce7f548-8d3a-4304-8a04-742bd5ee3d3c", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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vGjYsCH/93//l2MMU6ZMwcHBgXHjxmnLpk6dSq1atXBzc8Pd3Z0qVarw+uuvWz3v3LlzPPPMM4SEhGAymQgKCqJLly5cvHgxT7EbDAbi4+P5/vvvtderRYsW93yPA6xcuZJWrVrh4eGBi4sLTZo0yVRln925cvdjd7Oc68uWLeOBBx7A2dmZKlWq8N1332U6dhs3bqRRo0Y4OTkRHBzMm2++ybRp06zOuezY4jqXW9OnT8dgMPDUU09py1JTU1m8eDFPPPEEHh4e2vLQ0FBatmzJr7/+qi1btmwZiYmJDBgwwGq9AwYMQCmVZTPu3SxdQtasWcNzzz2Hr68vPj4+PP7445w/f96q7M8//0ybNm0IDAzE2dmZqlWrMmrUKOLj463K9e/fHzc3N44ePUqHDh1wc3MjJCSE4cOHk5SUZFX22rVrDBkyhODgYEwmExUqVOCNN97IVM5gMPD8888zY8YMIiMjcXZ2pl69emzZsgWlFJMmTSI8PBw3NzcefPBBjh49mmlf73VOjh8/nhEjRgAQHh6uvaZr1661OgaNGjXC1dUVNzc32rZty65du7Lc/3379tGmTRvc3d1p1aoVALt27aJTp074+/vj6OhIUFAQHTt25OzZszm+TlmZOnUqAQEBtG7dOlflPT09ATAajfcsa2dnh5ubW67Kenl5ERkZafX+yCguLo65c+cSExNDxYoVteV5OX9//fVXIiMjadSokbbMwcGBJ598km3btnHu3Dltuclkonv37nzzzTcope65DzlxyNezM+jQoQP29vasX79eW3by5EkiIyPp0aMH3t7eXLhwgalTp1K/fn3++usvfH196dixI++99x6vv/46kydP5oEHHgDQLpjHjh2jUaNGDBo0CE9PT06ePMl//vMfmjZtyr59+3L1Qr7++uu0bNmSmTNncvLkSV599VV69uyJg4MDtWrVYs6cOezatYvXX38dd3d37UNRKcWjjz7KqlWrGD16NM2aNWPv3r2MGzeOzZs3s3nzZhwdHQF4+umn+e9//8urr75K69at2b9/P48//jhxcXFWscTGxtKgQQPs7OwYO3YsERERbN68mQkTJnDy5ElmzJiR7X5s3ryZd955hzVr1rB69WrtOOUlTjD3xTh48CBjxowhPDwcV1fXbLeZ2wv/9evXuXr1KpUqVQLy/ro9/vjj9OjRg2effZb4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GnDjxg169uzJ//73vyybz5cuXUrLli2190R2chP7/di0aRPXrl2jX79+Vsc/PT2ddu3asX379ky1Unk5V2rXrk358uW1/52cnKhcubJVM8S6det48MEH8fX11ZbZ2dnRrVu3XG3DFte53Jg+fTo+Pj489thjWT6e012Rdz+W23I5efjhh63+t9QC3H1cjx8/Tq9evQgICMDe3h6j0UhMTAyQ+RpgMBjo3LlzpnXevb7Vq1fj6upKly5drMpZrnsZr3MtW7a0qo23nOPt27e32k/Lcsu27ueczGj58uWkpqbSt29fq3U4OTkRExNj1VxokfG8rlixImXKlGHkyJF89dVXVjXNeWVppvX398/ycWdnZ7Zv38727dvZunUrCxYsoHLlynTo0MGqxcDigw8+0MqvWLGC1157jYkTJ2pNo3dbsmQJRqMRo9FIeHg4v/zyC8OGDWPChAlZxnLgwAG2bt1K7969cXJyyvR4Xs7fvJS1HJu7mwjvh02bAuPj47l69apVFVqvXr1YtWoVb775JvXr18fDwwODwUCHDh1ISEi45zrT09Np06YN58+f580336RmzZq4urqSnp5Ow4YNc7UOAG9vb6v/TSZTjssTExNxc3Pj6tWrODg4ZKqyNBgMBAQEcPXqVQDtd0BAgFU5BwcHfHx8rJZdvHiRRYsWZduEmZu+YxnlNk6L7JrT8qJbt26MGDECg8GAu7s7ERER2NvbA/f3uuU3psuXL1t9gOaWLV6PjK/73cssx37BggV069aNrl27MmLECAICAnBwcGDq1KlWfX4uX76Mvb19luvM6PDhw1y/fp2nn36aGjVqZHq8T58+pKam8u233/LEE0+Qnp5O/fr1mTBhgtbP4vLly5QrVy7H7eQ29vth6ceV8cPybteuXbP6gMzLuZLx/Qfg6OhodQ5evXqVsmXLZiqX1bKs5Pc6lxt79+5lx44dvPjii1bN+vDvPmZ8n4P52BkMBry8vLSyiYmJ3LlzBxcXl0xl69atm6t4Mh5XS0yW/b19+zbNmjXDycmJCRMmULlyZVxcXDhz5gyPP/54puPi4uKS6UPU0dGRxMRE7f+rV68SEBCQ5Qeig4NDpv2/n+s+3N85mZFlHfXr18/y8YzNcS4uLlb948Dcx2ndunW8++67vP7661y/fp3AwECefvppxowZk6tuMBaW451VomKJp169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jlqyZIlq2LChcnR0VOfOncs23ps3b2pxjRkzRovX8m2xX79+ymQyqapVq6qPPvpIrVy5Uo0dO1YZDAb11ltvaetJS0tT7dq1U66uruqtt95SK1asUNOmTVPBwcGqWrVq6s6dOzmdPto5ERsbq1JSUlRSUpI6cuSI6t69u3J0dLQaST2r13Tt2rXKaDSqunXrqp9//lktXLhQtWnTRhkMBvXTTz/luG2LrGqskpOTlb+/vwoKCrLadnBwsGrZsqWaN2+e+v3339WJEyfU7NmzFaDatGmjFi5cqH7++WdVt25dZTKZ1IYNG5RSSh09elRNnjxZAeq9995Tmzdv1pqQshqFO2ONVX6Ps+W1fuSRR9SiRYvUrFmzVMWKFVVISEimGquM17qczt93331XGQwG9dRTT6nFixerBQsWqEaNGilXV1erJrJly5Ypo9GooqKi1MyZM9Xq1avVd999p3r06KGUMo+Qb+mqsGDBAu18tIx2nZf3ibe3twoJCVFffPGFWrNmjVq3bp3as2ePAtS3335rta8HDhxQgJo8eXK2x27nzp1q4MCBVk3WlvdJVjWLGY/fhQsXtOP89ddfq5UrV6p33nlHOTo6qv79++f4uuV233OKMaOjR4+qLl26KEA7zps3b9aus4AKCwtTDRo0UL/88otasmSJatGihXJwcFDHjh2zOna5uZ7m5N1331WA+u2331R6eroKDQ1V4eHhmWpD+/Xrp4xGowoLC1Pvv/++WrVqlVq+fLlKS0tTTZs2VU5OTmrixInq999/V2+99ZaqVKlSptchP9eKp59+WgHq77//ztV+KZVzjZWF5VqdkpKiLTtz5oyys7NTXbt2VUopNWbMGAWotWvXamVSU1OVi4uLio6OznU8tlAkE6vBgwcrQHl4eKiBAweqlStXqh9++EGFhoYqX1/fTMPxZ+XWrVuqc+fOVsPut2jRQl29ejVT2T/++EMFBQVp5XJq07W438QqKChIJSQkWMXp7e2tHnroIW2Z5QNk7NixVutYtmyZAjLF9vPPPytAffPNN9qy7JqocpNYtW3bVpUrVy7T1ATPP/+8cnJyUteuXVNKKdWpUydVu3btXB+Du5FFNbrlgynjdAYHDx5UgBoyZIjV8q1btypAvf7669qymJgYBagdO3Zoy65evars7e2Vs7OzVRK1e/duBajPP/88x1jv1RQI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M4MHD8bFxYVVq1bx8ccf89BDD1m1BZ86dUpL1o4dOwag7WdYWFiuvsnb29vTunVrXnnlFdLT0/nggw+4desWb7311j2f27p1a9q2bcvIkSO5desWTZo0Ye/evYwbN446derQp0+fe64jNz777DOaNm1Ks2bNeO655wgLCyMuLo6jR49q/dAAOnfuTI0aNahXrx5+fn6cOnWKTz/9lNDQUCpVqmSTWMD8gffMM8/wxRdfYGdnR/v27Tl58iRvvvkmISEhvPzyyzbbVlYiIiJwdnZm9uzZVK1aFTc3N4KCgnK80GfUo0cPZs+eTYcOHXjxxRdp0KABRqORs2fPsmbNGh555JFczSrw559/as3FFy9e5LvvvuPQoUO8/PLLOfbLef/992ndujUtW7bk1VdfxWQyMWXKFPbv38+cOXMKfBYBOzs7PvzwQ3r37k2nTp205oBJkyZx48YNJk6caJPt5Oc429nZ8c477zBo0CAee+wxnn76aW7cuMH48eOzbB7MrbCwMN5++23eeOMNjh8/Trt27ShTpgwXL15k27ZtuLq6au//yZMn07lzZxo2bMjLL79M+fLlOX36NMuXL2f27NkA2sS5n332Gf369cNoNBIZGWnT94mXlxd9+/Zl6tSphIaGZupDWBDefvttVqxYQePGjXnhhReIjIwkMTGRkydPsmTJEr766qtsv+gW1DXCcqw/+OAD2rdvj729PVFRUdk2NWclt9fTrEyfPp0yZcrw6quvZvn+7tu3L//5z3/Ys2dPjv2W2rVrR5MmTRg+fDi3bt2ibt26bN68WRtK5O5WoPxcK+zt7Vm4cCFt27alQYMGPP3007Ro0YIyZcpw48YNtm7dyp49e7IciuH06dNs2bKF9PR0bt68ya5du/juu+84deoUH3/8MW3atAFg9uzZJCYm8sILL2Q5hIePjw+zZ89m+vTpfPLJJzRq1IipU6cyZMgQ6taty3PPPUf16tVJSUlh165dfPPNN9SoUcO257gtesCHhoZmeccSGe5csdztk9VPVoP8ffvtt6pGjRrKZDIpHx8f1bt370y3xu7bt08BatSoUVbLjxw5ovr06aPCwsKUo6OjKl++vOrevXuWd5bMnz9fNW3aVPn6+ipXV1dVvXp19c4772QaNNRy109WP3ffaZcVy50PH3zwgXrrrbdUuXLllMlkUnXq1FHLly+3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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pf = lambda n: \"{:,}\".format(n)\n", "autopct = lambda v: \"%0.0f%%\" % v\n", "\n", "x = N.copy()\n", "x.pop('')\n", "if x[' '] == 0:\n", " x.pop(' ')\n", "labels = [\"%s (%s profiles)\" % (k, pf(x[k])) for k in x.keys()]\n", "\n", "fix, ax = plt.subplots()\n", "ax.pie(x.values(), \n", " labels=labels, \n", " autopct=autopct, \n", " colors=ArgoColors('data_mode').lookup.values(), \n", " textprops=dict(weight=\"bold\")\n", " );\n", "ax.set_title(\"Data mode for '%s' (%s)\\n%s profiles from the %s\" % (param_info['prefLabel'], \n", " param, \n", " pf(idx.search_params(param).N_MATCH),\n", " idx.convention_title)\n", " );" ] } ], "metadata": { "kernelspec": { "display_name": "argopy-docs", "language": "python", "name": "argopy-docs" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.17" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }