{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.dsXyMOwQ/b1/python-xarray_2023.01.0-1.1_arm64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.dsXyMOwQ/b2/python-xarray_2023.01.0-1.1_arm64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,3 +1,3 @@\n \n- 6f4ce5648706086f1832d2e8b8165ebe 5278124 doc optional python-xarray-doc_2023.01.0-1.1_all.deb\n+ 93f5b8ab1ec58df68edcb45557ce6c14 5278172 doc optional python-xarray-doc_2023.01.0-1.1_all.deb\n 6e5f6af35de770365644ec5792cfe64e 630312 python optional python3-xarray_2023.01.0-1.1_all.deb\n"}, {"source1": "python-xarray-doc_2023.01.0-1.1_all.deb", "source2": "python-xarray-doc_2023.01.0-1.1_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2023-02-19 00:50:57.000000 debian-binary\n -rw-r--r-- 0 0 0 6244 2023-02-19 00:50:57.000000 control.tar.xz\n--rw-r--r-- 0 0 0 5271688 2023-02-19 00:50:57.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 5271736 2023-02-19 00:50:57.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -235,29 +235,29 @@\n -rw-r--r-- 0 root (0) root (0) 81125 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/contributing.html\n -rw-r--r-- 0 root (0) root (0) 7040 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/developers-meeting.html\n -rw-r--r-- 0 root (0) root (0) 19841 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/ecosystem.html\n drwxr-xr-x 0 root (0) root (0) 0 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/\n -rw-r--r-- 0 root (0) root (0) 108934 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.html\n -rw-r--r-- 0 root (0) root (0) 6504 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 45795 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.html\n--rw-r--r-- 0 root (0) root (0) 24040 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 24046 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 128905 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.html\n--rw-r--r-- 0 root (0) root (0) 9526 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 9539 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 36809 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.html\n--rw-r--r-- 0 root (0) root (0) 21757 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 21760 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 22771 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/blank_template.html\n--rw-r--r-- 0 root (0) root (0) 1561 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/blank_template.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 1556 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/blank_template.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 45664 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/monthly-means.html\n--rw-r--r-- 0 root (0) root (0) 3534 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/monthly-means.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 3540 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/monthly-means.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 38738 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.html\n--rw-r--r-- 0 root (0) root (0) 11182 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 11173 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 65414 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.html\n--rw-r--r-- 0 root (0) root (0) 4663 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 4662 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 92426 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/weather-data.html\n--rw-r--r-- 0 root (0) root (0) 367742 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/weather-data.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 367785 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/weather-data.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 6546 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/gallery.html\n -rw-r--r-- 0 root (0) root (0) 8063 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/genindex.html\n drwxr-xr-x 0 root (0) root (0) 0 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/getting-started-guide/\n -rw-r--r-- 0 root (0) root (0) 28859 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/getting-started-guide/faq.html\n -rw-r--r-- 0 root (0) root (0) 6381 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/getting-started-guide/index.html\n -rw-r--r-- 0 root (0) root (0) 20999 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/getting-started-guide/installing.html\n -rw-r--r-- 0 root (0) root (0) 42860 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/getting-started-guide/quick-overview.html\n@@ -271,20 +271,20 @@\n -rw-r--r-- 0 root (0) root (0) 6791 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/internals/index.html\n -rw-r--r-- 0 root (0) root (0) 9602 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/internals/variable-objects.html\n -rw-r--r-- 0 root (0) root (0) 32114 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/internals/zarr-encoding-spec.html\n -rw-r--r-- 0 root (0) root (0) 16394 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/objects.inv\n -rw-r--r-- 0 root (0) root (0) 5487 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/py-modindex.html\n -rw-r--r-- 0 root (0) root (0) 22790 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/roadmap.html\n -rw-r--r-- 0 root (0) root (0) 5240 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/search.html\n--rw-r--r-- 0 root (0) root (0) 198700 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/searchindex.js\n+-rw-r--r-- 0 root (0) root (0) 198698 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/searchindex.js\n -rw-r--r-- 0 root (0) root (0) 7175 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/tutorials-and-videos.html\n drwxr-xr-x 0 root (0) root (0) 0 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/\n -rw-r--r-- 0 root (0) root (0) 56706 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/combining.html\n -rw-r--r-- 0 root (0) root (0) 125736 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/computation.html\n--rw-r--r-- 0 root (0) root (0) 74544 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/dask.html\n+-rw-r--r-- 0 root (0) root (0) 74545 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/dask.html\n -rw-r--r-- 0 root (0) root (0) 98802 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/data-structures.html\n -rw-r--r-- 0 root (0) root (0) 15231 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/duckarrays.html\n -rw-r--r-- 0 root (0) root (0) 37489 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/groupby.html\n -rw-r--r-- 0 root (0) root (0) 7597 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/index.html\n -rw-r--r-- 0 root (0) root (0) 252969 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/indexing.html\n -rw-r--r-- 0 root (0) root (0) 91334 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/interpolation.html\n -rw-r--r-- 0 root (0) root (0) 253831 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/io.html\n"}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.html", "source2": "./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.html", "unified_diff": "@@ -432,15 +432,15 @@\n \n \n
\n-Error in callback <function _draw_all_if_interactive at 0xffff59c779c0> (for post_execute):\n+Error in callback <function _draw_all_if_interactive at 0xffff618eb9c0> (for post_execute):\n
\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -98,15 +98,15 @@\n ----> 7 plot = ds.t2m[0].plot(\n 8 cmap=plt.cm.coolwarm, transform=ccrs.PlateCarree(), cbar_kwargs=\n {\"shrink\": 0.6}\n 9 )\n 10 plt.title(\"ERA5 - 2m temperature British Isles March 2019\")\n \n NameError: name 'ds' is not defined\n-Error in callback (for\n+Error in callback (for\n post_execute):\n ---------------------------------------------------------------------------\n PermissionError Traceback (most recent call last)\n File /usr/lib/python3/dist-packages/matplotlib/pyplot.py:119, in\n _draw_all_if_interactive()\n 117 def _draw_all_if_interactive():\n 118 if matplotlib.is_interactive():\n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.ipynb.gz", "source2": "./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.ipynb.gz", "unified_diff": null, "details": [{"source1": "ERA5-GRIB-example.ipynb", "source2": "ERA5-GRIB-example.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.9985416666666667%", "Differences: {\"'cells'\": \"{2: {'metadata': {'execution': {'iopub.execute_input': '2024-01-08T11:26:00.178902Z', \"", " \"'iopub.status.busy': '2024-01-08T11:26:00.178619Z', 'iopub.status.idle': \"", " \"'2024-01-08T11:26:05.203130Z', 'shell.execute_reply': \"", " \"'2024-01-08T11:26:05.202426Z'}}}, 4: {'metadata': {'execution': \"", " \"{'iopub.execute_input': '2024-01-08T11:26:05.218756Z', 'iopub.status.busy': \"", " \"'2024-01-08T11:26:05.211215Z', 'iopub.status.idle': '2024-01-08T11:26:0 [\u2026]"], "unified_diff": "@@ -15,18 +15,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:03.486015Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:03.485718Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:07.841871Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:07.841019Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:00.178902Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:00.178619Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:05.203130Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:05.202426Z\"\n }\n },\n \"outputs\": [\n {\n \"name\": \"stderr\",\n \"output_type\": \"stream\",\n \"text\": [\n@@ -47,18 +47,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:07.866408Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:07.865889Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:08.249882Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:08.249000Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:05.218756Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:05.211215Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:05.931249Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:05.930456Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"ImportError\",\n \"evalue\": \"tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.\",\n \"output_type\": \"error\",\n@@ -88,18 +88,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 3,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:08.256241Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:08.255931Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:08.292471Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:08.291661Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:05.939423Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:05.939157Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:05.995128Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:05.994433Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -124,18 +124,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 4,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:08.296332Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:08.296059Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:11.393951Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:11.393003Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:06.003507Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:06.003228Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:12.718499Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:12.710458Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -146,15 +146,15 @@\n \"\\u001b[0;31mNameError\\u001b[0m: name 'ds' is not defined\"\n ]\n },\n {\n \"name\": \"stdout\",\n \"output_type\": \"stream\",\n \"text\": [\n- \"Error in callback (for post_execute):\\n\"\n+ \"Error in callback (for post_execute):\\n\"\n ]\n },\n {\n \"ename\": \"PermissionError\",\n \"evalue\": \"[Errno 13] Permission denied: '/nonexistent'\",\n \"output_type\": \"error\",\n \"traceback\": [\n@@ -255,18 +255,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 5,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:11.398058Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:11.397775Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:11.425781Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:11.424998Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:12.727529Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:12.727233Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:12.799220Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:12.798431Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.ipynb.gz", "source2": "./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.ipynb.gz", "unified_diff": null, "details": [{"source1": "ROMS_ocean_model.ipynb", "source2": "ROMS_ocean_model.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.9988051470588235%", "Differences: {\"'cells'\": \"{2: {'metadata': {'execution': {'iopub.execute_input': '2024-01-08T11:26:20.594000Z', \"", " \"'iopub.status.busy': '2024-01-08T11:26:20.593670Z', 'iopub.status.idle': \"", " \"'2024-01-08T11:26:24.502509Z', 'shell.execute_reply': \"", " \"'2024-01-08T11:26:24.494464Z'}}}, 5: {'metadata': {'execution': \"", " \"{'iopub.execute_input': '2024-01-08T11:26:24.511712Z', 'iopub.status.busy': \"", " \"'2024-01-08T11:26:24.511251Z', 'iopub.status.idle': '2024-01-08T11:26:2 [\u2026]"], "unified_diff": "@@ -17,18 +17,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:19.808398Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:19.808080Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:22.377757Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:22.377007Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:20.594000Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:20.593670Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:24.502509Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:24.494464Z\"\n }\n },\n \"outputs\": [],\n \"source\": [\n \"import numpy as np\\n\",\n \"import cartopy.crs as ccrs\\n\",\n \"import cartopy.feature as cfeature\\n\",\n@@ -75,18 +75,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:22.386237Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:22.385805Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:22.822902Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:22.820995Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:24.511712Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:24.511251Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:25.111336Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:25.110469Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"ImportError\",\n \"evalue\": \"tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.\",\n \"output_type\": \"error\",\n@@ -130,18 +130,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 3,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:22.826358Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:22.826089Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:22.861746Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:22.860993Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:25.119637Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:25.119352Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:25.179251Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:25.178465Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -175,18 +175,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 4,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:22.865355Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:22.865087Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:22.893754Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:22.893005Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:25.187640Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:25.187359Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:25.231268Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:25.230474Z\"\n },\n \"scrolled\": false\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n@@ -211,18 +211,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 5,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:22.897434Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:22.897163Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:22.933749Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:22.932994Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:25.239562Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:25.239291Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:25.326478Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:25.310467Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -250,18 +250,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 6,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:22.937293Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:22.937037Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:22.973712Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:22.972999Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:25.333296Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:25.333003Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:25.406689Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:25.396688Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -285,18 +285,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 7,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:22.977259Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:22.976990Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:23.417748Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:23.416998Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:25.413500Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:25.413224Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:26.395197Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:26.394427Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.ipynb.gz", "source2": "./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.ipynb.gz", "unified_diff": null, "details": [{"source1": "apply_ufunc_vectorize_1d.ipynb", "source2": "apply_ufunc_vectorize_1d.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.9994283536585367%", "Differences: {\"'cells'\": \"{2: {'metadata': {'execution': {'iopub.execute_input': '2024-01-08T11:26:34.069549Z', \"", " \"'iopub.status.busy': '2024-01-08T11:26:34.069253Z', 'iopub.status.idle': \"", " \"'2024-01-08T11:26:36.891262Z', 'shell.execute_reply': \"", " \"'2024-01-08T11:26:36.890458Z'}}}, 4: {'metadata': {'execution': \"", " \"{'iopub.execute_input': '2024-01-08T11:26:36.899463Z', 'iopub.status.busy': \"", " \"'2024-01-08T11:26:36.899184Z', 'iopub.status.idle': '2024-01-08T11:26:3 [\u2026]"], "unified_diff": "@@ -36,18 +36,18 @@\n \"execution_count\": 1,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:45:51.659160Z\",\n \"start_time\": \"2020-01-15T14:45:50.528742Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:29.576513Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:29.576236Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.061818Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.061004Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:34.069549Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:34.069253Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:36.891262Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:36.890458Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"ImportError\",\n \"evalue\": \"tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.\",\n \"output_type\": \"error\",\n@@ -91,18 +91,18 @@\n \"execution_count\": 2,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:45:55.431708Z\",\n \"start_time\": \"2020-01-15T14:45:55.104701Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.068304Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.068009Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.149019Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.133013Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:36.899463Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:36.899184Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:36.970708Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:36.959219Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -131,18 +131,18 @@\n \"execution_count\": 3,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:45:57.889496Z\",\n \"start_time\": \"2020-01-15T14:45:57.792269Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.157994Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.157720Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.237028Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.220997Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:36.983422Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:36.983157Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.046671Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.039309Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -190,18 +190,18 @@\n \"execution_count\": 4,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:45:59.768626Z\",\n \"start_time\": \"2020-01-15T14:45:59.543808Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.247457Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.247184Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.313021Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.297006Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.053220Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.052857Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.106653Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.099284Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -256,18 +256,18 @@\n \"execution_count\": 5,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:46:02.187012Z\",\n \"start_time\": \"2020-01-15T14:46:02.105563Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.322050Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.321771Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.351031Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.347083Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.113040Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.112683Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.218485Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.202455Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -334,18 +334,18 @@\n \"execution_count\": 6,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:46:05.031672Z\",\n \"start_time\": \"2020-01-15T14:46:04.947588Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.354965Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.354500Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.407915Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.407234Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.230619Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.227121Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.326479Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.310466Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -380,18 +380,18 @@\n \"execution_count\": 7,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:46:09.325218Z\",\n \"start_time\": \"2020-01-15T14:46:09.303020Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.411618Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.411366Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.439647Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.437000Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.333154Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.332878Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.379179Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.378453Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -428,18 +428,18 @@\n \"execution_count\": 8,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:46:11.295440Z\",\n \"start_time\": \"2020-01-15T14:46:11.226553Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.443430Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.443163Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.501751Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.500997Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.382761Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.382503Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.439162Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.438437Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -492,18 +492,18 @@\n \"execution_count\": 9,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:46:13.808646Z\",\n \"start_time\": \"2020-01-15T14:46:13.680098Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.505525Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.505269Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.553747Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.552994Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.442855Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.442588Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.495220Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.494484Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -565,18 +565,18 @@\n \"execution_count\": 10,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:46:26.633233Z\",\n \"start_time\": \"2020-01-15T14:46:26.515209Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.557499Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.557237Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.600671Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.599678Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.498827Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.498564Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.555168Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.554442Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -622,18 +622,18 @@\n \"execution_count\": 11,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:46:30.026663Z\",\n \"start_time\": \"2020-01-15T14:46:29.893267Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.604344Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.604095Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.637730Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.636987Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.558746Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.558489Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.619193Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.618441Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -710,18 +710,18 @@\n \"execution_count\": 12,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:48:42.469341Z\",\n \"start_time\": \"2020-01-15T14:48:42.344209Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.641382Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.641122Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.669734Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.668989Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.622853Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.622605Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.683137Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.682427Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -796,18 +796,18 @@\n \"execution_count\": 13,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:48:45.267633Z\",\n \"start_time\": \"2020-01-15T14:48:44.943939Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.673367Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.673101Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.707080Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.706335Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.686694Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.686443Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.727091Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.726416Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"ModuleNotFoundError\",\n \"evalue\": \"No module named 'numba'\",\n \"output_type\": \"error\",\n@@ -848,18 +848,18 @@\n \"execution_count\": 14,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:48:54.755405Z\",\n \"start_time\": \"2020-01-15T14:48:54.634724Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.710822Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.710554Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.755669Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.754824Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.734834Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.734517Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.783095Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.782418Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'interp1d_np_gufunc' is not defined\",\n \"output_type\": \"error\",\n@@ -902,18 +902,18 @@\n \"execution_count\": 15,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-01-15T14:49:28.667528Z\",\n \"start_time\": \"2020-01-15T14:49:28.103914Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:31.759341Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:31.759085Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:31.797759Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:31.797010Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:37.786628Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:37.786380Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:37.851097Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:37.850425Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"ModuleNotFoundError\",\n \"evalue\": \"No module named 'numba'\",\n \"output_type\": \"error\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.ipynb.gz", "source2": "./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.ipynb.gz", "unified_diff": null, "details": [{"source1": "area_weighted_temperature.ipynb", "source2": "area_weighted_temperature.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.99921875%", "Differences: {\"'cells'\": \"{2: {'metadata': {'execution': {'iopub.execute_input': '2024-01-08T11:26:48.250678Z', \"", " \"'iopub.status.busy': '2024-01-08T11:26:48.250352Z', 'iopub.status.idle': \"", " \"'2024-01-08T11:26:53.047228Z', 'shell.execute_reply': \"", " \"'2024-01-08T11:26:53.046473Z'}}}, 4: {'metadata': {'execution': \"", " \"{'iopub.execute_input': '2024-01-08T11:26:53.055596Z', 'iopub.status.busy': \"", " \"'2024-01-08T11:26:53.055198Z', 'iopub.status.idle': '2024-01-08T11:26:5 [\u2026]"], "unified_diff": "@@ -28,18 +28,18 @@\n \"execution_count\": 1,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-03-17T14:43:57.222351Z\",\n \"start_time\": \"2020-03-17T14:43:56.147541Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:41.778048Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:41.777740Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:44.085022Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:44.069147Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:48.250678Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:48.250352Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:53.047228Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:53.046473Z\"\n }\n },\n \"outputs\": [],\n \"source\": [\n \"%matplotlib inline\\n\",\n \"\\n\",\n \"import cartopy.crs as ccrs\\n\",\n@@ -63,18 +63,18 @@\n \"execution_count\": 2,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-03-17T14:43:57.831734Z\",\n \"start_time\": \"2020-03-17T14:43:57.651845Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:44.098216Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:44.097779Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:44.497024Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:44.480990Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:53.055596Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:53.055198Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:53.582740Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:53.575282Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"ImportError\",\n \"evalue\": \"tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.\",\n \"output_type\": \"error\",\n@@ -116,18 +116,18 @@\n \"execution_count\": 3,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-03-17T14:43:59.887120Z\",\n \"start_time\": \"2020-03-17T14:43:59.582894Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:44.507560Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:44.507296Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:44.857029Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:44.841005Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:53.589048Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:53.588772Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:53.975634Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:53.970463Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -172,18 +172,18 @@\n \"execution_count\": 4,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-03-17T14:44:18.777092Z\",\n \"start_time\": \"2020-03-17T14:44:18.736587Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:44.863763Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:44.863489Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:44.945014Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:44.928997Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:53.982758Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:53.980549Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:54.036272Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:54.035523Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -213,18 +213,18 @@\n \"execution_count\": 5,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-03-17T14:44:52.607120Z\",\n \"start_time\": \"2020-03-17T14:44:52.564674Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:44.954081Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:44.953798Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:45.037014Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:45.020998Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:54.042997Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:54.040819Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:54.091071Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:54.090516Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air' is not defined\",\n \"output_type\": \"error\",\n@@ -246,18 +246,18 @@\n \"execution_count\": 6,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-03-17T14:44:54.334279Z\",\n \"start_time\": \"2020-03-17T14:44:54.280022Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:45.043715Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:45.043432Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:45.321728Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:45.320992Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:54.097668Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:54.095544Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:54.535956Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:54.535372Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'air_weighted' is not defined\",\n \"output_type\": \"error\",\n@@ -288,18 +288,18 @@\n \"execution_count\": 7,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2020-03-17T14:45:08.877307Z\",\n \"start_time\": \"2020-03-17T14:45:08.673383Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:45.345995Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:45.345723Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:45.373733Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:45.373003Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:26:54.543383Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:26:54.540305Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:26:54.591773Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:26:54.590470Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'weighted_mean' is not defined\",\n \"output_type\": \"error\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/blank_template.ipynb.gz", "source2": "./usr/share/doc/python-xarray-doc/html/examples/blank_template.ipynb.gz", "unified_diff": null, "details": [{"source1": "blank_template.ipynb", "source2": "blank_template.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.9991319444444444%", "Differences: {\"'cells'\": \"{1: {'metadata': {'execution': {'iopub.execute_input': '2024-01-08T11:27:02.347443Z', \"", " \"'iopub.status.busy': '2024-01-08T11:27:02.347139Z', 'iopub.status.idle': \"", " \"'2024-01-08T11:27:05.151310Z', 'shell.execute_reply': \"", " \"'2024-01-08T11:27:05.150459Z'}}}}\"}"], "unified_diff": "@@ -12,18 +12,18 @@\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"id\": \"41b90ede\",\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:50.598044Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:50.597737Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:52.541798Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:52.540999Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:02.347443Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:02.347139Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:05.151310Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:05.150459Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"ImportError\",\n \"evalue\": \"tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.\",\n \"output_type\": \"error\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/monthly-means.ipynb.gz", "source2": "./usr/share/doc/python-xarray-doc/html/examples/monthly-means.ipynb.gz", "unified_diff": null, "details": [{"source1": "monthly-means.ipynb", "source2": "monthly-means.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.998721590909091%", "Differences: {\"'cells'\": \"{1: {'metadata': {'execution': {'iopub.execute_input': '2024-01-08T11:27:12.172407Z', \"", " \"'iopub.status.busy': '2024-01-08T11:27:12.172098Z', 'iopub.status.idle': \"", " \"'2024-01-08T11:27:16.017674Z', 'shell.execute_reply': \"", " \"'2024-01-08T11:27:16.016967Z'}}}, 3: {'metadata': {'execution': \"", " \"{'iopub.execute_input': '2024-01-08T11:27:16.021155Z', 'iopub.status.busy': \"", " \"'2024-01-08T11:27:16.020634Z', 'iopub.status.idle': '2024-01-08T11:27:1 [\u2026]"], "unified_diff": "@@ -19,18 +19,18 @@\n \"execution_count\": 1,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:51:35.958210Z\",\n \"start_time\": \"2018-11-28T20:51:35.936966Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:56.258039Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:56.257710Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:58.529840Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:58.529060Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:12.172407Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:12.172098Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:16.017674Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:16.016967Z\"\n }\n },\n \"outputs\": [],\n \"source\": [\n \"%matplotlib inline\\n\",\n \"import numpy as np\\n\",\n \"import pandas as pd\\n\",\n@@ -50,18 +50,18 @@\n \"execution_count\": 2,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:51:36.072316Z\",\n \"start_time\": \"2018-11-28T20:51:36.016594Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:58.538161Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:58.537760Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:58.837774Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:58.836996Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:16.021155Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:16.020634Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:16.541032Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:16.540368Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"ImportError\",\n \"evalue\": \"tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.\",\n \"output_type\": \"error\",\n@@ -96,18 +96,18 @@\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 3,\n \"metadata\": {\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:58.846132Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:58.845854Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:58.865753Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:58.864993Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:16.550734Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:16.543594Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:16.580596Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:16.580009Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -129,18 +129,18 @@\n \"execution_count\": 4,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:51:36.132413Z\",\n \"start_time\": \"2018-11-28T20:51:36.073708Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:58.874105Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:58.873834Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:58.905764Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:58.904992Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:16.589909Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:16.588699Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:16.639483Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:16.638453Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'month_length' is not defined\",\n \"output_type\": \"error\",\n@@ -170,18 +170,18 @@\n \"execution_count\": 5,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:51:36.152913Z\",\n \"start_time\": \"2018-11-28T20:51:36.133997Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:58.914088Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:58.913822Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:58.937738Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:58.936989Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:16.642917Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:16.641954Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:16.674069Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:16.673503Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds_weighted' is not defined\",\n \"output_type\": \"error\",\n@@ -202,18 +202,18 @@\n \"execution_count\": 6,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:51:36.190765Z\",\n \"start_time\": \"2018-11-28T20:51:36.154416Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:58.946048Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:58.945775Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:58.969741Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:58.969015Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:16.682998Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:16.677411Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:16.722014Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:16.721448Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -236,18 +236,18 @@\n \"execution_count\": 7,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:51:40.264871Z\",\n \"start_time\": \"2018-11-28T20:51:36.192467Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:58.978252Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:58.977979Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:59.021748Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:59.021013Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:16.725308Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:16.724332Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:16.799471Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:16.798455Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds_unweighted' is not defined\",\n \"output_type\": \"error\",\n@@ -316,18 +316,18 @@\n \"execution_count\": 8,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:51:40.284898Z\",\n \"start_time\": \"2018-11-28T20:51:40.266406Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:14:59.030074Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:14:59.029797Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:14:59.037717Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:14:59.037002Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:16.804859Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:16.804591Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:16.814129Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:16.813576Z\"\n }\n },\n \"outputs\": [],\n \"source\": [\n \"# Wrap it into a simple function\\n\",\n \"def season_mean(ds, calendar=\\\"standard\\\"):\\n\",\n \" # Make a DataArray with the number of days in each month, size = len(time)\\n\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.ipynb.gz", "source2": "./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.ipynb.gz", "unified_diff": null, "details": [{"source1": "multidimensional-coords.ipynb", "source2": "multidimensional-coords.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.99931640625%", "Differences: {\"'cells'\": \"{1: {'metadata': {'execution': {'iopub.execute_input': '2024-01-08T11:27:23.775596Z', \"", " \"'iopub.status.busy': '2024-01-08T11:27:23.775280Z', 'iopub.status.idle': \"", " \"'2024-01-08T11:27:26.387363Z', 'shell.execute_reply': \"", " \"'2024-01-08T11:27:26.386644Z'}}}, 3: {'metadata': {'execution': \"", " \"{'iopub.execute_input': '2024-01-08T11:27:26.395627Z', 'iopub.status.busy': \"", " \"'2024-01-08T11:27:26.395207Z', 'iopub.status.idle': '2024-01-08T11:27:2 [\u2026]"], "unified_diff": "@@ -16,18 +16,18 @@\n \"execution_count\": 1,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:49:56.068395Z\",\n \"start_time\": \"2018-11-28T20:49:56.035349Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:15:04.914111Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:15:04.913791Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:15:06.825011Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:15:06.809022Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:23.775596Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:23.775280Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:26.387363Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:26.386644Z\"\n }\n },\n \"outputs\": [],\n \"source\": [\n \"%matplotlib inline\\n\",\n \"import numpy as np\\n\",\n \"import pandas as pd\\n\",\n@@ -48,18 +48,18 @@\n \"execution_count\": 2,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:50:13.629720Z\",\n \"start_time\": \"2018-11-28T20:50:13.484542Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:15:06.832442Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:15:06.831995Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:15:07.189808Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:15:07.189040Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:26.395627Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:26.395207Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:26.727243Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:26.726451Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"ImportError\",\n \"evalue\": \"tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.\",\n \"output_type\": \"error\",\n@@ -93,18 +93,18 @@\n \"execution_count\": 3,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:50:15.836061Z\",\n \"start_time\": \"2018-11-28T20:50:15.768376Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:15:07.198201Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:15:07.197922Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:15:07.221735Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:15:07.220992Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:26.735499Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:26.735224Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:26.767200Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:26.766448Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -135,18 +135,18 @@\n \"execution_count\": 4,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:50:17.928556Z\",\n \"start_time\": \"2018-11-28T20:50:17.031211Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:15:07.230010Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:15:07.229737Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:15:07.925756Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:15:07.925008Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:26.770843Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:26.770584Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:27.519230Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:27.518484Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -188,18 +188,18 @@\n \"execution_count\": 5,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:50:20.567749Z\",\n \"start_time\": \"2018-11-28T20:50:19.999393Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:15:07.929687Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:15:07.929397Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:15:07.961758Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:15:07.961002Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:27.522905Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:27.522637Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:27.559160Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:27.558449Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -227,18 +227,18 @@\n \"execution_count\": 6,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:50:31.131708Z\",\n \"start_time\": \"2018-11-28T20:50:30.444697Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:15:07.965411Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:15:07.965137Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:15:08.113764Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:15:08.113008Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:27.562741Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:27.562477Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:27.731185Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:27.730446Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n@@ -285,18 +285,18 @@\n \"execution_count\": 7,\n \"metadata\": {\n \"ExecuteTime\": {\n \"end_time\": \"2018-11-28T20:50:43.670463Z\",\n \"start_time\": \"2018-11-28T20:50:43.245501Z\"\n },\n \"execution\": {\n- \"iopub.execute_input\": \"2024-01-08T11:15:08.117440Z\",\n- \"iopub.status.busy\": \"2024-01-08T11:15:08.117179Z\",\n- \"iopub.status.idle\": \"2024-01-08T11:15:08.145740Z\",\n- \"shell.execute_reply\": \"2024-01-08T11:15:08.145010Z\"\n+ \"iopub.execute_input\": \"2024-01-08T11:27:27.734770Z\",\n+ \"iopub.status.busy\": \"2024-01-08T11:27:27.734512Z\",\n+ \"iopub.status.idle\": \"2024-01-08T11:27:27.771180Z\",\n+ \"shell.execute_reply\": \"2024-01-08T11:27:27.770451Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"NameError\",\n \"evalue\": \"name 'ds' is not defined\",\n \"output_type\": \"error\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.html", "source2": "./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.html", "unified_diff": "@@ -574,15 +574,15 @@\n
\n-/tmp/ipykernel_1525232/2946363816.py:1: DeprecationWarning: open_rasterio is Deprecated in favor of rioxarray. For information about transitioning, see: https://corteva.github.io/rioxarray/stable/getting_started/getting_started.html\n+/tmp/ipykernel_3179774/2946363816.py:1: DeprecationWarning: open_rasterio is Deprecated in favor of rioxarray. For information about transitioning, see: https://corteva.github.io/rioxarray/stable/getting_started/getting_started.html\n da = xr.tutorial.open_rasterio("RGB.byte")\n
\n-/tmp/ipykernel_1525232/3653941964.py:4: DeprecationWarning: open_rasterio is Deprecated in favor of rioxarray. For information about transitioning, see: https://corteva.github.io/rioxarray/stable/getting_started/getting_started.html\n+/tmp/ipykernel_3179774/3653941964.py:4: DeprecationWarning: open_rasterio is Deprecated in favor of rioxarray. For information about transitioning, see: https://corteva.github.io/rioxarray/stable/getting_started/getting_started.html\n da = xr.tutorial.open_rasterio("RGB.byte")\n
<xarray.Dataset>\n Dimensions: (time: 731, location: 3)\n Coordinates:\n * time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2001-12-31\n * location (location) <U2 'IA' 'IN' 'IL'\n Data variables:\n tmin (time, location) float64 -8.037 -1.788 -3.932 ... -1.346 -4.544\n- tmax (time, location) float64 12.98 3.31 6.779 ... 6.636 3.343 3.805
PandasIndex(Index(['IA', 'IN', 'IL'], dtype='object', name='location'))
[2]:\n@@ -932,15 +932,15 @@\n
[5]:\n
\n-<seaborn.axisgrid.PairGrid at 0xffff6edf2850>\n+<seaborn.axisgrid.PairGrid at 0xffff5e61fad0>\n
array(['IA', 'IN', 'IL'], dtype='<U2')
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
PandasIndex(Index(['IA', 'IN', 'IL'], dtype='object', name='location'))
PandasIndex(Int64Index([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], dtype='int64', name='month'))
[7]:\n
freeze.to_pandas().plot()\n
PandasIndex(Index(['IA', 'IN', 'IL'], dtype='object', name='location'))
[12]:\n
df = both.sel(time="2000").mean("location").reset_coords(drop=True).to_dataframe()\n df.head()\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -157,15 +157,15 @@\n \n [../_images/examples_weather-data_7_1.png]\n \n **** Visualize using seaborn\u00c2\u00b6 ****\n [5]:\n sns.pairplot(df.reset_index(), vars=ds.data_vars)\n [5]:\n-\n+\n [../_images/examples_weather-data_9_1.png]\n \n ***** Probability of freeze by calendar month\u00c2\u00b6 *****\n [6]:\n freeze = (ds[\"tmin\"] <= 0).groupby(\"time.month\").mean(\"time\")\n freeze\n [6]:\n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/weather-data.ipynb.gz", "source2": "./usr/share/doc/python-xarray-doc/html/examples/weather-data.ipynb.gz", "unified_diff": null, "details": [{"source1": "weather-data.ipynb", "source2": "weather-data.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.9992323118860381%", "Differences: {\"'cells'\": \"{1: {'metadata': {'execution': {'iopub.execute_input': '2024-01-08T11:27:42.590472Z', \"", " \"'iopub.status.busy': '2024-01-08T11:27:42.590156Z', 'iopub.status.idle': \"", " \"'2024-01-08T11:27:47.081164Z', 'shell.execute_reply': \"", " \"'2024-01-08T11:27:47.080493Z'}}, 'outputs': {0: {'data': {'text/html': {insert: \"", " '[(370, \" tmax (time, location) float64 12.98 3.31 6.779 ... 6.636 3.343 '", " \"3.805
Visualizing your datasets is quick and convenient:
\nIn [37]: data.plot()\n-Out[37]: <matplotlib.collections.QuadMesh at 0xffff43f65c90>\n+Out[37]: <matplotlib.collections.QuadMesh at 0xffff67537a10>\n
Note the automatic labeling with names and units. Our effort in adding metadata attributes has paid off! Many aspects of these figures are customizable: see Plotting.
\nNote
\nThis method replicates the behavior of scipy.optimize.curve_fit()
.
In [3]: ds.temperature\n Out[3]: \n <xarray.DataArray 'temperature' (time: 30, latitude: 180, longitude: 180)>\n-dask.array<open_dataset-78c250975acbcfcf8c779b7811a8c27ctemperature, shape=(30, 180, 180), dtype=float64, chunksize=(10, 180, 180), chunktype=numpy.ndarray>\n+dask.array<open_dataset-4dbe4737ce0678ff5049460d084186c6temperature, shape=(30, 180, 180), dtype=float64, chunksize=(10, 180, 180), chunktype=numpy.ndarray>\n Coordinates:\n * time (time) datetime64[ns] 2015-01-01 2015-01-02 ... 2015-01-30\n * longitude (longitude) int64 0 1 2 3 4 5 6 7 ... 173 174 175 176 177 178 179\n * latitude (latitude) float64 89.5 88.5 87.5 86.5 ... -87.5 -88.5 -89.5\n
Once you\u2019ve manipulated a Dask array, you can still write a dataset too big to\n@@ -138,16 +138,16 @@\n # or distributed.progress when using the distributed scheduler\n In [6]: delayed_obj = ds.to_netcdf("manipulated-example-data.nc", compute=False)\n \n In [7]: with ProgressBar():\n ...: results = delayed_obj.compute()\n ...: \n \n-[ ] | 0% Completed | 9.97 ms\n-[########################################] | 100% Completed | 114.03 ms\n+[ ] | 0% Completed | 10.73 ms\n+[########################################] | 100% Completed | 111.72 ms\n \n \n
Note
\nWhen using Dask\u2019s distributed scheduler to write NETCDF4 files,\n it may be necessary to set the environment variable HDF5_USE_FILE_LOCKING=FALSE\n to avoid competing locks within the HDF5 SWMR file locking scheme. Note that\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -76,15 +76,15 @@\n You\u00e2\u0080\u0099ll notice that printing a dataset still shows a preview of array values,\n even if they are actually Dask arrays. We can do this quickly with Dask because\n we only need to compute the first few values (typically from the first block).\n To reveal the true nature of an array, print a DataArray:\n In [3]: ds.temperature\n Out[3]:\n ds.pipe(func)
) instead of\n simply calling it (e.g., func(ds)
). This allows you to write pipelines for\n transforming your data (using \u201cmethod chaining\u201d) instead of writing hard to\n follow nested function calls:
# these lines are equivalent, but with pipe we can make the logic flow\n # entirely from left to right\n In [60]: plt.plot((2 * ds.temperature.sel(x=0)).mean("y"))\n-Out[60]: [<matplotlib.lines.Line2D at 0xffff35426dd0>]\n+Out[60]: [<matplotlib.lines.Line2D at 0xffff5c9f11d0>]\n \n In [61]: (ds.temperature.sel(x=0).pipe(lambda x: 2 * x).mean("y").pipe(plt.plot))\n-Out[61]: [<matplotlib.lines.Line2D at 0xffff35336650>]\n+Out[61]: [<matplotlib.lines.Line2D at 0xffff5c93c9d0>]\n
Both pipe
and assign
replicate the pandas methods of the same names\n (DataFrame.pipe
and\n DataFrame.assign
).
With xarray, there is no performance penalty for creating new datasets, even if\n variables are lazily loaded from a file on disk. Creating new objects instead\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -574,19 +574,19 @@\n There is also the pipe() method that allows you to use a method call with an\n external function (e.g., ds.pipe(func)) instead of simply calling it (e.g.,\n func(ds)). This allows you to write pipelines for transforming your data (using\n \u00e2\u0080\u009cmethod chaining\u00e2\u0080\u009d) instead of writing hard to follow nested function calls:\n # these lines are equivalent, but with pipe we can make the logic flow\n # entirely from left to right\n In [60]: plt.plot((2 * ds.temperature.sel(x=0)).mean(\"y\"))\n-Out[60]: [
Additional keyword arguments can be passed to scipy\u2019s functions.
\n# fill 0 for the outside of the original coordinates.\n In [21]: da.interp(x=np.linspace(-0.5, 1.5, 10), kwargs={"fill_value": 0.0})\n Out[21]: \n@@ -615,15 +615,15 @@\n 858 f"Dimensions {invalid} do not exist. Expected one or more of {dims}"\n 859 )\n 861 return indexers\n 863 elif missing_dims == "warn":\n 864 \n 865 # don't modify input\n \n-ValueError: Dimensions {'lon', 'lat'} do not exist. Expected one or more of Frozen({'x': 3, 'y': 4})\n+ValueError: Dimensions {'lat', 'lon'} do not exist. Expected one or more of Frozen({'x': 3, 'y': 4})\n \n In [63]: dsi.air.plot(ax=axes[1])\n ---------------------------------------------------------------------------\n NameError Traceback (most recent call last)\n Cell In [63], line 1\n ----> 1 dsi.air.plot(ax=axes[1])\n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -165,26 +165,26 @@\n ....: np.sin(np.linspace(0, 2 * np.pi, 10)),\n ....: dims=\"x\",\n ....: coords={\"x\": np.linspace(0, 1, 10)},\n ....: )\n ....:\n \n In [17]: da.plot.line(\"o\", label=\"original\")\n-Out[17]: []\n+Out[17]: []\n \n In [18]: da.interp(x=np.linspace(0, 1, 100)).plot.line(label=\"linear\n (default)\")\n-Out[18]: []\n+Out[18]: []\n \n In [19]: da.interp(x=np.linspace(0, 1, 100), method=\"cubic\").plot.line\n (label=\"cubic\")\n-Out[19]: []\n+Out[19]: []\n \n In [20]: plt.legend()\n-Out[20]: \n+Out[20]: \n [../_images/interpolation_sample1.png]\n Additional keyword arguments can be passed to scipy\u00e2\u0080\u0099s functions.\n # fill 0 for the outside of the original coordinates.\n In [21]: da.interp(x=np.linspace(-0.5, 1.5, 10), kwargs={\"fill_value\": 0.0})\n Out[21]:\n \n array([ 0. , 0. , 0. , 0.814, 0.604, -0.604, -0.814, 0. , 0. ,\n@@ -558,15 +558,15 @@\n of {dims}\"\n 859 )\n 861 return indexers\n 863 elif missing_dims == \"warn\":\n 864\n 865 # don't modify input\n \n-ValueError: Dimensions {'lon', 'lat'} do not exist. Expected one or more of\n+ValueError: Dimensions {'lat', 'lon'} do not exist. Expected one or more of\n Frozen({'x': 3, 'y': 4})\n \n In [63]: dsi.air.plot(ax=axes[1])\n ---------------------------------------------------------------------------\n NameError Traceback (most recent call last)\n Cell In [63], line 1\n ----> 1 dsi.air.plot(ax=axes[1])\n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/user-guide/plotting.html", "source2": "./usr/share/doc/python-xarray-doc/html/user-guide/plotting.html", "unified_diff": "@@ -643,15 +643,15 @@\n --> 186 raise KeyError(key)\n 188 ref_name, var_name = split_key\n 189 ref_var = variables[ref_name]\n \n KeyError: 'lat'\n \n In [51]: b.plot()\n-Out[51]: [<matplotlib.lines.Line2D at 0xffff83223890>]\n+Out[51]: [<matplotlib.lines.Line2D at 0xffffaa97b2d0>]\n
There are several other options for plotting 2D data.
\n@@ -1205,104 +1205,104 @@\n * y (y) float64 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0\n * z (z) int64 0 1 2 3\n * w (w) <U5 'one' 'two' 'three' 'five'\n Attributes:\n units: Aunits\n \n In [99]: ds.A.plot.scatter(x="y")\n-Out[99]: <matplotlib.collections.PathCollection at 0xffff8310ae90>\n+Out[99]: <matplotlib.collections.PathCollection at 0xffffaa7f0190>\n \n \nSame plot can be displayed using the dataset:
\nIn [100]: ds.plot.scatter(x="y", y="A")\n-Out[100]: <matplotlib.collections.PathCollection at 0xffff8324c6d0>\n+Out[100]: <matplotlib.collections.PathCollection at 0xffffaa766d10>\n
Now suppose we want to scatter the A
DataArray against the B
DataArray
In [101]: ds.plot.scatter(x="A", y="B")\n-Out[101]: <matplotlib.collections.PathCollection at 0xffff830380d0>\n+Out[101]: <matplotlib.collections.PathCollection at 0xffff5e32f010>\n
The hue
kwarg lets you vary the color by variable value
In [102]: ds.plot.scatter(x="A", y="B", hue="w")\n-Out[102]: <matplotlib.collections.PathCollection at 0xffff83093810>\n+Out[102]: <matplotlib.collections.PathCollection at 0xffffaa5eb190>\n
You can force a legend instead of a colorbar by setting add_legend=True, add_colorbar=False
.
In [103]: ds.plot.scatter(x="A", y="B", hue="w", add_legend=True, add_colorbar=False)\n-Out[103]: <matplotlib.collections.PathCollection at 0xffff82faa410>\n+Out[103]: <matplotlib.collections.PathCollection at 0xffffaa76ed50>\n
In [104]: ds.plot.scatter(x="A", y="B", hue="w", add_legend=False, add_colorbar=True)\n-Out[104]: <matplotlib.collections.PathCollection at 0xffff83093790>\n+Out[104]: <matplotlib.collections.PathCollection at 0xffffaa685090>\n
The markersize
kwarg lets you vary the point\u2019s size by variable value.\n You can additionally pass size_norm
to control how the variable\u2019s values are mapped to point sizes.
In [105]: ds.plot.scatter(x="A", y="B", hue="y", markersize="z")\n-Out[105]: <matplotlib.collections.PathCollection at 0xffff32fdf810>\n+Out[105]: <matplotlib.collections.PathCollection at 0xffff5a4f0b50>\n
The z
kwarg lets you plot the data along the z-axis as well.
In [106]: ds.plot.scatter(x="A", y="B", z="z", hue="y", markersize="x")\n-Out[106]: <mpl_toolkits.mplot3d.art3d.Path3DCollection at 0xffff32e61950>\n+Out[106]: <mpl_toolkits.mplot3d.art3d.Path3DCollection at 0xffff5a3f1250>\n
Faceting is also possible
\nIn [107]: ds.plot.scatter(x="A", y="B", hue="y", markersize="x", row="x", col="w")\n-Out[107]: <xarray.plot.facetgrid.FacetGrid at 0xffff32e6be50>\n+Out[107]: <xarray.plot.facetgrid.FacetGrid at 0xffffaa493350>\n
And adding the z-axis
\nIn [108]: ds.plot.scatter(x="A", y="B", z="z", hue="y", markersize="x", row="x", col="w")\n-Out[108]: <xarray.plot.facetgrid.FacetGrid at 0xffff8655b350>\n+Out[108]: <xarray.plot.facetgrid.FacetGrid at 0xffff5a28b350>\n
For more advanced scatter plots, we recommend converting the relevant data variables\n to a pandas DataFrame and using the extensive plotting capabilities of seaborn
.
Visualizing vector fields is supported with quiver plots:
\nIn [109]: ds.isel(w=1, z=1).plot.quiver(x="x", y="y", u="A", v="B")\n-Out[109]: <matplotlib.quiver.Quiver at 0xffff32906b50>\n+Out[109]: <matplotlib.quiver.Quiver at 0xffff59d96010>\n
where u
and v
denote the x and y direction components of the arrow vectors. Again, faceting is also possible:
In [110]: ds.plot.quiver(x="x", y="y", u="A", v="B", col="w", row="z", scale=4)\n-Out[110]: <xarray.plot.facetgrid.FacetGrid at 0xffff32bab290>\n+Out[110]: <xarray.plot.facetgrid.FacetGrid at 0xffff59db1cd0>\n
scale
is required for faceted quiver plots.\n The scale determines the number of data units per arrow length unit, i.e. a smaller scale parameter makes the arrow longer.
Visualizing vector fields is also supported with streamline plots:
\nIn [111]: ds.isel(w=1, z=1).plot.streamplot(x="x", y="y", u="A", v="B")\n-Out[111]: <matplotlib.collections.LineCollection at 0xffff32ae6e90>\n+Out[111]: <matplotlib.collections.LineCollection at 0xffff59ec8890>\n
where u
and v
denote the x and y direction components of the vectors tangent to the streamlines.\n Again, faceting is also possible:
In [112]: ds.plot.streamplot(x="x", y="y", u="A", v="B", col="w", row="z")\n-Out[112]: <xarray.plot.facetgrid.FacetGrid at 0xffff32d74dd0>\n+Out[112]: <xarray.plot.facetgrid.FacetGrid at 0xffff59c03e50>\n
In [121]: import xarray.plot as xplt\n \n In [122]: da = xr.DataArray(range(5))\n \n In [123]: fig, axs = plt.subplots(ncols=2, nrows=2)\n \n In [124]: da.plot(ax=axs[0, 0])\n-Out[124]: [<matplotlib.lines.Line2D at 0xffff3172af90>]\n+Out[124]: [<matplotlib.lines.Line2D at 0xffff58b532d0>]\n \n In [125]: da.plot.line(ax=axs[0, 1])\n-Out[125]: [<matplotlib.lines.Line2D at 0xffff320aa250>]\n+Out[125]: [<matplotlib.lines.Line2D at 0xffff58a67bd0>]\n \n In [126]: xplt.plot(da, ax=axs[1, 0])\n-Out[126]: [<matplotlib.lines.Line2D at 0xffff3223ad90>]\n+Out[126]: [<matplotlib.lines.Line2D at 0xffff58c8e250>]\n \n In [127]: xplt.line(da, ax=axs[1, 1])\n-Out[127]: [<matplotlib.lines.Line2D at 0xffff31532a50>]\n+Out[127]: [<matplotlib.lines.Line2D at 0xffff58c8d390>]\n \n In [128]: plt.tight_layout()\n \n In [129]: plt.draw()\n
The plot will produce an image corresponding to the values of the array.\n Hence the top left pixel will be a different color than the others.\n Before reading on, you may want to look at the coordinates and\n think carefully about what the limits, labels, and orientation for\n each of the axes should be.
\nIn [134]: a.plot()\n-Out[134]: <matplotlib.collections.QuadMesh at 0xffff31cc5ed0>\n+Out[134]: <matplotlib.collections.QuadMesh at 0xffff58a58210>\n
It may seem strange that\n the values on the y axis are decreasing with -0.5 on the top. This is because\n the pixels are centered over their coordinates, and the\n axis labels and ranges correspond to the values of the\n@@ -1520,81 +1520,81 @@\n .....: np.arange(20).reshape(4, 5),\n .....: dims=["y", "x"],\n .....: coords={"lat": (("y", "x"), lat), "lon": (("y", "x"), lon)},\n .....: )\n .....: \n \n In [139]: da.plot.pcolormesh(x="lon", y="lat")\n-Out[139]: <matplotlib.collections.QuadMesh at 0xffff31596b50>\n+Out[139]: <matplotlib.collections.QuadMesh at 0xffff58a94290>\n \n \n \n
Note that in this case, xarray still follows the pixel centered convention.\n This might be undesirable in some cases, for example when your data is defined\n on a polar projection (GH781). This is why the default is to not follow\n this convention when plotting on a map:
\nIn [140]: import cartopy.crs as ccrs\n \n In [141]: ax = plt.subplot(projection=ccrs.PlateCarree())\n \n In [142]: da.plot.pcolormesh(x="lon", y="lat", ax=ax)\n-Out[142]: <cartopy.mpl.geocollection.GeoQuadMesh at 0xffff31575190>\n+Out[142]: <cartopy.mpl.geocollection.GeoQuadMesh at 0xffff59c1d850>\n \n In [143]: ax.scatter(lon, lat, transform=ccrs.PlateCarree())\n-Out[143]: <matplotlib.collections.PathCollection at 0xffff31497810>\n+Out[143]: <matplotlib.collections.PathCollection at 0xffff59b80910>\n \n In [144]: ax.coastlines()\n-Out[144]: <cartopy.mpl.feature_artist.FeatureArtist at 0xffff315eadd0>\n+Out[144]: <cartopy.mpl.feature_artist.FeatureArtist at 0xffff595f3490>\n \n In [145]: ax.gridlines(draw_labels=True)\n-Out[145]: <cartopy.mpl.gridliner.Gridliner at 0xffff3145a950>\n+Out[145]: <cartopy.mpl.gridliner.Gridliner at 0xffff59be4910>\n
You can however decide to infer the cell boundaries and use the\n infer_intervals
keyword:
In [146]: ax = plt.subplot(projection=ccrs.PlateCarree())\n \n In [147]: da.plot.pcolormesh(x="lon", y="lat", ax=ax, infer_intervals=True)\n-Out[147]: <cartopy.mpl.geocollection.GeoQuadMesh at 0xffff2f7dab50>\n+Out[147]: <cartopy.mpl.geocollection.GeoQuadMesh at 0xffff58b98250>\n \n In [148]: ax.scatter(lon, lat, transform=ccrs.PlateCarree())\n-Out[148]: <matplotlib.collections.PathCollection at 0xffff2fe03690>\n+Out[148]: <matplotlib.collections.PathCollection at 0xffff5a441290>\n \n In [149]: ax.coastlines()\n-Out[149]: <cartopy.mpl.feature_artist.FeatureArtist at 0xffff31432950>\n+Out[149]: <cartopy.mpl.feature_artist.FeatureArtist at 0xffff56dc6350>\n \n In [150]: ax.gridlines(draw_labels=True)\n-Out[150]: <cartopy.mpl.gridliner.Gridliner at 0xffff2fe04890>\n+Out[150]: <cartopy.mpl.gridliner.Gridliner at 0xffff59a13450>\n
Note
\nThe data model of xarray does not support datasets with cell boundaries\n yet. If you want to use these coordinates, you\u2019ll have to make the plots\n outside the xarray framework.
\nOne can also make line plots with multidimensional coordinates. In this case, hue
must be a dimension name, not a coordinate name.
In [151]: f, ax = plt.subplots(2, 1)\n \n In [152]: da.plot.line(x="lon", hue="y", ax=ax[0])\n Out[152]: \n-[<matplotlib.lines.Line2D at 0xffff2f7c6a50>,\n- <matplotlib.lines.Line2D at 0xffff2f6a3f90>,\n- <matplotlib.lines.Line2D at 0xffff2f6bd890>,\n- <matplotlib.lines.Line2D at 0xffff2f6bdad0>]\n+[<matplotlib.lines.Line2D at 0xffff56c626d0>,\n+ <matplotlib.lines.Line2D at 0xffff56c72e10>,\n+ <matplotlib.lines.Line2D at 0xffff56c73190>,\n+ <matplotlib.lines.Line2D at 0xffff56c73550>]\n \n In [153]: da.plot.line(x="lon", hue="x", ax=ax[1])\n Out[153]: \n-[<matplotlib.lines.Line2D at 0xffff2f6d8f50>,\n- <matplotlib.lines.Line2D at 0xffff2f6d93d0>,\n- <matplotlib.lines.Line2D at 0xffff2f6d9650>,\n- <matplotlib.lines.Line2D at 0xffff2f6d9a10>,\n- <matplotlib.lines.Line2D at 0xffff2f6d9cd0>]\n+[<matplotlib.lines.Line2D at 0xffff56c60ed0>,\n+ <matplotlib.lines.Line2D at 0xffff56c929d0>,\n+ <matplotlib.lines.Line2D at 0xffff56c92d10>,\n+ <matplotlib.lines.Line2D at 0xffff56c92fd0>,\n+ <matplotlib.lines.Line2D at 0xffff56c93290>]\n
New xray.Dataset.where
method for masking xray objects according\n to some criteria. This works particularly well with multi-dimensional data:
In [44]: ds = xray.Dataset(coords={"x": range(100), "y": range(100)})\n \n In [45]: ds["distance"] = np.sqrt(ds.x**2 + ds.y**2)\n \n In [46]: ds.distance.where(ds.distance < 100).plot()\n-Out[46]: <matplotlib.collections.QuadMesh at 0xffff2dfc6190>\n+Out[46]: <matplotlib.collections.QuadMesh at 0xffff56821ad0>\n
Added new methods xray.DataArray.diff
and xray.Dataset.diff
\n for finite difference calculations along a given axis.
New xray.DataArray.to_masked_array
convenience method for\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -4049,15 +4049,15 @@\n * New xray.Dataset.where method for masking xray objects according to some\n criteria. This works particularly well with multi-dimensional data:\n In [44]: ds = xray.Dataset(coords={\"x\": range(100), \"y\": range(100)})\n \n In [45]: ds[\"distance\"] = np.sqrt(ds.x**2 + ds.y**2)\n \n In [46]: ds.distance.where(ds.distance < 100).plot()\n- Out[46]: