From dd3338a6a7d52d297ff01433c38c578ba1de6760 Mon Sep 17 00:00:00 2001 From: Isaiah Akorita Date: Thu, 21 Nov 2024 17:53:50 +0100 Subject: [PATCH 1/5] replaced the use of stamen tiles --- datashader_dashboard/datashader_dashboard.ipynb | 6 +++--- landsat/landsat.ipynb | 2 +- ml_annotators/ml_annotators.ipynb | 2 +- ship_traffic/ship_traffic.ipynb | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/datashader_dashboard/datashader_dashboard.ipynb b/datashader_dashboard/datashader_dashboard.ipynb index 8f9a6a8f3..fb8b38f6d 100644 --- a/datashader_dashboard/datashader_dashboard.ipynb +++ b/datashader_dashboard/datashader_dashboard.ipynb @@ -79,7 +79,7 @@ "norms = odict(Histogram_Equalization='eq_hist', Linear='linear', Log='log', Cube_root='cbrt')\n", "cmaps = odict([(n,colorcet.palette[n]) for n in ['fire', 'bgy', 'bgyw', 'bmy', 'gray', 'kbc']])\n", "\n", - "maps = ['EsriImagery', 'EsriUSATopo', 'EsriTerrain', 'StamenWatercolor', 'StamenTonerBackground']\n", + "maps = ['EsriImagery', 'EsriUSATopo', 'EsriTerrain', 'EsriStreet', 'OSM']\n", "bases = odict([(name, getattr(hvts, name)().relabel(name)) for name in maps])\n", "gopts = hv.opts.Tiles(responsive=True, xaxis=None, yaxis=None, bgcolor='black', show_grid=False)\n", "\n", @@ -112,7 +112,7 @@ "\n", " @pm.depends('show_labels')\n", " def labels(self):\n", - " return hvts.StamenLabels().options(level='annotation', alpha=1 if self.show_labels else 0)\n", + " return hvts.EsriStreet().options(level='annotation', alpha=1 if self.show_labels else 0)\n", "\n", " def viewable(self,**kwargs):\n", " rasterized = rasterize(hv.DynamicMap(self.elem), aggregator=self.aggregator, width=800, height=400)\n", @@ -226,7 +226,7 @@ " dataplot = spreaded.opts(alpha=self.data_opacity, show_legend=False)\n", " \n", " tiles = self.basemap.opts(gopts).opts(alpha=self.map_opacity)\n", - " labels = hvts.StamenLabels().options(level='annotation', alpha=1 if self.show_labels else 0)\n", + " labels = hvts.EsriStreet().options(level='annotation', alpha=1 if self.show_labels else 0)\n", " return tiles * dataplot * labels\n", " \n", "explorer2 = Explorer2(name=\"\")" diff --git a/landsat/landsat.ipynb b/landsat/landsat.ipynb index de7a97cf5..caed3b93f 100644 --- a/landsat/landsat.ipynb +++ b/landsat/landsat.ipynb @@ -107,7 +107,7 @@ " col, rows = b.shape\n", " return hv.RGB((xs, ys[::-1], b, b, b, a), vdims=list('RGBA'))\n", "\n", - "tiles = hv.element.tiles.StamenToner()\n", + "tiles = hv.element.tiles.OSM()\n", "tiles * shade(rasterize(one_band(bands[1])), cmap=['black', 'white']).redim(x='Longitude', y='Latitude')" ] }, diff --git a/ml_annotators/ml_annotators.ipynb b/ml_annotators/ml_annotators.ipynb index 91d473b5a..f201d8ba7 100644 --- a/ml_annotators/ml_annotators.ipynb +++ b/ml_annotators/ml_annotators.ipynb @@ -193,7 +193,7 @@ "source": [ "rectangles = gv.Rectangles([(0, 0, 3, 3), (12, 12, 15, 15)]).opts(fill_alpha=0.2)\n", "box_annotator = hv.annotate.instance()\n", - "labels = gv.tile_sources.StamenLabels()\n", + "labels = gv.tile_sources.EsriImagery()\n", "layout = box_annotator(rectangles, name=\"Rectangles\")\n", "\n", "hv.annotate.compose(tiles, layout, labels)" diff --git a/ship_traffic/ship_traffic.ipynb b/ship_traffic/ship_traffic.ipynb index ecd0a7544..7b65ab8f9 100644 --- a/ship_traffic/ship_traffic.ipynb +++ b/ship_traffic/ship_traffic.ipynb @@ -341,7 +341,7 @@ "points = hd.dynspread(hd.datashade(pts, aggregator=ds.count_cat('category'), color_key=color_key))\n", "\n", "tiles = hv.element.tiles.ESRI().opts(alpha=0.4, bgcolor=\"black\").opts(responsive=True, min_height=600)\n", - "labels = hv.element.tiles.StamenLabels().opts(alpha=0.7, level='glyph')\n", + "labels = hv.element.tiles.EsriStreet().opts(alpha=0.7, level='glyph')\n", "\n", "tiles * labels * points.opts(show_legend=False) * legend.opts(xaxis='bare',yaxis='bare', title='')" ] From 5406d3dc74522a4dcebb5dbebbc469e2c3826673 Mon Sep 17 00:00:00 2001 From: Isaiah Akorita Date: Fri, 22 Nov 2024 16:41:24 +0100 Subject: [PATCH 2/5] changed label type and opacity for ship traffic --- ship_traffic/ship_traffic.ipynb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ship_traffic/ship_traffic.ipynb b/ship_traffic/ship_traffic.ipynb index 7b65ab8f9..02a2cc022 100644 --- a/ship_traffic/ship_traffic.ipynb +++ b/ship_traffic/ship_traffic.ipynb @@ -277,7 +277,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "scrolled": false + }, "outputs": [], "source": [ "hv.output(backend='matplotlib')\n", @@ -341,7 +343,7 @@ "points = hd.dynspread(hd.datashade(pts, aggregator=ds.count_cat('category'), color_key=color_key))\n", "\n", "tiles = hv.element.tiles.ESRI().opts(alpha=0.4, bgcolor=\"black\").opts(responsive=True, min_height=600)\n", - "labels = hv.element.tiles.EsriStreet().opts(alpha=0.7, level='glyph')\n", + "labels = hv.element.tiles.EsriUSATopo().opts(alpha=0.4, level='glyph')\n", "\n", "tiles * labels * points.opts(show_legend=False) * legend.opts(xaxis='bare',yaxis='bare', title='')" ] @@ -509,7 +511,7 @@ "sopts = dict(start=0, end=1, sizing_mode='stretch_width')\n", "map_opacity = pn.widgets.FloatSlider(value=0.7, name=\"Map opacity\", **sopts)\n", "data_opacity = pn.widgets.FloatSlider(value=1.0, name=\"Data opacity\", **sopts)\n", - "label_opacity = pn.widgets.FloatSlider(value=0.9, name=\"Label opacity\", **sopts)\n", + "label_opacity = pn.widgets.FloatSlider(value=0.3, name=\"Label opacity\", **sopts)\n", "overlay = (tiles.apply.opts(alpha=map_opacity) *\n", " pointsp.apply.opts(alpha=data_opacity, show_legend=False) * vessel_name_raster *\n", " labels.apply.opts(alpha=label_opacity) * highlight * legend)\n", From 7fb68d27a9785f522217b6d07518ef1e4b162826 Mon Sep 17 00:00:00 2001 From: Isaiah Akorita Date: Wed, 27 Nov 2024 17:14:53 +0100 Subject: [PATCH 3/5] updated lock files to add xyzservices for datashader_dashboard --- .../anaconda-project-lock.yml | 844 +++++++++--------- datashader_dashboard/anaconda-project.yml | 1 + 2 files changed, 440 insertions(+), 405 deletions(-) diff --git a/datashader_dashboard/anaconda-project-lock.yml b/datashader_dashboard/anaconda-project-lock.yml index d36d527e9..d841d62dd 100644 --- a/datashader_dashboard/anaconda-project-lock.yml +++ b/datashader_dashboard/anaconda-project-lock.yml @@ -17,7 +17,7 @@ locking_enabled: true env_specs: default: locked: true - env_spec_hash: e4d4bf1c5dd2659b15e5963ae631dbfd074cb935 + env_spec_hash: 1e30b2818663f21ab1fb7a2b28ced5e8edea64b8 platforms: - linux-64 - osx-64 @@ -30,21 +30,17 @@ env_specs: - asttokens=2.0.5=pyhd3eb1b0_0 - backcall=0.2.0=pyhd3eb1b0_0 - bleach=4.1.0=pyhd3eb1b0_0 - - charset-normalizer=2.0.4=pyhd3eb1b0_0 - - conda-pack=0.6.0=pyhd3eb1b0_0 + - charset-normalizer=3.3.2=pyhd3eb1b0_0 - cycler=0.11.0=pyhd3eb1b0_0 - datashader=0.13.0=pyhd3eb1b0_1 - decorator=5.1.1=pyhd3eb1b0_0 - defusedxml=0.7.1=pyhd3eb1b0_0 - executing=0.8.3=pyhd3eb1b0_0 - - fonttools=4.25.0=pyhd3eb1b0_0 - heapdict=1.0.1=pyhd3eb1b0_0 - holoviews=1.14.8=pyhd3eb1b0_0 - hvplot=0.7.3=pyhd3eb1b0_1 - intake-parquet=0.2.3=py_0 - ipython_genutils=0.2.0=pyhd3eb1b0_1 - - jupyterlab_pygments=0.1.2=py_0 - - munkres=1.1.4=py_0 - pandocfilters=1.5.0=pyhd3eb1b0_0 - panel=0.12.7=pyhd3eb1b0_0 - param=1.11.1=pyhd3eb1b0_0 @@ -52,8 +48,6 @@ env_specs: - pickleshare=0.7.5=pyhd3eb1b0_1003 - pure_eval=0.2.2=pyhd3eb1b0_0 - pycparser=2.21=pyhd3eb1b0_0 - - python-dateutil=2.8.2=pyhd3eb1b0_0 - - send2trash=1.8.0=pyhd3eb1b0_1 - six=1.16.0=pyhd3eb1b0_1 - sortedcontainers=2.4.0=pyhd3eb1b0_0 - stack_data=0.2.0=pyhd3eb1b0_0 @@ -65,220 +59,236 @@ env_specs: linux-64: - _libgcc_mutex=0.1=main - _openmp_mutex=5.1=1_gnu - - anaconda-anon-usage=0.4.3=py38hfc0e8ea_100 - - anaconda-client=1.12.1=py38h06a4308_0 + - anaconda-anon-usage=0.4.4=py38hfc0e8ea_100 + - anaconda-client=1.12.3=py38h06a4308_0 - anaconda-project=0.11.1=py38h06a4308_0 - - anyio=3.5.0=py38h06a4308_0 + - anyio=4.2.0=py38h06a4308_0 - argon2-cffi-bindings=21.2.0=py38h7f8727e_0 - arrow-cpp=4.0.1=py38hced866c_3 - - attrs=23.1.0=py38h06a4308_0 + - attrs=24.2.0=py38h06a4308_0 - aws-c-common=0.4.57=he6710b0_1 - aws-c-event-stream=0.1.6=h2531618_5 - aws-checksums=0.1.9=he6710b0_0 - aws-sdk-cpp=1.8.185=hce553d0_0 - - beautifulsoup4=4.12.2=py38h06a4308_0 + - beautifulsoup4=4.12.3=py38h06a4308_0 - blas=1.0=mkl - bokeh=2.4.3=py38h06a4308_0 - boost-cpp=1.73.0=h27cfd23_11 - - bottleneck=1.3.4=py38hce1f21e_0 - - brotli-python=1.0.9=py38heb0550a_2 - - brotli=1.0.9=he6710b0_2 - - bzip2=1.0.8=h7b6447c_0 - - c-ares=1.18.1=h7f8727e_0 - - ca-certificates=2023.08.22=h06a4308_0 - - certifi=2023.7.22=py38h06a4308_0 - - cffi=1.15.0=py38hd667e15_1 + - bottleneck=1.3.7=py38ha9d4c09_0 + - brotli-bin=1.0.9=h5eee18b_8 + - brotli-python=1.0.9=py38h6a678d5_8 + - brotli=1.0.9=h5eee18b_8 + - bzip2=1.0.8=h5eee18b_6 + - c-ares=1.19.1=h5eee18b_0 + - ca-certificates=2024.9.24=h06a4308_0 + - certifi=2024.8.30=py38h06a4308_0 + - cffi=1.17.1=py38h1fdaa30_0 - click=8.1.7=py38h06a4308_0 - - cloudpickle=2.2.1=py38h06a4308_0 - - clyent=1.2.2=py38_1 - - colorcet=3.0.1=py38h06a4308_0 - - comm=0.1.2=py38h06a4308_0 - - conda-package-handling=2.2.0=py38h06a4308_0 - - conda-package-streaming=0.9.0=py38h06a4308_0 - - cryptography=41.0.3=py38h130f0dd_0 - - cytoolz=0.11.0=py38h7b6447c_0 + - cloudpickle=3.0.0=py38h06a4308_0 + - colorcet=3.1.0=py38h06a4308_0 + - comm=0.2.1=py38h06a4308_0 + - conda-pack=0.7.1=py38h06a4308_0 + - conda-package-handling=2.3.0=py38h06a4308_0 + - conda-package-streaming=0.10.0=py38h06a4308_0 + - contourpy=1.0.5=py38hdb19cb5_0 + - cytoolz=0.12.2=py38h5eee18b_0 - dask-core=2.30.0=py_0 - dask=2.30.0=py_0 - datashape=0.5.4=py38h06a4308_1 - - debugpy=1.5.1=py38h295c915_0 + - debugpy=1.6.7=py38h6a678d5_0 - distributed=2.30.1=py38h06a4308_0 - double-conversion=3.1.5=he6710b0_1 - entrypoints=0.4=py38h06a4308_0 - - fastparquet=0.5.0=py38hce1f21e_1 - - freetype=2.11.0=h70c0345_0 - - fsspec=2023.9.2=py38h06a4308_0 - - gflags=2.2.2=he6710b0_0 - - giflib=5.2.1=h7b6447c_0 - - glog=0.5.0=h2531618_0 + - exceptiongroup=1.2.0=py38h06a4308_0 + - fastparquet=0.5.0=py38h7deecbd_2 + - fonttools=4.51.0=py38h5eee18b_0 + - freetype=2.12.1=h4a9f257_0 + - fsspec=2024.6.1=py38h06a4308_0 + - gflags=2.2.2=h6a678d5_1 + - glog=0.5.0=h6a678d5_1 - grpc-cpp=1.26.0=hf8bcb03_0 - icu=58.2=he6710b0_3 - - idna=3.4=py38h06a4308_0 - - importlib-metadata=6.0.0=py38h06a4308_0 - - importlib_resources=6.1.0=py38h06a4308_0 + - idna=3.7=py38h06a4308_0 + - importlib-metadata=7.0.1=py38h06a4308_0 + - importlib_resources=6.4.0=py38h06a4308_0 - intake=0.6.8=py38h06a4308_0 - - intel-openmp=2021.4.0=h06a4308_3561 - - ipykernel=6.19.2=py38hb070fc8_0 + - intel-openmp=2023.1.0=hdb19cb5_46306 + - ipykernel=6.29.5=py38h06a4308_0 - ipython=8.12.2=py38h06a4308_0 - - jedi=0.18.1=py38h06a4308_1 - - jinja2=3.1.2=py38h06a4308_0 - - jpeg=9e=h7f8727e_0 - - jsonschema=4.17.3=py38h06a4308_0 - - jupyter_client=7.2.2=py38h06a4308_0 - - jupyter_core=5.3.0=py38h06a4308_0 - - jupyter_server=1.23.4=py38h06a4308_0 - - kiwisolver=1.4.2=py38h295c915_0 - - krb5=1.19.2=hac12032_0 + - jedi=0.19.1=py38h06a4308_0 + - jinja2=3.1.4=py38h06a4308_0 + - jpeg=9e=h5eee18b_3 + - jsonschema-specifications=2023.7.1=py38h06a4308_0 + - jsonschema=4.23.0=py38h06a4308_0 + - jupyter_client=7.4.9=py38h06a4308_0 + - jupyter_core=5.7.2=py38h06a4308_0 + - jupyter_events=0.10.0=py38h06a4308_0 + - jupyter_server=2.14.1=py38h06a4308_0 + - jupyter_server_terminals=0.4.4=py38h06a4308_1 + - jupyterlab_pygments=0.2.2=py38h06a4308_0 + - kiwisolver=1.4.4=py38h6a678d5_0 + - krb5=1.20.1=h568e23c_1 - lcms2=2.12=h3be6417_0 - - ld_impl_linux-64=2.38=h1181459_1 + - ld_impl_linux-64=2.40=h12ee557_0 - libboost=1.73.0=h3ff78a5_11 - - libcurl=7.82.0=h0b77cf5_0 - - libedit=3.1.20210910=h7f8727e_0 + - libbrotlicommon=1.0.9=h5eee18b_8 + - libbrotlidec=1.0.9=h5eee18b_8 + - libbrotlienc=1.0.9=h5eee18b_8 + - libcurl=8.2.1=h91b91d3_0 + - libedit=3.1.20230828=h5eee18b_0 - libev=4.33=h7f8727e_1 - libevent=2.1.12=h8f2d780_0 - - libffi=3.3=he6710b0_2 - - libgcc-ng=9.1.0=hdf63c60_0 - - libgfortran-ng=7.3.0=hdf63c60_0 + - libffi=3.4.4=h6a678d5_1 + - libgcc-ng=11.2.0=h1234567_1 + - libgfortran-ng=11.2.0=h00389a5_1 + - libgfortran5=11.2.0=h1234567_1 - libgomp=11.2.0=h1234567_1 - - libllvm11=11.1.0=h3826bc1_1 - - libnghttp2=1.46.0=hce63b2e_0 - - libpng=1.6.37=hbc83047_0 + - libllvm11=11.1.0=h9e868ea_6 + - libnghttp2=1.52.0=ha637b67_1 + - libpng=1.6.39=h5eee18b_0 - libprotobuf=3.11.2=hd408876_0 - libsodium=1.0.18=h7b6447c_0 - - libssh2=1.10.0=h8f2d780_0 - - libstdcxx-ng=9.1.0=hdf63c60_0 + - libssh2=1.10.0=h37d81fd_2 + - libstdcxx-ng=11.2.0=h1234567_1 - libthrift=0.13.0=hfb8234f_6 - libtiff=4.2.0=h85742a9_0 - - libwebp-base=1.2.2=h7f8727e_0 - - libwebp=1.2.2=h55f646e_0 - - libxml2=2.9.14=h74e7548_0 - - libxslt=1.1.35=h4e12654_0 + - libwebp-base=1.3.2=h5eee18b_1 - llvmlite=0.38.0=py38h4ff587b_0 - locket=1.0.0=py38h06a4308_0 - - lxml=4.8.0=py38h1f438cf_0 - - lz4-c=1.9.3=h295c915_1 + - lz4-c=1.9.4=h6a678d5_1 - markdown=3.4.1=py38h06a4308_0 - - markupsafe=2.1.1=py38h7f8727e_0 - - matplotlib-base=3.5.1=py38ha18d171_1 + - markupsafe=2.1.3=py38h5eee18b_0 + - matplotlib-base=3.7.2=py38h1128e8f_0 - matplotlib-inline=0.1.6=py38h06a4308_0 - - mistune=0.8.4=py38h7b6447c_1000 - - mkl-service=2.4.0=py38h7f8727e_0 - - mkl=2021.4.0=h06a4308_640 - - mkl_fft=1.3.1=py38hd3c417c_0 - - mkl_random=1.2.2=py38h51133e4_0 + - mistune=2.0.4=py38h06a4308_0 + - mkl-service=2.4.0=py38h5eee18b_1 + - mkl=2023.1.0=h213fc3f_46344 + - mkl_fft=1.3.8=py38h5eee18b_0 + - mkl_random=1.2.4=py38hdb19cb5_0 - msgpack-python=1.0.3=py38hd09550d_0 - multipledispatch=0.6.0=py38_0 - - nbclassic=0.5.5=py38h06a4308_0 - - nbclient=0.5.13=py38h06a4308_0 - - nbconvert=6.5.4=py38h06a4308_0 - - nbformat=5.9.2=py38h06a4308_0 - - ncurses=6.3=h7f8727e_2 - - nest-asyncio=1.5.6=py38h06a4308_0 - - notebook-shim=0.2.2=py38h06a4308_0 - - notebook=6.5.4=py38h06a4308_1 + - nbclassic=1.1.0=py38h06a4308_0 + - nbclient=0.8.0=py38h06a4308_0 + - nbconvert=7.16.4=py38h06a4308_0 + - nbformat=5.10.4=py38h06a4308_0 + - ncurses=6.4=h6a678d5_0 + - nest-asyncio=1.6.0=py38h06a4308_0 + - notebook-shim=0.2.3=py38h06a4308_0 + - notebook=6.5.7=py38h06a4308_0 - numba=0.55.1=py38h51133e4_0 - - numexpr=2.8.1=py38h6abb31d_0 - - numpy-base=1.21.5=py38hf524024_2 - - numpy=1.21.5=py38he7a7128_2 + - numexpr=2.8.4=py38hc78ab66_1 + - numpy-base=1.21.6=py38hb5e798b_1 + - numpy=1.21.6=py38h5f9d8c6_1 + - openjpeg=2.4.0=h9ca470c_2 - openssl=1.1.1w=h7f8727e_0 - orc=1.6.7=h973521d_2 - - packaging=23.1=py38h06a4308_0 - - pandas=1.4.2=py38h295c915_0 - - partd=1.4.0=py38h06a4308_0 - - pillow=9.0.1=py38h22f2fdc_0 - - pip=23.3=py38h06a4308_0 - - pkgutil-resolve-name=1.3.10=py38h06a4308_0 + - overrides=7.4.0=py38h06a4308_0 + - packaging=24.1=py38h06a4308_0 + - pandas=1.5.3=py38h417a72b_0 + - partd=1.4.1=py38h06a4308_0 + - pillow=10.4.0=py38h5eee18b_0 + - pip=24.2=py38h06a4308_0 + - pkgutil-resolve-name=1.3.10=py38h06a4308_1 - platformdirs=3.10.0=py38h06a4308_0 + - pooch=1.7.0=py38h06a4308_0 - prometheus_client=0.14.1=py38h06a4308_0 - - prompt-toolkit=3.0.36=py38h06a4308_0 - - psutil=5.8.0=py38h27cfd23_1 + - prompt-toolkit=3.0.43=py38h06a4308_0 + - psutil=5.9.0=py38h5eee18b_0 - pyarrow=4.0.1=py38he0739d4_3 - pyct=0.5.0=py38h06a4308_0 - pygments=2.15.1=py38h06a4308_1 - - pyopenssl=23.2.0=py38h06a4308_0 - pyparsing=3.0.9=py38h06a4308_0 - - pyrsistent=0.18.0=py38heee7806_0 - pysocks=1.7.1=py38h06a4308_0 + - python-dateutil=2.9.0post0=py38h06a4308_2 - python-fastjsonschema=2.16.2=py38h06a4308_0 - - python-lmdb=1.2.1=py38h2531618_1 - - python-snappy=0.6.0=py38h2531618_3 - - python=3.8.13=h12debd9_0 - - pytz=2023.3.post1=py38h06a4308_0 - - pyviz_comms=2.3.0=py38h06a4308_0 - - pyyaml=6.0=py38h7f8727e_1 - - pyzmq=22.3.0=py38h295c915_2 + - python-json-logger=2.0.7=py38h06a4308_0 + - python-lmdb=1.4.1=py38h6a678d5_0 + - python-snappy=0.6.1=py38h6a678d5_0 + - python=3.8.18=h7a1cb2a_0 + - pytz=2024.1=py38h06a4308_0 + - pyviz_comms=3.0.2=py38h06a4308_0 + - pyyaml=6.0.2=py38h5eee18b_0 + - pyzmq=24.0.1=py38h5eee18b_0 - re2=2022.04.01=h295c915_0 - - readline=8.1.2=h7f8727e_1 + - readline=8.2=h5eee18b_0 + - referencing=0.30.2=py38h06a4308_0 - requests-toolbelt=1.0.0=py38h06a4308_0 - - requests=2.31.0=py38h06a4308_0 - - ruamel_yaml=0.15.100=py38h27cfd23_0 - - scipy=1.6.2=py38had2a1c9_1 + - requests=2.32.3=py38h06a4308_0 + - rfc3339-validator=0.1.4=py38h06a4308_0 + - rfc3986-validator=0.1.1=py38h06a4308_0 + - rpds-py=0.10.6=py38hb02cf49_0 + - ruamel.yaml.clib=0.2.8=py38h5eee18b_0 + - ruamel_yaml=0.17.21=py38h5eee18b_0 + - scipy=1.10.1=py38hf6e8229_1 + - send2trash=1.8.2=py38h06a4308_0 - setuptools=60.9.3=py38h06a4308_0 - - snappy=1.1.9=h295c915_0 - - sniffio=1.2.0=py38h06a4308_1 + - snappy=1.2.1=h6a678d5_0 + - sniffio=1.3.0=py38h06a4308_0 - soupsieve=2.5=py38h06a4308_0 - - sqlite=3.38.5=hc218d9a_0 - - tbb=2021.5.0=hd09550d_0 + - sqlite=3.45.3=h5eee18b_0 + - tbb=2021.8.0=hdb19cb5_0 - terminado=0.17.1=py38h06a4308_0 - - thrift=0.11.0=py38h295c915_0 + - thrift=0.17.0=py38h6a678d5_0 - tinycss2=1.2.1=py38h06a4308_0 - - tk=8.6.12=h1ccaba5_0 + - tk=8.6.14=h39e8969_0 - toolz=0.12.0=py38h06a4308_0 - - tornado=6.1=py38h27cfd23_0 - - tqdm=4.65.0=py38hb070fc8_0 - - traitlets=5.7.1=py38h06a4308_0 - - typing-extensions=4.7.1=py38h06a4308_0 - - typing_extensions=4.7.1=py38h06a4308_0 - - uriparser=0.9.3=he6710b0_1 - - urllib3=1.26.18=py38h06a4308_0 - - utf8proc=2.6.1=h27cfd23_0 + - tornado=6.4.1=py38h5eee18b_0 + - tqdm=4.66.5=py38h2f386ee_0 + - traitlets=5.14.3=py38h06a4308_0 + - typing-extensions=4.11.0=py38h06a4308_0 + - typing_extensions=4.11.0=py38h06a4308_0 + - unicodedata2=15.1.0=py38h5eee18b_0 + - uriparser=0.9.7=h5eee18b_0 + - urllib3=2.2.3=py38h06a4308_0 + - utf8proc=2.6.1=h5eee18b_1 - webencodings=0.5.1=py38_1 - - websocket-client=0.58.0=py38h06a4308_4 - - wheel=0.41.2=py38h06a4308_0 + - websocket-client=1.8.0=py38h06a4308_0 + - wheel=0.44.0=py38h06a4308_0 - xarray=2022.11.0=py38h06a4308_0 - - xz=5.2.5=h7f8727e_1 + - xyzservices=2022.9.0=py38h06a4308_1 + - xz=5.4.6=h5eee18b_1 - yaml=0.2.5=h7b6447c_0 - - zeromq=4.3.4=h2531618_0 + - zeromq=4.3.5=h6a678d5_0 - zict=3.0.0=py38h06a4308_0 - - zipp=3.11.0=py38h06a4308_0 - - zlib=1.2.12=h7f8727e_2 - - zstandard=0.15.2=py38h27cfd23_0 + - zipp=3.20.2=py38h06a4308_0 + - zlib=1.2.13=h5eee18b_1 + - zstandard=0.19.0=py38h5eee18b_0 - zstd=1.4.9=haebb681_0 osx-64: - - anaconda-anon-usage=0.4.3=py38hfb7c958_100 - - anaconda-client=1.12.1=py38hecd8cb5_0 + - anaconda-anon-usage=0.4.4=py38hfb7c958_100 + - anaconda-client=1.12.3=py38hecd8cb5_0 - anaconda-project=0.11.1=py38hecd8cb5_0 - - anyio=3.5.0=py38hecd8cb5_0 + - anyio=4.2.0=py38hecd8cb5_0 - appnope=0.1.2=py38hecd8cb5_1001 - argon2-cffi-bindings=21.2.0=py38hca72f7f_0 - arrow-cpp=4.0.1=py38hf7c73f6_3 - - attrs=23.1.0=py38hecd8cb5_0 + - attrs=24.2.0=py38hecd8cb5_0 - aws-c-common=0.4.57=hb1e8313_1 - aws-c-event-stream=0.1.6=h23ab428_5 - aws-checksums=0.1.9=hb1e8313_0 - aws-sdk-cpp=1.8.185=he271ece_0 - - beautifulsoup4=4.12.2=py38hecd8cb5_0 + - beautifulsoup4=4.12.3=py38hecd8cb5_0 - blas=1.0=mkl - bokeh=2.4.3=py38hecd8cb5_0 - boost-cpp=1.73.0=h9ed2024_11 - - bottleneck=1.3.5=py38h67323c0_0 - - brotli-bin=1.0.9=hca72f7f_7 - - brotli-python=1.0.9=py38he9d5cce_7 - - brotli=1.0.9=hca72f7f_7 - - bzip2=1.0.8=h1de35cc_0 + - bottleneck=1.3.7=py38h7b7cdfe_0 + - brotli-bin=1.0.9=h6c40b1e_8 + - brotli-python=1.0.9=py38hcec6c5f_8 + - brotli=1.0.9=h6c40b1e_8 + - bzip2=1.0.8=h6c40b1e_6 - c-ares=1.19.1=h6c40b1e_0 - - ca-certificates=2023.08.22=hecd8cb5_0 - - certifi=2023.7.22=py38hecd8cb5_0 - - cffi=1.15.1=py38h6c40b1e_3 + - ca-certificates=2024.9.24=hecd8cb5_0 + - certifi=2024.8.30=py38hecd8cb5_0 + - cffi=1.17.1=py38h9205ec4_0 - click=8.1.7=py38hecd8cb5_0 - - cloudpickle=2.2.1=py38hecd8cb5_0 - - clyent=1.2.2=py38_1 - - colorcet=3.0.1=py38hecd8cb5_0 - - comm=0.1.2=py38hecd8cb5_0 - - conda-package-handling=2.2.0=py38hecd8cb5_0 - - conda-package-streaming=0.9.0=py38hecd8cb5_0 + - cloudpickle=3.0.0=py38hecd8cb5_0 + - colorcet=3.1.0=py38hecd8cb5_0 + - comm=0.2.1=py38hecd8cb5_0 + - conda-pack=0.7.1=py38hecd8cb5_0 + - conda-package-handling=2.3.0=py38hecd8cb5_0 + - conda-package-streaming=0.10.0=py38hecd8cb5_0 - contourpy=1.0.5=py38haf03e11_0 - - cryptography=41.0.3=py38ha2381d6_0 - - cytoolz=0.12.0=py38hca72f7f_0 + - cytoolz=0.12.2=py38h6c40b1e_0 - dask-core=2.30.0=py_0 - dask=2.30.0=py_0 - datashape=0.5.4=py38hecd8cb5_1 @@ -286,44 +296,49 @@ env_specs: - distributed=2.30.1=py38hecd8cb5_0 - double-conversion=3.1.5=haf313ee_1 - entrypoints=0.4=py38hecd8cb5_0 + - exceptiongroup=1.2.0=py38hecd8cb5_0 - fastparquet=0.5.0=py38h67323c0_2 + - fonttools=4.51.0=py38h6c40b1e_0 - freetype=2.12.1=hd8bbffd_0 - - fsspec=2023.9.2=py38hecd8cb5_0 - - gflags=2.2.2=h0a44026_0 - - giflib=5.2.1=h6c40b1e_3 - - glog=0.5.0=h23ab428_0 + - fsspec=2024.6.1=py38hecd8cb5_0 + - gflags=2.2.2=hcec6c5f_1 + - glog=0.5.0=hcec6c5f_1 - grpc-cpp=1.26.0=h044775b_0 - icu=58.2=h0a44026_3 - - idna=3.4=py38hecd8cb5_0 - - importlib-metadata=6.0.0=py38hecd8cb5_0 - - importlib_resources=6.1.0=py38hecd8cb5_0 + - idna=3.7=py38hecd8cb5_0 + - importlib-metadata=7.0.1=py38hecd8cb5_0 + - importlib_resources=6.4.0=py38hecd8cb5_0 - intake=0.6.8=py38hecd8cb5_0 - - intel-openmp=2023.1.0=ha357a0b_43547 - - ipykernel=6.25.0=py38h20db666_0 + - intel-openmp=2023.1.0=ha357a0b_43548 + - ipykernel=6.29.5=py38hecd8cb5_0 - ipython=8.12.2=py38hecd8cb5_0 - - jedi=0.18.1=py38hecd8cb5_1 - - jinja2=3.1.2=py38hecd8cb5_0 - - jpeg=9e=h6c40b1e_1 - - jsonschema=4.17.3=py38hecd8cb5_0 + - jedi=0.19.1=py38hecd8cb5_0 + - jinja2=3.1.4=py38hecd8cb5_0 + - jpeg=9e=h46256e1_3 + - jsonschema-specifications=2023.7.1=py38hecd8cb5_0 + - jsonschema=4.23.0=py38hecd8cb5_0 - jupyter_client=7.4.9=py38hecd8cb5_0 - - jupyter_core=5.3.0=py38hecd8cb5_0 - - jupyter_server=1.23.4=py38hecd8cb5_0 + - jupyter_core=5.7.2=py38hecd8cb5_0 + - jupyter_events=0.10.0=py38hecd8cb5_0 + - jupyter_server=2.14.1=py38hecd8cb5_0 + - jupyter_server_terminals=0.4.4=py38hecd8cb5_1 + - jupyterlab_pygments=0.2.2=py38hecd8cb5_0 - kiwisolver=1.4.4=py38hcec6c5f_0 - krb5=1.20.1=hdba6334_1 - lcms2=2.12=hf1fd2bf_0 - libboost=1.73.0=hd4c2dcd_11 - - libbrotlicommon=1.0.9=hca72f7f_7 - - libbrotlidec=1.0.9=hca72f7f_7 - - libbrotlienc=1.0.9=hca72f7f_7 + - libbrotlicommon=1.0.9=h6c40b1e_8 + - libbrotlidec=1.0.9=h6c40b1e_8 + - libbrotlienc=1.0.9=h6c40b1e_8 - libcurl=8.2.1=ha585b31_0 - libcxx=14.0.6=h9765a3e_0 - - libedit=3.1.20221030=h6c40b1e_0 + - libedit=3.1.20230828=h6c40b1e_0 - libev=4.33=h9ed2024_1 - libevent=2.1.12=h0a4fc7d_0 - - libffi=3.4.4=hecd8cb5_0 + - libffi=3.4.4=hecd8cb5_1 - libgfortran5=11.3.0=h9dfd629_28 - libgfortran=5.0.0=11_3_0_hecd8cb5_28 - - libiconv=1.16=hca72f7f_2 + - libiconv=1.16=h6c40b1e_3 - libllvm11=11.1.0=h46f1229_6 - libnghttp2=1.52.0=h1c88b7d_1 - libpng=1.6.39=h6c40b1e_0 @@ -332,142 +347,145 @@ env_specs: - libssh2=1.10.0=hdb2fb19_2 - libthrift=0.13.0=h054ceb0_6 - libtiff=4.2.0=h87d7836_0 - - libwebp-base=1.3.2=h6c40b1e_0 - - libwebp=1.3.2=hf6ce154_0 - - libxml2=2.10.4=h930c0e2_0 - - libxslt=1.1.37=h6d1eb0e_0 + - libwebp-base=1.3.2=h46256e1_1 - llvm-openmp=14.0.6=h0dcd299_0 - llvmlite=0.38.0=py38h8346a28_0 - locket=1.0.0=py38hecd8cb5_0 - - lxml=4.9.3=py38h946e0e5_0 - - lz4-c=1.9.4=hcec6c5f_0 + - lz4-c=1.9.4=hcec6c5f_1 - markdown=3.4.1=py38hecd8cb5_0 - - markupsafe=2.1.1=py38hca72f7f_0 + - markupsafe=2.1.3=py38h6c40b1e_0 - matplotlib-base=3.7.2=py38hee32256_0 - matplotlib-inline=0.1.6=py38hecd8cb5_0 - - mistune=0.8.4=py38h1de35cc_1001 + - mistune=2.0.4=py38hecd8cb5_0 - mkl-service=2.4.0=py38h6c40b1e_1 - - mkl=2023.1.0=h8e150cf_43559 + - mkl=2023.1.0=h8e150cf_43560 - mkl_fft=1.3.8=py38h6c40b1e_0 - mkl_random=1.2.4=py38ha357a0b_0 - msgpack-python=1.0.3=py38haf03e11_0 - multipledispatch=0.6.0=py38_0 - - nbclassic=0.5.5=py38hecd8cb5_0 - - nbclient=0.5.13=py38hecd8cb5_0 - - nbconvert=6.5.4=py38hecd8cb5_0 - - nbformat=5.9.2=py38hecd8cb5_0 + - nbclassic=1.1.0=py38hecd8cb5_0 + - nbclient=0.8.0=py38hecd8cb5_0 + - nbconvert=7.16.4=py38hecd8cb5_0 + - nbformat=5.10.4=py38hecd8cb5_0 - ncurses=6.4=hcec6c5f_0 - - nest-asyncio=1.5.6=py38hecd8cb5_0 - - notebook-shim=0.2.2=py38hecd8cb5_0 - - notebook=6.5.4=py38hecd8cb5_1 + - nest-asyncio=1.6.0=py38hecd8cb5_0 + - notebook-shim=0.2.3=py38hecd8cb5_0 + - notebook=6.5.7=py38hecd8cb5_0 - numba=0.55.1=py38hae1ba45_0 - numexpr=2.8.4=py38h47b59a4_1 - - numpy-base=1.21.5=py38hcfaf2c3_4 - - numpy=1.21.5=py38h47b59a4_4 - - openjpeg=2.4.0=h66ea3da_0 + - numpy-base=1.21.6=py38ha186be2_1 + - numpy=1.21.6=py38h827a554_1 + - openjpeg=2.4.0=h7231236_2 - openssl=1.1.1w=hca72f7f_0 - orc=1.6.7=h001ef8f_2 - - packaging=23.1=py38hecd8cb5_0 + - overrides=7.4.0=py38hecd8cb5_0 + - packaging=24.1=py38hecd8cb5_0 - pandas=1.5.3=py38h07fba90_0 - - partd=1.4.0=py38hecd8cb5_0 - - pillow=10.0.1=py38h7d39338_0 - - pip=23.3=py38hecd8cb5_0 - - pkgutil-resolve-name=1.3.10=py38hecd8cb5_0 + - partd=1.4.1=py38hecd8cb5_0 + - pillow=10.4.0=py38h46256e1_0 + - pip=24.2=py38hecd8cb5_0 + - pkgutil-resolve-name=1.3.10=py38hecd8cb5_1 - platformdirs=3.10.0=py38hecd8cb5_0 - pooch=1.7.0=py38hecd8cb5_0 - prometheus_client=0.14.1=py38hecd8cb5_0 - - prompt-toolkit=3.0.36=py38hecd8cb5_0 + - prompt-toolkit=3.0.43=py38hecd8cb5_0 - psutil=5.9.0=py38hca72f7f_0 - pyarrow=4.0.1=py38hdf3e9eb_3 - pyct=0.5.0=py38hecd8cb5_0 - pygments=2.15.1=py38hecd8cb5_1 - - pyopenssl=23.2.0=py38hecd8cb5_0 - pyparsing=3.0.9=py38hecd8cb5_0 - - pyrsistent=0.18.0=py38hca72f7f_0 - pysocks=1.7.1=py38_1 + - python-dateutil=2.9.0post0=py38hecd8cb5_2 - python-fastjsonschema=2.16.2=py38hecd8cb5_0 + - python-json-logger=2.0.7=py38hecd8cb5_0 - python-lmdb=1.4.1=py38hcec6c5f_0 - python-snappy=0.6.1=py38hcec6c5f_0 - python=3.8.18=h218abb5_0 - - pytz=2023.3.post1=py38hecd8cb5_0 - - pyviz_comms=2.3.0=py38hecd8cb5_0 - - pyyaml=6.0.1=py38h6c40b1e_0 - - pyzmq=23.2.0=py38he9d5cce_0 + - pytz=2024.1=py38hecd8cb5_0 + - pyviz_comms=3.0.2=py38hecd8cb5_0 + - pyyaml=6.0.2=py38h46256e1_0 + - pyzmq=24.0.1=py38h6c40b1e_0 - re2=2022.04.01=he9d5cce_0 - readline=8.2=hca72f7f_0 + - referencing=0.30.2=py38hecd8cb5_0 - requests-toolbelt=1.0.0=py38hecd8cb5_0 - - requests=2.31.0=py38hecd8cb5_0 - - ruamel.yaml.clib=0.2.6=py38hca72f7f_1 + - requests=2.32.3=py38hecd8cb5_0 + - rfc3339-validator=0.1.4=py38hecd8cb5_0 + - rfc3986-validator=0.1.1=py38hecd8cb5_0 + - rpds-py=0.10.6=py38hf2ad997_0 + - ruamel.yaml.clib=0.2.8=py38h46256e1_0 - ruamel_yaml=0.17.21=py38hca72f7f_0 - scipy=1.10.1=py38hf241641_1 + - send2trash=1.8.2=py38hecd8cb5_0 - setuptools=60.9.3=py38hecd8cb5_0 - - snappy=1.1.9=he9d5cce_0 - - sniffio=1.2.0=py38hecd8cb5_1 + - snappy=1.2.1=h6d0c2b6_0 + - sniffio=1.3.0=py38hecd8cb5_0 - soupsieve=2.5=py38hecd8cb5_0 - - sqlite=3.41.2=h6c40b1e_0 + - sqlite=3.45.3=h6c40b1e_0 - tbb=2021.8.0=ha357a0b_0 - terminado=0.17.1=py38hecd8cb5_0 - thrift=0.17.0=py38he9d5cce_0 - tinycss2=1.2.1=py38hecd8cb5_0 - - tk=8.6.12=h5d9f67b_0 + - tk=8.6.14=h4d00af3_0 - toolz=0.12.0=py38hecd8cb5_0 - - tornado=6.3.3=py38h6c40b1e_0 - - tqdm=4.65.0=py38h01d92e1_0 - - traitlets=5.7.1=py38hecd8cb5_0 - - typing-extensions=4.7.1=py38hecd8cb5_0 - - typing_extensions=4.7.1=py38hecd8cb5_0 + - tornado=6.4.1=py38h46256e1_0 + - tqdm=4.66.5=py38h20db666_0 + - traitlets=5.14.3=py38hecd8cb5_0 + - typing-extensions=4.11.0=py38hecd8cb5_0 + - typing_extensions=4.11.0=py38hecd8cb5_0 + - unicodedata2=15.1.0=py38h6c40b1e_0 - uriparser=0.9.7=h6c40b1e_0 - - urllib3=1.26.18=py38hecd8cb5_0 - - utf8proc=2.6.1=h9ed2024_0 + - urllib3=2.2.3=py38hecd8cb5_0 + - utf8proc=2.6.1=h6c40b1e_1 - webencodings=0.5.1=py38_1 - - websocket-client=0.58.0=py38hecd8cb5_4 - - wheel=0.41.2=py38hecd8cb5_0 + - websocket-client=1.8.0=py38hecd8cb5_0 + - wheel=0.44.0=py38hecd8cb5_0 - xarray=2022.11.0=py38hecd8cb5_0 - - xz=5.4.2=h6c40b1e_0 + - xyzservices=2022.9.0=py38hecd8cb5_1 + - xz=5.4.6=h6c40b1e_1 - yaml=0.2.5=haf1e3a3_0 - - zeromq=4.3.4=h23ab428_0 + - zeromq=4.3.5=hcec6c5f_0 - zict=3.0.0=py38hecd8cb5_0 - - zipp=3.11.0=py38hecd8cb5_0 - - zlib=1.2.13=h4dc903c_0 + - zipp=3.20.2=py38hecd8cb5_0 + - zlib=1.2.13=h4b97444_1 - zstandard=0.19.0=py38h6c40b1e_0 - zstd=1.4.9=h322a384_0 osx-arm64: - abseil-cpp=20210324.2=hc377ac9_0 - - anaconda-anon-usage=0.4.3=py38hd6b623d_100 - - anaconda-client=1.12.1=py38hca03da5_0 + - anaconda-anon-usage=0.4.4=py38hd6b623d_100 + - anaconda-client=1.12.3=py38hca03da5_0 - anaconda-project=0.11.1=py38hca03da5_0 - - anyio=3.5.0=py38hca03da5_0 + - anyio=4.2.0=py38hca03da5_0 - appnope=0.1.2=py38hca03da5_1001 - argon2-cffi-bindings=21.2.0=py38h1a28f6b_0 - arrow-cpp=4.0.1=py38hd7469ad_3 - - attrs=23.1.0=py38hca03da5_0 + - attrs=24.2.0=py38hca03da5_0 - aws-c-common=0.6.8=h80987f9_1 - aws-c-event-stream=0.1.6=h313beb8_6 - aws-checksums=0.1.11=h80987f9_2 - aws-sdk-cpp=1.8.185=h4a942e0_0 - - beautifulsoup4=4.12.2=py38hca03da5_0 + - beautifulsoup4=4.12.3=py38hca03da5_0 - blas=1.0=openblas - bokeh=2.4.3=py38hca03da5_0 - boost-cpp=1.73.0=h1a28f6b_11 - - bottleneck=1.3.5=py38heec5a64_0 - - brotli-bin=1.0.9=h1a28f6b_7 - - brotli-python=1.0.9=py38hc377ac9_7 - - brotli=1.0.9=h1a28f6b_7 - - bzip2=1.0.8=h620ffc9_4 + - bottleneck=1.3.7=py38hbda83bc_0 + - brotli-bin=1.0.9=h80987f9_8 + - brotli-python=1.0.9=py38h313beb8_8 + - brotli=1.0.9=h80987f9_8 + - bzip2=1.0.8=h80987f9_6 - c-ares=1.19.1=h80987f9_0 - - ca-certificates=2023.08.22=hca03da5_0 - - certifi=2023.7.22=py38hca03da5_0 - - cffi=1.15.1=py38h80987f9_3 + - ca-certificates=2024.9.24=hca03da5_0 + - certifi=2024.8.30=py38hca03da5_0 + - cffi=1.17.1=py38h3eb5a62_0 - click=8.1.7=py38hca03da5_0 - - cloudpickle=2.2.1=py38hca03da5_0 - - clyent=1.2.2=py38hca03da5_1 - - colorcet=3.0.1=py38hca03da5_0 - - comm=0.1.2=py38hca03da5_0 - - conda-package-handling=2.2.0=py38hca03da5_0 - - conda-package-streaming=0.9.0=py38hca03da5_0 + - cloudpickle=3.0.0=py38hca03da5_0 + - colorcet=3.1.0=py38hca03da5_0 + - comm=0.2.1=py38hca03da5_0 + - conda-pack=0.7.1=py38hca03da5_0 + - conda-package-handling=2.3.0=py38hca03da5_0 + - conda-package-streaming=0.10.0=py38hca03da5_0 - contourpy=1.0.5=py38h525c30c_0 - - cryptography=41.0.3=py38h3c57c4d_0 - - cytoolz=0.12.0=py38h1a28f6b_0 + - cytoolz=0.12.2=py38h80987f9_0 - dask-core=2.10.1=py_0 - dask=2.10.1=py_0 - datashape=0.5.4=py38hca03da5_1 @@ -475,43 +493,48 @@ env_specs: - distributed=2.10.0=py_0 - double-conversion=3.1.5=hc377ac9_1 - entrypoints=0.4=py38hca03da5_0 + - exceptiongroup=1.2.0=py38hca03da5_0 - fastparquet=0.5.0=py38heec5a64_2 + - fonttools=4.51.0=py38h80987f9_0 - freetype=2.12.1=h1192e45_0 - - fsspec=2023.9.2=py38hca03da5_0 - - gflags=2.2.2=hc377ac9_0 - - giflib=5.2.1=h80987f9_3 - - glog=0.5.0=hc377ac9_0 + - fsspec=2024.6.1=py38hca03da5_0 + - gflags=2.2.2=h313beb8_1 + - glog=0.5.0=h313beb8_1 - grpc-cpp=1.39.0=h95c9599_4 - icu=68.1=hc377ac9_0 - - idna=3.4=py38hca03da5_0 - - importlib-metadata=6.0.0=py38hca03da5_0 - - importlib_resources=6.1.0=py38hca03da5_0 + - idna=3.7=py38hca03da5_0 + - importlib-metadata=7.0.1=py38hca03da5_0 + - importlib_resources=6.4.0=py38hca03da5_0 - intake=0.6.8=py38hca03da5_0 - - ipykernel=6.25.0=py38h33ce5c2_0 + - ipykernel=6.29.5=py38hca03da5_0 - ipython=8.12.2=py38hca03da5_0 - - jedi=0.18.1=py38hca03da5_1 - - jinja2=3.1.2=py38hca03da5_0 - - jpeg=9e=h80987f9_1 - - jsonschema=4.17.3=py38hca03da5_0 + - jedi=0.19.1=py38hca03da5_0 + - jinja2=3.1.4=py38hca03da5_0 + - jpeg=9e=h80987f9_3 + - jsonschema-specifications=2023.7.1=py38hca03da5_0 + - jsonschema=4.23.0=py38hca03da5_0 - jupyter_client=7.4.9=py38hca03da5_0 - - jupyter_core=5.3.0=py38hca03da5_0 - - jupyter_server=1.23.4=py38hca03da5_0 + - jupyter_core=5.7.2=py38hca03da5_0 + - jupyter_events=0.10.0=py38hca03da5_0 + - jupyter_server=2.14.1=py38hca03da5_0 + - jupyter_server_terminals=0.4.4=py38hca03da5_1 + - jupyterlab_pygments=0.2.2=py38hca03da5_0 - kiwisolver=1.4.4=py38h313beb8_0 - krb5=1.20.1=h8380606_1 - lcms2=2.12=hba8e193_0 - libboost=1.73.0=h49e8a49_11 - - libbrotlicommon=1.0.9=h1a28f6b_7 - - libbrotlidec=1.0.9=h1a28f6b_7 - - libbrotlienc=1.0.9=h1a28f6b_7 + - libbrotlicommon=1.0.9=h80987f9_8 + - libbrotlidec=1.0.9=h80987f9_8 + - libbrotlienc=1.0.9=h80987f9_8 - libcurl=8.2.1=h0f1d93c_0 - libcxx=14.0.6=h848a8c0_0 - - libedit=3.1.20221030=h80987f9_0 + - libedit=3.1.20230828=h80987f9_0 - libev=4.33=h1a28f6b_1 - libevent=2.1.12=hf27765b_0 - - libffi=3.4.4=hca03da5_0 + - libffi=3.4.4=hca03da5_1 - libgfortran5=11.3.0=h009349e_28 - libgfortran=5.0.0=11_3_0_hca03da5_28 - - libiconv=1.16=h1a28f6b_2 + - libiconv=1.16=h80987f9_3 - libllvm11=11.1.0=h12f7ac0_6 - libnghttp2=1.52.0=h10c0552_1 - libopenblas=0.3.21=h269037a_0 @@ -521,137 +544,140 @@ env_specs: - libssh2=1.10.0=h449679c_2 - libthrift=0.13.0=hd358383_6 - libtiff=4.2.0=h11e2f9f_0 - - libwebp-base=1.3.2=h80987f9_0 - - libwebp=1.3.2=ha3663a8_0 - - libxml2=2.10.4=h372ba2a_0 - - libxslt=1.1.37=habca612_0 + - libwebp-base=1.3.2=h80987f9_1 - llvm-openmp=14.0.6=hc6e5704_0 - llvmlite=0.38.0=py38h98b2900_0 - locket=1.0.0=py38hca03da5_0 - - lxml=4.9.3=py38h50ffb84_0 - - lz4-c=1.9.4=h313beb8_0 + - lz4-c=1.9.4=h313beb8_1 - markdown=3.4.1=py38hca03da5_0 - - markupsafe=2.1.1=py38h1a28f6b_0 + - markupsafe=2.1.3=py38h80987f9_0 - matplotlib-base=3.7.2=py38h46d7db6_0 - matplotlib-inline=0.1.6=py38hca03da5_0 - - mistune=0.8.4=py38h1a28f6b_1000 + - mistune=2.0.4=py38hca03da5_0 - msgpack-python=1.0.3=py38h525c30c_0 - multipledispatch=0.6.0=py38hca03da5_0 - - nbclassic=0.5.5=py38hca03da5_0 - - nbclient=0.5.13=py38hca03da5_0 - - nbconvert=6.5.4=py38hca03da5_0 - - nbformat=5.9.2=py38hca03da5_0 + - nbclassic=1.1.0=py38hca03da5_0 + - nbclient=0.8.0=py38hca03da5_0 + - nbconvert=7.16.4=py38hca03da5_0 + - nbformat=5.10.4=py38hca03da5_0 - ncurses=6.4=h313beb8_0 - - nest-asyncio=1.5.6=py38hca03da5_0 - - notebook-shim=0.2.2=py38hca03da5_0 - - notebook=6.5.4=py38hca03da5_1 + - nest-asyncio=1.6.0=py38hca03da5_0 + - notebook-shim=0.2.3=py38hca03da5_0 + - notebook=6.5.7=py38hca03da5_0 - numba=0.55.1=py38h9197a36_0 - numexpr=2.8.4=py38h79ee842_1 - - numpy-base=1.21.5=py38hadd41eb_3 - - numpy=1.21.5=py38h42add53_3 - - openjpeg=2.3.0=h7a6adac_2 + - numpy-base=1.21.6=py38haf87e8b_1 + - numpy=1.21.6=py38hb93e574_1 + - openjpeg=2.4.0=h0ed58ac_2 - openssl=1.1.1w=h1a28f6b_0 - orc=1.6.9=hb65cfe6_2 - - packaging=23.1=py38hca03da5_0 + - overrides=7.4.0=py38hca03da5_0 + - packaging=24.1=py38hca03da5_0 - pandas=1.5.3=py38h78102c4_0 - - partd=1.4.0=py38hca03da5_0 - - pillow=10.0.1=py38h3b245a6_0 - - pip=23.3=py38hca03da5_0 - - pkgutil-resolve-name=1.3.10=py38hca03da5_0 + - partd=1.4.1=py38hca03da5_0 + - pillow=10.4.0=py38h80987f9_0 + - pip=24.2=py38hca03da5_0 + - pkgutil-resolve-name=1.3.10=py38hca03da5_1 - platformdirs=3.10.0=py38hca03da5_0 - pooch=1.7.0=py38hca03da5_0 - prometheus_client=0.14.1=py38hca03da5_0 - - prompt-toolkit=3.0.36=py38hca03da5_0 + - prompt-toolkit=3.0.43=py38hca03da5_0 - psutil=5.9.0=py38h1a28f6b_0 - pyarrow=4.0.1=py38hd776c02_3 - pyct=0.5.0=py38hca03da5_0 - pygments=2.15.1=py38hca03da5_1 - - pyopenssl=23.2.0=py38hca03da5_0 - pyparsing=3.0.9=py38hca03da5_0 - - pyrsistent=0.18.0=py38h1a28f6b_0 - pysocks=1.7.1=py38hca03da5_0 + - python-dateutil=2.9.0post0=py38hca03da5_2 - python-fastjsonschema=2.16.2=py38hca03da5_0 + - python-json-logger=2.0.7=py38hca03da5_0 - python-lmdb=1.4.1=py38h313beb8_0 - python-snappy=0.6.1=py38h313beb8_0 - python=3.8.18=hc0d8a6c_0 - - pytz=2023.3.post1=py38hca03da5_0 - - pyviz_comms=2.3.0=py38hca03da5_0 - - pyyaml=6.0.1=py38h80987f9_0 - - pyzmq=23.2.0=py38hc377ac9_0 + - pytz=2024.1=py38hca03da5_0 + - pyviz_comms=3.0.2=py38hca03da5_0 + - pyyaml=6.0.2=py38h80987f9_0 + - pyzmq=24.0.1=py38h80987f9_0 - re2=2022.04.01=hc377ac9_0 - readline=8.2=h1a28f6b_0 + - referencing=0.30.2=py38hca03da5_0 - requests-toolbelt=1.0.0=py38hca03da5_0 - - requests=2.31.0=py38hca03da5_0 - - ruamel.yaml.clib=0.2.6=py38h1a28f6b_1 + - requests=2.32.3=py38hca03da5_0 + - rfc3339-validator=0.1.4=py38hca03da5_0 + - rfc3986-validator=0.1.1=py38hca03da5_0 + - rpds-py=0.10.6=py38hf0e4da2_0 + - ruamel.yaml.clib=0.2.8=py38h80987f9_0 - ruamel_yaml=0.17.21=py38h1a28f6b_0 - scipy=1.10.1=py38h9d039d2_1 + - send2trash=1.8.2=py38hca03da5_0 - setuptools=60.9.3=py38hca03da5_0 - - snappy=1.1.9=hc377ac9_0 - - sniffio=1.2.0=py38hca03da5_1 + - snappy=1.2.1=h313beb8_0 + - sniffio=1.3.0=py38hca03da5_0 - soupsieve=2.5=py38hca03da5_0 - - sqlite=3.41.2=h80987f9_0 + - sqlite=3.45.3=h80987f9_0 - tbb=2021.8.0=h48ca7d4_0 - terminado=0.17.1=py38hca03da5_0 - thrift=0.17.0=py38hc377ac9_0 - tinycss2=1.2.1=py38hca03da5_0 - - tk=8.6.12=hb8d0fd4_0 + - tk=8.6.14=h6ba3021_0 - toolz=0.12.0=py38hca03da5_0 - - tornado=6.3.3=py38h80987f9_0 - - tqdm=4.65.0=py38h86d0a89_0 - - traitlets=5.7.1=py38hca03da5_0 - - typing-extensions=4.7.1=py38hca03da5_0 - - typing_extensions=4.7.1=py38hca03da5_0 + - tornado=6.4.1=py38h80987f9_0 + - tqdm=4.66.5=py38h33ce5c2_0 + - traitlets=5.14.3=py38hca03da5_0 + - typing-extensions=4.11.0=py38hca03da5_0 + - typing_extensions=4.11.0=py38hca03da5_0 + - unicodedata2=15.1.0=py38h80987f9_0 - uriparser=0.9.7=h80987f9_0 - - urllib3=1.26.18=py38hca03da5_0 - - utf8proc=2.6.1=h1a28f6b_0 + - urllib3=2.2.3=py38hca03da5_0 + - utf8proc=2.6.1=h80987f9_1 - webencodings=0.5.1=py38hca03da5_1 - - websocket-client=0.58.0=py38hca03da5_4 - - wheel=0.41.2=py38hca03da5_0 + - websocket-client=1.8.0=py38hca03da5_0 + - wheel=0.44.0=py38hca03da5_0 - xarray=2022.11.0=py38hca03da5_0 - - xz=5.4.2=h80987f9_0 + - xyzservices=2022.9.0=py38hca03da5_1 + - xz=5.4.6=h80987f9_1 - yaml=0.2.5=h1a28f6b_0 - - zeromq=4.3.4=hc377ac9_0 + - zeromq=4.3.5=h313beb8_0 - zict=3.0.0=py38hca03da5_0 - - zipp=3.11.0=py38hca03da5_0 - - zlib=1.2.13=h5a0b063_0 + - zipp=3.20.2=py38hca03da5_0 + - zlib=1.2.13=h18a0788_1 - zstandard=0.19.0=py38h80987f9_0 - zstd=1.4.9=h8574219_1 win-64: - - anaconda-anon-usage=0.4.3=py38hfc23b7f_100 - - anaconda-client=1.12.1=py38haa95532_0 + - anaconda-anon-usage=0.4.4=py38hfc23b7f_100 + - anaconda-client=1.12.3=py38haa95532_0 - anaconda-project=0.11.1=py38haa95532_0 - - anyio=3.5.0=py38haa95532_0 + - anyio=4.2.0=py38haa95532_0 - argon2-cffi-bindings=21.2.0=py38h2bbff1b_0 - arrow-cpp=4.0.1=py38h0d1d0e5_3 - - attrs=23.1.0=py38haa95532_0 + - attrs=24.2.0=py38haa95532_0 - aws-c-common=0.4.57=ha925a31_1 - aws-c-event-stream=0.1.6=hd77b12b_5 - aws-checksums=0.1.9=ha925a31_0 - aws-sdk-cpp=1.8.185=hd77b12b_0 - - beautifulsoup4=4.12.2=py38haa95532_0 + - beautifulsoup4=4.12.3=py38haa95532_0 - blas=1.0=mkl - bokeh=2.4.3=py38haa95532_0 - boost-cpp=1.73.0=h2bbff1b_12 - - bottleneck=1.3.5=py38h080aedc_0 - - brotli-bin=1.0.9=h2bbff1b_7 - - brotli-python=1.0.9=py38hd77b12b_7 - - brotli=1.0.9=h2bbff1b_7 - - bzip2=1.0.8=he774522_0 + - bottleneck=1.3.7=py38h9128911_0 + - brotli-bin=1.0.9=h2bbff1b_8 + - brotli-python=1.0.9=py38hd77b12b_8 + - brotli=1.0.9=h2bbff1b_8 + - bzip2=1.0.8=h2bbff1b_6 - c-ares=1.19.1=h2bbff1b_0 - - ca-certificates=2023.08.22=haa95532_0 - - certifi=2023.7.22=py38haa95532_0 - - cffi=1.15.1=py38h2bbff1b_3 + - ca-certificates=2024.9.24=haa95532_0 + - certifi=2024.8.30=py38haa95532_0 + - cffi=1.17.1=py38h827c3e9_0 - click=8.1.7=py38haa95532_0 - - cloudpickle=2.2.1=py38haa95532_0 - - clyent=1.2.2=py38_1 + - cloudpickle=3.0.0=py38haa95532_0 - colorama=0.4.6=py38haa95532_0 - - colorcet=3.0.1=py38haa95532_0 - - comm=0.1.2=py38haa95532_0 - - conda-package-handling=2.2.0=py38haa95532_0 - - conda-package-streaming=0.9.0=py38haa95532_0 + - colorcet=3.1.0=py38haa95532_0 + - comm=0.2.1=py38haa95532_0 + - conda-pack=0.7.1=py38haa95532_0 + - conda-package-handling=2.3.0=py38haa95532_0 + - conda-package-streaming=0.10.0=py38haa95532_0 - contourpy=1.0.5=py38h59b6b97_0 - - cryptography=41.0.3=py38h3438e0d_0 - - cytoolz=0.12.0=py38h2bbff1b_0 + - cytoolz=0.12.2=py38h2bbff1b_0 - dask-core=2.30.0=py_0 - dask=2.30.0=py_0 - datashape=0.5.4=py38haa95532_1 @@ -659,141 +685,149 @@ env_specs: - distributed=2.30.1=py38haa95532_0 - double-conversion=3.1.5=ha925a31_1 - entrypoints=0.4=py38haa95532_0 + - exceptiongroup=1.2.0=py38haa95532_0 - fastparquet=0.5.0=py38h080aedc_2 + - fonttools=4.51.0=py38h2bbff1b_0 - freetype=2.12.1=ha860e81_0 - - fsspec=2023.9.2=py38haa95532_0 - - gflags=2.2.2=ha925a31_0 - - giflib=5.2.1=h8cc25b3_3 - - glog=0.5.0=hd77b12b_0 + - fsspec=2024.6.1=py38haa95532_0 + - gflags=2.2.2=hd77b12b_1 + - glog=0.5.0=hd77b12b_1 - grpc-cpp=1.26.0=h351948d_0 - icc_rt=2022.1.0=h6049295_2 - - idna=3.4=py38haa95532_0 - - importlib-metadata=6.0.0=py38haa95532_0 - - importlib_resources=6.1.0=py38haa95532_0 + - idna=3.7=py38haa95532_0 + - importlib-metadata=7.0.1=py38haa95532_0 + - importlib_resources=6.4.0=py38haa95532_0 - intake=0.6.8=py38haa95532_0 - - intel-openmp=2023.1.0=h59b6b97_46319 - - ipykernel=6.25.0=py38h9909e9c_0 + - intel-openmp=2023.1.0=h59b6b97_46320 + - ipykernel=6.29.5=py38haa95532_0 - ipython=8.12.2=py38haa95532_0 - - jedi=0.18.1=py38haa95532_1 - - jinja2=3.1.2=py38haa95532_0 - - jpeg=9e=h2bbff1b_1 - - jsonschema=4.17.3=py38haa95532_0 + - jedi=0.19.1=py38haa95532_0 + - jinja2=3.1.4=py38haa95532_0 + - jpeg=9e=h827c3e9_3 + - jsonschema-specifications=2023.7.1=py38haa95532_0 + - jsonschema=4.23.0=py38haa95532_0 - jupyter_client=7.4.9=py38haa95532_0 - - jupyter_core=5.3.0=py38haa95532_0 - - jupyter_server=1.23.4=py38haa95532_0 + - jupyter_core=5.7.2=py38haa95532_0 + - jupyter_events=0.10.0=py38haa95532_0 + - jupyter_server=2.14.1=py38haa95532_0 + - jupyter_server_terminals=0.4.4=py38haa95532_1 + - jupyterlab_pygments=0.2.2=py38haa95532_0 - kiwisolver=1.4.4=py38hd77b12b_0 + - lcms2=2.12=h83e58a3_0 - lerc=3.0=hd77b12b_0 - libboost=1.73.0=h6c2663c_12 - - libbrotlicommon=1.0.9=h2bbff1b_7 - - libbrotlidec=1.0.9=h2bbff1b_7 - - libbrotlienc=1.0.9=h2bbff1b_7 - - libcurl=8.4.0=h86230a5_0 + - libbrotlicommon=1.0.9=h2bbff1b_8 + - libbrotlidec=1.0.9=h2bbff1b_8 + - libbrotlienc=1.0.9=h2bbff1b_8 + - libcurl=8.9.1=h0416ee5_0 - libdeflate=1.17=h2bbff1b_1 - - libffi=3.4.4=hd77b12b_0 - - libiconv=1.16=h2bbff1b_2 + - libffi=3.4.4=hd77b12b_1 - libpng=1.6.39=h8cc25b3_0 - libprotobuf=3.11.2=h7bd577a_0 - libsodium=1.0.18=h62dcd97_0 - libssh2=1.10.0=hcd4344a_2 - libtiff=4.5.1=hd77b12b_0 - - libwebp-base=1.3.2=h2bbff1b_0 - - libwebp=1.3.2=hbc33d0d_0 - - libxml2=2.10.4=h0ad7f3c_1 - - libxslt=1.1.37=h2bbff1b_1 + - libwebp-base=1.3.2=h3d04722_1 - llvmlite=0.38.0=py38h23ce68f_0 - locket=1.0.0=py38haa95532_0 - - lxml=4.9.3=py38h09808a7_0 - - lz4-c=1.9.4=h2bbff1b_0 + - lz4-c=1.9.4=h2bbff1b_1 - markdown=3.4.1=py38haa95532_0 - - markupsafe=2.1.1=py38h2bbff1b_0 + - markupsafe=2.1.3=py38h2bbff1b_0 - matplotlib-base=3.7.2=py38h4ed8f06_0 - matplotlib-inline=0.1.6=py38haa95532_0 - - mistune=0.8.4=py38he774522_1000 + - mistune=2.0.4=py38haa95532_0 - mkl-service=2.4.0=py38h2bbff1b_1 - - mkl=2023.1.0=h6b88ed4_46357 + - mkl=2023.1.0=h6b88ed4_46358 - mkl_fft=1.3.8=py38h2bbff1b_0 - mkl_random=1.2.4=py38h59b6b97_0 - msgpack-python=1.0.3=py38h59b6b97_0 - multipledispatch=0.6.0=py38_0 - - nbclassic=0.5.5=py38haa95532_0 - - nbclient=0.5.13=py38haa95532_0 - - nbconvert=6.5.4=py38haa95532_0 - - nbformat=5.9.2=py38haa95532_0 - - nest-asyncio=1.5.6=py38haa95532_0 - - notebook-shim=0.2.2=py38haa95532_0 - - notebook=6.5.4=py38haa95532_1 + - nbclassic=1.1.0=py38haa95532_0 + - nbclient=0.8.0=py38haa95532_0 + - nbconvert=7.16.4=py38haa95532_0 + - nbformat=5.10.4=py38haa95532_0 + - nest-asyncio=1.6.0=py38haa95532_0 + - notebook-shim=0.2.3=py38haa95532_0 + - notebook=6.5.7=py38haa95532_0 - numba=0.55.1=py38hf11a4ad_0 - numexpr=2.8.4=py38h7b80656_1 - - numpy-base=1.21.5=py38h46c4fa8_4 - - numpy=1.21.5=py38h6917f2d_4 - - openjpeg=2.4.0=h4fc8c34_0 + - numpy-base=1.21.6=py38hb5c95e7_1 + - numpy=1.21.6=py38h85e1a82_1 + - openjpeg=2.5.2=hae555c5_0 - openssl=1.1.1w=h2bbff1b_0 - - packaging=23.1=py38haa95532_0 + - overrides=7.4.0=py38haa95532_0 + - packaging=24.1=py38haa95532_0 - pandas=1.5.3=py38hf11a4ad_0 - - partd=1.4.0=py38haa95532_0 - - pillow=10.0.1=py38h045eedc_0 - - pip=23.3=py38haa95532_0 - - pkgutil-resolve-name=1.3.10=py38haa95532_0 + - partd=1.4.1=py38haa95532_0 + - pillow=10.4.0=py38h827c3e9_0 + - pip=24.2=py38haa95532_0 + - pkgutil-resolve-name=1.3.10=py38haa95532_1 - platformdirs=3.10.0=py38haa95532_0 - pooch=1.7.0=py38haa95532_0 - prometheus_client=0.14.1=py38haa95532_0 - - prompt-toolkit=3.0.36=py38haa95532_0 + - prompt-toolkit=3.0.43=py38haa95532_0 - psutil=5.9.0=py38h2bbff1b_0 - pyarrow=4.0.1=py38h953b917_3 - pyct=0.5.0=py38haa95532_0 - pygments=2.15.1=py38haa95532_1 - - pyopenssl=23.2.0=py38haa95532_0 - pyparsing=3.0.9=py38haa95532_0 - - pyrsistent=0.18.0=py38h196d8e1_0 - pysocks=1.7.1=py38haa95532_0 + - python-dateutil=2.9.0post0=py38haa95532_2 - python-fastjsonschema=2.16.2=py38haa95532_0 + - python-json-logger=2.0.7=py38haa95532_0 - python-lmdb=1.4.1=py38hd77b12b_0 - python-snappy=0.6.1=py38hd77b12b_0 - python=3.8.18=h6244533_0 - - pytz=2023.3.post1=py38haa95532_0 - - pyviz_comms=2.3.0=py38haa95532_0 + - pytz=2024.1=py38haa95532_0 + - pyviz_comms=3.0.2=py38haa95532_0 - pywin32=305=py38h2bbff1b_0 - pywinpty=2.0.10=py38h5da7b33_0 - - pyyaml=6.0.1=py38h2bbff1b_0 - - pyzmq=23.2.0=py38hd77b12b_0 + - pyyaml=6.0.2=py38h827c3e9_0 + - pyzmq=24.0.1=py38h2bbff1b_0 - re2=2022.04.01=hd77b12b_0 + - referencing=0.30.2=py38haa95532_0 - requests-toolbelt=1.0.0=py38haa95532_0 - - requests=2.31.0=py38haa95532_0 - - ruamel.yaml.clib=0.2.6=py38h2bbff1b_1 + - requests=2.32.3=py38haa95532_0 + - rfc3339-validator=0.1.4=py38haa95532_0 + - rfc3986-validator=0.1.1=py38haa95532_0 + - rpds-py=0.10.6=py38h062c2fa_0 + - ruamel.yaml.clib=0.2.8=py38h827c3e9_0 - ruamel_yaml=0.17.21=py38h2bbff1b_0 - scipy=1.10.1=py38hdcfc7df_1 + - send2trash=1.8.2=py38haa95532_0 - setuptools=60.9.3=py38haa95532_0 - - snappy=1.1.9=h6c2663c_0 - - sniffio=1.2.0=py38haa95532_1 + - snappy=1.2.1=hcdb6601_0 + - sniffio=1.3.0=py38haa95532_0 - soupsieve=2.5=py38haa95532_0 - - sqlite=3.41.2=h2bbff1b_0 + - sqlite=3.45.3=h2bbff1b_0 - tbb=2021.8.0=h59b6b97_0 - terminado=0.17.1=py38haa95532_0 - thrift=0.17.0=py38hd77b12b_0 - tinycss2=1.2.1=py38haa95532_0 - - tk=8.6.12=h2bbff1b_0 - toolz=0.12.0=py38haa95532_0 - - tornado=6.3.3=py38h2bbff1b_0 - - tqdm=4.65.0=py38hd4e2768_0 - - traitlets=5.7.1=py38haa95532_0 - - typing-extensions=4.7.1=py38haa95532_0 - - typing_extensions=4.7.1=py38haa95532_0 + - tornado=6.4.1=py38h827c3e9_0 + - tqdm=4.66.5=py38h9909e9c_0 + - traitlets=5.14.3=py38haa95532_0 + - typing-extensions=4.11.0=py38haa95532_0 + - typing_extensions=4.11.0=py38haa95532_0 + - unicodedata2=15.1.0=py38h2bbff1b_0 - uriparser=0.9.7=h2bbff1b_0 - - urllib3=1.26.18=py38haa95532_0 - - utf8proc=2.6.1=h2bbff1b_0 - - vc=14.2=h21ff451_1 - - vs2015_runtime=14.27.29016=h5e58377_2 + - urllib3=2.2.3=py38haa95532_0 + - utf8proc=2.6.1=h2bbff1b_1 + - vc=14.40=h2eaa2aa_1 + - vs2015_runtime=14.40.33807=h98bb1dd_1 - webencodings=0.5.1=py38_1 - - websocket-client=0.58.0=py38haa95532_4 - - wheel=0.41.2=py38haa95532_0 + - websocket-client=1.8.0=py38haa95532_0 + - wheel=0.44.0=py38haa95532_0 - win_inet_pton=1.1.0=py38haa95532_0 - winpty=0.4.3=4 - xarray=2022.11.0=py38haa95532_0 - - xz=5.4.2=h8cc25b3_0 + - xyzservices=2022.9.0=py38haa95532_1 + - xz=5.4.6=h8cc25b3_1 - yaml=0.2.5=he774522_0 - - zeromq=4.3.4=hd77b12b_0 + - zeromq=4.3.5=hd77b12b_0 - zict=3.0.0=py38haa95532_0 - - zipp=3.11.0=py38haa95532_0 - - zlib=1.2.13=h8cc25b3_0 - - zstandard=0.19.0=py38h2bbff1b_0 - - zstd=1.5.5=hd43e919_0 + - zipp=3.20.2=py38haa95532_0 + - zlib=1.2.13=h8cc25b3_1 + - zstandard=0.23.0=py38h4fc1ca9_0 + - zstd=1.5.6=h8880b57_0 diff --git a/datashader_dashboard/anaconda-project.yml b/datashader_dashboard/anaconda-project.yml index 32256006a..a079a49b8 100644 --- a/datashader_dashboard/anaconda-project.yml +++ b/datashader_dashboard/anaconda-project.yml @@ -37,6 +37,7 @@ packages: &pkgs - numpy >=1.20,<1.22 - pyarrow <6 - dask <2020 +- xyzservices dependencies: *pkgs From 108abc1331688aee41d57894b848c6808546cc21 Mon Sep 17 00:00:00 2001 From: Isaiah Akorita Date: Wed, 27 Nov 2024 17:25:18 +0100 Subject: [PATCH 4/5] updated files to use CartoDB tiles --- datashader_dashboard/datashader_dashboard.ipynb | 6 ++++-- ml_annotators/ml_annotators.ipynb | 3 ++- ship_traffic/ship_traffic.ipynb | 9 ++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/datashader_dashboard/datashader_dashboard.ipynb b/datashader_dashboard/datashader_dashboard.ipynb index fb8b38f6d..b789ad44a 100644 --- a/datashader_dashboard/datashader_dashboard.ipynb +++ b/datashader_dashboard/datashader_dashboard.ipynb @@ -28,6 +28,7 @@ "source": [ "import os, colorcet, param as pm, holoviews as hv, panel as pn, datashader as ds\n", "import intake\n", + "import xyzservices.providers as xyz\n", "from holoviews.element import tiles as hvts\n", "from holoviews.operation.datashader import rasterize, shade, spread\n", "from collections import OrderedDict as odict\n", @@ -112,7 +113,8 @@ "\n", " @pm.depends('show_labels')\n", " def labels(self):\n", - " return hvts.EsriStreet().options(level='annotation', alpha=1 if self.show_labels else 0)\n", + " return hv.Tiles(xyz.CartoDB.PositronOnlyLabels()).opts(level='annotation', alpha=1 if self.show_labels else 0)\n", + "\n", "\n", " def viewable(self,**kwargs):\n", " rasterized = rasterize(hv.DynamicMap(self.elem), aggregator=self.aggregator, width=800, height=400)\n", @@ -226,7 +228,7 @@ " dataplot = spreaded.opts(alpha=self.data_opacity, show_legend=False)\n", " \n", " tiles = self.basemap.opts(gopts).opts(alpha=self.map_opacity)\n", - " labels = hvts.EsriStreet().options(level='annotation', alpha=1 if self.show_labels else 0)\n", + " labels = hv.Tiles(xyz.CartoDB.PositronOnlyLabels()).opts(level='annotation', alpha=1 if self.show_labels else 0)\n", " return tiles * dataplot * labels\n", " \n", "explorer2 = Explorer2(name=\"\")" diff --git a/ml_annotators/ml_annotators.ipynb b/ml_annotators/ml_annotators.ipynb index f201d8ba7..0008b27ef 100644 --- a/ml_annotators/ml_annotators.ipynb +++ b/ml_annotators/ml_annotators.ipynb @@ -30,6 +30,7 @@ "source": [ "import holoviews as hv\n", "import geoviews as gv\n", + "import xyzservices.providers as xyz\n", "\n", "hv.extension('bokeh')" ] @@ -193,7 +194,7 @@ "source": [ "rectangles = gv.Rectangles([(0, 0, 3, 3), (12, 12, 15, 15)]).opts(fill_alpha=0.2)\n", "box_annotator = hv.annotate.instance()\n", - "labels = gv.tile_sources.EsriImagery()\n", + "labels = hv.Tiles(xyz.CartoDB.PositronOnlyLabels())\n", "layout = box_annotator(rectangles, name=\"Rectangles\")\n", "\n", "hv.annotate.compose(tiles, layout, labels)" diff --git a/ship_traffic/ship_traffic.ipynb b/ship_traffic/ship_traffic.ipynb index 02a2cc022..f6e9c250b 100644 --- a/ship_traffic/ship_traffic.ipynb +++ b/ship_traffic/ship_traffic.ipynb @@ -18,6 +18,7 @@ "import os, requests, numpy as np, pandas as pd, holoviews as hv, holoviews.operation.datashader as hd\n", "import dask.dataframe as dd, panel as pn, colorcet as cc, datashader as ds\n", "import spatialpandas as sp, spatialpandas.io, spatialpandas.geometry, spatialpandas.dask\n", + "import xyzservices.providers as xyz\n", "\n", "from PIL import Image\n", "from holoviews.util.transform import lon_lat_to_easting_northing as ll2en\n", @@ -336,16 +337,18 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "scrolled": false + }, "outputs": [], "source": [ "pts = hv.Points(df, vdims=['category']).redim.range(**loc['Continental US'])\n", "points = hd.dynspread(hd.datashade(pts, aggregator=ds.count_cat('category'), color_key=color_key))\n", "\n", "tiles = hv.element.tiles.ESRI().opts(alpha=0.4, bgcolor=\"black\").opts(responsive=True, min_height=600)\n", - "labels = hv.element.tiles.EsriUSATopo().opts(alpha=0.4, level='glyph')\n", + "labels = hv.Tiles(xyz.CartoDB.PositronOnlyLabels()).opts(alpha=0.4, level='glyph')\n", "\n", - "tiles * labels * points.opts(show_legend=False) * legend.opts(xaxis='bare',yaxis='bare', title='')" + "tiles * points.opts(show_legend=False) * labels * legend.opts(xaxis='bare',yaxis='bare', title='')" ] }, { From daf6443a68e7e85d7f62f99d8e671be1acb4b8f1 Mon Sep 17 00:00:00 2001 From: Isaiah Akorita Date: Thu, 28 Nov 2024 17:59:24 +0100 Subject: [PATCH 5/5] changed tiles and labels for ship traffic and landsat --- landsat/landsat.ipynb | 31 ++++++++++++++++++++++++++----- ship_traffic/ship_traffic.ipynb | 4 ++-- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/landsat/landsat.ipynb b/landsat/landsat.ipynb index caed3b93f..670d824cc 100644 --- a/landsat/landsat.ipynb +++ b/landsat/landsat.ipynb @@ -107,7 +107,7 @@ " col, rows = b.shape\n", " return hv.RGB((xs, ys[::-1], b, b, b, a), vdims=list('RGBA'))\n", "\n", - "tiles = hv.element.tiles.OSM()\n", + "tiles = hv.element.tiles.CartoLight()\n", "tiles * shade(rasterize(one_band(bands[1])), cmap=['black', 'white']).redim(x='Longitude', y='Latitude')" ] }, @@ -204,8 +204,15 @@ " (7,5,4,\"Shortwave Infrared\",\"\"),\n", " (6,5,4,\"Vegetation Analysis\",\"\")],\n", " columns=['R', 'G', 'B', 'Name', 'Description']).set_index([\"Name\"])\n", - "combos\n", - "\n", + "combos" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ "def combo(name):\n", " c=combos.loc[name]\n", " return rasterize(combine_bands(bands[c.R-1],bands[c.G-1],bands[c.B-1])).relabel(name)\n", @@ -276,7 +283,8 @@ "layout = tiles * rasterize(true_color) + spectrum_curve\n", "layout.opts(\n", " opts.Curve(width=450, height=450, logx=True),\n", - " opts.RGB(width=450, height=450))" + " opts.RGB(width=450, height=450),\n", + " )" ] }, { @@ -290,9 +298,22 @@ } ], "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", "name": "python", - "pygments_lexer": "ipython3" + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.3" } }, "nbformat": 4, diff --git a/ship_traffic/ship_traffic.ipynb b/ship_traffic/ship_traffic.ipynb index f6e9c250b..fff3dc59b 100644 --- a/ship_traffic/ship_traffic.ipynb +++ b/ship_traffic/ship_traffic.ipynb @@ -346,7 +346,7 @@ "points = hd.dynspread(hd.datashade(pts, aggregator=ds.count_cat('category'), color_key=color_key))\n", "\n", "tiles = hv.element.tiles.ESRI().opts(alpha=0.4, bgcolor=\"black\").opts(responsive=True, min_height=600)\n", - "labels = hv.Tiles(xyz.CartoDB.PositronOnlyLabels()).opts(alpha=0.4, level='glyph')\n", + "labels = hv.Tiles(xyz.CartoDB.VoyagerOnlyLabels()).opts(alpha=0.7, level='glyph')\n", "\n", "tiles * points.opts(show_legend=False) * labels * legend.opts(xaxis='bare',yaxis='bare', title='')" ] @@ -514,7 +514,7 @@ "sopts = dict(start=0, end=1, sizing_mode='stretch_width')\n", "map_opacity = pn.widgets.FloatSlider(value=0.7, name=\"Map opacity\", **sopts)\n", "data_opacity = pn.widgets.FloatSlider(value=1.0, name=\"Data opacity\", **sopts)\n", - "label_opacity = pn.widgets.FloatSlider(value=0.3, name=\"Label opacity\", **sopts)\n", + "label_opacity = pn.widgets.FloatSlider(value=0.7, name=\"Label opacity\", **sopts)\n", "overlay = (tiles.apply.opts(alpha=map_opacity) *\n", " pointsp.apply.opts(alpha=data_opacity, show_legend=False) * vessel_name_raster *\n", " labels.apply.opts(alpha=label_opacity) * highlight * legend)\n",