{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Aeolus access through VirES\n", "\n", "> Abstract: VirES is a server/client architecture to help access Aeolus data. Access is enabled through a token generated on the website, and a Python package, viresclient, which provides the connection with the Python ecosystem (e.g. xarray)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T08:46:50.606872Z", "iopub.status.busy": "2024-01-11T08:46:50.606689Z", "iopub.status.idle": "2024-01-11T08:46:51.331421Z", "shell.execute_reply": "2024-01-11T08:46:51.330513Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python implementation: CPython\n", "Python version : 3.11.6\n", "IPython version : 8.18.0\n", "\n", "viresclient: 0.11.3\n", "pandas : 2.1.3\n", "xarray : 2023.12.0\n", "matplotlib : 3.8.2\n", "\n" ] } ], "source": [ "# Display important package versions used\n", "%load_ext watermark\n", "%watermark -i -v -p viresclient,pandas,xarray,matplotlib" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**VirES** (Virtual environments for Earth Scientists) is a platform for data access, analysis, and visualisation for ESA's **Aeolus** mission.\n", "\n", "This tutorial introduces the Python interface to VirES, **`viresclient`**. We demonstrate usage of the primary Aeolus datasets and other algorithms for further analysis.\n", "\n", "Run this on the **[VRE](https://vre.aeolus.services/)** (Virtual Research Environment), where viresclient is already installed, or [check the instructions](https://viresclient.readthedocs.io/en/latest/installation.html) to set it up on your own Python environment.\n", "\n", "For more information see:\n", "- https://aeolus.services/ (Web interface)\n", "- https://viresclient.readthedocs.io (Python interface)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Configuration\n", "\n", "In order to authenticate access to the VirES server, `viresclient` requires an access token - this ties communications between the server and the client to your account. **If you are using the VRE, this is handled automatically so you can skip this step.**\n", "\n", "If you are running `viresclient` on a different machine, you will need to follow these instructions:\n", "\n", "1. Create a user account at https://aeolus.services if you haven't already done so\n", "2. Install viresclient in your Python environment - see https://viresclient.readthedocs.io/en/latest/installation.html\n", "3. Create a new code cell here and execute the following:\n", "\n", " ```python\n", " from viresclient import set_token\n", " set_token(\"https://aeolus.services/ows\", set_default=True)\n", " ```\n", "\n", "\n", "4. You will now be directed to the [VirES token management page](https://aeolus.services/accounts/tokens/), and prompted to generate a new token and enter it here\n", "\n", "Your access token should now have been saved to your environment and you won't need to provide it again. The token and its associated access URL are stored in a file: `~/.viresclient.ini` (this file can also be edited directly). You may generate and set a new token, or revoke old tokens, at any point. These are similar to passwords, so **should be kept secret** - if you accidentally leak a token, you can revoke it at the token management page and generate a new one. It is also possible to set access tokens via CLI. For more information, see https://viresclient.readthedocs.io/en/latest/config_details.html\n", "\n", "To remove the configuration (assuming you left it in its default location), you can use the CLI command: `viresclient clear_credentials`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fetching some data\n", "\n", "Import the `AeolusRequest` object which provides the VirES interface, and `datetime` which gives convenient time objects which can be used by `AeolusRequest.get_between()`" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T08:46:51.335175Z", "iopub.status.busy": "2024-01-11T08:46:51.334879Z", "iopub.status.idle": "2024-01-11T08:46:51.338729Z", "shell.execute_reply": "2024-01-11T08:46:51.337804Z" } }, "outputs": [], "source": [ "from viresclient import AeolusRequest" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following code will fetch a time period from L2B data.\n", "\n", "`start_time` and `end_time` in `.get_between()` together provide the time window you want to fetch data for - executing this line causes the request to be processed on the server and the data returned to you. Alternatively we can provide the start and end times as ISO_8601 strings." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T08:46:51.341272Z", "iopub.status.busy": "2024-01-11T08:46:51.341073Z", "iopub.status.idle": "2024-01-11T08:46:53.097127Z", "shell.execute_reply": "2024-01-11T08:46:53.096364Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "fc4497bb69114a4ba18236d7213818b1", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Processing: 0%| | [ Elapsed: 00:00, Remaining: ? ] [1/1] " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b9ddfbe01e08480185b33585e522e3de", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Downloading: 0%| | [ Elapsed: 00:00, Remaining: ? ] (0.318MB)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set up connection with server\n", "request = AeolusRequest()\n", "# Set collection to use\n", "request.set_collection('ALD_U_N_2B')\n", "\n", "request.set_fields(rayleigh_wind_fields=[\n", " \"rayleigh_wind_result_start_time\",\n", " \"rayleigh_wind_result_stop_time\",\n", " \"rayleigh_wind_result_bottom_altitude\",\n", " \"rayleigh_wind_result_top_altitude\",\n", " \"rayleigh_wind_result_wind_velocity\",\n", "])\n", "\n", "\n", "data = request.get_between(\n", " start_time=\"2020-04-10T06:21:58Z\",\n", " end_time=\"2020-04-10T07:50:33Z\",\n", " filetype=\"nc\"\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.11.6" }, "toc-autonumbering": false, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "0aa8ae1d146b4fe0b12cffa2b9a42a88": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_9c08bfb26b804f31b7e09f4f1abb3af8", "max": 100.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_ac20c278fb064400b2aa5802804b272b", "value": 100.0 } }, "0e55cc190d8945a8bb7f5390e8509b1f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "177c8685a5c945ca95f083659ca88989": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_358b1db0771f487592758e47826cf888", "placeholder": "​", "style": "IPY_MODEL_a503b8b3ea844bd58c7f71a5efa2f644", "value": " [ Elapsed: 00:01, Remaining: 00:00 ] [1/1] " } }, "1e591fe102834c0d89a912de51cd62e6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2f4873ac749f4adca1b248f6b981400d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_d91fb26f622148c4ab76727c1c6d8368", "max": 100.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_ee7eed6bc7944ffd9a57a06e359e4761", "value": 100.0 } }, "358b1db0771f487592758e47826cf888": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "6f01f5bbf8ce4859970e6b0a481808ab": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "7a5acf37b98b42eeb1f59b59c363c7f7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "843847151df34e6ea60a98548a594d6a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_7a5acf37b98b42eeb1f59b59c363c7f7", "placeholder": "​", "style": "IPY_MODEL_b50ff3306c1b4c2a8a907922bbf7f8c6", "value": "Processing: 100%" } }, "9c08bfb26b804f31b7e09f4f1abb3af8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a503b8b3ea844bd58c7f71a5efa2f644": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "ac20c278fb064400b2aa5802804b272b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "b50ff3306c1b4c2a8a907922bbf7f8c6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "b6542fb4fd154d8f8573f898bbf2206d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b9ddfbe01e08480185b33585e522e3de": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_d312e691aec94305930f50d16fc34833", "IPY_MODEL_0aa8ae1d146b4fe0b12cffa2b9a42a88", "IPY_MODEL_fdb8587319884ad9b82c4a85c6176b45" ], "layout": "IPY_MODEL_1e591fe102834c0d89a912de51cd62e6" } }, "be0edc3e0219434cb7f294ca835018dc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "c5e19eb6111e4d92809e1fe613dbe308": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "d312e691aec94305930f50d16fc34833": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_b6542fb4fd154d8f8573f898bbf2206d", "placeholder": "​", "style": "IPY_MODEL_0e55cc190d8945a8bb7f5390e8509b1f", "value": "Downloading: 100%" } }, "d91fb26f622148c4ab76727c1c6d8368": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ee7eed6bc7944ffd9a57a06e359e4761": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "fc4497bb69114a4ba18236d7213818b1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_843847151df34e6ea60a98548a594d6a", "IPY_MODEL_2f4873ac749f4adca1b248f6b981400d", "IPY_MODEL_177c8685a5c945ca95f083659ca88989" ], "layout": "IPY_MODEL_6f01f5bbf8ce4859970e6b0a481808ab" } }, "fdb8587319884ad9b82c4a85c6176b45": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_c5e19eb6111e4d92809e1fe613dbe308", "placeholder": "​", "style": "IPY_MODEL_be0edc3e0219434cb7f294ca835018dc", "value": " [ Elapsed: 00:00, Remaining: 00:00 ] (0.318MB)" } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }