--- /srv/reproducible-results/rbuild-debian/r-b-build.3pslbKDO/b1/python-xarray_2023.01.0-1.1_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.3pslbKDO/b2/python-xarray_2023.01.0-1.1_amd64.changes ├── Files │ @@ -1,3 +1,3 @@ │ │ - d22a00f776f5986de6e01a69abc53e67 5277000 doc optional python-xarray-doc_2023.01.0-1.1_all.deb │ + 2c9e041d87b59d3b09ac5f69acfd0e42 5277036 doc optional python-xarray-doc_2023.01.0-1.1_all.deb │ 6e5f6af35de770365644ec5792cfe64e 630312 python optional python3-xarray_2023.01.0-1.1_all.deb ├── python-xarray-doc_2023.01.0-1.1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2023-02-19 00:50:57.000000 debian-binary │ │ --rw-r--r-- 0 0 0 6252 2023-02-19 00:50:57.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 5270556 2023-02-19 00:50:57.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 6248 2023-02-19 00:50:57.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 5270596 2023-02-19 00:50:57.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -233,31 +233,31 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5097 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/api-hidden.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17503 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/api.html │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/ │ │ │ │ -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 │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6512 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.ipynb.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6518 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.ipynb.gz │ │ │ │ -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 │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24049 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.ipynb.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24061 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.ipynb.gz │ │ │ │ -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 │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9529 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.ipynb.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9531 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.ipynb.gz │ │ │ │ -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 │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21768 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.ipynb.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21769 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.ipynb.gz │ │ │ │ -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 │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1560 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/blank_template.ipynb.gz │ │ │ │ +-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 │ │ │ │ -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 │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3545 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/monthly-means.ipynb.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3542 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/monthly-means.ipynb.gz │ │ │ │ -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 │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11188 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.ipynb.gz │ │ │ │ +-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 │ │ │ │ -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 │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4680 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.ipynb.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4675 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.ipynb.gz │ │ │ │ -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 │ │ │ │ --rw-r--r-- 0 root (0) root (0) 367787 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/weather-data.ipynb.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 367799 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/examples/weather-data.ipynb.gz │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ 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/ │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ @@ -271,20 +271,20 @@ │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ --rw-r--r-- 0 root (0) root (0) 198712 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/searchindex.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 198722 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/searchindex.js │ │ │ │ -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 │ │ │ │ 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/ │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ --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 │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 74640 2023-02-19 00:50:57.000000 ./usr/share/doc/python-xarray-doc/html/user-guide/dask.html │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ │ -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 │ │ │ ├── ./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.html │ │ │ │ @@ -432,15 +432,15 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -Error in callback <function _draw_all_if_interactive at 0x7f1ba9917920> (for post_execute):
│ │ │ │ +Error in callback <function _draw_all_if_interactive at 0x7f8bbe48b880> (for post_execute):
│ │ │ │
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -98,15 +98,15 @@
│ │ │ │ │ ----> 7 plot = ds.t2m[0].plot(
│ │ │ │ │ 8 cmap=plt.cm.coolwarm, transform=ccrs.PlateCarree(), cbar_kwargs=
│ │ │ │ │ {"shrink": 0.6}
│ │ │ │ │ 9 )
│ │ │ │ │ 10 plt.title("ERA5 - 2m temperature British Isles March 2019")
│ │ │ │ │
│ │ │ │ │ NameError: name 'ds' is not defined
│ │ │ │ │ -Error in callback (for
│ │ │ │ │ +Error in callback (for
│ │ │ │ │ post_execute):
│ │ │ │ │ ---------------------------------------------------------------------------
│ │ │ │ │ PermissionError Traceback (most recent call last)
│ │ │ │ │ File /usr/lib/python3/dist-packages/matplotlib/pyplot.py:119, in
│ │ │ │ │ _draw_all_if_interactive()
│ │ │ │ │ 117 def _draw_all_if_interactive():
│ │ │ │ │ 118 if matplotlib.is_interactive():
│ │ │ ├── ./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.ipynb.gz
│ │ │ │ ├── ERA5-GRIB-example.ipynb
│ │ │ │ │ ├── Pretty-printed
│ │ │ │ │ │┄ Similarity: 0.9985416666666667%
│ │ │ │ │ │┄ Differences: {"'cells'": "{2: {'metadata': {'execution': {'iopub.execute_input': '2024-01-12T09:46:27.094752Z', "
│ │ │ │ │ │┄ "'iopub.status.busy': '2024-01-12T09:46:27.094289Z', 'iopub.status.idle': "
│ │ │ │ │ │┄ "'2024-01-12T09:46:35.544950Z', 'shell.execute_reply': "
│ │ │ │ │ │┄ "'2024-01-12T09:46:35.528879Z'}}}, 4: {'metadata': {'execution': "
│ │ │ │ │ │┄ "{'iopub.execute_input': '2024-01-12T09:46:35.575687Z', 'iopub.status.busy': "
│ │ │ │ │ │┄ "'2024-01-12T09:46:35.574831Z', 'iopub.status.idle': '2024-01-12T09:46:3 […]
│ │ │ │ │ │ @@ -15,18 +15,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 1,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:31.556566Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:31.556003Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:36.999433Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:36.989905Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:46:27.094752Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:46:27.094289Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:46:35.544950Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:46:35.528879Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "name": "stderr",
│ │ │ │ │ │ "output_type": "stream",
│ │ │ │ │ │ "text": [
│ │ │ │ │ │ @@ -47,18 +47,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 2,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:37.007536Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:37.006806Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:37.399149Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:37.392656Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:46:35.575687Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:46:35.574831Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:46:36.748869Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:46:36.732777Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "ImportError",
│ │ │ │ │ │ "evalue": "tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -88,18 +88,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 3,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:37.407743Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:37.407239Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:37.495612Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:37.486907Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:46:36.774608Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:46:36.774195Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:46:36.896873Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:46:36.880829Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -124,18 +124,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 4,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:37.512148Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:37.511666Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:42.442905Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:42.441078Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:46:36.926683Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:46:36.926208Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:46:44.600922Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:46:44.584944Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -146,15 +146,15 @@
│ │ │ │ │ │ "\u001b[0;31mNameError\u001b[0m: name 'ds' is not defined"
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "name": "stdout",
│ │ │ │ │ │ "output_type": "stream",
│ │ │ │ │ │ "text": [
│ │ │ │ │ │ - "Error in callback (for post_execute):\n"
│ │ │ │ │ │ + "Error in callback (for post_execute):\n"
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "PermissionError",
│ │ │ │ │ │ "evalue": "[Errno 13] Permission denied: '/nonexistent'",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ "traceback": [
│ │ │ │ │ │ @@ -255,18 +255,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 5,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:42.456403Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:42.455997Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:42.487585Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:42.486365Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:46:44.613302Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:46:44.612788Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:46:44.724892Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:46:44.708840Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ ├── ./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.ipynb.gz
│ │ │ │ ├── ROMS_ocean_model.ipynb
│ │ │ │ │ ├── Pretty-printed
│ │ │ │ │ │┄ Similarity: 0.9988051470588235%
│ │ │ │ │ │┄ Differences: {"'cells'": "{2: {'metadata': {'execution': {'iopub.execute_input': '2024-01-12T09:46:55.514621Z', "
│ │ │ │ │ │┄ "'iopub.status.busy': '2024-01-12T09:46:55.514015Z', 'iopub.status.idle': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:00.692924Z', 'shell.execute_reply': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:00.676953Z'}}}, 5: {'metadata': {'execution': "
│ │ │ │ │ │┄ "{'iopub.execute_input': '2024-01-12T09:47:00.720027Z', 'iopub.status.busy': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:00.718856Z', 'iopub.status.idle': '2024-01-12T09:47:0 […]
│ │ │ │ │ │ @@ -17,18 +17,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 1,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:51.548593Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:51.548053Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:53.955852Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:53.954758Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:46:55.514621Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:46:55.514015Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:00.692924Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:00.676953Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [],
│ │ │ │ │ │ "source": [
│ │ │ │ │ │ "import numpy as np\n",
│ │ │ │ │ │ "import cartopy.crs as ccrs\n",
│ │ │ │ │ │ "import cartopy.feature as cfeature\n",
│ │ │ │ │ │ @@ -75,18 +75,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 2,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:53.967554Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:53.966834Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:54.375440Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:54.368107Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:00.720027Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:00.718856Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:01.761091Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:01.744962Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "ImportError",
│ │ │ │ │ │ "evalue": "tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -130,18 +130,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 3,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:54.388654Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:54.388227Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:54.455124Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:54.448306Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:01.786913Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:01.786356Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:01.937172Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:01.920927Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -175,18 +175,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 4,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:54.469640Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:54.469147Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:54.527202Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:54.515948Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:01.962611Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:01.962140Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:02.072899Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:02.056879Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "scrolled": false
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ @@ -211,18 +211,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 5,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:54.541659Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:54.541185Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:54.610735Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:54.601296Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:02.099453Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:02.098771Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:02.229010Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:02.212934Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -250,18 +250,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 6,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:54.628526Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:54.628098Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:54.695075Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:54.685477Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:02.254679Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:02.254221Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:02.368968Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:02.352986Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -285,18 +285,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 7,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:47:54.712940Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:47:54.712451Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:47:55.205459Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:47:55.198315Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:02.394700Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:02.394194Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:03.369213Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:03.367074Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ ├── ./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.ipynb.gz
│ │ │ │ ├── apply_ufunc_vectorize_1d.ipynb
│ │ │ │ │ ├── Pretty-printed
│ │ │ │ │ │┄ Similarity: 0.9994283536585367%
│ │ │ │ │ │┄ Differences: {"'cells'": "{2: {'metadata': {'execution': {'iopub.execute_input': '2024-01-12T09:47:12.287484Z', "
│ │ │ │ │ │┄ "'iopub.status.busy': '2024-01-12T09:47:12.286713Z', 'iopub.status.idle': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:15.114824Z', 'shell.execute_reply': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:15.113645Z'}}}, 4: {'metadata': {'execution': "
│ │ │ │ │ │┄ "{'iopub.execute_input': '2024-01-12T09:47:15.130947Z', 'iopub.status.busy': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:15.130448Z', 'iopub.status.idle': '2024-01-12T09:47:1 […]
│ │ │ │ │ │ @@ -36,18 +36,18 @@
│ │ │ │ │ │ "execution_count": 1,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:45:51.659160Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:45:50.528742Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:03.985087Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:03.984540Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:05.683345Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:05.674733Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:12.287484Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:12.286713Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.114824Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.113645Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "ImportError",
│ │ │ │ │ │ "evalue": "tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -91,18 +91,18 @@
│ │ │ │ │ │ "execution_count": 2,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:45:55.431708Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:45:55.104701Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:05.696729Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:05.696284Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:05.733985Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:05.732498Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.130947Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.130448Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.161121Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.159694Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -131,18 +131,18 @@
│ │ │ │ │ │ "execution_count": 3,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:45:57.889496Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:45:57.792269Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:05.746637Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:05.746072Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:05.789858Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:05.788566Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.174866Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.174407Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.211028Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.209910Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -190,18 +190,18 @@
│ │ │ │ │ │ "execution_count": 4,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:45:59.768626Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:45:59.543808Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:05.797888Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:05.797440Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:05.830362Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:05.829066Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.230981Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.230423Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.259304Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.258242Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -256,18 +256,18 @@
│ │ │ │ │ │ "execution_count": 5,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:46:02.187012Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:46:02.105563Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:05.836981Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:05.836534Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:05.873467Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:05.872152Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.275073Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.274597Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.308079Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.306797Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -334,18 +334,18 @@
│ │ │ │ │ │ "execution_count": 6,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:46:05.031672Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:46:04.947588Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:05.880122Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:05.879604Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:05.915968Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:05.914706Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.323219Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.322736Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.354422Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.353127Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -380,18 +380,18 @@
│ │ │ │ │ │ "execution_count": 7,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:46:09.325218Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:46:09.303020Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:05.922382Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:05.921890Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:05.958029Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:05.956883Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.366918Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.366466Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.402739Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.401621Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -428,18 +428,18 @@
│ │ │ │ │ │ "execution_count": 8,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:46:11.295440Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:46:11.226553Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:05.964215Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:05.963778Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:06.003128Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:06.001839Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.414940Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.414479Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.449553Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.448396Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -492,18 +492,18 @@
│ │ │ │ │ │ "execution_count": 9,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:46:13.808646Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:46:13.680098Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:06.009276Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:06.008846Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:06.052765Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:06.051479Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.462751Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.462283Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.502864Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.501592Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -565,18 +565,18 @@
│ │ │ │ │ │ "execution_count": 10,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:46:26.633233Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:46:26.515209Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:06.059073Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:06.058538Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:06.100307Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:06.098938Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.515182Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.514663Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.570442Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.568887Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -622,18 +622,18 @@
│ │ │ │ │ │ "execution_count": 11,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:46:30.026663Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:46:29.893267Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:06.106813Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:06.106273Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:06.156131Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:06.154714Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.585165Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.584396Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.704922Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.688875Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -710,18 +710,18 @@
│ │ │ │ │ │ "execution_count": 12,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:48:42.469341Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:48:42.344209Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:06.162815Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:06.162195Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:06.217842Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:06.214712Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.731314Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.730771Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:15.876974Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:15.860888Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -796,18 +796,18 @@
│ │ │ │ │ │ "execution_count": 13,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:48:45.267633Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:48:44.943939Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:06.224708Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:06.224278Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:06.310854Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:06.298833Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:15.902851Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:15.902363Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:16.020982Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:16.004856Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "ModuleNotFoundError",
│ │ │ │ │ │ "evalue": "No module named 'numba'",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -848,18 +848,18 @@
│ │ │ │ │ │ "execution_count": 14,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:48:54.755405Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:48:54.634724Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:06.320368Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:06.319923Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:06.395012Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:06.390681Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:16.046919Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:16.046382Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:16.180913Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:16.168866Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'interp1d_np_gufunc' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -902,18 +902,18 @@
│ │ │ │ │ │ "execution_count": 15,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-01-15T14:49:28.667528Z",
│ │ │ │ │ │ "start_time": "2020-01-15T14:49:28.103914Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:06.408391Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:06.407933Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:06.514731Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:06.499078Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:16.206836Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:16.206331Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:16.364934Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:16.348884Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "ModuleNotFoundError",
│ │ │ │ │ │ "evalue": "No module named 'numba'",
│ │ │ │ │ │ "output_type": "error",
│ │ │ ├── ./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.ipynb.gz
│ │ │ │ ├── area_weighted_temperature.ipynb
│ │ │ │ │ ├── Pretty-printed
│ │ │ │ │ │┄ Similarity: 0.99921875%
│ │ │ │ │ │┄ Differences: {"'cells'": "{2: {'metadata': {'execution': {'iopub.execute_input': '2024-01-12T09:47:31.494450Z', "
│ │ │ │ │ │┄ "'iopub.status.busy': '2024-01-12T09:47:31.494022Z', 'iopub.status.idle': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:34.288807Z', 'shell.execute_reply': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:34.272752Z'}}}, 4: {'metadata': {'execution': "
│ │ │ │ │ │┄ "{'iopub.execute_input': '2024-01-12T09:47:34.306518Z', 'iopub.status.busy': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:34.305954Z', 'iopub.status.idle': '2024-01-12T09:47:3 […]
│ │ │ │ │ │ @@ -28,18 +28,18 @@
│ │ │ │ │ │ "execution_count": 1,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-03-17T14:43:57.222351Z",
│ │ │ │ │ │ "start_time": "2020-03-17T14:43:56.147541Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:16.115392Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:16.114852Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:18.191281Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:18.174722Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:31.494450Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:31.494022Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:34.288807Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:34.272752Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [],
│ │ │ │ │ │ "source": [
│ │ │ │ │ │ "%matplotlib inline\n",
│ │ │ │ │ │ "\n",
│ │ │ │ │ │ "import cartopy.crs as ccrs\n",
│ │ │ │ │ │ @@ -63,18 +63,18 @@
│ │ │ │ │ │ "execution_count": 2,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-03-17T14:43:57.831734Z",
│ │ │ │ │ │ "start_time": "2020-03-17T14:43:57.651845Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:18.203229Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:18.202459Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:19.022807Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:19.006771Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:34.306518Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:34.305954Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:35.072805Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:35.056767Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "ImportError",
│ │ │ │ │ │ "evalue": "tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -116,18 +116,18 @@
│ │ │ │ │ │ "execution_count": 3,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-03-17T14:43:59.887120Z",
│ │ │ │ │ │ "start_time": "2020-03-17T14:43:59.582894Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:19.044486Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:19.044030Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:19.407121Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:19.396599Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:35.086362Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:35.085957Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:35.556802Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:35.540755Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -172,18 +172,18 @@
│ │ │ │ │ │ "execution_count": 4,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-03-17T14:44:18.777092Z",
│ │ │ │ │ │ "start_time": "2020-03-17T14:44:18.736587Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:19.424860Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:19.424366Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:19.483474Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:19.472569Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:35.578488Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:35.578062Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:35.680804Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:35.664776Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -213,18 +213,18 @@
│ │ │ │ │ │ "execution_count": 5,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-03-17T14:44:52.607120Z",
│ │ │ │ │ │ "start_time": "2020-03-17T14:44:52.564674Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:19.492619Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:19.492187Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:19.583094Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:19.570764Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:35.698347Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:35.697972Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:35.812831Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:35.796792Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -246,18 +246,18 @@
│ │ │ │ │ │ "execution_count": 6,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-03-17T14:44:54.334279Z",
│ │ │ │ │ │ "start_time": "2020-03-17T14:44:54.280022Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:19.599006Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:19.598520Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:19.982787Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:19.966736Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:35.826335Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:35.825930Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:36.252852Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:36.236782Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'air_weighted' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -288,18 +288,18 @@
│ │ │ │ │ │ "execution_count": 7,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2020-03-17T14:45:08.877307Z",
│ │ │ │ │ │ "start_time": "2020-03-17T14:45:08.673383Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:20.008484Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:20.007983Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:20.114752Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:20.098711Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:36.278505Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:36.278067Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:36.376869Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:36.360828Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'weighted_mean' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ ├── ./usr/share/doc/python-xarray-doc/html/examples/blank_template.ipynb.gz
│ │ │ │ ├── blank_template.ipynb
│ │ │ │ │ ├── Pretty-printed
│ │ │ │ │ │┄ Similarity: 0.9991319444444444%
│ │ │ │ │ │┄ Differences: {"'cells'": "{1: {'metadata': {'execution': {'iopub.execute_input': '2024-01-12T09:47:47.054870Z', "
│ │ │ │ │ │┄ "'iopub.status.busy': '2024-01-12T09:47:47.054298Z', 'iopub.status.idle': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:51.096950Z', 'shell.execute_reply': "
│ │ │ │ │ │┄ "'2024-01-12T09:47:51.080903Z'}}}}"}
│ │ │ │ │ │ @@ -12,18 +12,18 @@
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 1,
│ │ │ │ │ │ "id": "41b90ede",
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:26.832369Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:26.831905Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:28.503240Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:28.497230Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:47.054870Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:47.054298Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:47:51.096950Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:47:51.080903Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "ImportError",
│ │ │ │ │ │ "evalue": "tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.",
│ │ │ │ │ │ "output_type": "error",
│ │ │ ├── ./usr/share/doc/python-xarray-doc/html/examples/monthly-means.ipynb.gz
│ │ │ │ ├── monthly-means.ipynb
│ │ │ │ │ ├── Pretty-printed
│ │ │ │ │ │┄ Similarity: 0.998721590909091%
│ │ │ │ │ │┄ Differences: {"'cells'": "{1: {'metadata': {'execution': {'iopub.execute_input': '2024-01-12T09:47:58.586810Z', "
│ │ │ │ │ │┄ "'iopub.status.busy': '2024-01-12T09:47:58.586315Z', 'iopub.status.idle': "
│ │ │ │ │ │┄ "'2024-01-12T09:48:03.224868Z', 'shell.execute_reply': "
│ │ │ │ │ │┄ "'2024-01-12T09:48:03.208852Z'}}}, 3: {'metadata': {'execution': "
│ │ │ │ │ │┄ "{'iopub.execute_input': '2024-01-12T09:48:03.247242Z', 'iopub.status.busy': "
│ │ │ │ │ │┄ "'2024-01-12T09:48:03.246431Z', 'iopub.status.idle': '2024-01-12T09:48:0 […]
│ │ │ │ │ │ @@ -19,18 +19,18 @@
│ │ │ │ │ │ "execution_count": 1,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:51:35.958210Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:51:35.936966Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:33.797231Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:33.796746Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:36.800291Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:36.798948Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:47:58.586810Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:47:58.586315Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:03.224868Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:03.208852Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [],
│ │ │ │ │ │ "source": [
│ │ │ │ │ │ "%matplotlib inline\n",
│ │ │ │ │ │ "import numpy as np\n",
│ │ │ │ │ │ "import pandas as pd\n",
│ │ │ │ │ │ @@ -50,18 +50,18 @@
│ │ │ │ │ │ "execution_count": 2,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:51:36.072316Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:51:36.016594Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:36.817647Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:36.816985Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:37.242307Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:37.239724Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:03.247242Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:03.246431Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:04.033635Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:04.025691Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "ImportError",
│ │ │ │ │ │ "evalue": "tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -96,18 +96,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 3,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:37.253875Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:37.253432Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:37.308202Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:37.306714Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:04.042824Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:04.042305Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:04.098346Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:04.096789Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -129,18 +129,18 @@
│ │ │ │ │ │ "execution_count": 4,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:51:36.132413Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:51:36.073708Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:37.314515Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:37.314082Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:37.434765Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:37.418717Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:04.106997Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:04.106457Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:04.198381Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:04.196977Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'month_length' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -170,18 +170,18 @@
│ │ │ │ │ │ "execution_count": 5,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:51:36.152913Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:51:36.133997Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:37.444779Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:37.444293Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:37.538784Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:37.514694Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:04.210725Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:04.210250Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:04.274377Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:04.272890Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds_weighted' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -202,18 +202,18 @@
│ │ │ │ │ │ "execution_count": 6,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:51:36.190765Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:51:36.154416Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:37.548100Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:37.547611Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:37.658745Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:37.638724Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:04.283143Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:04.282623Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:04.354414Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:04.352846Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -236,18 +236,18 @@
│ │ │ │ │ │ "execution_count": 7,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:51:40.264871Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:51:36.192467Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:37.668516Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:37.668025Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:37.814728Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:37.806698Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:04.370796Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:04.370303Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:04.510793Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:04.509232Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds_unweighted' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -316,18 +316,18 @@
│ │ │ │ │ │ "execution_count": 8,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:51:40.284898Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:51:40.266406Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:37.828393Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:37.827900Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:37.862755Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:37.850712Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:04.527021Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:04.526514Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:04.554531Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:04.552873Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [],
│ │ │ │ │ │ "source": [
│ │ │ │ │ │ "# Wrap it into a simple function\n",
│ │ │ │ │ │ "def season_mean(ds, calendar=\"standard\"):\n",
│ │ │ │ │ │ " # Make a DataArray with the number of days in each month, size = len(time)\n",
│ │ │ ├── ./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.ipynb.gz
│ │ │ │ ├── multidimensional-coords.ipynb
│ │ │ │ │ ├── Pretty-printed
│ │ │ │ │ │┄ Similarity: 0.99931640625%
│ │ │ │ │ │┄ Differences: {"'cells'": "{1: {'metadata': {'execution': {'iopub.execute_input': '2024-01-12T09:48:13.327281Z', "
│ │ │ │ │ │┄ "'iopub.status.busy': '2024-01-12T09:48:13.326616Z', 'iopub.status.idle': "
│ │ │ │ │ │┄ "'2024-01-12T09:48:16.364923Z', 'shell.execute_reply': "
│ │ │ │ │ │┄ "'2024-01-12T09:48:16.348841Z'}}}, 3: {'metadata': {'execution': "
│ │ │ │ │ │┄ "{'iopub.execute_input': '2024-01-12T09:48:16.391231Z', 'iopub.status.busy': "
│ │ │ │ │ │┄ "'2024-01-12T09:48:16.390403Z', 'iopub.status.idle': '2024-01-12T09:48:1 […]
│ │ │ │ │ │ @@ -16,18 +16,18 @@
│ │ │ │ │ │ "execution_count": 1,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:49:56.068395Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:49:56.035349Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:42.610474Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:42.609993Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:44.771293Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:44.763964Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:13.327281Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:13.326616Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:16.364923Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:16.348841Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [],
│ │ │ │ │ │ "source": [
│ │ │ │ │ │ "%matplotlib inline\n",
│ │ │ │ │ │ "import numpy as np\n",
│ │ │ │ │ │ "import pandas as pd\n",
│ │ │ │ │ │ @@ -48,18 +48,18 @@
│ │ │ │ │ │ "execution_count": 2,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:50:13.629720Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:50:13.484542Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:44.796744Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:44.796073Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:45.273547Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:45.265057Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:16.391231Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:16.390403Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:17.344983Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:17.328850Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "ImportError",
│ │ │ │ │ │ "evalue": "tutorial.open_dataset depends on pooch to download and manage datasets. To proceed please install pooch.",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -93,18 +93,18 @@
│ │ │ │ │ │ "execution_count": 3,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:50:15.836061Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:50:15.768376Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:45.288866Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:45.288421Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:45.336284Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:45.334832Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:17.374861Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:17.374376Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:17.492965Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:17.476891Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -135,18 +135,18 @@
│ │ │ │ │ │ "execution_count": 4,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:50:17.928556Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:50:17.031211Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:45.345164Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:45.344687Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:46.143331Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:46.137614Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:17.522722Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:17.522214Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:19.246364Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:19.244846Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -188,18 +188,18 @@
│ │ │ │ │ │ "execution_count": 5,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:50:20.567749Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:50:19.999393Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:46.161375Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:46.160882Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:46.239771Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:46.232702Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:19.260381Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:19.259849Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:19.326496Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:19.324915Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -227,18 +227,18 @@
│ │ │ │ │ │ "execution_count": 6,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:50:31.131708Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:50:30.444697Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:46.256616Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:46.256165Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:46.552220Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:46.548794Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:19.346839Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:19.346316Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:19.794573Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:19.792857Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ │ │ │ @@ -285,18 +285,18 @@
│ │ │ │ │ │ "execution_count": 7,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "ExecuteTime": {
│ │ │ │ │ │ "end_time": "2018-11-28T20:50:43.670463Z",
│ │ │ │ │ │ "start_time": "2018-11-28T20:50:43.245501Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-02-13T15:48:46.577553Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-02-13T15:48:46.577008Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-02-13T15:48:46.694820Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-02-13T15:48:46.678805Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-01-12T09:48:19.810619Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-01-12T09:48:19.810115Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-01-12T09:48:19.894444Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-01-12T09:48:19.892807Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "ename": "NameError",
│ │ │ │ │ │ "evalue": "name 'ds' is not defined",
│ │ │ │ │ │ "output_type": "error",
│ │ │ ├── ./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.html
│ │ │ │ @@ -574,15 +574,15 @@
│ │ │ │
│ │ │ │ -/tmp/ipykernel_3283687/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
│ │ │ │ +/tmp/ipykernel_1285013/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
│ │ │ │ da = xr.tutorial.open_rasterio("RGB.byte")
│ │ │ │
│ │ │ │ -/tmp/ipykernel_3283687/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
│ │ │ │ +/tmp/ipykernel_1285013/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
│ │ │ │ da = xr.tutorial.open_rasterio("RGB.byte")
│ │ │ │
<xarray.Dataset> │ │ │ │ Dimensions: (time: 731, location: 3) │ │ │ │ Coordinates: │ │ │ │ * time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2001-12-31 │ │ │ │ * location (location) <U2 'IA' 'IN' 'IL' │ │ │ │ Data variables: │ │ │ │ tmin (time, location) float64 -8.037 -1.788 -3.932 ... -1.346 -4.544 │ │ │ │ - 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]:
│ │ │ │ @@ -932,15 +932,15 @@
│ │ │ │
[5]:
│ │ │ │
│ │ │ │ -<seaborn.axisgrid.PairGrid at 0x7f79de890850>
│ │ │ │ +<seaborn.axisgrid.PairGrid at 0x7f00ce57a690>
│ │ │ │
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]:
│ │ │ │
freeze.to_pandas().plot()
│ │ │ │
PandasIndex(Index(['IA', 'IN', 'IL'], dtype='object', name='location'))
[12]:
│ │ │ │
df = both.sel(time="2000").mean("location").reset_coords(drop=True).to_dataframe()
│ │ │ │ df.head()
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -157,15 +157,15 @@
│ │ │ │ │
│ │ │ │ │ [../_images/examples_weather-data_7_1.png]
│ │ │ │ │
│ │ │ │ │ **** Visualize using seaborn¶ ****
│ │ │ │ │ [5]:
│ │ │ │ │ sns.pairplot(df.reset_index(), vars=ds.data_vars)
│ │ │ │ │ [5]:
│ │ │ │ │ -
│ │ │ │ │ +
│ │ │ │ │ [../_images/examples_weather-data_9_1.png]
│ │ │ │ │
│ │ │ │ │ ***** Probability of freeze by calendar month¶ *****
│ │ │ │ │ [6]:
│ │ │ │ │ freeze = (ds["tmin"] <= 0).groupby("time.month").mean("time")
│ │ │ │ │ freeze
│ │ │ │ │ [6]:
│ │ │ ├── ./usr/share/doc/python-xarray-doc/html/examples/weather-data.ipynb.gz
│ │ │ │ ├── weather-data.ipynb
│ │ │ │ │ ├── Pretty-printed
│ │ │ │ │ │┄ Similarity: 0.9992323118860381%
│ │ │ │ │ │┄ Differences: {"'cells'": "{1: {'metadata': {'execution': {'iopub.execute_input': '2024-01-12T09:48:44.386940Z', "
│ │ │ │ │ │┄ "'iopub.status.busy': '2024-01-12T09:48:44.386362Z', 'iopub.status.idle': "
│ │ │ │ │ │┄ "'2024-01-12T09:48:50.068914Z', 'shell.execute_reply': "
│ │ │ │ │ │┄ "'2024-01-12T09:48:50.052867Z'}}, '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:
│ │ │ │In [37]: data.plot()
│ │ │ │ -Out[37]: <matplotlib.collections.QuadMesh at 0x7f073f9fdfd0>
│ │ │ │ +Out[37]: <matplotlib.collections.QuadMesh at 0x7f56058667d0>
│ │ │ │
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.
│ │ │ │You’ll notice that printing a dataset still shows a preview of array values, │ │ │ │ even if they are actually Dask arrays. We can do this quickly with Dask because │ │ │ │ we only need to compute the first few values (typically from the first block). │ │ │ │ To reveal the true nature of an array, print a DataArray:
│ │ │ │In [3]: ds.temperature
│ │ │ │ Out[3]:
│ │ │ │ <xarray.DataArray 'temperature' (time: 30, latitude: 180, longitude: 180)>
│ │ │ │ -dask.array<open_dataset-39b7b670ad00b8e2e3cc5e2b10b5c905temperature, shape=(30, 180, 180), dtype=float64, chunksize=(10, 180, 180), chunktype=numpy.ndarray>
│ │ │ │ +dask.array<open_dataset-e465d2fa847582f6a280739021dc3613temperature, shape=(30, 180, 180), dtype=float64, chunksize=(10, 180, 180), chunktype=numpy.ndarray>
│ │ │ │ Coordinates:
│ │ │ │ * time (time) datetime64[ns] 2015-01-01 2015-01-02 ... 2015-01-30
│ │ │ │ * longitude (longitude) int64 0 1 2 3 4 5 6 7 ... 173 174 175 176 177 178 179
│ │ │ │ * latitude (latitude) float64 89.5 88.5 87.5 86.5 ... -87.5 -88.5 -89.5
│ │ │ │
Once you’ve manipulated a Dask array, you can still write a dataset too big to │ │ │ │ @@ -138,16 +138,17 @@ │ │ │ │ # or distributed.progress when using the distributed scheduler │ │ │ │ In [6]: delayed_obj = ds.to_netcdf("manipulated-example-data.nc", compute=False) │ │ │ │ │ │ │ │ In [7]: with ProgressBar(): │ │ │ │ ...: results = delayed_obj.compute() │ │ │ │ ...: │ │ │ │ │ │ │ │ -[ ] | 0% Completed | 15.02 ms │ │ │ │ -[########################################] | 100% Completed | 122.88 ms │ │ │ │ +[ ] | 0% Completed | 10.29 ms │ │ │ │ +[######################### ] | 62% Completed | 118.03 ms │ │ │ │ +[########################################] | 100% Completed | 226.13 ms │ │ │ │ │ │ │ │ │ │ │ │
Note
│ │ │ │When using Dask’s distributed scheduler to write NETCDF4 files,
│ │ │ │ it may be necessary to set the environment variable HDF5_USE_FILE_LOCKING=FALSE
│ │ │ │ to avoid competing locks within the HDF5 SWMR file locking scheme. Note that
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -76,15 +76,15 @@
│ │ │ │ │ Youâll notice that printing a dataset still shows a preview of array values,
│ │ │ │ │ even if they are actually Dask arrays. We can do this quickly with Dask because
│ │ │ │ │ we only need to compute the first few values (typically from the first block).
│ │ │ │ │ To reveal the true nature of an array, print a DataArray:
│ │ │ │ │ In [3]: ds.temperature
│ │ │ │ │ Out[3]:
│ │ │ │ │ ds.pipe(func)
) instead of
│ │ │ │ simply calling it (e.g., func(ds)
). This allows you to write pipelines for
│ │ │ │ transforming your data (using “method chaining”) instead of writing hard to
│ │ │ │ follow nested function calls:
# these lines are equivalent, but with pipe we can make the logic flow
│ │ │ │ # entirely from left to right
│ │ │ │ In [60]: plt.plot((2 * ds.temperature.sel(x=0)).mean("y"))
│ │ │ │ -Out[60]: [<matplotlib.lines.Line2D at 0x7f070fca15d0>]
│ │ │ │ +Out[60]: [<matplotlib.lines.Line2D at 0x7f55d5461350>]
│ │ │ │
│ │ │ │ In [61]: (ds.temperature.sel(x=0).pipe(lambda x: 2 * x).mean("y").pipe(plt.plot))
│ │ │ │ -Out[61]: [<matplotlib.lines.Line2D at 0x7f070f5933d0>]
│ │ │ │ +Out[61]: [<matplotlib.lines.Line2D at 0x7f55d54be410>]
│ │ │ │
Both pipe
and assign
replicate the pandas methods of the same names
│ │ │ │ (DataFrame.pipe
and
│ │ │ │ DataFrame.assign
).
With xarray, there is no performance penalty for creating new datasets, even if
│ │ │ │ variables are lazily loaded from a file on disk. Creating new objects instead
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -574,19 +574,19 @@
│ │ │ │ │ There is also the pipe() method that allows you to use a method call with an
│ │ │ │ │ external function (e.g., ds.pipe(func)) instead of simply calling it (e.g.,
│ │ │ │ │ func(ds)). This allows you to write pipelines for transforming your data (using
│ │ │ │ │ âmethod chainingâ) instead of writing hard to follow nested function calls:
│ │ │ │ │ # these lines are equivalent, but with pipe we can make the logic flow
│ │ │ │ │ # entirely from left to right
│ │ │ │ │ In [60]: plt.plot((2 * ds.temperature.sel(x=0)).mean("y"))
│ │ │ │ │ -Out[60]: [
Additional keyword arguments can be passed to scipy’s functions.
│ │ │ │# fill 0 for the outside of the original coordinates.
│ │ │ │ In [21]: da.interp(x=np.linspace(-0.5, 1.5, 10), kwargs={"fill_value": 0.0})
│ │ │ │ Out[21]:
│ │ │ │ @@ -615,15 +615,15 @@
│ │ │ │ 858 f"Dimensions {invalid} do not exist. Expected one or more of {dims}"
│ │ │ │ 859 )
│ │ │ │ 861 return indexers
│ │ │ │ 863 elif missing_dims == "warn":
│ │ │ │ 864
│ │ │ │ 865 # don't modify input
│ │ │ │
│ │ │ │ -ValueError: Dimensions {'lat', 'lon'} do not exist. Expected one or more of Frozen({'x': 3, 'y': 4})
│ │ │ │ +ValueError: Dimensions {'lon', 'lat'} do not exist. Expected one or more of Frozen({'x': 3, 'y': 4})
│ │ │ │
│ │ │ │ In [63]: dsi.air.plot(ax=axes[1])
│ │ │ │ ---------------------------------------------------------------------------
│ │ │ │ NameError Traceback (most recent call last)
│ │ │ │ Cell In [63], line 1
│ │ │ │ ----> 1 dsi.air.plot(ax=axes[1])
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -165,26 +165,26 @@
│ │ │ │ │ ....: np.sin(np.linspace(0, 2 * np.pi, 10)),
│ │ │ │ │ ....: dims="x",
│ │ │ │ │ ....: coords={"x": np.linspace(0, 1, 10)},
│ │ │ │ │ ....: )
│ │ │ │ │ ....:
│ │ │ │ │
│ │ │ │ │ In [17]: da.plot.line("o", label="original")
│ │ │ │ │ -Out[17]: []
│ │ │ │ │ +Out[17]: []
│ │ │ │ │
│ │ │ │ │ In [18]: da.interp(x=np.linspace(0, 1, 100)).plot.line(label="linear
│ │ │ │ │ (default)")
│ │ │ │ │ -Out[18]: []
│ │ │ │ │ +Out[18]: []
│ │ │ │ │
│ │ │ │ │ In [19]: da.interp(x=np.linspace(0, 1, 100), method="cubic").plot.line
│ │ │ │ │ (label="cubic")
│ │ │ │ │ -Out[19]: []
│ │ │ │ │ +Out[19]: []
│ │ │ │ │
│ │ │ │ │ In [20]: plt.legend()
│ │ │ │ │ -Out[20]:
│ │ │ │ │ +Out[20]:
│ │ │ │ │ [../_images/interpolation_sample1.png]
│ │ │ │ │ Additional keyword arguments can be passed to scipyâs functions.
│ │ │ │ │ # fill 0 for the outside of the original coordinates.
│ │ │ │ │ In [21]: da.interp(x=np.linspace(-0.5, 1.5, 10), kwargs={"fill_value": 0.0})
│ │ │ │ │ Out[21]:
│ │ │ │ │
│ │ │ │ │ array([ 0. , 0. , 0. , 0.814, 0.604, -0.604, -0.814, 0. , 0. ,
│ │ │ │ │ @@ -558,15 +558,15 @@
│ │ │ │ │ of {dims}"
│ │ │ │ │ 859 )
│ │ │ │ │ 861 return indexers
│ │ │ │ │ 863 elif missing_dims == "warn":
│ │ │ │ │ 864
│ │ │ │ │ 865 # don't modify input
│ │ │ │ │
│ │ │ │ │ -ValueError: Dimensions {'lat', 'lon'} do not exist. Expected one or more of
│ │ │ │ │ +ValueError: Dimensions {'lon', 'lat'} do not exist. Expected one or more of
│ │ │ │ │ Frozen({'x': 3, 'y': 4})
│ │ │ │ │
│ │ │ │ │ In [63]: dsi.air.plot(ax=axes[1])
│ │ │ │ │ ---------------------------------------------------------------------------
│ │ │ │ │ NameError Traceback (most recent call last)
│ │ │ │ │ Cell In [63], line 1
│ │ │ │ │ ----> 1 dsi.air.plot(ax=axes[1])
│ │ │ ├── ./usr/share/doc/python-xarray-doc/html/user-guide/plotting.html
│ │ │ │ @@ -643,15 +643,15 @@
│ │ │ │ --> 186 raise KeyError(key)
│ │ │ │ 188 ref_name, var_name = split_key
│ │ │ │ 189 ref_var = variables[ref_name]
│ │ │ │
│ │ │ │ KeyError: 'lat'
│ │ │ │
│ │ │ │ In [51]: b.plot()
│ │ │ │ -Out[51]: [<matplotlib.lines.Line2D at 0x7f07c3fe13d0>]
│ │ │ │ +Out[51]: [<matplotlib.lines.Line2D at 0x7f5685e7e750>]
│ │ │ │
There are several other options for plotting 2D data.
│ │ │ │ @@ -1205,104 +1205,104 @@ │ │ │ │ * 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 │ │ │ │ * z (z) int64 0 1 2 3 │ │ │ │ * w (w) <U5 'one' 'two' 'three' 'five' │ │ │ │ Attributes: │ │ │ │ units: Aunits │ │ │ │ │ │ │ │ In [99]: ds.A.plot.scatter(x="y") │ │ │ │ -Out[99]: <matplotlib.collections.PathCollection at 0x7f07c3edf290> │ │ │ │ +Out[99]: <matplotlib.collections.PathCollection at 0x7f5685d2bed0> │ │ │ │ │ │ │ │ │ │ │ │Same plot can be displayed using the dataset:
│ │ │ │In [100]: ds.plot.scatter(x="y", y="A")
│ │ │ │ -Out[100]: <matplotlib.collections.PathCollection at 0x7f07c3d9c310>
│ │ │ │ +Out[100]: <matplotlib.collections.PathCollection at 0x7f5685c6ba90>
│ │ │ │
Now suppose we want to scatter the A
DataArray against the B
DataArray
In [101]: ds.plot.scatter(x="A", y="B")
│ │ │ │ -Out[101]: <matplotlib.collections.PathCollection at 0x7f07c3e56690>
│ │ │ │ +Out[101]: <matplotlib.collections.PathCollection at 0x7f5685cd6cd0>
│ │ │ │
The hue
kwarg lets you vary the color by variable value
In [102]: ds.plot.scatter(x="A", y="B", hue="w")
│ │ │ │ -Out[102]: <matplotlib.collections.PathCollection at 0x7f07c3e24310>
│ │ │ │ +Out[102]: <matplotlib.collections.PathCollection at 0x7f5685c38c10>
│ │ │ │
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)
│ │ │ │ -Out[103]: <matplotlib.collections.PathCollection at 0x7f070d587290>
│ │ │ │ +Out[103]: <matplotlib.collections.PathCollection at 0x7f55d343ccd0>
│ │ │ │
In [104]: ds.plot.scatter(x="A", y="B", hue="w", add_legend=False, add_colorbar=True)
│ │ │ │ -Out[104]: <matplotlib.collections.PathCollection at 0x7f07c3e405d0>
│ │ │ │ +Out[104]: <matplotlib.collections.PathCollection at 0x7f55d3475dd0>
│ │ │ │
The markersize
kwarg lets you vary the point’s size by variable value.
│ │ │ │ You can additionally pass size_norm
to control how the variable’s values are mapped to point sizes.
In [105]: ds.plot.scatter(x="A", y="B", hue="y", markersize="z")
│ │ │ │ -Out[105]: <matplotlib.collections.PathCollection at 0x7f070d5c7290>
│ │ │ │ +Out[105]: <matplotlib.collections.PathCollection at 0x7f55d32d1a50>
│ │ │ │
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")
│ │ │ │ -Out[106]: <mpl_toolkits.mplot3d.art3d.Path3DCollection at 0x7f070d430350>
│ │ │ │ +Out[106]: <mpl_toolkits.mplot3d.art3d.Path3DCollection at 0x7f55d32f0190>
│ │ │ │
Faceting is also possible
│ │ │ │In [107]: ds.plot.scatter(x="A", y="B", hue="y", markersize="x", row="x", col="w")
│ │ │ │ -Out[107]: <xarray.plot.facetgrid.FacetGrid at 0x7f070d4b4290>
│ │ │ │ +Out[107]: <xarray.plot.facetgrid.FacetGrid at 0x7f55d6b7a050>
│ │ │ │
And adding the z-axis
│ │ │ │In [108]: ds.plot.scatter(x="A", y="B", z="z", hue="y", markersize="x", row="x", col="w")
│ │ │ │ -Out[108]: <xarray.plot.facetgrid.FacetGrid at 0x7f070cf70350>
│ │ │ │ +Out[108]: <xarray.plot.facetgrid.FacetGrid at 0x7f55d305c610>
│ │ │ │
For more advanced scatter plots, we recommend converting the relevant data variables
│ │ │ │ to a pandas DataFrame and using the extensive plotting capabilities of seaborn
.
Visualizing vector fields is supported with quiver plots:
│ │ │ │In [109]: ds.isel(w=1, z=1).plot.quiver(x="x", y="y", u="A", v="B")
│ │ │ │ -Out[109]: <matplotlib.quiver.Quiver at 0x7f070d2de8d0>
│ │ │ │ +Out[109]: <matplotlib.quiver.Quiver at 0x7f55d2c8cb90>
│ │ │ │
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)
│ │ │ │ -Out[110]: <xarray.plot.facetgrid.FacetGrid at 0x7f070f6a9550>
│ │ │ │ +Out[110]: <xarray.plot.facetgrid.FacetGrid at 0x7f55d2d61bd0>
│ │ │ │
scale
is required for faceted quiver plots.
│ │ │ │ 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:
│ │ │ │In [111]: ds.isel(w=1, z=1).plot.streamplot(x="x", y="y", u="A", v="B")
│ │ │ │ -Out[111]: <matplotlib.collections.LineCollection at 0x7f07c3e0fe10>
│ │ │ │ +Out[111]: <matplotlib.collections.LineCollection at 0x7f55d29493d0>
│ │ │ │
where u
and v
denote the x and y direction components of the vectors tangent to the streamlines.
│ │ │ │ Again, faceting is also possible:
In [112]: ds.plot.streamplot(x="x", y="y", u="A", v="B", col="w", row="z")
│ │ │ │ -Out[112]: <xarray.plot.facetgrid.FacetGrid at 0x7f070d07d590>
│ │ │ │ +Out[112]: <xarray.plot.facetgrid.FacetGrid at 0x7f55d2772690>
│ │ │ │
In [121]: import xarray.plot as xplt
│ │ │ │
│ │ │ │ In [122]: da = xr.DataArray(range(5))
│ │ │ │
│ │ │ │ In [123]: fig, axs = plt.subplots(ncols=2, nrows=2)
│ │ │ │
│ │ │ │ In [124]: da.plot(ax=axs[0, 0])
│ │ │ │ -Out[124]: [<matplotlib.lines.Line2D at 0x7f070bfd1490>]
│ │ │ │ +Out[124]: [<matplotlib.lines.Line2D at 0x7f55d31f1ad0>]
│ │ │ │
│ │ │ │ In [125]: da.plot.line(ax=axs[0, 1])
│ │ │ │ -Out[125]: [<matplotlib.lines.Line2D at 0x7f070c56cb50>]
│ │ │ │ +Out[125]: [<matplotlib.lines.Line2D at 0x7f55d197f910>]
│ │ │ │
│ │ │ │ In [126]: xplt.plot(da, ax=axs[1, 0])
│ │ │ │ -Out[126]: [<matplotlib.lines.Line2D at 0x7f070bb9ff90>]
│ │ │ │ +Out[126]: [<matplotlib.lines.Line2D at 0x7f55d18ed490>]
│ │ │ │
│ │ │ │ In [127]: xplt.line(da, ax=axs[1, 1])
│ │ │ │ -Out[127]: [<matplotlib.lines.Line2D at 0x7f070bb9fc90>]
│ │ │ │ +Out[127]: [<matplotlib.lines.Line2D at 0x7f55d18edf50>]
│ │ │ │
│ │ │ │ In [128]: plt.tight_layout()
│ │ │ │
│ │ │ │ In [129]: plt.draw()
│ │ │ │
The plot will produce an image corresponding to the values of the array. │ │ │ │ Hence the top left pixel will be a different color than the others. │ │ │ │ Before reading on, you may want to look at the coordinates and │ │ │ │ think carefully about what the limits, labels, and orientation for │ │ │ │ each of the axes should be.
│ │ │ │In [134]: a.plot()
│ │ │ │ -Out[134]: <matplotlib.collections.QuadMesh at 0x7f070d1c94d0>
│ │ │ │ +Out[134]: <matplotlib.collections.QuadMesh at 0x7f5685d1bb90>
│ │ │ │
It may seem strange that
│ │ │ │ the values on the y axis are decreasing with -0.5 on the top. This is because
│ │ │ │ the pixels are centered over their coordinates, and the
│ │ │ │ axis labels and ranges correspond to the values of the
│ │ │ │ @@ -1520,81 +1520,81 @@
│ │ │ │ .....: np.arange(20).reshape(4, 5),
│ │ │ │ .....: dims=["y", "x"],
│ │ │ │ .....: coords={"lat": (("y", "x"), lat), "lon": (("y", "x"), lon)},
│ │ │ │ .....: )
│ │ │ │ .....:
│ │ │ │
│ │ │ │ In [139]: da.plot.pcolormesh(x="lon", y="lat")
│ │ │ │ -Out[139]: <matplotlib.collections.QuadMesh at 0x7f070c7c1f90>
│ │ │ │ +Out[139]: <matplotlib.collections.QuadMesh at 0x7f55d27f4c90>
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
Note that in this case, xarray still follows the pixel centered convention. │ │ │ │ This might be undesirable in some cases, for example when your data is defined │ │ │ │ on a polar projection (GH781). This is why the default is to not follow │ │ │ │ this convention when plotting on a map:
│ │ │ │In [140]: import cartopy.crs as ccrs
│ │ │ │
│ │ │ │ In [141]: ax = plt.subplot(projection=ccrs.PlateCarree())
│ │ │ │
│ │ │ │ In [142]: da.plot.pcolormesh(x="lon", y="lat", ax=ax)
│ │ │ │ -Out[142]: <cartopy.mpl.geocollection.GeoQuadMesh at 0x7f070b92c110>
│ │ │ │ +Out[142]: <cartopy.mpl.geocollection.GeoQuadMesh at 0x7f55d2f48f50>
│ │ │ │
│ │ │ │ In [143]: ax.scatter(lon, lat, transform=ccrs.PlateCarree())
│ │ │ │ -Out[143]: <matplotlib.collections.PathCollection at 0x7f070c86ee90>
│ │ │ │ +Out[143]: <matplotlib.collections.PathCollection at 0x7f55d1a1ba50>
│ │ │ │
│ │ │ │ In [144]: ax.coastlines()
│ │ │ │ -Out[144]: <cartopy.mpl.feature_artist.FeatureArtist at 0x7f070ba67850>
│ │ │ │ +Out[144]: <cartopy.mpl.feature_artist.FeatureArtist at 0x7f55d2bdfb90>
│ │ │ │
│ │ │ │ In [145]: ax.gridlines(draw_labels=True)
│ │ │ │ -Out[145]: <cartopy.mpl.gridliner.Gridliner at 0x7f070c47bfd0>
│ │ │ │ +Out[145]: <cartopy.mpl.gridliner.Gridliner at 0x7f55d1d31210>
│ │ │ │
You can however decide to infer the cell boundaries and use the
│ │ │ │ infer_intervals
keyword:
In [146]: ax = plt.subplot(projection=ccrs.PlateCarree())
│ │ │ │
│ │ │ │ In [147]: da.plot.pcolormesh(x="lon", y="lat", ax=ax, infer_intervals=True)
│ │ │ │ -Out[147]: <cartopy.mpl.geocollection.GeoQuadMesh at 0x7f0709b2cc50>
│ │ │ │ +Out[147]: <cartopy.mpl.geocollection.GeoQuadMesh at 0x7f55cfa38490>
│ │ │ │
│ │ │ │ In [148]: ax.scatter(lon, lat, transform=ccrs.PlateCarree())
│ │ │ │ -Out[148]: <matplotlib.collections.PathCollection at 0x7f0709cf4110>
│ │ │ │ +Out[148]: <matplotlib.collections.PathCollection at 0x7f55d19862d0>
│ │ │ │
│ │ │ │ In [149]: ax.coastlines()
│ │ │ │ -Out[149]: <cartopy.mpl.feature_artist.FeatureArtist at 0x7f0709b3dfd0>
│ │ │ │ +Out[149]: <cartopy.mpl.feature_artist.FeatureArtist at 0x7f55d2405450>
│ │ │ │
│ │ │ │ In [150]: ax.gridlines(draw_labels=True)
│ │ │ │ -Out[150]: <cartopy.mpl.gridliner.Gridliner at 0x7f0709b56f10>
│ │ │ │ +Out[150]: <cartopy.mpl.gridliner.Gridliner at 0x7f55cfa2f790>
│ │ │ │
Note
│ │ │ │The data model of xarray does not support datasets with cell boundaries │ │ │ │ yet. If you want to use these coordinates, you’ll have to make the plots │ │ │ │ outside the xarray framework.
│ │ │ │One 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)
│ │ │ │
│ │ │ │ In [152]: da.plot.line(x="lon", hue="y", ax=ax[0])
│ │ │ │ Out[152]:
│ │ │ │ -[<matplotlib.lines.Line2D at 0x7f070a0d2cd0>,
│ │ │ │ - <matplotlib.lines.Line2D at 0x7f0709c026d0>,
│ │ │ │ - <matplotlib.lines.Line2D at 0x7f0709c02950>,
│ │ │ │ - <matplotlib.lines.Line2D at 0x7f0709c02d90>]
│ │ │ │ +[<matplotlib.lines.Line2D at 0x7f55cfa0fb50>,
│ │ │ │ + <matplotlib.lines.Line2D at 0x7f55cf918a10>,
│ │ │ │ + <matplotlib.lines.Line2D at 0x7f55cf91abd0>,
│ │ │ │ + <matplotlib.lines.Line2D at 0x7f55cf91af50>]
│ │ │ │
│ │ │ │ In [153]: da.plot.line(x="lon", hue="x", ax=ax[1])
│ │ │ │ Out[153]:
│ │ │ │ -[<matplotlib.lines.Line2D at 0x7f0709a26050>,
│ │ │ │ - <matplotlib.lines.Line2D at 0x7f0709a26450>,
│ │ │ │ - <matplotlib.lines.Line2D at 0x7f0709a26790>,
│ │ │ │ - <matplotlib.lines.Line2D at 0x7f0709a26ad0>,
│ │ │ │ - <matplotlib.lines.Line2D at 0x7f0709a26d50>]
│ │ │ │ +[<matplotlib.lines.Line2D at 0x7f55cf93a610>,
│ │ │ │ + <matplotlib.lines.Line2D at 0x7f55cf93aa10>,
│ │ │ │ + <matplotlib.lines.Line2D at 0x7f55cf93ad10>,
│ │ │ │ + <matplotlib.lines.Line2D at 0x7f55cf93af50>,
│ │ │ │ + <matplotlib.lines.Line2D at 0x7f55cf93b290>]
│ │ │ │
New xray.Dataset.where
method for masking xray objects according
│ │ │ │ to some criteria. This works particularly well with multi-dimensional data:
In [44]: ds = xray.Dataset(coords={"x": range(100), "y": range(100)})
│ │ │ │
│ │ │ │ In [45]: ds["distance"] = np.sqrt(ds.x**2 + ds.y**2)
│ │ │ │
│ │ │ │ In [46]: ds.distance.where(ds.distance < 100).plot()
│ │ │ │ -Out[46]: <matplotlib.collections.QuadMesh at 0x7f07099d5d50>
│ │ │ │ +Out[46]: <matplotlib.collections.QuadMesh at 0x7f55cdfdded0>
│ │ │ │
Added new methods xray.DataArray.diff
and xray.Dataset.diff
│ │ │ │ for finite difference calculations along a given axis.
New xray.DataArray.to_masked_array
convenience method for
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -4049,15 +4049,15 @@
│ │ │ │ │ * New xray.Dataset.where method for masking xray objects according to some
│ │ │ │ │ criteria. This works particularly well with multi-dimensional data:
│ │ │ │ │ In [44]: ds = xray.Dataset(coords={"x": range(100), "y": range(100)})
│ │ │ │ │
│ │ │ │ │ In [45]: ds["distance"] = np.sqrt(ds.x**2 + ds.y**2)
│ │ │ │ │
│ │ │ │ │ In [46]: ds.distance.where(ds.distance < 100).plot()
│ │ │ │ │ - Out[46]: