SciTools / cartopy

Cartopy - a cartographic python library with matplotlib support
https://scitools.org.uk/cartopy/docs/latest
BSD 3-Clause "New" or "Revised" License
1.38k stars 361 forks source link

WMTS cache capability in WMTSRasterSource #2314

Open dnowacki-usgs opened 6 months ago

dnowacki-usgs commented 6 months ago

Description

I asked a relevant question on SO a few months back but raising as an issue here as the current documentation is unclear and/or misleading.

When accessing a WMTS source, ax.add_wmts() calls WMTSRasterSource(). The docs for WMTSRasterSource state that it "Uses tile caching for fast repeated map retrievals" and a glance at the code indicates cache-related stuff going on.

In my experience, however, no caching is performed, and repeated identical calls result in network activity every time. Are the docs referring to some other kind of caching?

Code to reproduce

import cartopy.crs as ccrs
import matplotlib.pyplot as plt

plt.figure()
ax = plt.subplot(1,1,1,projection=ccrs.Mercator())
ax.set_extent([-122.55, -122, 37.4, 37.85], crs=ccrs.PlateCarree())
ax.add_wmts('https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/WMTS/1.0.0/WMTSCapabilities.xml', layer_name='USGSImageryOnly')
plt.show()
Full environment definition ### Operating system macOS 13.6.3 ### Cartopy version 0.22.0 ### conda list ``` # Name Version Build Channel adal 1.2.7 pyhd8ed1ab_0 conda-forge adlfs 2023.10.0 pyhd8ed1ab_0 conda-forge affine 2.4.0 pyhd8ed1ab_0 conda-forge aiobotocore 2.9.0 pyhd8ed1ab_0 conda-forge aiohttp 3.9.1 py311he705e18_0 conda-forge aioitertools 0.11.0 pyhd8ed1ab_0 conda-forge aiosignal 1.3.1 pyhd8ed1ab_0 conda-forge alabaster 0.7.15 pyhd8ed1ab_0 conda-forge annotated-types 0.6.0 pyhd8ed1ab_0 conda-forge antlr-python-runtime 4.11.1 pyhd8ed1ab_0 conda-forge anyio 4.2.0 pyhd8ed1ab_0 conda-forge aom 3.5.0 hf0c8a7f_0 conda-forge appdirs 1.4.4 pyh9f0ad1d_0 conda-forge appnope 0.1.3 pyhd8ed1ab_0 conda-forge argon2-cffi 23.1.0 pyhd8ed1ab_0 conda-forge argon2-cffi-bindings 21.2.0 py311h2725bcf_4 conda-forge arpack 3.7.0 hefb7bc6_2 conda-forge arrow 1.3.0 pyhd8ed1ab_0 conda-forge arrow-cpp 11.0.0 h694c41f_9_cpu conda-forge asciidoctor 2.0.20 h5145e1c_0 conda-forge asciitree 0.3.3 py_2 conda-forge asttokens 2.4.1 pyhd8ed1ab_0 conda-forge async-lru 2.0.4 pyhd8ed1ab_0 conda-forge async-timeout 4.0.3 pyhd8ed1ab_0 conda-forge async_generator 1.10 py_0 conda-forge atk-1.0 2.38.0 h1d18e73_1 conda-forge attrs 23.2.0 pyh71513ae_0 conda-forge aws-c-auth 0.6.26 h684266e_2 conda-forge aws-c-cal 0.5.21 hf54dd2f_2 conda-forge aws-c-common 0.8.14 hb7f2c08_0 conda-forge aws-c-compression 0.2.16 h99c63db_5 conda-forge aws-c-event-stream 0.2.20 h0ae4c0f_4 conda-forge aws-c-http 0.7.6 hcdd7835_0 conda-forge aws-c-io 0.13.19 had634fe_3 conda-forge aws-c-mqtt 0.8.6 ha4e05e3_12 conda-forge aws-c-s3 0.2.7 hba8c00c_1 conda-forge aws-c-sdkutils 0.1.9 h99c63db_0 conda-forge aws-checksums 0.1.14 h99c63db_5 conda-forge aws-crt-cpp 0.19.8 h8b21dc2_12 conda-forge aws-sdk-cpp 1.10.57 h0d082ec_8 conda-forge awscli 2.13.39 py311h6eed73b_0 conda-forge awscrt 0.16.13 py311he964f54_4 conda-forge azure-core 1.29.5 pyhd8ed1ab_0 conda-forge azure-datalake-store 0.0.51 pyh9f0ad1d_0 conda-forge azure-identity 1.15.0 pyhd8ed1ab_0 conda-forge azure-storage-blob 12.19.0 pyhd8ed1ab_0 conda-forge babel 2.14.0 pyhd8ed1ab_0 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 pyhd8ed1ab_3 conda-forge backports.functools_lru_cache 2.0.0 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.12.2 pyha770c72_0 conda-forge black 23.12.1 py311h6eed73b_0 conda-forge blackdoc 0.3.9 pyhd8ed1ab_0 conda-forge bleach 6.1.0 pyhd8ed1ab_0 conda-forge blinker 1.7.0 pyhd8ed1ab_0 conda-forge blosc 1.21.5 heccf04b_0 conda-forge bmipy 2.0.1 pyhd8ed1ab_0 conda-forge bokeh 3.3.2 pyhd8ed1ab_0 conda-forge boltons 23.1.1 pyhd8ed1ab_0 conda-forge boost-cpp 1.78.0 h31500c2_2 conda-forge botocore 1.33.13 pyhd8ed1ab_0 conda-forge bottleneck 1.3.7 py311h4a70a88_1 conda-forge bounded-pool-executor 0.0.3 pyhd8ed1ab_0 conda-forge branca 0.7.0 pyhd8ed1ab_1 conda-forge brotli 1.0.9 hb7f2c08_9 conda-forge brotli-bin 1.0.9 hb7f2c08_9 conda-forge brotli-python 1.0.9 py311h814d153_9 conda-forge brotlipy 0.7.0 py311h2725bcf_1006 conda-forge brunsli 0.1 h046ec9c_0 conda-forge bzip2 1.0.8 h10d778d_5 conda-forge c-ares 1.24.0 h10d778d_0 conda-forge c-blosc2 2.12.0 h0ae8482_0 conda-forge ca-certificates 2023.11.17 h8857fd0_0 conda-forge cached-property 1.5.2 hd8ed1ab_1 conda-forge cached_property 1.5.2 pyha770c72_1 conda-forge cairo 1.16.0 h904041c_1014 conda-forge cartopy 0.22.0 py311h1eadf79_1 conda-forge cctools 973.0.1 hd9ad811_15 conda-forge cctools_osx-64 973.0.1 habff3f6_15 conda-forge certifi 2023.11.17 pyhd8ed1ab_0 conda-forge cf-units 3.2.0 py311hc9a392d_4 conda-forge cffi 1.16.0 py311hc0b63fd_0 conda-forge cfgv 3.3.1 pyhd8ed1ab_0 conda-forge cfitsio 4.2.0 hd56cc12_0 conda-forge cftime 1.6.3 py311hc9a392d_0 conda-forge charls 2.4.2 he965462_0 conda-forge charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge clang 15.0.7 hac416ee_4 conda-forge clang-15 15.0.7 default_h6b1ee41_4 conda-forge clang_impl_osx-64 15.0.7 h03d6864_8 conda-forge clang_osx-64 15.0.7 hb91bd55_8 conda-forge clangxx 15.0.7 default_h6b1ee41_4 conda-forge click 8.1.7 unix_pyh707e725_0 conda-forge click-plugins 1.1.1 py_0 conda-forge cligj 0.7.2 pyhd8ed1ab_1 conda-forge cloudpickle 3.0.0 pyhd8ed1ab_0 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge colorcet 3.0.1 pyhd8ed1ab_0 conda-forge comm 0.2.1 pyhd8ed1ab_0 conda-forge commonmark 0.9.1 py_0 conda-forge compiler-rt 15.0.7 ha38d28d_2 conda-forge compiler-rt_osx-64 15.0.7 ha38d28d_2 conda-forge compliance-checker 5.1.0 pyhd8ed1ab_0 conda-forge conda 23.7.4 py311h6eed73b_0 conda-forge conda-package-handling 2.2.0 pyh38be061_0 conda-forge conda-package-streaming 0.9.0 pyhd8ed1ab_0 conda-forge contourpy 1.2.0 py311h7bea37d_0 conda-forge coverage 7.4.0 py311he705e18_0 conda-forge cryptography 40.0.2 py311h61927ef_0 conda-forge curl 8.1.2 hbee3ae8_0 conda-forge cycler 0.12.1 pyhd8ed1ab_0 conda-forge cytoolz 0.12.2 py311h2725bcf_1 conda-forge dask 2023.12.1 pyhd8ed1ab_0 conda-forge dask-core 2023.12.1 pyhd8ed1ab_0 conda-forge dataclasses 0.8 pyhc8e2a94_3 conda-forge dav1d 1.2.1 h0dc2134_0 conda-forge debugpy 1.8.0 py311hdf8f085_1 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge distlib 0.3.8 pyhd8ed1ab_0 conda-forge distributed 2023.12.1 pyhd8ed1ab_0 conda-forge distro 1.8.0 pyhd8ed1ab_0 conda-forge docutils 0.19 py311h6eed73b_1 conda-forge dolfyn 1.3.0 py311h6eed73b_1 conda-forge earthaccess 0.8.2 pyhd8ed1ab_0 conda-forge entrypoints 0.4 pyhd8ed1ab_0 conda-forge et_xmlfile 1.1.0 pyhd8ed1ab_0 conda-forge exceptiongroup 1.2.0 pyhd8ed1ab_0 conda-forge execnet 2.0.2 pyhd8ed1ab_0 conda-forge executing 2.0.1 pyhd8ed1ab_0 conda-forge exiftool 12.42 pl5321h694c41f_0 conda-forge expat 2.5.0 hf0c8a7f_1 conda-forge fasteners 0.17.3 pyhd8ed1ab_0 conda-forge ffmpeg 5.1.2 gpl_h8b4fe81_106 conda-forge fftw 3.3.10 nompi_h4fa670e_108 conda-forge filelock 3.13.1 pyhd8ed1ab_0 conda-forge fiona 1.8.22 py311h9687163_5 conda-forge flake8 7.0.0 pyhd8ed1ab_0 conda-forge flit-core 3.9.0 pyhd8ed1ab_0 conda-forge fmt 9.1.0 hb8565cd_0 conda-forge folium 0.15.1 pyhd8ed1ab_0 conda-forge font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge font-ttf-inconsolata 3.000 h77eed37_0 conda-forge font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge font-ttf-ubuntu 0.83 h77eed37_1 conda-forge fontconfig 2.14.2 h5bb23bf_0 conda-forge fonts-conda-ecosystem 1 0 conda-forge fonts-conda-forge 1 0 conda-forge fonttools 4.47.0 py311he705e18_0 conda-forge fqdn 1.5.1 pyhd8ed1ab_0 conda-forge freetype 2.12.1 h60636b9_2 conda-forge freexl 1.0.6 hb7f2c08_1 conda-forge fribidi 1.0.10 hbcb3906_0 conda-forge frozenlist 1.4.1 py311he705e18_0 conda-forge fsspec 2023.12.2 pyhca7485f_0 conda-forge future 0.18.3 pyhd8ed1ab_0 conda-forge gdal 3.6.2 py311h619941e_9 conda-forge gdbm 1.18 h8a0c380_2 conda-forge gdk-pixbuf 2.42.10 he00a9fc_0 conda-forge geopandas 0.14.2 pyhd8ed1ab_0 conda-forge geopandas-base 0.14.2 pyha770c72_0 conda-forge geos 3.11.1 hf0c8a7f_0 conda-forge geotiff 1.7.1 hd690177_6 conda-forge gettext 0.21.1 h8a4c099_0 conda-forge gflags 2.2.2 hb1e8313_1004 conda-forge gfortran 13.2.0 h2c809b3_1 conda-forge gfortran_impl_osx-64 13.2.0 h7643cbd_1 conda-forge gfortran_osx-64 13.2.0 h18f7dce_1 conda-forge gh 2.40.1 h990441c_0 conda-forge ghostscript 10.02.1 h93d8f39_0 conda-forge giflib 5.2.1 hb7f2c08_3 conda-forge git 2.42.0 pl5321hbb4c4ee_0 conda-forge git-lfs 3.4.1 h694c41f_0 conda-forge glog 0.6.0 h8ac2a54_0 conda-forge gmp 6.3.0 h93d8f39_0 conda-forge gnutls 3.7.9 h1951705_0 conda-forge graphite2 1.3.13 h2e338ed_1001 conda-forge graphviz 7.1.0 hc51f7b9_0 conda-forge grpc-cpp 1.51.1 h88f4db0_3 conda-forge gtk2 2.24.33 h7c1209e_2 conda-forge gts 0.7.6 h53e17e3_4 conda-forge h11 0.14.0 pyhd8ed1ab_0 conda-forge h5netcdf 1.3.0 pyhd8ed1ab_0 conda-forge h5py 3.8.0 nompi_py311h777de7a_100 conda-forge harfbuzz 6.0.0 h08f8713_0 conda-forge hdf4 4.2.15 h7aa5921_5 conda-forge hdf5 1.12.2 nompi_h48135f9_101 conda-forge heapdict 1.0.1 py_0 conda-forge holoviews 1.18.1 pyhd8ed1ab_0 conda-forge hvplot 0.9.1 pyhd8ed1ab_0 conda-forge hydromt 0.8.0 pyhd8ed1ab_0 conda-forge hydromt_sfincs 1.0.2 pyhd8ed1ab_0 conda-forge icu 70.1 h96cf925_0 conda-forge identify 2.5.33 pyhd8ed1ab_0 conda-forge idna 3.6 pyhd8ed1ab_0 conda-forge imagecodecs 2023.1.23 py311h86fed7d_0 conda-forge imageio 2.33.1 pyh8c1a49c_0 conda-forge imagemagick 7.1.1_5 pl5321h3f82b43_1 conda-forge imagesize 1.4.1 pyhd8ed1ab_0 conda-forge importlib-metadata 7.0.1 pyha770c72_0 conda-forge importlib_metadata 7.0.1 hd8ed1ab_0 conda-forge importlib_resources 6.1.1 pyhd8ed1ab_0 conda-forge iniconfig 2.0.0 pyhd8ed1ab_0 conda-forge ipykernel 6.28.0 pyh3cd1d5f_0 conda-forge ipython 8.17.2 pyh31c8845_0 conda-forge ipython_genutils 0.2.0 py_1 conda-forge isl 0.25 hb486fe8_0 conda-forge isodate 0.6.1 pyhd8ed1ab_0 conda-forge isoduration 20.11.0 pyhd8ed1ab_0 conda-forge isort 5.13.2 pyhd8ed1ab_0 conda-forge jbig 2.1 h0d85af4_2003 conda-forge jedi 0.19.1 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge jmespath 1.0.1 pyhd8ed1ab_0 conda-forge joblib 1.3.2 pyhd8ed1ab_0 conda-forge jpeg 9e hb7f2c08_3 conda-forge json-c 0.16 h01d06f9_0 conda-forge json5 0.9.14 pyhd8ed1ab_0 conda-forge jsonpatch 1.33 pyhd8ed1ab_0 conda-forge jsonpointer 2.4 py311h6eed73b_3 conda-forge jsonschema 4.20.0 pyhd8ed1ab_0 conda-forge jsonschema-specifications 2023.12.1 pyhd8ed1ab_0 conda-forge jsonschema-with-format-nongpl 4.20.0 pyhd8ed1ab_0 conda-forge julia 1.9.3 h8d83f4a_0 conda-forge jupyter-lsp 2.2.1 pyhd8ed1ab_0 conda-forge jupyter_client 8.6.0 pyhd8ed1ab_0 conda-forge jupyter_core 5.7.1 py311h6eed73b_0 conda-forge jupyter_events 0.9.0 pyhd8ed1ab_0 conda-forge jupyter_server 2.12.2 pyhd8ed1ab_0 conda-forge jupyter_server_terminals 0.5.1 pyhd8ed1ab_0 conda-forge jupyterlab 4.0.10 pyhd8ed1ab_0 conda-forge jupyterlab_pygments 0.3.0 pyhd8ed1ab_0 conda-forge jupyterlab_server 2.25.2 pyhd8ed1ab_0 conda-forge jxrlib 1.1 h10d778d_3 conda-forge kealib 1.5.0 h5c1f988_0 conda-forge kiwisolver 1.4.5 py311h5fe6e05_1 conda-forge krb5 1.20.1 h049b76e_0 conda-forge lame 3.100 hb7f2c08_1003 conda-forge landlab 2.7.0 py311h1eadf79_0 conda-forge lazy_loader 0.3 pyhd8ed1ab_0 conda-forge lcms2 2.15 h29502cd_0 conda-forge ld64 609 ha91a046_15 conda-forge ld64_osx-64 609 h0fd476b_15 conda-forge lerc 4.0.0 hb486fe8_0 conda-forge libabseil 20230125.0 cxx17_hf0c8a7f_1 conda-forge libaec 1.1.2 he965462_1 conda-forge libarchive 3.6.2 h6d8d9f1_0 conda-forge libarrow 11.0.0 hae1ae47_9_cpu conda-forge libavif 0.11.1 h22361c6_2 conda-forge libblas 3.9.0 20_osx64_openblas conda-forge libbrotlicommon 1.0.9 hb7f2c08_9 conda-forge libbrotlidec 1.0.9 hb7f2c08_9 conda-forge libbrotlienc 1.0.9 hb7f2c08_9 conda-forge libcblas 3.9.0 20_osx64_openblas conda-forge libclang-cpp15 15.0.7 default_h6b1ee41_4 conda-forge libcrc32c 1.1.2 he49afe7_0 conda-forge libcurl 8.1.2 hbee3ae8_0 conda-forge libcxx 16.0.6 hd57cbcb_0 conda-forge libdap4 3.20.6 h3e144a0_2 conda-forge libdeflate 1.17 hac1461d_0 conda-forge libedit 3.1.20191231 h0678c8f_2 conda-forge libev 4.33 h10d778d_2 conda-forge libevent 2.1.10 h7d65743_4 conda-forge libexpat 2.5.0 hf0c8a7f_1 conda-forge libffi 3.4.2 h0d85af4_5 conda-forge libgd 2.3.3 h4685329_4 conda-forge libgdal 3.6.2 hd7924a8_9 conda-forge libgfortran 5.0.0 13_2_0_h97931a8_1 conda-forge libgfortran-devel_osx-64 13.2.0 h80d4556_1 conda-forge libgfortran5 13.2.0 h2873a65_1 conda-forge libglib 2.78.1 h6d9ecee_0 conda-forge libgoogle-cloud 2.8.0 h2ba3e75_0 conda-forge libgrpc 1.51.1 h5bc3d57_3 conda-forge libiconv 1.17 hd75f5a5_2 conda-forge libidn2 2.3.4 hb7f2c08_0 conda-forge libkml 1.3.0 hab3ca0e_1016 conda-forge liblapack 3.9.0 20_osx64_openblas conda-forge libllvm14 14.0.6 hc8e404f_4 conda-forge libllvm15 15.0.7 h7001e86_1 conda-forge libmagic 5.39 haaf19a9_0 conda-forge libmamba 1.4.9 hc2ec11d_0 conda-forge libmambapy 1.4.9 py311h266e549_0 conda-forge libnetcdf 4.9.1 nompi_h56690a0_101 conda-forge libnghttp2 1.58.0 h64cf6d3_1 conda-forge libopenblas 0.3.25 openmp_hfef2a42_0 conda-forge libopenblas-ilp64 0.3.25 openmp_h17068ef_0 conda-forge libopenlibm4 0.8.1 h10d778d_1 conda-forge libopus 1.3.1 hc929b4f_1 conda-forge libosxunwind 0.0.6 h940c156_0 conda-forge libpng 1.6.39 ha978bb4_0 conda-forge libpq 15.2 h3640bf0_0 conda-forge libprotobuf 3.21.12 h7d26f99_2 conda-forge librsvg 2.54.4 h3d48ba6_0 conda-forge librttopo 1.1.0 h9461dca_12 conda-forge libsodium 1.0.18 hbcb3906_1 conda-forge libsolv 0.7.27 hf4d7fad_0 conda-forge libspatialindex 1.9.3 he49afe7_4 conda-forge libspatialite 5.0.1 hd6e941a_23 conda-forge libsqlite 3.44.2 h92b6c6a_0 conda-forge libssh2 1.11.0 hd019ec5_0 conda-forge libtasn1 4.19.0 hb7f2c08_0 conda-forge libthrift 0.18.0 h16802d8_0 conda-forge libtiff 4.5.0 hee9004a_2 conda-forge libtool 2.4.7 hf0c8a7f_0 conda-forge libudunits2 2.2.28 h516ac8c_3 conda-forge libunistring 0.9.10 h0d85af4_0 conda-forge libutf8proc 2.8.0 hb7f2c08_0 conda-forge libvpx 1.11.0 he49afe7_3 conda-forge libwebp 1.2.4 h70a068d_1 conda-forge libwebp-base 1.2.4 h775f41a_0 conda-forge libxcb 1.13 h0d85af4_1004 conda-forge libxml2 2.10.3 h201ad9d_4 conda-forge libxslt 1.1.37 h5d22bc9_0 conda-forge libzip 1.10.1 hc158999_3 conda-forge libzlib 1.2.13 h8a1eda9_5 conda-forge libzopfli 1.0.3 h046ec9c_0 conda-forge linkify-it-py 2.0.2 pyhd8ed1ab_0 conda-forge llvm-openmp 17.0.6 hb6ac08f_0 conda-forge llvm-tools 15.0.7 h7001e86_1 conda-forge llvmlite 0.41.1 py311hb5c2e0a_0 conda-forge locket 1.0.0 pyhd8ed1ab_0 conda-forge lxml 4.9.2 py311h9f2bb26_0 conda-forge lz4 4.3.2 py311hbaf8d61_1 conda-forge lz4-c 1.9.4 hf0c8a7f_0 conda-forge lzo 2.10 haf1e3a3_1000 conda-forge mamba 1.4.9 py311h8082e30_0 conda-forge mapclassify 2.6.1 pyhd8ed1ab_0 conda-forge markdown 3.5.1 pyhd8ed1ab_0 conda-forge markdown-it-py 3.0.0 pyhd8ed1ab_0 conda-forge markupsafe 2.1.3 py311h2725bcf_1 conda-forge matplotlib 3.8.2 py311h6eed73b_0 conda-forge matplotlib-base 3.8.2 py311hd316c10_0 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mccabe 0.7.0 pyhd8ed1ab_0 conda-forge mdit-py-plugins 0.4.0 pyhd8ed1ab_0 conda-forge mdurl 0.1.2 pyhd8ed1ab_0 conda-forge metis 5.1.1 h93d8f39_2 conda-forge missingpy 0.2.0 dev_0 mistune 3.0.2 pyhd8ed1ab_0 conda-forge more-itertools 10.1.0 pyhd8ed1ab_0 conda-forge mosh 1.4.0 pl5321h9fefacb_2 conda-forge mpc 1.3.1 h81bd1dd_0 conda-forge mpfr 4.2.1 h0c69b56_0 conda-forge mplcursors 0.5.2 pyhd8ed1ab_0 conda-forge msal 1.26.0 pyhd8ed1ab_0 conda-forge msal_extensions 1.0.0 pyhd8ed1ab_0 conda-forge msgpack-python 1.0.7 py311h7bea37d_0 conda-forge msrest 0.7.1 pyhd8ed1ab_0 conda-forge multidict 6.0.4 py311h5547dcb_1 conda-forge multimethod 1.9.1 pyhd8ed1ab_0 conda-forge munch 4.0.0 pyhd8ed1ab_0 conda-forge munkres 1.1.4 pyh9f0ad1d_0 conda-forge mypy_extensions 1.0.0 pyha770c72_0 conda-forge nbclient 0.8.0 pyhd8ed1ab_0 conda-forge nbconvert 7.14.0 pyhd8ed1ab_0 conda-forge nbconvert-core 7.14.0 pyhd8ed1ab_0 conda-forge nbconvert-pandoc 7.14.0 pyhd8ed1ab_0 conda-forge nbformat 5.9.2 pyhd8ed1ab_0 conda-forge nbstripout 0.6.1 pyhd8ed1ab_0 conda-forge ncurses 6.4 h93d8f39_2 conda-forge nest-asyncio 1.5.8 pyhd8ed1ab_0 conda-forge netcdf4 1.6.3 nompi_py311he6f34b2_100 conda-forge nettle 3.9.1 h8e11ae5_0 conda-forge networkx 3.2.1 pyhd8ed1ab_0 conda-forge nodeenv 1.8.0 pyhd8ed1ab_0 conda-forge notebook 7.0.6 pyhd8ed1ab_0 conda-forge notebook-shim 0.2.3 pyhd8ed1ab_0 conda-forge nspr 4.35 hea0b92c_0 conda-forge nss 3.96 ha05da47_0 conda-forge numba 0.58.1 py311h32f2313_0 conda-forge numcodecs 0.12.1 py311hd39e593_0 conda-forge numpy 1.26.3 py311hc43a94b_0 conda-forge numpydoc 1.6.0 pyhd8ed1ab_0 conda-forge oauthlib 3.2.2 pyhd8ed1ab_0 conda-forge openblas-ilp64 0.3.25 openmp_ha601604_0 conda-forge openh264 2.3.1 hf0c8a7f_2 conda-forge openjpeg 2.5.0 h13ac156_2 conda-forge openlibm 0.8.1 h10d778d_1 conda-forge openpyxl 3.1.2 py311h2725bcf_1 conda-forge openssl 3.2.0 hd75f5a5_1 conda-forge orc 1.8.2 ha9d861c_2 conda-forge outcome 1.3.0.post0 pyhd8ed1ab_0 conda-forge overrides 7.4.0 pyhd8ed1ab_0 conda-forge owslib 0.29.3 pyhd8ed1ab_0 conda-forge p11-kit 0.24.1 h65f8906_0 conda-forge p7zip 16.02 he49afe7_1001 conda-forge packaging 23.2 pyhd8ed1ab_0 conda-forge pandas 2.1.4 py311h1eadf79_0 conda-forge pandoc 3.1.3 h9d075a6_0 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge panel 1.3.6 pyhd8ed1ab_0 conda-forge pango 1.50.14 hbd9bf65_0 conda-forge parallel 20230922 h694c41f_0 conda-forge param 2.0.1 pyhca7485f_0 conda-forge parquet-cpp 1.5.1 2 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge partd 1.4.1 pyhd8ed1ab_0 conda-forge pathspec 0.12.1 pyhd8ed1ab_0 conda-forge patsy 0.5.6 pyhd8ed1ab_0 conda-forge pcre 8.45 he49afe7_0 conda-forge pcre2 10.40 h1c4e4bc_0 conda-forge pendulum 3.0.0 py311h1976286_0 conda-forge perl 5.32.1 7_h10d778d_perl5 conda-forge pexpect 4.8.0 pyh9f0ad1d_2 conda-forge pickleshare 0.7.5 py_1003 conda-forge pillow 9.4.0 py311h5bae705_1 conda-forge pip 23.3.2 pyhd8ed1ab_0 conda-forge pixman 0.43.0 h73e2aa4_0 conda-forge pkg-config 0.29.2 ha3d46e9_1008 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge planetary-computer 1.0.0 pyhd8ed1ab_0 conda-forge platformdirs 4.1.0 pyhd8ed1ab_0 conda-forge plotly 5.18.0 pyhd8ed1ab_0 conda-forge pluggy 1.3.0 pyhd8ed1ab_0 conda-forge polib 1.2.0 pyhd8ed1ab_0 conda-forge pooch 1.8.0 pyhd8ed1ab_0 conda-forge poppler 23.03.0 h6e9091c_0 conda-forge poppler-data 0.4.12 hd8ed1ab_0 conda-forge portalocker 2.8.2 py311h6eed73b_1 conda-forge postgresql 15.2 hbea33b9_0 conda-forge pqdm 0.2.0 pyhd8ed1ab_0 conda-forge pre-commit 3.6.0 pyha770c72_0 conda-forge proj 9.1.1 hf909084_2 conda-forge prometheus_client 0.19.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.38 pyha770c72_0 conda-forge prompt_toolkit 3.0.38 hd8ed1ab_0 conda-forge psutil 5.9.7 py311he705e18_0 conda-forge pthread-stubs 0.4 hc929b4f_1001 conda-forge ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge py 1.11.0 pyh6c4a22f_0 conda-forge pyarrow 11.0.0 py311hb17b21d_9_cpu conda-forge pyarrow-hotfix 0.6 pyhd8ed1ab_0 conda-forge pyasn1 0.5.1 pyhd8ed1ab_0 conda-forge pybind11-abi 4 hd8ed1ab_3 conda-forge pycodestyle 2.11.1 pyhd8ed1ab_0 conda-forge pycosat 0.6.6 py311h2725bcf_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pyct 0.4.6 py_0 conda-forge pyct-core 0.4.6 py_0 conda-forge pydantic 2.5.3 pyhd8ed1ab_0 conda-forge pydantic-core 2.14.6 py311h5e0f0e4_1 conda-forge pyflakes 3.2.0 pyhd8ed1ab_0 conda-forge pyflwdir 0.5.8 pyhd8ed1ab_0 conda-forge pygeoif 1.2.0 pyhd8ed1ab_0 conda-forge pygments 2.17.2 pyhd8ed1ab_0 conda-forge pyjwt 2.8.0 pyhd8ed1ab_0 conda-forge pynmea2 1.19.0 pyhd8ed1ab_0 conda-forge pyobjc-core 10.1 py311h9b70068_0 conda-forge pyobjc-framework-cocoa 10.1 py311h9b70068_0 conda-forge pyopenssl 23.1.1 pyhd8ed1ab_0 conda-forge pyparsing 3.1.1 pyhd8ed1ab_0 conda-forge pyproj 3.5.0 py311hdc3c720_0 conda-forge pyrsistent 0.20.0 py311he705e18_0 conda-forge pyshp 2.3.1 pyhd8ed1ab_0 conda-forge pysocks 1.7.1 pyha2e5f31_6 conda-forge pystac 1.9.0 pyhd8ed1ab_0 conda-forge pystac-client 0.7.5 pyhd8ed1ab_0 conda-forge pytest 7.4.4 pyhd8ed1ab_0 conda-forge pytest-forked 1.6.0 pyhd8ed1ab_0 conda-forge pytest-xdist 3.5.0 pyhd8ed1ab_0 conda-forge python 3.11.7 h9f0c242_1_cpython conda-forge python-cmr 0.9.0 pyhd8ed1ab_0 conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-dotenv 1.0.0 pyhd8ed1ab_1 conda-forge python-fastjsonschema 2.19.1 pyhd8ed1ab_0 conda-forge python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge python-magic 0.4.27 py311h6eed73b_4 conda-forge python-tzdata 2023.4 pyhd8ed1ab_0 conda-forge python.app 1.4 py311h2725bcf_3 conda-forge python_abi 3.11 4_cp311 conda-forge pytz 2023.3.post1 pyhd8ed1ab_0 conda-forge pytzdata 2020.1 pyh9f0ad1d_0 conda-forge pyupgrade 3.15.0 pyhd8ed1ab_0 conda-forge pyviz_comms 3.0.0 pyhd8ed1ab_0 conda-forge pywavelets 1.4.1 py311h4a70a88_1 conda-forge pyyaml 6.0.1 py311h2725bcf_1 conda-forge pyzmq 25.1.2 py311h889d6d6_0 conda-forge rasterio 1.3.6 py311hc41c901_0 conda-forge re2 2023.02.02 hf0c8a7f_0 conda-forge readline 8.2 h9e318b2_1 conda-forge referencing 0.32.1 pyhd8ed1ab_0 conda-forge regex 2023.12.25 py311he705e18_0 conda-forge reproc 14.2.4.post0 h10d778d_1 conda-forge reproc-cpp 14.2.4.post0 h93d8f39_1 conda-forge requests 2.31.0 pyhd8ed1ab_0 conda-forge requests-oauthlib 1.3.1 pyhd8ed1ab_0 conda-forge rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge rich 13.7.0 pyhd8ed1ab_0 conda-forge rich-click 1.7.3 pyhd8ed1ab_0 conda-forge richdem 2.3.0 py311h85c31f6_4 conda-forge rioxarray 0.15.0 pyhd8ed1ab_0 conda-forge rpds-py 0.16.2 py311h5e0f0e4_0 conda-forge rsa 4.9 pyhd8ed1ab_0 conda-forge rtree 1.1.0 py311hbc1f44b_0 conda-forge ruamel.yaml 0.17.21 py311h5547dcb_3 conda-forge ruamel.yaml.clib 0.2.7 py311h2725bcf_2 conda-forge ruamel_yaml 0.15.80 py311h2725bcf_1009 conda-forge ruby 3.1.2 hb3742b3_1 conda-forge s3cmd 2.0.2 py_0 conda-forge s3fs 2023.12.2 pyhd8ed1ab_0 conda-forge s3transfer 0.10.0 pyhd8ed1ab_0 conda-forge scikit-image 0.22.0 py311h1eadf79_2 conda-forge scikit-learn 1.3.2 py311h66081b9_2 conda-forge scikit-spatial 6.8.1 pyhd8ed1ab_0 conda-forge scipy 1.11.4 py311he0bea55_0 conda-forge seawater 3.3.4 py_1 conda-forge selenium 4.16.0 pyhd8ed1ab_0 conda-forge selenium-manager 4.16.0 h63b85fc_0 conda-forge send2trash 1.8.2 pyhd1c38e8_0 conda-forge setuptools 69.0.3 pyhd8ed1ab_0 conda-forge shapely 2.0.1 py311h781b04c_0 conda-forge sigtool 0.1.3 h88f4db0_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge snappy 1.1.10 h225ccf5_0 conda-forge sniffio 1.3.0 pyhd8ed1ab_0 conda-forge snowballstemmer 2.2.0 pyhd8ed1ab_0 conda-forge snuggs 1.4.7 py_0 conda-forge sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge soupsieve 2.5 pyhd8ed1ab_1 conda-forge sphinx 7.2.6 pyhd8ed1ab_0 conda-forge sphinx-argparse 0.4.0 pyhd8ed1ab_0 conda-forge sphinx-lint 0.9.1 pyhd8ed1ab_0 conda-forge sphinx_rtd_theme 2.0.0 pyha770c72_0 conda-forge sphinxcontrib-applehelp 1.0.7 pyhd8ed1ab_0 conda-forge sphinxcontrib-devhelp 1.0.5 pyhd8ed1ab_0 conda-forge sphinxcontrib-htmlhelp 2.0.4 pyhd8ed1ab_0 conda-forge sphinxcontrib-jquery 4.1 pyhd8ed1ab_0 conda-forge sphinxcontrib-jsmath 1.0.1 py_0 conda-forge sphinxcontrib-qthelp 1.0.6 pyhd8ed1ab_0 conda-forge sphinxcontrib-serializinghtml 1.1.9 pyhd8ed1ab_0 conda-forge sqlite 3.44.2 h7461747_0 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge statsmodels 0.14.1 py311hc9a392d_0 conda-forge stglib 0.10.0+0.g691e08b.dirty dev_0 suitesparse 5.10.1 h0a40b7c_2 conda-forge svt-av1 1.4.1 hf0c8a7f_0 conda-forge tabulate 0.9.0 pyhd8ed1ab_1 conda-forge tapi 1100.0.11 h9ce4665_0 conda-forge tbb 2021.10.0 h1c7c39f_2 conda-forge tblib 3.0.0 pyhd8ed1ab_0 conda-forge tenacity 8.2.3 pyhd8ed1ab_0 conda-forge terminado 0.18.0 pyh31c8845_0 conda-forge threadpoolctl 3.2.0 pyha21a80b_0 conda-forge tifffile 2023.8.12 pyhd8ed1ab_0 conda-forge tiledb 2.13.2 h8b9cbf0_0 conda-forge time-machine 2.13.0 py311he705e18_1 conda-forge tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge tinynetrc 1.3.1 pyhd8ed1ab_0 conda-forge tk 8.6.13 h1abcd95_1 conda-forge tokenize-rt 5.2.0 pyhd8ed1ab_0 conda-forge toml 0.10.2 pyhd8ed1ab_0 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge toolz 0.12.0 pyhd8ed1ab_0 conda-forge tornado 6.3.3 py311h2725bcf_1 conda-forge tqdm 4.66.1 pyhd8ed1ab_0 conda-forge traitlets 5.14.1 pyhd8ed1ab_0 conda-forge trio 0.23.2 py311h6eed73b_0 conda-forge trio-websocket 0.11.1 pyhd8ed1ab_0 conda-forge typed-ast 1.5.5 py311h2725bcf_1 conda-forge types-python-dateutil 2.8.19.20240106 pyhd8ed1ab_0 conda-forge typing-extensions 4.9.0 hd8ed1ab_0 conda-forge typing_extensions 4.9.0 pyha770c72_0 conda-forge typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge tzcode 2023d h10d778d_0 conda-forge tzdata 2023d h0c530f3_0 conda-forge uc-micro-py 1.0.2 pyhd8ed1ab_0 conda-forge udunits2 2.2.28 h516ac8c_3 conda-forge ukkonen 1.0.1 py311h5fe6e05_4 conda-forge unicodedata2 15.1.0 py311h2725bcf_0 conda-forge universal_pathlib 0.1.4 pyhd8ed1ab_0 conda-forge uri-template 1.3.0 pyhd8ed1ab_0 conda-forge uriparser 0.9.7 hf0c8a7f_1 conda-forge urllib3 1.26.18 pyhd8ed1ab_0 conda-forge utm 0.7.0 pyhd8ed1ab_0 conda-forge validators 0.22.0 pyhd8ed1ab_0 conda-forge verde 1.8.0 pyhd8ed1ab_0 conda-forge versioneer 0.29 pyhd8ed1ab_0 conda-forge virtualenv 20.25.0 pyhd8ed1ab_0 conda-forge wcwidth 0.2.13 pyhd8ed1ab_0 conda-forge webcolors 1.13 pyhd8ed1ab_0 conda-forge webencodings 0.5.1 pyhd8ed1ab_2 conda-forge websocket-client 1.7.0 pyhd8ed1ab_0 conda-forge wget 1.20.3 hd3787cc_1 conda-forge wheel 0.42.0 pyhd8ed1ab_0 conda-forge windrose 1.9.0 pyhd8ed1ab_0 conda-forge wrapt 1.16.0 py311he705e18_0 conda-forge wsproto 1.2.0 pyhd8ed1ab_0 conda-forge x264 1!164.3095 h775f41a_2 conda-forge x265 3.5 hbb4e6a2_3 conda-forge xarray 2023.12.0 pyhd8ed1ab_0 conda-forge xerces-c 3.2.4 h2007e90_1 conda-forge xmltodict 0.13.0 pyhd8ed1ab_0 conda-forge xorg-kbproto 1.0.7 h35c211d_1002 conda-forge xorg-libice 1.0.10 h0d85af4_0 conda-forge xorg-libsm 1.2.3 h0d85af4_1000 conda-forge xorg-libx11 1.8.4 hb7f2c08_0 conda-forge xorg-libxau 1.0.11 h0dc2134_0 conda-forge xorg-libxdmcp 1.1.3 h35c211d_0 conda-forge xorg-libxext 1.3.4 hb7f2c08_2 conda-forge xorg-libxrender 0.9.10 h0d85af4_1003 conda-forge xorg-libxt 1.3.0 h0dc2134_0 conda-forge xorg-renderproto 0.11.1 h0d85af4_1002 conda-forge xorg-xextproto 7.3.0 hb7f2c08_1003 conda-forge xorg-xproto 7.0.31 h35c211d_1007 conda-forge xyzservices 2023.10.1 pyhd8ed1ab_0 conda-forge xz 5.2.6 h775f41a_0 conda-forge yaml 0.2.5 h0d85af4_2 conda-forge yaml-cpp 0.7.0 he965462_3 conda-forge yarl 1.9.3 py311he705e18_0 conda-forge zarr 2.16.1 pyhd8ed1ab_0 conda-forge zeromq 4.3.5 h93d8f39_0 conda-forge zfp 1.0.1 h295e98d_0 conda-forge zict 3.0.0 pyhd8ed1ab_0 conda-forge zipp 3.17.0 pyhd8ed1ab_0 conda-forge zlib 1.2.13 h8a1eda9_5 conda-forge zlib-ng 2.0.7 hb7f2c08_0 conda-forge zstandard 0.22.0 py311hed14148_0 conda-forge zstd 1.5.5 h829000d_0 conda-forge ``` ### pip list ``` Package Version Editable project location ----------------------------- ----------------------- ---------------------------------- adal 1.2.7 adlfs 2023.10.0 affine 2.4.0 aiobotocore 2.9.0 aiohttp 3.9.1 aioitertools 0.11.0 aiosignal 1.3.1 alabaster 0.7.15 annotated-types 0.6.0 antlr4-python3-runtime 4.11.1 anyio 4.2.0 appdirs 1.4.4 appnope 0.1.3 argon2-cffi 23.1.0 argon2-cffi-bindings 21.2.0 arrow 1.3.0 asciitree 0.3.3 asttokens 2.4.1 async-generator 1.10 async-lru 2.0.4 async-timeout 4.0.3 attrs 23.2.0 awscli 2.13.39 awscrt 0.16.13 azure-core 1.29.5 azure-datalake-store 0.0.51 azure-identity 1.15.0 azure-storage-blob 12.19.0 Babel 2.14.0 backcall 0.2.0 backports.functools-lru-cache 2.0.0 beautifulsoup4 4.12.2 black 23.12.1 blackdoc 0.3.9 bleach 6.1.0 blinker 1.7.0 bmipy 2.0.1 bokeh 3.3.2 boltons 23.1.1 botocore 1.33.13 Bottleneck 1.3.7 bounded-pool-executor 0.0.3 branca 0.7.0 Brotli 1.0.9 brotlipy 0.7.0 cached-property 1.5.2 Cartopy 0.22.0 certifi 2023.11.17 cf-units 3.2.0 cffi 1.16.0 cfgv 3.3.1 cftime 1.6.3 charset-normalizer 3.3.2 click 8.1.7 click-plugins 1.1.1 cligj 0.7.2 cloudpickle 3.0.0 colorama 0.4.6 colorcet 3.0.1 comm 0.2.1 commonmark 0.9.1 compliance-checker 5.1.0 conda 23.7.4 conda-package-handling 2.2.0 conda_package_streaming 0.9.0 contourpy 1.2.0 coverage 7.4.0 cryptography 40.0.2 cycler 0.12.1 cytoolz 0.12.2 dask 2023.12.1 dataclasses 0.8 debugpy 1.8.0 decorator 5.1.1 defusedxml 0.7.1 distlib 0.3.8 distributed 2023.12.1 distro 1.8.0 docutils 0.19 dolfyn 1.3.0 earthaccess 0.8.2 entrypoints 0.4 et-xmlfile 1.1.0 exceptiongroup 1.2.0 execnet 2.0.2 executing 2.0.1 fasteners 0.17.3 fastjsonschema 2.19.1 filelock 3.13.1 Fiona 1.8.22 flake8 7.0.0 flit_core 3.9.0 folium 0.15.1 fonttools 4.47.0 fqdn 1.5.1 frozenlist 1.4.1 fsspec 2023.12.2 future 0.18.3 GDAL 3.6.2 geopandas 0.14.2 h11 0.14.0 h5netcdf 1.3.0 h5py 3.8.0 HeapDict 1.0.1 holoviews 1.18.1 hvplot 0.9.1 hydromt 0.8.0 hydromt_sfincs 1.0.2 identify 2.5.33 idna 3.6 imagecodecs 2023.1.23 imageio 2.33.1 imagesize 1.4.1 importlib-metadata 7.0.1 importlib-resources 6.1.1 iniconfig 2.0.0 ipykernel 6.28.0 ipython 8.17.2 ipython-genutils 0.2.0 isodate 0.6.1 isoduration 20.11.0 isort 5.13.2 jedi 0.19.1 Jinja2 3.1.2 jmespath 1.0.1 joblib 1.3.2 json5 0.9.14 jsonpatch 1.33 jsonpointer 2.4 jsonschema 4.20.0 jsonschema-specifications 2023.12.1 jupyter_client 8.6.0 jupyter_core 5.7.1 jupyter-events 0.9.0 jupyter-lsp 2.2.1 jupyter_server 2.12.2 jupyter_server_terminals 0.5.1 jupyterlab 4.0.10 jupyterlab_pygments 0.3.0 jupyterlab_server 2.25.2 kiwisolver 1.4.5 landlab 2.7.0 lazy_loader 0.3 libmambapy 1.4.9 linkify-it-py 2.0.2 llvmlite 0.41.1 locket 1.0.0 lxml 4.9.2 lz4 4.3.2 mamba 1.4.9 mapclassify 2.6.1 Markdown 3.5.1 markdown-it-py 3.0.0 MarkupSafe 2.1.3 matplotlib 3.8.2 matplotlib-inline 0.1.6 mccabe 0.7.0 mdit-py-plugins 0.4.0 mdurl 0.1.2 missingpy 0.2.0 /Users/dnowacki/projects/missingpy mistune 3.0.2 more-itertools 10.1.0 mplcursors 0.5.2 msal 1.26.0 msal-extensions 1.0.0 msgpack 1.0.7 msrest 0.7.1 multidict 6.0.4 multimethod 1.9.1 munch 4.0.0 munkres 1.1.4 mypy-extensions 1.0.0 nbclient 0.8.0 nbconvert 7.14.0 nbformat 5.9.2 nbstripout 0.6.1 nest-asyncio 1.5.8 netCDF4 1.6.3 networkx 3.2.1 nodeenv 1.8.0 notebook 7.0.6 notebook_shim 0.2.3 numba 0.58.1 numcodecs 0.12.1 numpy 1.26.3 numpydoc 1.6.0 oauthlib 3.2.2 openpyxl 3.1.2 outcome 1.3.0.post0 overrides 7.4.0 OWSLib 0.29.3 packaging 23.2 pandas 2.1.4 pandocfilters 1.5.0 panel 1.3.6 param 2.0.1 parso 0.8.3 partd 1.4.1 pathspec 0.12.1 patsy 0.5.6 pendulum 3.0.0 pexpect 4.8.0 pickleshare 0.7.5 Pillow 9.4.0 pip 23.3.2 pkgutil_resolve_name 1.3.10 planetary-computer 1.0.0 platformdirs 4.1.0 plotly 5.18.0 pluggy 1.3.0 polib 1.2.0 pooch 1.8.0 portalocker 2.8.2 pqdm 0.2.0 pre-commit 3.6.0 prometheus-client 0.19.0 prompt-toolkit 3.0.38 psutil 5.9.7 ptyprocess 0.7.0 pure-eval 0.2.2 py 1.11.0 pyarrow 11.0.0 pyarrow-hotfix 0.6 pyasn1 0.5.1 pycodestyle 2.11.1 pycosat 0.6.6 pycparser 2.21 pyct 0.4.6 pydantic 2.5.3 pydantic_core 2.14.6 pyflakes 3.2.0 pyflwdir 0.5.8 pygeoif 1.2.0 Pygments 2.17.2 PyJWT 2.8.0 pynmea2 1.19.0 pyobjc-core 10.1 pyobjc-framework-Cocoa 10.1 pyOpenSSL 23.1.1 pyparsing 3.1.1 pyproj 3.5.0 pyrsistent 0.20.0 pyshp 2.3.1 PySocks 1.7.1 pystac 1.9.0 pystac-client 0.7.5 pytest 7.4.4 pytest-forked 1.6.0 pytest-xdist 3.5.0 python-cmr 0.9.0 python-dateutil 2.8.2 python-dotenv 1.0.0 python-json-logger 2.0.7 python-magic 0.4.27 pytz 2023.3.post1 pytzdata 2020.1 pyupgrade 3.15.0 pyviz_comms 3.0.0 PyWavelets 1.4.1 PyYAML 6.0.1 pyzmq 25.1.2 rasterio 1.3.6 referencing 0.32.1 regex 2023.12.25 requests 2.31.0 requests-oauthlib 1.3.1 rfc3339-validator 0.1.4 rfc3986-validator 0.1.1 rich 13.7.0 rich-click 1.7.3 richdem 2.3.0 rioxarray 0.15.0 rpds-py 0.16.2 rsa 4.9 Rtree 1.1.0 ruamel.yaml 0.17.21 ruamel.yaml.clib 0.2.7 ruamel-yaml-conda 0.15.80 s3cmd 2.0.2 s3fs 2023.12.2 s3transfer 0.10.0 scikit-image 0.22.0 scikit-learn 1.3.2 scikit-spatial 6.8.1 SciPy 1.11.4 seawater 3.3.4 selenium 4.16.0 Send2Trash 1.8.2 setuptools 69.0.3 shapely 2.0.1 six 1.16.0 sniffio 1.3.0 snowballstemmer 2.2.0 snuggs 1.4.7 sortedcontainers 2.4.0 soupsieve 2.5 Sphinx 7.2.6 sphinx-argparse 0.4.0 sphinx-lint 0.9.1 sphinx-rtd-theme 2.0.0 sphinxcontrib-applehelp 1.0.7 sphinxcontrib-devhelp 1.0.5 sphinxcontrib-htmlhelp 2.0.4 sphinxcontrib-jquery 4.1 sphinxcontrib-jsmath 1.0.1 sphinxcontrib-qthelp 1.0.6 sphinxcontrib-serializinghtml 1.1.9 stack-data 0.6.2 statsmodels 0.14.1 stglib 0.10.0+0.g691e08b.dirty /Users/dnowacki/projects/stglib tabulate 0.9.0 tblib 3.0.0 tenacity 8.2.3 terminado 0.18.0 threadpoolctl 3.2.0 tifffile 2023.8.12 time-machine 2.13.0 tinycss2 1.2.1 tinynetrc 1.3.1 tokenize-rt 5.2.0 toml 0.10.2 tomli 2.0.1 toolz 0.12.0 tornado 6.3.3 tqdm 4.66.1 traitlets 5.14.1 trio 0.23.2 trio-websocket 0.11.1 typed-ast 1.5.5 types-python-dateutil 2.8.19.20240106 typing_extensions 4.9.0 typing-utils 0.1.0 tzdata 2023.4 uc-micro-py 1.0.2 ukkonen 1.0.1 unicodedata2 15.1.0 universal-pathlib 0.1.4 uri-template 1.3.0 urllib3 1.26.18 utm 0.7.0 validators 0.22.0 verde 1.8.0 versioneer 0.29 virtualenv 20.25.0 wcwidth 0.2.13 webcolors 1.13 webencodings 0.5.1 websocket-client 1.7.0 wheel 0.42.0 windrose 1.9.0 wrapt 1.16.0 wsproto 1.2.0 xarray 2023.12.0 xmltodict 0.13.0 xyzservices 2023.10.1 yarl 1.9.3 zarr 2.16.1 zict 3.0.0 zipp 3.17.0 zstandard 0.22.0 ```
greglucas commented 6 months ago

The caching is currently per figure for interactive speed per this comment: https://github.com/SciTools/cartopy/blob/5e449397646e499e918b629c657e93c4c48b96f9/lib/cartopy/io/ogc_clients.py#L349-L357

A local cache would be a great addition, similar to what is available in the img_tiles: https://github.com/SciTools/cartopy/blob/5e449397646e499e918b629c657e93c4c48b96f9/lib/cartopy/io/img_tiles.py#L59-L69

For reference, this is the PR that was added in: https://github.com/SciTools/cartopy/pull/1533

dnowacki-usgs commented 6 months ago

Thank you for this clarification. Happy to close this now, or leave it open if someone wants to take it on as an enhancement. I'd love to make a PR but likely won't be able to in the immediate future.

rcomer commented 6 months ago

I think it makes sense to leave this open as a feature request. It seems like an obvious thing for people to want and @greglucas has now included some guidance for if/when someone has time to look into it.

dnowacki-usgs commented 6 months ago

I couldn't help myself and threw a proof of concept PR together (#2316). Bad timing as I will be traveling for the next couple of weeks, but the basic functionality is working.