{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.Hw2NOzZM/b1/python-xarray_0.16.2-2_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.Hw2NOzZM/b2/python-xarray_0.16.2-2_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,3 +1,3 @@\n \n- b75de620c5306634352a331a6b14abdc 2043848 doc optional python-xarray-doc_0.16.2-2_all.deb\n+ 8f06ebab8dc6b1d550fc83cb49cb3512 2043852 doc optional python-xarray-doc_0.16.2-2_all.deb\n 9a2456450e2c51d89ccb00d8c4a100d8 486600 python optional python3-xarray_0.16.2-2_all.deb\n"}, {"source1": "python-xarray-doc_0.16.2-2_all.deb", "source2": "python-xarray-doc_0.16.2-2_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 2021-01-02 13:06:33.000000 debian-binary\n -rw-r--r-- 0 0 0 4980 2021-01-02 13:06:33.000000 control.tar.xz\n--rw-r--r-- 0 0 0 2038676 2021-01-02 13:06:33.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 2038680 2021-01-02 13:06:33.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": "@@ -178,54 +178,54 @@\n -rw-r--r-- 0 root (0) root (0) 412 2020-12-01 07:05:15.000000 ./usr/share/doc/python-xarray-doc/html/_static/style.css\n -rw-r--r-- 0 root (0) root (0) 24020 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/_static/where_example.png\n -rw-r--r-- 0 root (0) root (0) 8018 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/api-hidden.html\n -rw-r--r-- 0 root (0) root (0) 35061 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/api.html\n -rw-r--r-- 0 root (0) root (0) 57284 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/combining.html\n -rw-r--r-- 0 root (0) root (0) 110193 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/computation.html\n -rw-r--r-- 0 root (0) root (0) 90070 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/contributing.html\n--rw-r--r-- 0 root (0) root (0) 79117 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/dask.html\n+-rw-r--r-- 0 root (0) root (0) 79481 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/dask.html\n -rw-r--r-- 0 root (0) root (0) 102950 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/data-structures.html\n -rw-r--r-- 0 root (0) root (0) 17225 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/duckarrays.html\n drwxr-xr-x 0 root (0) root (0) 0 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/\n--rw-r--r-- 0 root (0) root (0) 68084 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.html\n+-rw-r--r-- 0 root (0) root (0) 68085 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.html\n -rw-r--r-- 0 root (0) root (0) 5090 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/ERA5-GRIB-example.ipynb.gz\n--rw-r--r-- 0 root (0) root (0) 49514 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.html\n+-rw-r--r-- 0 root (0) root (0) 49515 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.html\n -rw-r--r-- 0 root (0) root (0) 18700 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.ipynb.gz\n--rw-r--r-- 0 root (0) root (0) 107469 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.html\n+-rw-r--r-- 0 root (0) root (0) 107470 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.html\n -rw-r--r-- 0 root (0) root (0) 8091 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.ipynb.gz\n--rw-r--r-- 0 root (0) root (0) 38212 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.html\n--rw-r--r-- 0 root (0) root (0) 14552 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.ipynb.gz\n--rw-r--r-- 0 root (0) root (0) 47846 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/monthly-means.html\n--rw-r--r-- 0 root (0) root (0) 3166 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/monthly-means.ipynb.gz\n--rw-r--r-- 0 root (0) root (0) 41913 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.html\n--rw-r--r-- 0 root (0) root (0) 7648 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.ipynb.gz\n--rw-r--r-- 0 root (0) root (0) 81220 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.html\n--rw-r--r-- 0 root (0) root (0) 5307 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 38213 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.html\n+-rw-r--r-- 0 root (0) root (0) 14555 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 47847 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/monthly-means.html\n+-rw-r--r-- 0 root (0) root (0) 3168 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/monthly-means.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 41914 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.html\n+-rw-r--r-- 0 root (0) root (0) 7649 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 81221 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.html\n+-rw-r--r-- 0 root (0) root (0) 5305 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 90739 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/weather-data.html\n--rw-r--r-- 0 root (0) root (0) 208632 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/weather-data.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 208636 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples/weather-data.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 12844 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/examples.html\n -rw-r--r-- 0 root (0) root (0) 33153 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/faq.html\n -rw-r--r-- 0 root (0) root (0) 9794 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/genindex.html\n -rw-r--r-- 0 root (0) root (0) 38989 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/groupby.html\n -rw-r--r-- 0 root (0) root (0) 19098 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/howdoi.html\n -rw-r--r-- 0 root (0) root (0) 17531 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/index.html\n--rw-r--r-- 0 root (0) root (0) 183015 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/indexing.html\n+-rw-r--r-- 0 root (0) root (0) 183016 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/indexing.html\n -rw-r--r-- 0 root (0) root (0) 24660 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/installing.html\n--rw-r--r-- 0 root (0) root (0) 34152 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/internals.html\n--rw-r--r-- 0 root (0) root (0) 89977 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/interpolation.html\n+-rw-r--r-- 0 root (0) root (0) 34153 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/internals.html\n+-rw-r--r-- 0 root (0) root (0) 89978 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/interpolation.html\n -rw-r--r-- 0 root (0) root (0) 125247 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/io.html\n -rw-r--r-- 0 root (0) root (0) 13348 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/objects.inv\n -rw-r--r-- 0 root (0) root (0) 41507 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/pandas.html\n--rw-r--r-- 0 root (0) root (0) 208687 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/plotting.html\n+-rw-r--r-- 0 root (0) root (0) 208689 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/plotting.html\n -rw-r--r-- 0 root (0) root (0) 46141 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/quick-overview.html\n -rw-r--r-- 0 root (0) root (0) 21186 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/related-projects.html\n -rw-r--r-- 0 root (0) root (0) 56597 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/reshaping.html\n -rw-r--r-- 0 root (0) root (0) 22480 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/roadmap.html\n -rw-r--r-- 0 root (0) root (0) 7920 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/search.html\n--rw-r--r-- 0 root (0) root (0) 100581 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/searchindex.js\n+-rw-r--r-- 0 root (0) root (0) 100596 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/searchindex.js\n -rw-r--r-- 0 root (0) root (0) 20789 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/terminology.html\n -rw-r--r-- 0 root (0) root (0) 39824 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/time-series.html\n -rw-r--r-- 0 root (0) root (0) 41691 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/weather-climate.html\n -rw-r--r-- 0 root (0) root (0) 574383 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/whats-new.html\n -rw-r--r-- 0 root (0) root (0) 18651 2021-01-02 13:06:33.000000 ./usr/share/doc/python-xarray-doc/html/why-xarray.html\n drwxr-xr-x 0 root (0) root (0) 0 2021-01-02 13:06:33.000000 ./usr/share/doc-base/\n -rw-r--r-- 0 root (0) root (0) 290 2021-01-02 13:06:33.000000 ./usr/share/doc-base/python-xarray-doc\n"}, {"source1": "./usr/share/doc/python-xarray-doc/html/dask.html", "source2": "./usr/share/doc/python-xarray-doc/html/dask.html", "unified_diff": "@@ -300,15 +300,15 @@\n

You\u2019ll 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 <xarray.DataArray 'temperature' (time: 30, latitude: 180, longitude: 180)>\n-dask.array<open_dataset-6899631a72f44971c5ec8e15e50691c6temperature, shape=(30, 180, 180), dtype=float64, chunksize=(10, 180, 180), chunktype=numpy.ndarray>\n+dask.array<open_dataset-6c7ee59748dd4fbafa8c0d5819022057temperature, 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 
\n
\n

Once you\u2019ve manipulated a Dask array, you can still write a dataset too big to\n@@ -325,15 +325,19 @@\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 | 0.0s\n-[########################################] | 100% Completed | 0.1s\n+[##### ] | 12% Completed | 0.1s\n+[########## ] | 25% Completed | 0.2s\n+[########## ] | 25% Completed | 0.3s\n+[#################### ] | 50% Completed | 0.5s\n+[########################################] | 100% Completed | 0.6s\n \n \n

\n

Note

\n

When 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": "@@ -114,15 +114,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 \n-dask.array\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\n 179\n * latitude (latitude) float64 89.5 88.5 87.5 86.5 ... -87.5 -88.5 -89.5\n Once you\u00e2\u0080\u0099ve manipulated a Dask array, you can still write a dataset too big\n@@ -137,15 +137,19 @@\n compute=False)\n \n In [7]: with ProgressBar():\n ...: results = delayed_obj.compute()\n ...:\n \n [ ] | 0% Completed | 0.0s\n-[########################################] | 100% Completed | 0.1s\n+[##### ] | 12% Completed | 0.1s\n+[########## ] | 25% Completed | 0.2s\n+[########## ] | 25% Completed | 0.3s\n+[#################### ] | 50% Completed | 0.5s\n+[########################################] | 100% Completed | 0.6s\n Note\n When using Dask\u00e2\u0080\u0099s distributed scheduler to write NETCDF4 files, it may be\n necessary to set the environment variableHDF5_USE_FILE_LOCKING=FALSEto avoid\n competing locks within the HDF5 SWMR file locking scheme. Note that writing\n netCDF files with Dask\u00e2\u0080\u0099s distributed scheduler is only supported for\n thenetcdf4backend.\n A dataset can also be converted to a Dask DataFrame using to_dask_dataframe().\n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/data-structures.html", "source2": "./usr/share/doc/python-xarray-doc/html/data-structures.html", "unified_diff": "@@ -892,18 +892,18 @@\n a method call with an external function (e.g., 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:

\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]: [<matplotlib.lines.Line2D at 0x7f17c68f4b80>]\n+Out[60]: [<matplotlib.lines.Line2D at 0x7efccf0708b0>]\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 0x7f17c69010d0>]\n+Out[61]: [<matplotlib.lines.Line2D at 0x7efccf070bb0>]\n 
\n
\n

Both pipe and assign replicate the pandas methods of the same names\n (DataFrame.pipe and\n DataFrame.assign).

\n

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": "@@ -619,19 +619,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]: []\n+Out[60]: []\n \n In [61]: (ds.temperature.sel(x=0).pipe(lambda x: 2 * x).mean(\"y\").pipe\n (plt.plot))\n-Out[61]: []\n+Out[61]: []\n Both pipe and assign replicate the pandas methods of the same names\n (DataFrame.pipe and DataFrame.assign).\n 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 of mutating existing objects often results in easier to understand code, so we\n encourage using this approach.\n **** Renaming variables\u00c2\u00b6 ****\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": "@@ -523,15 +523,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n

\n \n

Let\u2019s create a simple plot of 2-m air temperature in degrees Celsius:

\n
\n
[3]:\n 
\n
\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -84,15 +84,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n Let\u00e2\u0080\u0099s create a simple plot of 2-m air temperature in degrees Celsius:\n [3]:\n ds = ds - 273.15\n ds.t2m[0].plot(cmap=plt.cm.coolwarm)\n ---------------------------------------------------------------------------\n NameError Traceback (most recent call last)\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.9998173701298702%", "Differences: {\"'cells'\": '{4: {\\'outputs\\': {0: {\\'evalue\\': \"[Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\", \\'traceback\\': {insert: [(5, '", " '\"\\\\x1b[0;31mFileNotFoundError\\\\x1b[0m: [Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\")], delete: [5]}}}}}'}"], "unified_diff": "@@ -34,23 +34,23 @@\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n \"metadata\": {},\n \"outputs\": [\n {\n \"ename\": \"FileNotFoundError\",\n- \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\",\n+ \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\",\n \"output_type\": \"error\",\n \"traceback\": [\n \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n \"\\u001b[0;31mFileNotFoundError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32m\\u001b[0m in \\u001b[0;36m\\u001b[0;34m\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0;31m \\u001b[0mds\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mxr\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mtutorial\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m'era5-2mt-2019-03-uk.grib'\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mengine\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;34m'cfgrib'\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mload_dataset\\u001b[0;34m(*args, **kwargs)\\u001b[0m\\n\\u001b[1;32m 111\\u001b[0m \\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 112\\u001b[0m \\\"\\\"\\\"\\n\\u001b[0;32m--> 113\\u001b[0;31m \\u001b[0;32mwith\\u001b[0m \\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0margs\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m \\u001b[0;32mas\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 114\\u001b[0m \\u001b[0;32mreturn\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 115\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mopen_dataset\\u001b[0;34m(name, cache, cache_dir, github_url, branch, **kws)\\u001b[0m\\n\\u001b[1;32m 76\\u001b[0m \\u001b[0;31m# May want to add an option to remove it.\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 77\\u001b[0m \\u001b[0;32mif\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mpath\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0misdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 78\\u001b[0;31m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmkdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 79\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 80\\u001b[0m \\u001b[0murl\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;34m\\\"/\\\"\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mjoin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mgithub_url\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m\\\"raw\\\"\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mbranch\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mfullname\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n- \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\"\n+ \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\"\n ]\n }\n ],\n \"source\": [\n \"ds = xr.tutorial.load_dataset('era5-2mt-2019-03-uk.grib', engine='cfgrib')\"\n ]\n },\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.html", "source2": "./usr/share/doc/python-xarray-doc/html/examples/ROMS_ocean_model.html", "unified_diff": "@@ -561,15 +561,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n
\n \n \n
\n

Add a lazilly calculated vertical coordinates\u00b6

\n

Write equations to calculate the vertical coordinate. These will be only evaluated when data is requested. Information about the ROMS vertical coordinate can be found (here)[https://www.myroms.org/wiki/Vertical_S-coordinate]

\n

In short, for Vtransform==2 as used in this example,

\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -125,15 +125,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n ***** Add a lazilly calculated vertical coordinates\u00c2\u00b6 *****\n Write equations to calculate the vertical coordinate. These will be only\n evaluated when data is requested. Information about the ROMS vertical\n coordinate can be found (here)[https://www.myroms.org/wiki/Vertical_S-\n coordinate]\n In short, for Vtransform==2 as used in this example,\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.9998774509803922%", "Differences: {\"'cells'\": '{5: {\\'outputs\\': {0: {\\'evalue\\': \"[Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\", \\'traceback\\': {insert: [(4, '", " '\"\\\\x1b[0;31mFileNotFoundError\\\\x1b[0m: [Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\")], delete: [4]}}}}}'}"], "unified_diff": "@@ -69,22 +69,22 @@\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n \"metadata\": {},\n \"outputs\": [\n {\n \"ename\": \"FileNotFoundError\",\n- \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\",\n+ \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\",\n \"output_type\": \"error\",\n \"traceback\": [\n \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n \"\\u001b[0;31mFileNotFoundError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32m\\u001b[0m in \\u001b[0;36m\\u001b[0;34m\\u001b[0m\\n\\u001b[1;32m 1\\u001b[0m \\u001b[0;31m# load in the file\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m----> 2\\u001b[0;31m \\u001b[0mds\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mxr\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mtutorial\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m'ROMS_example.nc'\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mchunks\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;34m{\\u001b[0m\\u001b[0;34m'ocean_time'\\u001b[0m\\u001b[0;34m:\\u001b[0m \\u001b[0;36m1\\u001b[0m\\u001b[0;34m}\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 3\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 4\\u001b[0m \\u001b[0;31m# This is a way to turn on chunking and lazy evaluation. Opening with mfdataset, or\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 5\\u001b[0m \\u001b[0;31m# setting the chunking in the open_dataset would also achive this.\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mopen_dataset\\u001b[0;34m(name, cache, cache_dir, github_url, branch, **kws)\\u001b[0m\\n\\u001b[1;32m 76\\u001b[0m \\u001b[0;31m# May want to add an option to remove it.\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 77\\u001b[0m \\u001b[0;32mif\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mpath\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0misdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 78\\u001b[0;31m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmkdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 79\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 80\\u001b[0m \\u001b[0murl\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;34m\\\"/\\\"\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mjoin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mgithub_url\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m\\\"raw\\\"\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mbranch\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mfullname\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n- \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\"\n+ \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\"\n ]\n }\n ],\n \"source\": [\n \"# load in the file\\n\",\n \"ds = xr.tutorial.open_dataset('ROMS_example.nc', chunks={'ocean_time': 1})\\n\",\n \"\\n\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.html", "source2": "./usr/share/doc/python-xarray-doc/html/examples/apply_ufunc_vectorize_1d.html", "unified_diff": "@@ -555,15 +555,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n
\n \n

The function we will apply is np.interp which expects 1D numpy arrays. This functionality is already implemented in xarray so we use that capability to make sure we are not making mistakes.

\n
\n
[2]:\n 
\n
\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -116,15 +116,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n The function we will apply is np.interp which expects 1D numpy arrays. This\n functionality is already implemented in xarray so we use that capability to\n make sure we are not making mistakes.\n [2]:\n newlat = np.linspace(15, 75, 100)\n air.interp(lat=newlat)\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.9999510017421602%", "Differences: {\"'cells'\": '{2: {\\'outputs\\': {0: {\\'evalue\\': \"[Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\", \\'traceback\\': {insert: [(5, '", " '\"\\\\x1b[0;31mFileNotFoundError\\\\x1b[0m: [Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\")], delete: [5]}}}}}'}"], "unified_diff": "@@ -39,23 +39,23 @@\n \"end_time\": \"2020-01-15T14:45:51.659160Z\",\n \"start_time\": \"2020-01-15T14:45:50.528742Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"FileNotFoundError\",\n- \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\",\n+ \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\",\n \"output_type\": \"error\",\n \"traceback\": [\n \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n \"\\u001b[0;31mFileNotFoundError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32m\\u001b[0m in \\u001b[0;36m\\u001b[0;34m\\u001b[0m\\n\\u001b[1;32m 5\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 6\\u001b[0m air = (\\n\\u001b[0;32m----> 7\\u001b[0;31m \\u001b[0mxr\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mtutorial\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m\\\"air_temperature\\\"\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 8\\u001b[0m \\u001b[0;34m.\\u001b[0m\\u001b[0mair\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0msortby\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m\\\"lat\\\"\\u001b[0m\\u001b[0;34m)\\u001b[0m \\u001b[0;31m# np.interp needs coordinate in ascending order\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 9\\u001b[0m \\u001b[0;34m.\\u001b[0m\\u001b[0misel\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mtime\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mslice\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;36m4\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mlon\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mslice\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;36m3\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mload_dataset\\u001b[0;34m(*args, **kwargs)\\u001b[0m\\n\\u001b[1;32m 111\\u001b[0m \\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 112\\u001b[0m \\\"\\\"\\\"\\n\\u001b[0;32m--> 113\\u001b[0;31m \\u001b[0;32mwith\\u001b[0m \\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0margs\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m \\u001b[0;32mas\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 114\\u001b[0m \\u001b[0;32mreturn\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 115\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mopen_dataset\\u001b[0;34m(name, cache, cache_dir, github_url, branch, **kws)\\u001b[0m\\n\\u001b[1;32m 76\\u001b[0m \\u001b[0;31m# May want to add an option to remove it.\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 77\\u001b[0m \\u001b[0;32mif\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mpath\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0misdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 78\\u001b[0;31m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmkdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 79\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 80\\u001b[0m \\u001b[0murl\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;34m\\\"/\\\"\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mjoin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mgithub_url\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m\\\"raw\\\"\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mbranch\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mfullname\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n- \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\"\n+ \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\"\n ]\n }\n ],\n \"source\": [\n \"import xarray as xr\\n\",\n \"import numpy as np\\n\",\n \"\\n\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.html", "source2": "./usr/share/doc/python-xarray-doc/html/examples/area_weighted_temperature.html", "unified_diff": "@@ -555,15 +555,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n
\n \n

Plot the first timestep:

\n
\n
[3]:\n 
\n
\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -113,15 +113,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n Plot the first timestep:\n [3]:\n projection = ccrs.LambertConformal(central_longitude=-95, central_latitude=45)\n \n f, ax = plt.subplots(subplot_kw=dict(projection=projection))\n \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.9998565051020408%", "Differences: {\"'cells'\": '{4: {\\'outputs\\': {0: {\\'evalue\\': \"[Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\", \\'traceback\\': {insert: [(5, '", " '\"\\\\x1b[0;31mFileNotFoundError\\\\x1b[0m: [Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\")], delete: [5]}}}}}'}"], "unified_diff": "@@ -60,23 +60,23 @@\n \"end_time\": \"2020-03-17T14:43:57.831734Z\",\n \"start_time\": \"2020-03-17T14:43:57.651845Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"FileNotFoundError\",\n- \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\",\n+ \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\",\n \"output_type\": \"error\",\n \"traceback\": [\n \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n \"\\u001b[0;31mFileNotFoundError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32m\\u001b[0m in \\u001b[0;36m\\u001b[0;34m\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0;31m \\u001b[0mds\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mxr\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mtutorial\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m\\\"air_temperature\\\"\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 2\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 3\\u001b[0m \\u001b[0;31m# to celsius\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 4\\u001b[0m \\u001b[0mair\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mair\\u001b[0m \\u001b[0;34m-\\u001b[0m \\u001b[0;36m273.15\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 5\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mload_dataset\\u001b[0;34m(*args, **kwargs)\\u001b[0m\\n\\u001b[1;32m 111\\u001b[0m \\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 112\\u001b[0m \\\"\\\"\\\"\\n\\u001b[0;32m--> 113\\u001b[0;31m \\u001b[0;32mwith\\u001b[0m \\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0margs\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m \\u001b[0;32mas\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 114\\u001b[0m \\u001b[0;32mreturn\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 115\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mopen_dataset\\u001b[0;34m(name, cache, cache_dir, github_url, branch, **kws)\\u001b[0m\\n\\u001b[1;32m 76\\u001b[0m \\u001b[0;31m# May want to add an option to remove it.\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 77\\u001b[0m \\u001b[0;32mif\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mpath\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0misdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 78\\u001b[0;31m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmkdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 79\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 80\\u001b[0m \\u001b[0murl\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;34m\\\"/\\\"\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mjoin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mgithub_url\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m\\\"raw\\\"\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mbranch\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mfullname\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n- \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\"\n+ \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\"\n ]\n }\n ],\n \"source\": [\n \"ds = xr.tutorial.load_dataset(\\\"air_temperature\\\")\\n\",\n \"\\n\",\n \"# to celsius\\n\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/monthly-means.html", "source2": "./usr/share/doc/python-xarray-doc/html/examples/monthly-means.html", "unified_diff": "@@ -528,15 +528,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n
\n \n \n
\n

Now for the heavy lifting:\u00b6

\n

We first have to come up with the weights, - calculate the month lengths for each monthly data record - calculate weights using groupby('time.season')

\n

Finally, we just need to multiply our weights by the Dataset and sum allong the time dimension. Creating a DataArray for the month length is as easy as using the days_in_month accessor on the time coordinate. The calendar type, in this case 'noleap', is automatically considered in this operation.

\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -85,15 +85,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n ***** Now for the heavy lifting:\u00c2\u00b6 *****\n We first have to come up with the weights, - calculate the month lengths for\n each monthly data record - calculate weights using groupby('time.season')\n Finally, we just need to multiply our weights by the Dataset and sum allong the\n time dimension. Creating a DataArray for the month length is as easy as using\n the days_in_month accessor on the time coordinate. The calendar type, in this\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.999810606060606%", "Differences: {\"'cells'\": '{3: {\\'outputs\\': {0: {\\'evalue\\': \"[Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\", \\'traceback\\': {insert: [(4, '", " '\"\\\\x1b[0;31mFileNotFoundError\\\\x1b[0m: [Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\")], delete: [4]}}}}}'}"], "unified_diff": "@@ -47,22 +47,22 @@\n \"end_time\": \"2018-11-28T20:51:36.072316Z\",\n \"start_time\": \"2018-11-28T20:51:36.016594Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"FileNotFoundError\",\n- \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\",\n+ \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\",\n \"output_type\": \"error\",\n \"traceback\": [\n \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n \"\\u001b[0;31mFileNotFoundError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32m\\u001b[0m in \\u001b[0;36m\\u001b[0;34m\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0;31m \\u001b[0mds\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mxr\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mtutorial\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m'rasm'\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 2\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mopen_dataset\\u001b[0;34m(name, cache, cache_dir, github_url, branch, **kws)\\u001b[0m\\n\\u001b[1;32m 76\\u001b[0m \\u001b[0;31m# May want to add an option to remove it.\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 77\\u001b[0m \\u001b[0;32mif\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mpath\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0misdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 78\\u001b[0;31m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmkdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 79\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 80\\u001b[0m \\u001b[0murl\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;34m\\\"/\\\"\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mjoin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mgithub_url\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m\\\"raw\\\"\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mbranch\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mfullname\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n- \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\"\n+ \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\"\n ]\n }\n ],\n \"source\": [\n \"ds = xr.tutorial.open_dataset('rasm').load()\\n\",\n \"ds\"\n ]\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.html", "source2": "./usr/share/doc/python-xarray-doc/html/examples/multidimensional-coords.html", "unified_diff": "@@ -527,15 +527,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n
\n \n

In this example, the logical coordinates are x and y, while the physical coordinates are xc and yc, which represent the latitudes and longitude of the data.

\n
\n
[3]:\n 
\n
\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -83,15 +83,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n In this example, the logical coordinates are x and y, while the physical\n coordinates are xc and yc, which represent the latitudes and longitude of the\n data.\n [3]:\n print(ds.xc.attrs)\n print(ds.yc.attrs)\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.9998697916666667%", "Differences: {\"'cells'\": '{3: {\\'outputs\\': {0: {\\'evalue\\': \"[Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\", \\'traceback\\': {insert: [(4, '", " '\"\\\\x1b[0;31mFileNotFoundError\\\\x1b[0m: [Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\")], delete: [4]}}}}}'}"], "unified_diff": "@@ -45,22 +45,22 @@\n \"end_time\": \"2018-11-28T20:50:13.629720Z\",\n \"start_time\": \"2018-11-28T20:50:13.484542Z\"\n }\n },\n \"outputs\": [\n {\n \"ename\": \"FileNotFoundError\",\n- \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\",\n+ \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\",\n \"output_type\": \"error\",\n \"traceback\": [\n \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n \"\\u001b[0;31mFileNotFoundError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32m\\u001b[0m in \\u001b[0;36m\\u001b[0;34m\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0;31m \\u001b[0mds\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mxr\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mtutorial\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m'rasm'\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 2\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mopen_dataset\\u001b[0;34m(name, cache, cache_dir, github_url, branch, **kws)\\u001b[0m\\n\\u001b[1;32m 76\\u001b[0m \\u001b[0;31m# May want to add an option to remove it.\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 77\\u001b[0m \\u001b[0;32mif\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mpath\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0misdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 78\\u001b[0;31m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmkdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 79\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 80\\u001b[0m \\u001b[0murl\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;34m\\\"/\\\"\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mjoin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mgithub_url\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m\\\"raw\\\"\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mbranch\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mfullname\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n- \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\"\n+ \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\"\n ]\n }\n ],\n \"source\": [\n \"ds = xr.tutorial.open_dataset('rasm').load()\\n\",\n \"ds\"\n ]\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": "@@ -533,15 +533,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n
\n \n
\n

Multiple plots and map projections\u00b6

\n

Control the map projection parameters on multiple axes

\n

This example illustrates how to plot multiple maps and control their extent and aspect ratio.

\n

For more details see this discussion on github.

\n@@ -770,15 +770,15 @@\n 200 except KeyError:\n \n /build/reproducible-path/python-xarray-0.16.2/xarray/backends/lru_cache.py in __getitem__(self, key)\n 52 with self._lock:\n ---> 53 value = self._cache[key]\n 54 self._cache.move_to_end(key)\n \n-KeyError: [<function open at 0x7fc61f756430>, ('https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif',), 'r', ()]\n+KeyError: [<function open at 0x7f69d4222430>, ('https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif',), 'r', ()]\n \n During handling of the above exception, another exception occurred:\n \n CPLE_HttpResponseError Traceback (most recent call last)\n rasterio/_base.pyx in rasterio._base.DatasetBase.__init__()\n \n rasterio/_shim.pyx in rasterio._shim.open_dataset()\n@@ -889,15 +889,15 @@\n 200 except KeyError:\n \n /build/reproducible-path/python-xarray-0.16.2/xarray/backends/lru_cache.py in __getitem__(self, key)\n 52 with self._lock:\n ---> 53 value = self._cache[key]\n 54 self._cache.move_to_end(key)\n \n-KeyError: [<function open at 0x7fc61f756430>, ('https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif',), 'r', ()]\n+KeyError: [<function open at 0x7f69d4222430>, ('https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif',), 'r', ()]\n \n During handling of the above exception, another exception occurred:\n \n CPLE_OpenFailedError Traceback (most recent call last)\n rasterio/_base.pyx in rasterio._base.DatasetBase.__init__()\n \n rasterio/_shim.pyx in rasterio._shim.open_dataset()\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -89,15 +89,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n ***** Multiple plots and map projections\u00c2\u00b6 *****\n Control the map projection parameters on multiple axes\n This example illustrates how to plot multiple maps and control their extent and\n aspect ratio.\n For more details see this_discussion on github.\n [3]:\n@@ -255,15 +255,15 @@\n \n /build/reproducible-path/python-xarray-0.16.2/xarray/backends/lru_cache.py in\n __getitem__(self, key)\n 52 with self._lock:\n ---> 53 value = self._cache[key]\n 54 self._cache.move_to_end(key)\n \n-KeyError: [, ('https://github.com/mapbox/\n+KeyError: [, ('https://github.com/mapbox/\n rasterio/raw/master/tests/data/RGB.byte.tif',), 'r', ()]\n \n During handling of the above exception, another exception occurred:\n \n CPLE_HttpResponseError Traceback (most recent call last)\n rasterio/_base.pyx in rasterio._base.DatasetBase.__init__()\n \n@@ -374,15 +374,15 @@\n \n /build/reproducible-path/python-xarray-0.16.2/xarray/backends/lru_cache.py in\n __getitem__(self, key)\n 52 with self._lock:\n ---> 53 value = self._cache[key]\n 54 self._cache.move_to_end(key)\n \n-KeyError: [, ('https://github.com/mapbox/\n+KeyError: [, ('https://github.com/mapbox/\n rasterio/raw/master/tests/data/RGB.byte.tif',), 'r', ()]\n \n During handling of the above exception, another exception occurred:\n \n CPLE_OpenFailedError Traceback (most recent call last)\n rasterio/_base.pyx in rasterio._base.DatasetBase.__init__()\n \n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.ipynb.gz", "source2": "./usr/share/doc/python-xarray-doc/html/examples/visualization_gallery.ipynb.gz", "unified_diff": null, "details": [{"source1": "visualization_gallery.ipynb", "source2": "visualization_gallery.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.9998566862824675%", "Differences: {\"'cells'\": '{3: {\\'outputs\\': {0: {\\'evalue\\': \"[Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\", \\'traceback\\': {insert: [(5, '", " '\"\\\\x1b[0;31mFileNotFoundError\\\\x1b[0m: [Errno 2] No such file or directory: '", " '\\'/nonexistent/second-build/.xarray_tutorial_data\\'\")], delete: [5]}}}}, 13: '", " '{\\'outputs\\': {0: {\\'traceback\\': {insert: [(4, \"\\\\x1b[0;31mKeyError\\\\x1b[0m: '", " '[, ' [\u2026]"], "unified_diff": "@@ -31,23 +31,23 @@\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n \"metadata\": {},\n \"outputs\": [\n {\n \"ename\": \"FileNotFoundError\",\n- \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\",\n+ \"evalue\": \"[Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\",\n \"output_type\": \"error\",\n \"traceback\": [\n \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n \"\\u001b[0;31mFileNotFoundError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32m\\u001b[0m in \\u001b[0;36m\\u001b[0;34m\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0;31m \\u001b[0mds\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mxr\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mtutorial\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m'air_temperature'\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mload_dataset\\u001b[0;34m(*args, **kwargs)\\u001b[0m\\n\\u001b[1;32m 111\\u001b[0m \\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 112\\u001b[0m \\\"\\\"\\\"\\n\\u001b[0;32m--> 113\\u001b[0;31m \\u001b[0;32mwith\\u001b[0m \\u001b[0mopen_dataset\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m*\\u001b[0m\\u001b[0margs\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m)\\u001b[0m \\u001b[0;32mas\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 114\\u001b[0m \\u001b[0;32mreturn\\u001b[0m \\u001b[0mds\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mload\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 115\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py\\u001b[0m in \\u001b[0;36mopen_dataset\\u001b[0;34m(name, cache, cache_dir, github_url, branch, **kws)\\u001b[0m\\n\\u001b[1;32m 76\\u001b[0m \\u001b[0;31m# May want to add an option to remove it.\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 77\\u001b[0m \\u001b[0;32mif\\u001b[0m \\u001b[0;32mnot\\u001b[0m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mpath\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0misdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 78\\u001b[0;31m \\u001b[0m_os\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmkdir\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mlongdir\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 79\\u001b[0m \\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[1;32m 80\\u001b[0m \\u001b[0murl\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0;34m\\\"/\\\"\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mjoin\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mgithub_url\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0;34m\\\"raw\\\"\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mbranch\\u001b[0m\\u001b[0;34m,\\u001b[0m \\u001b[0mfullname\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n- \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\"\n+ \"\\u001b[0;31mFileNotFoundError\\u001b[0m: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\"\n ]\n }\n ],\n \"source\": [\n \"ds = xr.tutorial.load_dataset('air_temperature')\"\n ]\n },\n@@ -275,15 +275,15 @@\n \"evalue\": \"CURL error: Could not resolve host: github.com\",\n \"output_type\": \"error\",\n \"traceback\": [\n \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n \"\\u001b[0;31mKeyError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/backends/file_manager.py\\u001b[0m in \\u001b[0;36m_acquire_with_cache_info\\u001b[0;34m(self, needs_lock)\\u001b[0m\\n\\u001b[1;32m 198\\u001b[0m \\u001b[0;32mtry\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 199\\u001b[0;31m \\u001b[0mfile\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_cache\\u001b[0m\\u001b[0;34m[\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_key\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 200\\u001b[0m \\u001b[0;32mexcept\\u001b[0m \\u001b[0mKeyError\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/backends/lru_cache.py\\u001b[0m in \\u001b[0;36m__getitem__\\u001b[0;34m(self, key)\\u001b[0m\\n\\u001b[1;32m 52\\u001b[0m \\u001b[0;32mwith\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_lock\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 53\\u001b[0;31m \\u001b[0mvalue\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_cache\\u001b[0m\\u001b[0;34m[\\u001b[0m\\u001b[0mkey\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 54\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_cache\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmove_to_end\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mkey\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n- \"\\u001b[0;31mKeyError\\u001b[0m: [, ('https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif',), 'r', ()]\",\n+ \"\\u001b[0;31mKeyError\\u001b[0m: [, ('https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif',), 'r', ()]\",\n \"\\nDuring handling of the above exception, another exception occurred:\\n\",\n \"\\u001b[0;31mCPLE_HttpResponseError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32mrasterio/_base.pyx\\u001b[0m in \\u001b[0;36mrasterio._base.DatasetBase.__init__\\u001b[0;34m()\\u001b[0m\\n\",\n \"\\u001b[0;32mrasterio/_shim.pyx\\u001b[0m in \\u001b[0;36mrasterio._shim.open_dataset\\u001b[0;34m()\\u001b[0m\\n\",\n \"\\u001b[0;32mrasterio/_err.pyx\\u001b[0m in \\u001b[0;36mrasterio._err.exc_wrap_pointer\\u001b[0;34m()\\u001b[0m\\n\",\n \"\\u001b[0;31mCPLE_HttpResponseError\\u001b[0m: CURL error: Could not resolve host: github.com\",\n \"\\nDuring handling of the above exception, another exception occurred:\\n\",\n@@ -338,15 +338,15 @@\n \"evalue\": \"'/vsicurl/https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif' does not exist in the file system, and is not recognized as a supported dataset name.\",\n \"output_type\": \"error\",\n \"traceback\": [\n \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n \"\\u001b[0;31mKeyError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/backends/file_manager.py\\u001b[0m in \\u001b[0;36m_acquire_with_cache_info\\u001b[0;34m(self, needs_lock)\\u001b[0m\\n\\u001b[1;32m 198\\u001b[0m \\u001b[0;32mtry\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m--> 199\\u001b[0;31m \\u001b[0mfile\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_cache\\u001b[0m\\u001b[0;34m[\\u001b[0m\\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_key\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 200\\u001b[0m \\u001b[0;32mexcept\\u001b[0m \\u001b[0mKeyError\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n \"\\u001b[0;32m/build/reproducible-path/python-xarray-0.16.2/xarray/backends/lru_cache.py\\u001b[0m in \\u001b[0;36m__getitem__\\u001b[0;34m(self, key)\\u001b[0m\\n\\u001b[1;32m 52\\u001b[0m \\u001b[0;32mwith\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_lock\\u001b[0m\\u001b[0;34m:\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0;32m---> 53\\u001b[0;31m \\u001b[0mvalue\\u001b[0m \\u001b[0;34m=\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_cache\\u001b[0m\\u001b[0;34m[\\u001b[0m\\u001b[0mkey\\u001b[0m\\u001b[0;34m]\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\\u001b[1;32m 54\\u001b[0m \\u001b[0mself\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0m_cache\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mmove_to_end\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0mkey\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n- \"\\u001b[0;31mKeyError\\u001b[0m: [, ('https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif',), 'r', ()]\",\n+ \"\\u001b[0;31mKeyError\\u001b[0m: [, ('https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif',), 'r', ()]\",\n \"\\nDuring handling of the above exception, another exception occurred:\\n\",\n \"\\u001b[0;31mCPLE_OpenFailedError\\u001b[0m Traceback (most recent call last)\",\n \"\\u001b[0;32mrasterio/_base.pyx\\u001b[0m in \\u001b[0;36mrasterio._base.DatasetBase.__init__\\u001b[0;34m()\\u001b[0m\\n\",\n \"\\u001b[0;32mrasterio/_shim.pyx\\u001b[0m in \\u001b[0;36mrasterio._shim.open_dataset\\u001b[0;34m()\\u001b[0m\\n\",\n \"\\u001b[0;32mrasterio/_err.pyx\\u001b[0m in \\u001b[0;36mrasterio._err.exc_wrap_pointer\\u001b[0;34m()\\u001b[0m\\n\",\n \"\\u001b[0;31mCPLE_OpenFailedError\\u001b[0m: '/vsicurl/https://github.com/mapbox/rasterio/raw/master/tests/data/RGB.byte.tif' does not exist in the file system, and is not recognized as a supported dataset name.\",\n \"\\nDuring handling of the above exception, another exception occurred:\\n\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/examples/weather-data.html", "source2": "./usr/share/doc/python-xarray-doc/html/examples/weather-data.html", "unified_diff": "@@ -889,30 +889,30 @@\n
<xarray.Dataset>\n Dimensions:   (location: 3, time: 731)\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
  • \n \n
    \n

    Examine a dataset with pandas and seaborn\u00b6

    \n
    \n

    Convert to a pandas DataFrame\u00b6

    \n
    \n
    [2]:\n@@ -1112,15 +1112,15 @@\n 
    \n
    \n
    [5]:\n 
    \n
    \n
    \n
    \n-<seaborn.axisgrid.PairGrid at 0x7f791c55f970>\n+<seaborn.axisgrid.PairGrid at 0x7f61b6479370>\n 
    \n
    \n
    \n
    \n
    \n
    \n \"../_images/examples_weather-data_9_1.png\"\n@@ -1507,26 +1507,26 @@\n [0. , 0. , 0. ],\n [0. , 0. , 0. ],\n [0. , 0.01612903, 0. ],\n [0.33333333, 0.35 , 0.23333333],\n [0.93548387, 0.85483871, 0.82258065]])\n Coordinates:\n * location (location) <U2 'IA' 'IN' 'IL'\n- * month (month) int64 1 2 3 4 5 6 7 8 9 10 11 12
    • location
      (location)
      <U2
      'IA' 'IN' 'IL'
      array(['IA', 'IN', 'IL'], dtype='<U2')
    • month
      (month)
      int64
      1 2 3 4 5 6 7 8 9 10 11 12
      array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
  • \n
    \n
    \n
    [7]:\n 
    \n
    \n
    \n freeze.to_pandas().plot()\n@@ -2025,18 +2025,18 @@\n Dimensions:       (location: 3, time: 731)\n Coordinates:\n   * time          (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2001-12-31\n   * location      (location) object 'IA' 'IN' 'IL'\n     month         (time) int64 1 1 1 1 1 1 1 1 1 ... 12 12 12 12 12 12 12 12 12\n Data variables:\n     some_missing  (time, location) float64 nan nan nan ... 2.063 -1.346 -4.544\n-    filled        (time, location) float64 -5.163 -4.216 ... -1.346 -4.544
  • \n \n
    \n
    [12]:\n 
    \n
    \n
    \n df = both.sel(time="2000").mean("location").reset_coords(drop=True).to_dataframe()\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -188,15 +188,15 @@\n [4]:\n \n [../_images/examples_weather-data_7_1.png]\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 ***** 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 \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.999984729458033%", "Differences: {\"'cells'\": '{1: {\\'outputs\\': {0: {\\'data\\': {\\'text/html\\': {insert: [(358, \"    tmax      '", "            '(time, location) float64 12.98 3.31 6.779 ... 6.636 3.343 3.805
    \"\n ],\n \"text/plain\": [\n \"\\n\",\n \"Dimensions: (location: 3, time: 731)\\n\",\n \"Coordinates:\\n\",\n \" * time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2001-12-31\\n\",\n \" * location (location) \"\n+ \"\"\n ]\n },\n \"execution_count\": 5,\n \"metadata\": {},\n \"output_type\": \"execute_result\"\n },\n {\n@@ -1121,26 +1121,26 @@\n \" [0. , 0. , 0. ],\\n\",\n \" [0. , 0. , 0. ],\\n\",\n \" [0. , 0.01612903, 0. ],\\n\",\n \" [0.33333333, 0.35 , 0.23333333],\\n\",\n \" [0.93548387, 0.85483871, 0.82258065]])\\n\",\n \"Coordinates:\\n\",\n \" * location (location) <U2 'IA' 'IN' 'IL'\\n\",\n- \" * month (month) int64 1 2 3 4 5 6 7 8 9 10 11 12
    • location
      (location)
      <U2
      'IA' 'IN' 'IL'
      array(['IA', 'IN', 'IL'], dtype='<U2')
    • month
      (month)
      int64
      1 2 3 4 5 6 7 8 9 10 11 12
      array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
  • \"\n ],\n \"text/plain\": [\n \"\\n\",\n \"array([[0.9516129 , 0.88709677, 0.93548387],\\n\",\n \" [0.84210526, 0.71929825, 0.77192982],\\n\",\n \" [0.24193548, 0.12903226, 0.16129032],\\n\",\n \" [0. , 0. , 0. ],\\n\",\n@@ -1760,18 +1760,18 @@\n \"Dimensions: (location: 3, time: 731)\\n\",\n \"Coordinates:\\n\",\n \" * time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2001-12-31\\n\",\n \" * location (location) object 'IA' 'IN' 'IL'\\n\",\n \" month (time) int64 1 1 1 1 1 1 1 1 1 ... 12 12 12 12 12 12 12 12 12\\n\",\n \"Data variables:\\n\",\n \" some_missing (time, location) float64 nan nan nan ... 2.063 -1.346 -4.544\\n\",\n- \" filled (time, location) float64 -5.163 -4.216 ... -1.346 -4.544
  • \"\n ],\n \"text/plain\": [\n \"\\n\",\n \"Dimensions: (location: 3, time: 731)\\n\",\n \"Coordinates:\\n\",\n \" * time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2001-12-31\\n\",\n \" * location (location) object 'IA' 'IN' 'IL'\\n\",\n"}]}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/indexing.html", "source2": "./usr/share/doc/python-xarray-doc/html/indexing.html", "unified_diff": "@@ -875,15 +875,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79 \n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n \n # add an empty 2D dataarray\n In [54]: ds["empty"] = xr.full_like(ds.air.mean("time"), fill_value=0)\n ---------------------------------------------------------------------------\n AttributeError Traceback (most recent call last)\n <ipython-input-54-6709edaff03d> in <module>\n ----> 1 ds["empty"] = xr.full_like(ds.air.mean("time"), fill_value=0)\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -563,15 +563,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n \n # add an empty 2D dataarray\n In [54]: ds[\"empty\"] = xr.full_like(ds.air.mean(\"time\"), fill_value=0)\n ---------------------------------------------------------------------------\n AttributeError Traceback (most recent call last)\n in \n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/internals.html", "source2": "./usr/share/doc/python-xarray-doc/html/internals.html", "unified_diff": "@@ -431,18 +431,18 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79 \n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n \n In [5]: ds.to_zarr("rasm.zarr", mode="w")\n-Out[5]: <xarray.backends.zarr.ZarrStore at 0x7f1794790ee0>\n+Out[5]: <xarray.backends.zarr.ZarrStore at 0x7efc98f04a00>\n \n In [6]: import zarr\n \n In [7]: zgroup = zarr.open("rasm.zarr")\n \n In [8]: print(zgroup.tree())\n /\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -225,19 +225,19 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n \n In [5]: ds.to_zarr(\"rasm.zarr\", mode=\"w\")\n-Out[5]: \n+Out[5]: \n \n In [6]: import zarr\n \n In [7]: zgroup = zarr.open(\"rasm.zarr\")\n \n In [8]: print(zgroup.tree())\n /\n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/interpolation.html", "source2": "./usr/share/doc/python-xarray-doc/html/interpolation.html", "unified_diff": "@@ -408,24 +408,24 @@\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]: [<matplotlib.lines.Line2D at 0x7f17b82e73a0>]\n+Out[17]: [<matplotlib.lines.Line2D at 0x7efcb821ea60>]\n \n In [18]: da.interp(x=np.linspace(0, 1, 100)).plot.line(label="linear (default)")\n-Out[18]: [<matplotlib.lines.Line2D at 0x7f17c68bc580>]\n+Out[18]: [<matplotlib.lines.Line2D at 0x7efcb81fdbe0>]\n \n In [19]: da.interp(x=np.linspace(0, 1, 100), method="cubic").plot.line(label="cubic")\n-Out[19]: [<matplotlib.lines.Line2D at 0x7f17b8394160>]\n+Out[19]: [<matplotlib.lines.Line2D at 0x7efcb8313310>]\n \n In [20]: plt.legend()\n-Out[20]: <matplotlib.legend.Legend at 0x7f179471ca60>\n+Out[20]: <matplotlib.legend.Legend at 0x7efc98e8ce50>\n \n \n \"_images/interpolation_sample1.png\"\n

    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@@ -611,15 +611,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n      76         # May want to add an option to remove it.\n      77         if not _os.path.isdir(longdir):\n ---> 78             _os.mkdir(longdir)\n      79 \n      80         url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n \n In [45]: fig, axes = plt.subplots(ncols=2, figsize=(10, 4))\n \n In [46]: ds.air.plot(ax=axes[0])\n ---------------------------------------------------------------------------\n AttributeError                            Traceback (most recent call last)\n <ipython-input-46-cb8f083667be> in <module>\n@@ -766,15 +766,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/core/utils.py in drop_dims_from_indexers(indexers, dims, missing_dims)\n     766         invalid = indexers.keys() - set(dims)\n     767         if invalid:\n --> 768             raise ValueError(\n     769                 f"dimensions {invalid} do not exist. Expected one or more of {dims}"\n     770             )\n \n-ValueError: dimensions {'lon', 'lat'} do not exist. Expected one or more of Frozen(SortedKeysDict({'longitude': 50, 'latitude': 50}))\n+ValueError: dimensions {'lat', 'lon'} do not exist. Expected one or more of Frozen(SortedKeysDict({'longitude': 50, 'latitude': 50}))\n \n In [63]: dsi.air.plot(ax=axes[1])\n ---------------------------------------------------------------------------\n NameError                                 Traceback (most recent call last)\n <ipython-input-63-433e5c8b0d13> in <module>\n ----> 1 dsi.air.plot(ax=axes[1])\n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -202,26 +202,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@@ -390,15 +390,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n      76         # May want to add an option to remove it.\n      77         if not _os.path.isdir(longdir):\n ---> 78             _os.mkdir(longdir)\n      79\n      80         url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n \n In [45]: fig, axes = plt.subplots(ncols=2, figsize=(10, 4))\n \n In [46]: ds.air.plot(ax=axes[0])\n ---------------------------------------------------------------------------\n AttributeError                            Traceback (most recent call last)\n@@ -560,15 +560,15 @@\n     766         invalid = indexers.keys() - set(dims)\n     767         if invalid:\n --> 768             raise ValueError(\n     769                 f\"dimensions {invalid} do not exist. Expected one or\n more of {dims}\"\n     770             )\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(SortedKeysDict({'longitude': 50, 'latitude': 50}))\n \n In [63]: dsi.air.plot(ax=axes[1])\n ---------------------------------------------------------------------------\n NameError                                 Traceback (most recent call last)\n  in \n ----> 1 dsi.air.plot(ax=axes[1])\n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/io.html", "source2": "./usr/share/doc/python-xarray-doc/html/io.html", "unified_diff": "@@ -1059,15 +1059,15 @@\n    ....:         "y": pd.date_range("2000-01-01", periods=5),\n    ....:         "z": ("x", list("abcd")),\n    ....:     },\n    ....: )\n    ....: \n \n In [39]: ds.to_zarr("path/to/directory.zarr")\n-Out[39]: <xarray.backends.zarr.ZarrStore at 0x7f17b8526d60>\n+Out[39]: <xarray.backends.zarr.ZarrStore at 0x7efcb84d8e20>\n 
    \n
    \n

    (The suffix .zarr is optional\u2013just a reminder that a zarr store lives\n there.) If the directory does not exist, it will be created. If a zarr\n store is already present at that path, an error will be raised, preventing it\n from being overwritten. To override this behavior and overwrite an existing\n store, add mode='w' when invoking to_zarr().

    \n@@ -1113,15 +1113,15 @@\n These options can be passed to the to_zarr method as variable encoding.\n For example:

    \n
    In [42]: import zarr\n \n In [43]: compressor = zarr.Blosc(cname="zstd", clevel=3, shuffle=2)\n \n In [44]: ds.to_zarr("foo.zarr", encoding={"foo": {"compressor": compressor}})\n-Out[44]: <xarray.backends.zarr.ZarrStore at 0x7f17b8526be0>\n+Out[44]: <xarray.backends.zarr.ZarrStore at 0x7efc98b44160>\n 
    \n
    \n
    \n

    Note

    \n

    Not all native zarr compression and filtering options have been tested with\n xarray.

    \n
    \n@@ -1182,28 +1182,28 @@\n ....: "y": [1, 2, 3, 4, 5],\n ....: "t": pd.date_range("2001-01-01", periods=2),\n ....: },\n ....: )\n ....: \n \n In [46]: ds1.to_zarr("path/to/directory.zarr")\n-Out[46]: <xarray.backends.zarr.ZarrStore at 0x7f17943d39a0>\n+Out[46]: <xarray.backends.zarr.ZarrStore at 0x7efc98b44b80>\n \n In [47]: ds2 = xr.Dataset(\n ....: {"foo": (("x", "y", "t"), np.random.rand(4, 5, 2))},\n ....: coords={\n ....: "x": [10, 20, 30, 40],\n ....: "y": [1, 2, 3, 4, 5],\n ....: "t": pd.date_range("2001-01-03", periods=2),\n ....: },\n ....: )\n ....: \n \n In [48]: ds2.to_zarr("path/to/directory.zarr", append_dim="t")\n-Out[48]: <xarray.backends.zarr.ZarrStore at 0x7f17943d3ca0>\n+Out[48]: <xarray.backends.zarr.ZarrStore at 0x7efc98b44e80>\n \n \n

    Finally, you can use region to write to limited regions of existing arrays\n in an existing Zarr store. This is a good option for writing data in parallel\n from independent processes.

    \n

    To scale this up to writing large datasets, the first step is creating an\n initial Zarr store without writing all of its array data. This can be done by\n@@ -1218,33 +1218,33 @@\n \n In [51]: ds = xr.Dataset({"foo": ("x", dummies)})\n \n In [52]: path = "path/to/directory.zarr"\n \n # Now we write the metadata without computing any array values\n In [53]: ds.to_zarr(path, compute=False, consolidated=True)\n-Out[53]: Delayed('_finalize_store-5970da0b-59ba-4e87-b447-ef14ea77535e')\n+Out[53]: Delayed('_finalize_store-1ac9b38d-06bc-4b61-add6-789d405806f5')\n \n \n

    Now, a Zarr store with the correct variable shapes and attributes exists that\n can be filled out by subsequent calls to to_zarr. The region provides a\n mapping from dimension names to Python slice objects indicating where the\n data should be written (in index space, not coordinate space), e.g.,

    \n
    # For convenience, we'll slice a single dataset, but in the real use-case\n # we would create them separately, possibly even from separate processes.\n In [54]: ds = xr.Dataset({"foo": ("x", np.arange(30))})\n \n In [55]: ds.isel(x=slice(0, 10)).to_zarr(path, region={"x": slice(0, 10)})\n-Out[55]: <xarray.backends.zarr.ZarrStore at 0x7f17943d3b20>\n+Out[55]: <xarray.backends.zarr.ZarrStore at 0x7efc98b44fa0>\n \n In [56]: ds.isel(x=slice(10, 20)).to_zarr(path, region={"x": slice(10, 20)})\n-Out[56]: <xarray.backends.zarr.ZarrStore at 0x7f17943d3640>\n+Out[56]: <xarray.backends.zarr.ZarrStore at 0x7efc98b447c0>\n \n In [57]: ds.isel(x=slice(20, 30)).to_zarr(path, region={"x": slice(20, 30)})\n-Out[57]: <xarray.backends.zarr.ZarrStore at 0x7f17c6992220>\n+Out[57]: <xarray.backends.zarr.ZarrStore at 0x7efccf1082e0>\n 
    \n
    \n

    Concurrent writes with region are safe as long as they modify distinct\n chunks in the underlying Zarr arrays (or use an appropriate lock).

    \n

    As a safety check to make it harder to inadvertently override existing values,\n if you set region then all variables included in a Dataset must have\n dimensions included in region. Other variables (typically coordinates)\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -762,15 +762,15 @@\n ....: \"y\": pd.date_range(\"2000-01-01\", periods=5),\n ....: \"z\": (\"x\", list(\"abcd\")),\n ....: },\n ....: )\n ....:\n \n In [39]: ds.to_zarr(\"path/to/directory.zarr\")\n-Out[39]: \n+Out[39]: \n (The suffix .zarr is optional\u00e2\u0080\u0093just a reminder that a zarr store lives there.)\n If the directory does not exist, it will be created. If a zarr store is already\n present at that path, an error will be raised, preventing it from being\n overwritten. To override this behavior and overwrite an existing store, add\n mode='w' when invoking to_zarr().\n To store variable length strings, convert them to object arrays first with\n dtype=object.\n@@ -806,15 +806,15 @@\n zarr. These are described in the zarr_documentation. These options can be\n passed to the to_zarr method as variable encoding. For example:\n In [42]: import zarr\n \n In [43]: compressor = zarr.Blosc(cname=\"zstd\", clevel=3, shuffle=2)\n \n In [44]: ds.to_zarr(\"foo.zarr\", encoding={\"foo\": {\"compressor\": compressor}})\n-Out[44]: \n+Out[44]: \n Note\n Not all native zarr compression and filtering options have been tested with\n xarray.\n **** Consolidated Metadata\u00c2\u00b6 ****\n Xarray needs to read all of the zarr metadata when it opens a dataset. In some\n storage mediums, such as with cloud object storage (e.g. amazon S3), this can\n introduce significant overhead, because two separate HTTP calls to the object\n@@ -854,28 +854,28 @@\n ....: \"y\": [1, 2, 3, 4, 5],\n ....: \"t\": pd.date_range(\"2001-01-01\", periods=2),\n ....: },\n ....: )\n ....:\n \n In [46]: ds1.to_zarr(\"path/to/directory.zarr\")\n-Out[46]: \n+Out[46]: \n \n In [47]: ds2 = xr.Dataset(\n ....: {\"foo\": ((\"x\", \"y\", \"t\"), np.random.rand(4, 5, 2))},\n ....: coords={\n ....: \"x\": [10, 20, 30, 40],\n ....: \"y\": [1, 2, 3, 4, 5],\n ....: \"t\": pd.date_range(\"2001-01-03\", periods=2),\n ....: },\n ....: )\n ....:\n \n In [48]: ds2.to_zarr(\"path/to/directory.zarr\", append_dim=\"t\")\n-Out[48]: \n+Out[48]: \n Finally, you can use region to write to limited regions of existing arrays in\n an existing Zarr store. This is a good option for writing data in parallel from\n independent processes.\n To scale this up to writing large datasets, the first step is creating an\n initial Zarr store without writing all of its array data. This can be done by\n first creating a Dataset with dummy values stored in dask, and then calling\n to_zarr with compute=False to write only metadata (including attrs) to Zarr:\n@@ -887,31 +887,31 @@\n \n In [51]: ds = xr.Dataset({\"foo\": (\"x\", dummies)})\n \n In [52]: path = \"path/to/directory.zarr\"\n \n # Now we write the metadata without computing any array values\n In [53]: ds.to_zarr(path, compute=False, consolidated=True)\n-Out[53]: Delayed('_finalize_store-5970da0b-59ba-4e87-b447-ef14ea77535e')\n+Out[53]: Delayed('_finalize_store-1ac9b38d-06bc-4b61-add6-789d405806f5')\n Now, a Zarr store with the correct variable shapes and attributes exists that\n can be filled out by subsequent calls to to_zarr. The region provides a mapping\n from dimension names to Python slice objects indicating where the data should\n be written (in index space, not coordinate space), e.g.,\n # For convenience, we'll slice a single dataset, but in the real use-case\n # we would create them separately, possibly even from separate processes.\n In [54]: ds = xr.Dataset({\"foo\": (\"x\", np.arange(30))})\n \n In [55]: ds.isel(x=slice(0, 10)).to_zarr(path, region={\"x\": slice(0, 10)})\n-Out[55]: \n+Out[55]: \n \n In [56]: ds.isel(x=slice(10, 20)).to_zarr(path, region={\"x\": slice(10, 20)})\n-Out[56]: \n+Out[56]: \n \n In [57]: ds.isel(x=slice(20, 30)).to_zarr(path, region={\"x\": slice(20, 30)})\n-Out[57]: \n+Out[57]: \n Concurrent writes with region are safe as long as they modify distinct chunks\n in the underlying Zarr arrays (or use an appropriate lock).\n As a safety check to make it harder to inadvertently override existing values,\n if you set region then all variables included in a Dataset must have dimensions\n included in region. Other variables (typically coordinates) need to be\n explicitly dropped and/or written in a separate calls to to_zarr with mode='a'.\n ***** GRIB format via cfgrib\u00c2\u00b6 *****\n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/plotting.html", "source2": "./usr/share/doc/python-xarray-doc/html/plotting.html", "unified_diff": "@@ -326,15 +326,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79 \n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n \n In [6]: airtemps\n ---------------------------------------------------------------------------\n NameError Traceback (most recent call last)\n <ipython-input-6-eb57b540ddce> in <module>\n ----> 1 airtemps\n \n@@ -852,15 +852,15 @@\n --> 171 ref_var = variables[ref_name]\n 172 \n 173 if var_name is None:\n \n KeyError: 'lat'\n \n In [51]: b.plot()\n-Out[51]: [<matplotlib.lines.Line2D at 0x7f1794214b20>]\n+Out[51]: [<matplotlib.lines.Line2D at 0x7efc989a6070>]\n \n \n \"_images/plotting_nonuniform_coords.png\"\n \n

    \n

    Calling Matplotlib\u00b6

    \n

    Since this is a thin wrapper around matplotlib, all the functionality of\n@@ -1314,56 +1314,56 @@\n Data variables:\n A (x, y, z, w) float64 -0.104 0.02719 -0.0425 ... -0.1175 -0.0183\n B (x, y, z, w) float64 0.0 0.0 0.0 0.0 ... 1.369 1.408 1.387 1.417\n

    \n \n

    Suppose we want to scatter A against B

    \n
    In [95]: ds.plot.scatter(x="A", y="B")\n-Out[95]: <matplotlib.collections.PathCollection at 0x7f17941ecbb0>\n+Out[95]: <matplotlib.collections.PathCollection at 0x7efc98b2a070>\n 
    \n
    \n \"_images/ds_simple_scatter.png\"\n

    The hue kwarg lets you vary the color by variable value

    \n
    In [96]: ds.plot.scatter(x="A", y="B", hue="w")\n Out[96]: \n-[<matplotlib.collections.PathCollection at 0x7f17b85221c0>,\n- <matplotlib.collections.PathCollection at 0x7f17b86ad280>,\n- <matplotlib.collections.PathCollection at 0x7f17c4145190>,\n- <matplotlib.collections.PathCollection at 0x7f17c69d4c70>]\n+[<matplotlib.collections.PathCollection at 0x7efccf42bdc0>,\n+ <matplotlib.collections.PathCollection at 0x7efccf38e9a0>,\n+ <matplotlib.collections.PathCollection at 0x7efccf0ea250>,\n+ <matplotlib.collections.PathCollection at 0x7efcb878e1f0>]\n 
    \n
    \n \"_images/ds_hue_scatter.png\"\n

    When hue is specified, a colorbar is added for numeric hue DataArrays by\n default and a legend is added for non-numeric hue DataArrays (as above).\n You can force a legend instead of a colorbar by setting hue_style='discrete'.\n Additionally, the boolean kwarg add_guide can be used to prevent the display of a legend or colorbar (as appropriate).

    \n
    In [97]: ds = ds.assign(w=[1, 2, 3, 5])\n \n In [98]: ds.plot.scatter(x="A", y="B", hue="w", hue_style="discrete")\n Out[98]: \n-[<matplotlib.collections.PathCollection at 0x7f17b815f250>,\n- <matplotlib.collections.PathCollection at 0x7f17b815fd30>,\n- <matplotlib.collections.PathCollection at 0x7f17c4014ee0>,\n- <matplotlib.collections.PathCollection at 0x7f17b81dc9d0>]\n+[<matplotlib.collections.PathCollection at 0x7efcb8780b80>,\n+ <matplotlib.collections.PathCollection at 0x7efcb8783940>,\n+ <matplotlib.collections.PathCollection at 0x7efcb819cfd0>,\n+ <matplotlib.collections.PathCollection at 0x7efcb81fd0d0>]\n 
    \n
    \n \"_images/ds_discrete_legend_hue_scatter.png\"\n

    The markersize kwarg lets you vary the point\u2019s size by variable value. You can additionally pass size_norm to control how the variable\u2019s values are mapped to point sizes.

    \n
    In [99]: ds.plot.scatter(x="A", y="B", hue="z", hue_style="discrete", markersize="z")\n Out[99]: \n-[<matplotlib.collections.PathCollection at 0x7f17941df790>,\n- <matplotlib.collections.PathCollection at 0x7f17b82e7220>,\n- <matplotlib.collections.PathCollection at 0x7f17b82e7490>,\n- <matplotlib.collections.PathCollection at 0x7f17dcf54c10>]\n+[<matplotlib.collections.PathCollection at 0x7efc98adfa30>,\n+ <matplotlib.collections.PathCollection at 0x7efc989070a0>,\n+ <matplotlib.collections.PathCollection at 0x7efc98927d30>,\n+ <matplotlib.collections.PathCollection at 0x7efcb83135e0>]\n 
    \n
    \n \"_images/ds_hue_size_scatter.png\"\n

    Faceting is also possible

    \n
    In [100]: ds.plot.scatter(x="A", y="B", col="x", row="z", hue="w", hue_style="discrete")\n-Out[100]: <xarray.plot.facetgrid.FacetGrid at 0x7f17c6a90370>\n+Out[100]: <xarray.plot.facetgrid.FacetGrid at 0x7efc988b2a00>\n 
    \n
    \n \"_images/ds_facet_scatter.png\"\n

    For more advanced scatter plots, we recommend converting the relevant data variables to a pandas DataFrame and using the extensive plotting capabilities of seaborn.

    \n \n
    \n

    Maps\u00b6

    \n@@ -1380,15 +1380,15 @@\n /build/reproducible-path/python-xarray-0.16.2/xarray/tutorial.py in open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79 \n 80 url = "/".join((github_url, "raw", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-build/.xarray_tutorial_data'\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-build/.xarray_tutorial_data'\n \n In [103]: p = air.isel(time=0).plot(\n .....: subplot_kws=dict(projection=ccrs.Orthographic(-80, 35), facecolor="gray"),\n .....: transform=ccrs.PlateCarree(),\n .....: )\n .....: \n ---------------------------------------------------------------------------\n@@ -1472,24 +1472,24 @@\n
    In [109]: import xarray.plot as xplt\n \n In [110]: da = xr.DataArray(range(5))\n \n In [111]: fig, axes = plt.subplots(ncols=2, nrows=2)\n \n In [112]: da.plot(ax=axes[0, 0])\n-Out[112]: [<matplotlib.lines.Line2D at 0x7f177f7384f0>]\n+Out[112]: [<matplotlib.lines.Line2D at 0x7efc9867d130>]\n \n In [113]: da.plot.line(ax=axes[0, 1])\n-Out[113]: [<matplotlib.lines.Line2D at 0x7f17b8262640>]\n+Out[113]: [<matplotlib.lines.Line2D at 0x7efcb81dc280>]\n \n In [114]: xplt.plot(da, ax=axes[1, 0])\n-Out[114]: [<matplotlib.lines.Line2D at 0x7f177f738c10>]\n+Out[114]: [<matplotlib.lines.Line2D at 0x7efc98732f70>]\n \n In [115]: xplt.line(da, ax=axes[1, 1])\n-Out[115]: [<matplotlib.lines.Line2D at 0x7f177f7384c0>]\n+Out[115]: [<matplotlib.lines.Line2D at 0x7efc987328b0>]\n \n In [116]: plt.tight_layout()\n \n In [117]: plt.draw()\n 
    \n
    \n \"_images/plotting_ways_to_use.png\"\n@@ -1542,15 +1542,15 @@\n
    \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.

    \n
    In [122]: a.plot()\n-Out[122]: <matplotlib.collections.QuadMesh at 0x7f177f742400>\n+Out[122]: <matplotlib.collections.QuadMesh at 0x7efc98768df0>\n 
    \n
    \n \"_images/plotting_example_2d_simple.png\"\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@@ -1572,81 +1572,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 [127]: da.plot.pcolormesh("lon", "lat")\n-Out[127]: <matplotlib.collections.QuadMesh at 0x7f17e9daca30>\n+Out[127]: <matplotlib.collections.QuadMesh at 0x7efcf2587940>\n \n \n \"_images/plotting_example_2d_irreg.png\"\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:

    \n
    In [128]: import cartopy.crs as ccrs\n \n In [129]: ax = plt.subplot(projection=ccrs.PlateCarree())\n \n In [130]: da.plot.pcolormesh("lon", "lat", ax=ax)\n-Out[130]: <matplotlib.collections.QuadMesh at 0x7f17943aa5e0>\n+Out[130]: <matplotlib.collections.QuadMesh at 0x7efc98921160>\n \n In [131]: ax.scatter(lon, lat, transform=ccrs.PlateCarree())\n-Out[131]: <matplotlib.collections.PathCollection at 0x7f1794184a30>\n+Out[131]: <matplotlib.collections.PathCollection at 0x7efc98a51130>\n \n In [132]: ax.coastlines()\n-Out[132]: <cartopy.mpl.feature_artist.FeatureArtist at 0x7f17943c13d0>\n+Out[132]: <cartopy.mpl.feature_artist.FeatureArtist at 0x7efc98b21bb0>\n \n In [133]: ax.gridlines(draw_labels=True)\n-Out[133]: <cartopy.mpl.gridliner.Gridliner at 0x7f17943aa820>\n+Out[133]: <cartopy.mpl.gridliner.Gridliner at 0x7efc9891b0a0>\n 
    \n
    \n \"_build/html/_static/plotting_example_2d_irreg_map.png\"\n

    You can however decide to infer the cell boundaries and use the\n infer_intervals keyword:

    \n
    In [134]: ax = plt.subplot(projection=ccrs.PlateCarree())\n \n In [135]: da.plot.pcolormesh("lon", "lat", ax=ax, infer_intervals=True)\n-Out[135]: <matplotlib.collections.QuadMesh at 0x7f17b8513fa0>\n+Out[135]: <matplotlib.collections.QuadMesh at 0x7efcb81632b0>\n \n In [136]: ax.scatter(lon, lat, transform=ccrs.PlateCarree())\n-Out[136]: <matplotlib.collections.PathCollection at 0x7f177f3f2b50>\n+Out[136]: <matplotlib.collections.PathCollection at 0x7efc983b38e0>\n \n In [137]: ax.coastlines()\n-Out[137]: <cartopy.mpl.feature_artist.FeatureArtist at 0x7f177f6dcb80>\n+Out[137]: <cartopy.mpl.feature_artist.FeatureArtist at 0x7efc983ed250>\n \n In [138]: ax.gridlines(draw_labels=True)\n-Out[138]: <cartopy.mpl.gridliner.Gridliner at 0x7f177f6dc850>\n+Out[138]: <cartopy.mpl.gridliner.Gridliner at 0x7efc983ed970>\n 
    \n
    \n \"_build/html/_static/plotting_example_2d_irreg_map_infer.png\"\n
    \n

    Note

    \n

    The 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.

    \n
    \n

    One can also make line plots with multidimensional coordinates. In this case, hue must be a dimension name, not a coordinate name.

    \n
    In [139]: f, ax = plt.subplots(2, 1)\n \n In [140]: da.plot.line(x="lon", hue="y", ax=ax[0])\n Out[140]: \n-[<matplotlib.lines.Line2D at 0x7f177f79fc70>,\n- <matplotlib.lines.Line2D at 0x7f17dcef0e50>,\n- <matplotlib.lines.Line2D at 0x7f177f75ad00>,\n- <matplotlib.lines.Line2D at 0x7f177f3e3430>]\n+[<matplotlib.lines.Line2D at 0x7efc98b212e0>,\n+ <matplotlib.lines.Line2D at 0x7efc98b21910>,\n+ <matplotlib.lines.Line2D at 0x7efc98b774c0>,\n+ <matplotlib.lines.Line2D at 0x7efcb84c9bb0>]\n \n In [141]: da.plot.line(x="lon", hue="x", ax=ax[1])\n Out[141]: \n-[<matplotlib.lines.Line2D at 0x7f177f3ca910>,\n- <matplotlib.lines.Line2D at 0x7f177f3ca970>,\n- <matplotlib.lines.Line2D at 0x7f177f31b040>,\n- <matplotlib.lines.Line2D at 0x7f177f31b190>,\n- <matplotlib.lines.Line2D at 0x7f177f31b250>]\n+[<matplotlib.lines.Line2D at 0x7efc982d53d0>,\n+ <matplotlib.lines.Line2D at 0x7efc982d5d30>,\n+ <matplotlib.lines.Line2D at 0x7efc982d5d90>,\n+ <matplotlib.lines.Line2D at 0x7efc982d5ee0>,\n+ <matplotlib.lines.Line2D at 0x7efc982d5fa0>]\n 
    \n
    \n \"_images/plotting_example_2d_hue_xy.png\"\n \n \n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -121,15 +121,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n \n In [6]: airtemps\n ---------------------------------------------------------------------------\n NameError Traceback (most recent call last)\n in \n ----> 1 airtemps\n@@ -588,15 +588,15 @@\n --> 171 ref_var = variables[ref_name]\n 172\n 173 if var_name is None:\n \n KeyError: 'lat'\n \n In [51]: b.plot()\n-Out[51]: []\n+Out[51]: []\n [_images/plotting_nonuniform_coords.png]\n *** Calling Matplotlib\u00c2\u00b6 ***\n Since this is a thin wrapper around matplotlib, all the functionality of\n matplotlib is available.\n In [52]: air2d.plot(cmap=plt.cm.Blues)\n ---------------------------------------------------------------------------\n NameError Traceback (most recent call last)\n@@ -984,53 +984,53 @@\n * z (z) int64 0 1 2 3\n * w (w) \n+Out[95]: \n [_images/ds_simple_scatter.png]\n The hue kwarg lets you vary the color by variable value\n In [96]: ds.plot.scatter(x=\"A\", y=\"B\", hue=\"w\")\n Out[96]:\n-[,\n- ,\n- ,\n- ]\n+[,\n+ ,\n+ ,\n+ ]\n [_images/ds_hue_scatter.png]\n When hue is specified, a colorbar is added for numeric hue DataArrays by\n default and a legend is added for non-numeric hue DataArrays (as above). You\n can force a legend instead of a colorbar by setting hue_style='discrete'.\n Additionally, the boolean kwarg add_guide can be used to prevent the display of\n a legend or colorbar (as appropriate).\n In [97]: ds = ds.assign(w=[1, 2, 3, 5])\n \n In [98]: ds.plot.scatter(x=\"A\", y=\"B\", hue=\"w\", hue_style=\"discrete\")\n Out[98]:\n-[,\n- ,\n- ,\n- ]\n+[,\n+ ,\n+ ,\n+ ]\n [_images/ds_discrete_legend_hue_scatter.png]\n The markersize kwarg lets you vary the point\u00e2\u0080\u0099s size by variable value. You\n can additionally pass size_norm to control how the variable\u00e2\u0080\u0099s values are\n mapped to point sizes.\n In [99]: ds.plot.scatter(x=\"A\", y=\"B\", hue=\"z\", hue_style=\"discrete\",\n markersize=\"z\")\n Out[99]:\n-[,\n- ,\n- ,\n- ]\n+[,\n+ ,\n+ ,\n+ ]\n [_images/ds_hue_size_scatter.png]\n Faceting is also possible\n In [100]: ds.plot.scatter(x=\"A\", y=\"B\", col=\"x\", row=\"z\", hue=\"w\",\n hue_style=\"discrete\")\n-Out[100]: \n+Out[100]: \n [_images/ds_facet_scatter.png]\n For more advanced scatter plots, we recommend converting the relevant data\n variables to a pandas DataFrame and using the extensive plotting capabilities\n of seaborn.\n ***** Maps\u00c2\u00b6 *****\n To follow this section you\u00e2\u0080\u0099ll need to have Cartopy installed and working.\n This script will plot the air temperature on a map.\n@@ -1046,15 +1046,15 @@\n open_dataset(name, cache, cache_dir, github_url, branch, **kws)\n 76 # May want to add an option to remove it.\n 77 if not _os.path.isdir(longdir):\n ---> 78 _os.mkdir(longdir)\n 79\n 80 url = \"/\".join((github_url, \"raw\", branch, fullname))\n \n-FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/first-\n+FileNotFoundError: [Errno 2] No such file or directory: '/nonexistent/second-\n build/.xarray_tutorial_data'\n \n In [103]: p = air.isel(time=0).plot(\n .....: subplot_kws=dict(projection=ccrs.Orthographic(-80, 35),\n facecolor=\"gray\"),\n .....: transform=ccrs.PlateCarree(),\n .....: )\n@@ -1131,24 +1131,24 @@\n In [109]: import xarray.plot as xplt\n \n In [110]: da = xr.DataArray(range(5))\n \n In [111]: fig, axes = plt.subplots(ncols=2, nrows=2)\n \n In [112]: da.plot(ax=axes[0, 0])\n-Out[112]: []\n+Out[112]: []\n \n In [113]: da.plot.line(ax=axes[0, 1])\n-Out[113]: []\n+Out[113]: []\n \n In [114]: xplt.plot(da, ax=axes[1, 0])\n-Out[114]: []\n+Out[114]: []\n \n In [115]: xplt.line(da, ax=axes[1, 1])\n-Out[115]: []\n+Out[115]: []\n \n In [116]: plt.tight_layout()\n \n In [117]: plt.draw()\n [_images/plotting_ways_to_use.png]\n Here the output is the same. Since the data is 1 dimensional the line plot was\n used.\n@@ -1179,15 +1179,15 @@\n [0., 0., 0.]])\n Dimensions without coordinates: y, x\n The plot will produce an image corresponding to the values of the array. Hence\n the top left pixel will be a different color than the others. Before reading\n on, you may want to look at the coordinates and think carefully about what the\n limits, labels, and orientation for each of the axes should be.\n In [122]: a.plot()\n-Out[122]: \n+Out[122]: \n [_images/plotting_example_2d_simple.png]\n It may seem strange that the values on the y axis are decreasing with -0.5 on\n the top. This is because the pixels are centered over their coordinates, and\n the axis labels and ranges correspond to the values of the coordinates.\n **** Multidimensional coordinates\u00c2\u00b6 ****\n See also: Working_with_Multidimensional_Coordinates.\n You can plot irregular grids defined by multidimensional coordinates with\n@@ -1204,72 +1204,72 @@\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 [127]: da.plot.pcolormesh(\"lon\", \"lat\")\n-Out[127]: \n+Out[127]: \n [_images/plotting_example_2d_irreg.png]\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 this\n convention when plotting on a map:\n In [128]: import cartopy.crs as ccrs\n \n In [129]: ax = plt.subplot(projection=ccrs.PlateCarree())\n \n In [130]: da.plot.pcolormesh(\"lon\", \"lat\", ax=ax)\n-Out[130]: \n+Out[130]: \n \n In [131]: ax.scatter(lon, lat, transform=ccrs.PlateCarree())\n-Out[131]: \n+Out[131]: \n \n In [132]: ax.coastlines()\n-Out[132]: \n+Out[132]: \n \n In [133]: ax.gridlines(draw_labels=True)\n-Out[133]: \n+Out[133]: \n [_build/html/_static/plotting_example_2d_irreg_map.png]\n You can however decide to infer the cell boundaries and use the infer_intervals\n keyword:\n In [134]: ax = plt.subplot(projection=ccrs.PlateCarree())\n \n In [135]: da.plot.pcolormesh(\"lon\", \"lat\", ax=ax, infer_intervals=True)\n-Out[135]: \n+Out[135]: \n \n In [136]: ax.scatter(lon, lat, transform=ccrs.PlateCarree())\n-Out[136]: \n+Out[136]: \n \n In [137]: ax.coastlines()\n-Out[137]: \n+Out[137]: \n \n In [138]: ax.gridlines(draw_labels=True)\n-Out[138]: \n+Out[138]: \n [_build/html/_static/plotting_example_2d_irreg_map_infer.png]\n Note\n The data model of xarray does not support datasets with cell_boundaries yet. If\n you want to use these coordinates, you\u00e2\u0080\u0099ll have to make the plots outside the\n xarray framework.\n One can also make line plots with multidimensional coordinates. In this case,\n hue must be a dimension name, not a coordinate name.\n In [139]: f, ax = plt.subplots(2, 1)\n \n In [140]: da.plot.line(x=\"lon\", hue=\"y\", ax=ax[0])\n Out[140]:\n-[,\n- ,\n- ,\n- ]\n+[,\n+ ,\n+ ,\n+ ]\n \n In [141]: da.plot.line(x=\"lon\", hue=\"x\", ax=ax[1])\n Out[141]:\n-[,\n- ,\n- ,\n- ,\n- ]\n+[,\n+ ,\n+ ,\n+ ,\n+ ]\n [_images/plotting_example_2d_hue_xy.png]\n Next Previous\n ===============================================================================\n \u00a9 Copyright 2014-2021, xarray Developers. Last updated on 2021-01-02.\n Built with Sphinx using a theme provided by Read_the_Docs.\n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/quick-overview.html", "source2": "./usr/share/doc/python-xarray-doc/html/quick-overview.html", "unified_diff": "@@ -498,15 +498,15 @@\n \n \n \n
    \n

    Plotting\u00b6

    \n

    Visualizing your datasets is quick and convenient:

    \n
    In [37]: data.plot()\n-Out[37]: <matplotlib.collections.QuadMesh at 0x7f177f278a30>\n+Out[37]: <matplotlib.collections.QuadMesh at 0x7efc982377c0>\n 
    \n
    \n \"_images/plotting_quick_overview.png\"\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.

    \n
    \n
    \n

    pandas\u00b6

    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -304,15 +304,15 @@\n [0.787, 0. , 1.199]])\n Coordinates:\n * x (x) int64 10 20\n Dimensions without coordinates: y\n ***** Plotting\u00c2\u00b6 *****\n Visualizing your datasets is quick and convenient:\n In [37]: data.plot()\n-Out[37]: \n+Out[37]: \n [_images/plotting_quick_overview.png]\n Note the automatic labeling with names and units. Our effort in adding metadata\n attributes has paid off! Many aspects of these figures are customizable: see\n Plotting.\n ***** pandas\u00c2\u00b6 *****\n Xarray objects can be easily converted to and from pandas objects using the\n to_series(), to_dataframe() and to_xarray() methods:\n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/searchindex.js", "source2": "./usr/share/doc/python-xarray-doc/html/searchindex.js", "unified_diff": null, "details": [{"source1": "js-beautify {}", "source2": "js-beautify {}", "unified_diff": "@@ -113,14 +113,15 @@\n \"06683875\": 4,\n \"06683951\": 4,\n \"06683976\": 4,\n \"06689\": 4,\n \"069\": 25,\n \"06957\": 19,\n \"06a89de0178b\": 15,\n+ \"06bc\": 26,\n \"06t00\": 6,\n \"071\": 27,\n \"07104\": 27,\n \"071804\": 27,\n \"072\": 27,\n \"07230c544b46\": 28,\n \"074\": 29,\n@@ -151,70 +152,70 @@\n \"0alpha10\": 36,\n \"0c0dc80c25a9\": 6,\n \"0e8985178ccc\": 26,\n \"0eb806e38f7f\": [14, 15],\n \"0f41191e8013\": 28,\n \"0th\": [6, 22],\n \"0x0l\": 36,\n- \"0x7f177e3d37c0\": 36,\n- \"0x7f177f278a30\": 29,\n- \"0x7f177f31b040\": 28,\n- \"0x7f177f31b190\": 28,\n- \"0x7f177f31b250\": 28,\n- \"0x7f177f3ca910\": 28,\n- \"0x7f177f3ca970\": 28,\n- \"0x7f177f3e3430\": 28,\n- \"0x7f177f3f2b50\": 28,\n- \"0x7f177f6dc850\": 28,\n- \"0x7f177f6dcb80\": 28,\n- \"0x7f177f7384c0\": 28,\n- \"0x7f177f7384f0\": 28,\n- \"0x7f177f738c10\": 28,\n- \"0x7f177f742400\": 28,\n- \"0x7f177f75ad00\": 28,\n- \"0x7f177f79fc70\": 28,\n- \"0x7f1794184a30\": 28,\n- \"0x7f17941df790\": 28,\n- \"0x7f17941ecbb0\": 28,\n- \"0x7f1794214b20\": 28,\n- \"0x7f17943aa5e0\": 28,\n- \"0x7f17943aa820\": 28,\n- \"0x7f17943c13d0\": 28,\n- \"0x7f17943d3640\": 26,\n- \"0x7f17943d39a0\": 26,\n- \"0x7f17943d3b20\": 26,\n- \"0x7f17943d3ca0\": 26,\n- \"0x7f179471ca60\": 25,\n- \"0x7f1794790ee0\": 24,\n- \"0x7f17b815f250\": 28,\n- \"0x7f17b815fd30\": 28,\n- \"0x7f17b81dc9d0\": 28,\n- \"0x7f17b8262640\": 28,\n- \"0x7f17b82e7220\": 28,\n- \"0x7f17b82e73a0\": 25,\n- \"0x7f17b82e7490\": 28,\n- \"0x7f17b8394160\": 25,\n- \"0x7f17b8513fa0\": 28,\n- \"0x7f17b85221c0\": 28,\n- \"0x7f17b8526be0\": 26,\n- \"0x7f17b8526d60\": 26,\n- \"0x7f17b86ad280\": 28,\n- \"0x7f17c4014ee0\": 28,\n- \"0x7f17c4145190\": 28,\n- \"0x7f17c68bc580\": 25,\n- \"0x7f17c68f4b80\": 7,\n- \"0x7f17c69010d0\": 7,\n- \"0x7f17c6992220\": 26,\n- \"0x7f17c69d4c70\": 28,\n- \"0x7f17c6a90370\": 28,\n- \"0x7f17dcef0e50\": 28,\n- \"0x7f17dcf54c10\": 28,\n- \"0x7f17e9daca30\": 28,\n- \"0x7f791c55f970\": 17,\n- \"0x7fc61f756430\": 16,\n+ \"0x7efc8b35c580\": 36,\n+ \"0x7efc982377c0\": 29,\n+ \"0x7efc982d53d0\": 28,\n+ \"0x7efc982d5d30\": 28,\n+ \"0x7efc982d5d90\": 28,\n+ \"0x7efc982d5ee0\": 28,\n+ \"0x7efc982d5fa0\": 28,\n+ \"0x7efc983b38e0\": 28,\n+ \"0x7efc983ed250\": 28,\n+ \"0x7efc983ed970\": 28,\n+ \"0x7efc9867d130\": 28,\n+ \"0x7efc987328b0\": 28,\n+ \"0x7efc98732f70\": 28,\n+ \"0x7efc98768df0\": 28,\n+ \"0x7efc988b2a00\": 28,\n+ \"0x7efc989070a0\": 28,\n+ \"0x7efc9891b0a0\": 28,\n+ \"0x7efc98921160\": 28,\n+ \"0x7efc98927d30\": 28,\n+ \"0x7efc989a6070\": 28,\n+ \"0x7efc98a51130\": 28,\n+ \"0x7efc98adfa30\": 28,\n+ \"0x7efc98b212e0\": 28,\n+ \"0x7efc98b21910\": 28,\n+ \"0x7efc98b21bb0\": 28,\n+ \"0x7efc98b2a070\": 28,\n+ \"0x7efc98b44160\": 26,\n+ \"0x7efc98b447c0\": 26,\n+ \"0x7efc98b44b80\": 26,\n+ \"0x7efc98b44e80\": 26,\n+ \"0x7efc98b44fa0\": 26,\n+ \"0x7efc98b774c0\": 28,\n+ \"0x7efc98e8ce50\": 25,\n+ \"0x7efc98f04a00\": 24,\n+ \"0x7efcb81632b0\": 28,\n+ \"0x7efcb819cfd0\": 28,\n+ \"0x7efcb81dc280\": 28,\n+ \"0x7efcb81fd0d0\": 28,\n+ \"0x7efcb81fdbe0\": 25,\n+ \"0x7efcb821ea60\": 25,\n+ \"0x7efcb8313310\": 25,\n+ \"0x7efcb83135e0\": 28,\n+ \"0x7efcb84c9bb0\": 28,\n+ \"0x7efcb84d8e20\": 26,\n+ \"0x7efcb8780b80\": 28,\n+ \"0x7efcb8783940\": 28,\n+ \"0x7efcb878e1f0\": 28,\n+ \"0x7efccf0708b0\": 7,\n+ \"0x7efccf070bb0\": 7,\n+ \"0x7efccf0ea250\": 28,\n+ \"0x7efccf1082e0\": 26,\n+ \"0x7efccf38e9a0\": 28,\n+ \"0x7efccf42bdc0\": 28,\n+ \"0x7efcf2587940\": 28,\n+ \"0x7f61b6479370\": 17,\n+ \"0x7f69d4222430\": 16,\n \"100\": [3, 4, 6, 11, 12, 22, 25, 26, 28, 31, 36],\n \"1000\": [6, 36],\n \"100000\": 6,\n \"1000x1000\": 6,\n \"1003\": 4,\n \"101\": [4, 22, 28, 36],\n \"101985\": 26,\n@@ -399,14 +400,15 @@\n \"1970\": [32, 36],\n \"198\": 16,\n \"199\": [16, 29],\n \"1991\": 36,\n \"1999\": 4,\n \"19t00\": 6,\n \"1MS\": 17,\n+ \"1ac9b38d\": 26,\n \"1c96aded89da\": 10,\n \"1d37fb2cd247\": 24,\n \"1d727aa86050\": 28,\n \"1e6\": 4,\n \"1st\": 22,\n \"200\": [4, 16, 28, 31],\n \"2000\": [4, 7, 17, 18, 22, 25, 26, 27, 34, 35, 36],\n@@ -786,15 +788,15 @@\n \"4867138\": 4,\n \"48671934\": 4,\n \"48672119\": 4,\n \"492914\": 17,\n \"494929\": 27,\n \"495\": 27,\n \"497\": 22,\n- \"4e87\": 26,\n+ \"4b61\": 26,\n \"500\": [16, 26, 28, 36],\n \"501\": 29,\n \"5011\": 3,\n \"502\": 25,\n \"504\": 19,\n \"506234\": 17,\n \"508\": 25,\n@@ -861,17 +863,15 @@\n \"589e3eedfe36\": 25,\n \"590f9efdac8d506f2f581ec0447603d2\": 6,\n \"5947835894851238\": 26,\n \"5948\": [22, 26],\n \"59499\": 18,\n \"595c3f6366f3\": 28,\n \"596\": 22,\n- \"5970da0b\": 26,\n \"59984279\": 4,\n- \"59ba\": 26,\n \"59de69f7967f\": 28,\n \"5a61f165554\": 28,\n \"5e678d0c6dcd\": 11,\n \"5e8aec42a87b\": 12,\n \"5fbaeea09bd8\": 28,\n \"5kb\": 36,\n \"601\": 25,\n@@ -910,22 +910,22 @@\n \"68137385\": 17,\n \"683\": 7,\n \"686\": 28,\n \"686763\": 17,\n \"687\": 28,\n \"688\": 28,\n \"689\": 28,\n- \"6899631a72f44971c5ec8e15e50691c6temperatur\": 6,\n \"690\": 28,\n \"691\": 28,\n \"691e\": 6,\n \"692\": 28,\n \"69438174\": 4,\n \"6a550393ed73\": 12,\n \"6afeae5c8ac9\": 25,\n+ \"6c7ee59748dd4fbafa8c0d5819022057temperatur\": 6,\n \"701\": 25,\n \"702\": 22,\n \"706771\": 27,\n \"7068\": 4,\n \"707\": 27,\n \"7083\": 26,\n \"709\": 7,\n@@ -994,14 +994,15 @@\n \"782\": 36,\n \"783584127f97\": 10,\n \"78376151\": 4,\n \"787\": [25, 29],\n \"788\": 17,\n \"78844117\": 17,\n \"789\": 25,\n+ \"789d405806f5\": 26,\n \"791\": 26,\n \"791176\": 17,\n \"7917\": [26, 27],\n \"792\": [26, 27],\n \"797e\": 35,\n \"799\": 27,\n \"7992\": 27,\n@@ -1327,14 +1328,15 @@\n acquire_resourc: 10,\n across: [3, 6, 7, 26, 29, 30, 31, 36, 37],\n act: [4, 7, 12, 36],\n action: 36,\n activ: [5, 11, 26, 37],\n actual: [5, 6, 7, 19, 22, 23, 24, 26, 28, 36],\n adcec99473e0: 15,\n+ add6: 26,\n add: [4, 5, 7, 10, 12, 13, 14, 15, 16, 20, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36],\n add_colorbar: [14, 15, 16],\n add_featur: 11,\n add_guid: 28,\n add_legend: [16, 28],\n add_offset: 26,\n added: [5, 26, 28, 36],\n@@ -1572,15 +1574,14 @@\n axisarrai: 30,\n axisgrid: 17,\n azur: [5, 36],\n b0dd519cfb30: 28,\n b0e609ec01c0: 22,\n b193806a3ee8: 28,\n b347cf3a8c47: 28,\n- b447: 26,\n b7284116c837: 15,\n b834aeff258: 28,\n back: [4, 6, 7, 12, 18, 19, 22, 24, 26, 28, 29, 31, 36, 37],\n backend: [1, 6, 10, 16, 22, 23, 24, 26, 32, 36],\n backend_bas: 10,\n backend_kwarg: [26, 36],\n backfil: 22,\n@@ -2336,15 +2337,14 @@\n edit: [5, 26],\n editor: [5, 36],\n edu: [11, 26],\n edward: 36,\n eefd6d2158f3: 16,\n eeg: 30,\n eexist: 10,\n- ef14ea77535: 26,\n effect: [5, 28, 31],\n effective_get: 36,\n effici: [4, 6, 21, 22, 33, 36],\n effort: [18, 21, 29, 30, 37],\n einsum: 36,\n either: [3, 4, 5, 6, 7, 18, 23, 26, 27, 28, 33, 35, 36],\n either_dict_or_kwarg: 25,\n@@ -2545,15 +2545,15 @@\n filter_by_attr: 36,\n financ: [32, 37],\n find: [0, 1, 5, 8, 18, 20, 22, 26, 28, 32, 36],\n fine: [5, 26],\n finish: [5, 36],\n finit: [4, 15, 30, 36],\n firm: 18,\n- first: [1, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 22, 23, 24, 25, 26, 28, 29, 32, 34, 36],\n+ first: [1, 3, 4, 5, 6, 7, 12, 13, 14, 16, 17, 22, 23, 24, 25, 26, 28, 29, 32, 34, 36],\n fiscal: [21, 32, 36],\n fit: [6, 18, 26, 28, 32, 36],\n fitzgerald: [18, 36],\n five: [28, 36],\n fix: [1, 5, 6, 7, 12, 18, 23, 26, 28, 33, 35],\n fixtur: 5,\n flag: [5, 18, 36],\n@@ -4978,15 +4978,15 @@\n seaborn: [23, 27, 28, 36],\n seamlessli: 5,\n search: [5, 26],\n searchsort: 1,\n season: [9, 17, 34, 35, 36],\n season_mean: 14,\n sec: 29,\n- second: [3, 5, 7, 12, 16, 22, 24, 26, 27, 29, 34, 35],\n+ second: [3, 5, 7, 10, 11, 12, 13, 14, 15, 16, 22, 24, 25, 26, 27, 28, 29, 34, 35],\n section: [5, 11, 18, 23, 26, 28, 30, 36],\n see: [1, 3, 4, 5, 6, 7, 8, 11, 12, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37],\n seed: 17,\n seem: [11, 12, 28, 36],\n seen: [4, 19, 23],\n segment: 36,\n seguinot: 36,\n"}]}, {"source1": "./usr/share/doc/python-xarray-doc/html/whats-new.html", "source2": "./usr/share/doc/python-xarray-doc/html/whats-new.html", "unified_diff": "@@ -4447,15 +4447,15 @@\n
  • New xray.Dataset.where method for masking xray objects according\n to some 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]: <matplotlib.collections.QuadMesh at 0x7f177e3d37c0>\n+Out[46]: <matplotlib.collections.QuadMesh at 0x7efc8b35c580>\n 
    \n
    \n \"_images/where_example.png\"\n
  • \n
  • Added new methods xray.DataArray.diff and xray.Dataset.diff\n for finite difference calculations along a given axis.

  • \n
  • New xray.DataArray.to_masked_array convenience method for\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -2957,15 +2957,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]: \n+ Out[46]: \n [_images/where_example.png]\n * Added new methods xray.DataArray.diff and xray.Dataset.diff for finite\n difference calculations along a given axis.\n * New xray.DataArray.to_masked_array convenience method for returning a\n numpy.ma.MaskedArray.\n In [47]: da = xray.DataArray(np.random.random_sample(size=(5, 4)))\n \n"}]}]}]}]}]}