Open guidocioni opened 1 year ago
A similar plot with basemap
and Mercator projection is generated in only 8 seconds...
Even with all the differences between Cartopy and Basemap I cannot really figure out a drop factor of almost 18 in performance.
fig = plt.figure(1, figsize=(15, 10))
m = Basemap(projection='merc',
llcrnrlat=extents[2],
urcrnrlat=extents[3],
llcrnrlon=extents[0],
urcrnrlon=extents[1],
lat_ts=20,
resolution='h')
m.fillcontinents(color='lightgray',lake_color='#2081C3')
m.drawmapboundary(fill_color='#2081C3')
m.drawcountries()
ax = plt.gca()
m.readshapefile(f'{SHAPEFILES_DIR}/ITA_adm_shp/ITA_adm1',
'ITA_adm1',linewidth=0.8,color='black',zorder=5)
plt.savefig('test_projection_bm.png', bbox_inches="tight",dpi=100)
Plot with Cartopy
Plot with Basemap
10m oceans are known to be extremely slow, so I would definitely not recommend using those if you want speed. See this thread for some performance suggestions: https://github.com/SciTools/cartopy/issues/1895
Unfortunately, no one has really had the time to invest in speeding up the code, but we are always open to PRs to help improve the code!
Currently the entire geometry gets transformed if part of it is in the map view. So in this case we are transforming a lot of ocean boundary points unnecessarily. A solution might be to take the intersection of the geometry with the map extent before transforming. This would be more efficient if you are making a static plot, but less efficient if you want to pan/zoom interactively as you would be transforming new geometries each time the figure is re-drawn. We could make it an option though?
Currently the entire geometry gets transformed if part of it is in the map view. So in this case we are transforming a lot of ocean boundary points unnecessarily. A solution might be to take the intersection of the geometry with the map extent before transforming. This would be more efficient if you are making a static plot, but less efficient if you want to pan/zoom interactively as you would be transforming new geometries each time the figure is re-drawn. We could make it an option though?
the pre-clip feature you suggested will be useful in static plot, not only in the performance, but also reduce the file size of vector graphics like eps, ps.
Description
Saving figures with anything that is not the default
PlateCarree
takes a long time. Here are my results with a simple plot having ocean, land, borders and a shapefile: times are from start to figure saving.PlateCarree
takes 17 secondsPlateCaree
with only shapefile (without Cartopy features) takes 6 secondsMercator
takes 2 minutes 2 seconds (!)Mercator
with only shapefile (without Cartopy features) takes 25 secondsI know that I'm using high resolution coastlines, but I'm only plotting on a limited area, not the entire globe. Isn't there really a way to speed it up? As we have to produce many plots operationally having something that takes so long hinders our pipeline. Or maybe is it related to the machine capabilities?
Code to reproduce
Full environment definition
### Operating system CentOS Linux 7 ### conda list ``` _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_gnu conda-forge affine 2.3.1 pyhd8ed1ab_0 conda-forge alsa-lib 1.2.7.2 h166bdaf_0 conda-forge appdirs 1.4.4 pyh9f0ad1d_0 conda-forge argon2-cffi 21.3.0 pyhd8ed1ab_0 conda-forge argon2-cffi-bindings 21.2.0 py310h5764c6d_2 conda-forge asciitree 0.3.3 py_2 conda-forge asttokens 2.0.8 pyhd8ed1ab_0 conda-forge attr 2.5.1 h166bdaf_1 conda-forge attrs 22.1.0 pyh71513ae_1 conda-forge autopep8 1.7.0 pyhd8ed1ab_0 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 py_2 conda-forge backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.11.1 pyha770c72_0 conda-forge bleach 5.0.1 pyhd8ed1ab_0 conda-forge blosc 1.21.1 h83bc5f7_3 conda-forge bokeh 2.4.3 pyhd8ed1ab_3 conda-forge boost-cpp 1.78.0 h75c5d50_1 conda-forge branca 0.5.0 pyhd8ed1ab_0 conda-forge brotli 1.0.9 h166bdaf_7 conda-forge brotli-bin 1.0.9 h166bdaf_7 conda-forge brotlipy 0.7.0 py310h5764c6d_1004 conda-forge bzip2 1.0.8 h7f98852_4 conda-forge c-ares 1.18.1 h7f98852_0 conda-forge ca-certificates 2022.9.24 ha878542_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 ha61ee94_1014 conda-forge cartopy 0.21.0 py310hcda3f9e_0 conda-forge cdo 2.0.5 hcb4c3c0_2 conda-forge cdsapi 0.5.1 pypi_0 pypi certifi 2022.9.24 pyhd8ed1ab_0 conda-forge cffi 1.15.1 py310h255011f_0 conda-forge cfitsio 4.1.0 hd9d235c_0 conda-forge cftime 1.6.2 py310hde88566_0 conda-forge charset-normalizer 2.1.1 pyhd8ed1ab_0 conda-forge click 8.1.3 py310hff52083_0 conda-forge click-plugins 1.1.1 py_0 conda-forge cligj 0.7.2 pyhd8ed1ab_1 conda-forge cloudpickle 2.2.0 pyhd8ed1ab_0 conda-forge colorama 0.4.5 pyhd8ed1ab_0 conda-forge configobj 5.0.6 py_0 conda-forge contourpy 1.0.5 py310hbf28c38_0 conda-forge cramjam 2.5.0 py310hddbf208_0 conda-forge cryptography 37.0.4 py310h597c629_0 conda-forge curl 7.83.1 h7bff187_0 conda-forge cycler 0.11.0 pyhd8ed1ab_0 conda-forge cytoolz 0.12.0 py310h5764c6d_0 conda-forge dask 2022.9.1 pyhd8ed1ab_0 conda-forge dask-core 2022.9.1 pyhd8ed1ab_0 conda-forge dbus 1.13.6 h5008d03_3 conda-forge debugpy 1.6.3 py310hd8f1fbe_0 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge distributed 2022.9.1 pyhd8ed1ab_0 conda-forge docutils 0.19 py310hff52083_0 conda-forge donfig 0.7.0 pyhd8ed1ab_1 conda-forge eccodes 2.27.0 h164a9dd_0 conda-forge entrypoints 0.4 pyhd8ed1ab_0 conda-forge esmf 8.2.0 nompi_h1ee4d8d_2 conda-forge eumdac 1.2.0 pypi_0 pypi executing 1.0.0 pyhd8ed1ab_0 conda-forge expat 2.4.8 h27087fc_0 conda-forge fasteners 0.17.3 pyhd8ed1ab_0 conda-forge fastparquet 0.8.3 py310hde88566_0 conda-forge fftw 3.3.10 nompi_hf0379b8_105 conda-forge fiona 1.8.22 py310h60a68a4_0 conda-forge flake8 5.0.4 pyhd8ed1ab_0 conda-forge flit-core 3.7.1 pyhd8ed1ab_0 conda-forge folium 0.12.1.post1 pyhd8ed1ab_1 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 hab24e00_0 conda-forge fontconfig 2.14.0 hc2a2eb6_1 conda-forge fonts-conda-ecosystem 1 0 conda-forge fonts-conda-forge 1 0 conda-forge fonttools 4.37.2 py310h5764c6d_0 conda-forge freeglut 3.2.2 h9c3ff4c_1 conda-forge freetype 2.12.1 hca18f0e_0 conda-forge freexl 1.0.6 h166bdaf_1 conda-forge fribidi 1.0.10 h36c2ea0_0 conda-forge fsspec 2022.8.2 pyhd8ed1ab_0 conda-forge gdal 3.5.2 py310hb7951cf_0 conda-forge geopandas 0.11.1 pyhd8ed1ab_0 conda-forge geopandas-base 0.11.1 pyha770c72_0 conda-forge geos 3.11.0 h27087fc_0 conda-forge geotiff 1.7.1 h4fc65e6_3 conda-forge gettext 0.19.8.1 h73d1719_1008 conda-forge giflib 5.2.1 h36c2ea0_2 conda-forge glib 2.72.1 h6239696_0 conda-forge glib-tools 2.72.1 h6239696_0 conda-forge graphite2 1.3.13 h58526e2_1001 conda-forge greenlet 1.1.3 py310hd8f1fbe_0 conda-forge gsl 2.7 he838d99_0 conda-forge gst-plugins-base 1.20.3 h57caac4_1 conda-forge gstreamer 1.20.3 hd4edc92_1 conda-forge h5py 3.7.0 nompi_py310h416281c_101 conda-forge harfbuzz 5.2.0 hf9f4e7c_0 conda-forge hdf4 4.2.15 h9772cbc_4 conda-forge hdf5 1.12.2 nompi_h2386368_100 conda-forge hdfeos2 2.20 hca1e490_1001 conda-forge hdfeos5 5.1.16 hc2f950b_10 conda-forge heapdict 1.0.1 py_0 conda-forge icu 70.1 h27087fc_0 conda-forge idna 3.3 pyhd8ed1ab_0 conda-forge importlib-metadata 4.11.4 py310hff52083_0 conda-forge importlib_resources 5.9.0 pyhd8ed1ab_0 conda-forge ipykernel 6.15.3 pyh210e3f2_0 conda-forge ipython 8.5.0 pyh41d4057_1 conda-forge ipython_genutils 0.2.0 py_1 conda-forge jack 1.9.18 h8c3723f_1003 conda-forge jasper 2.0.33 ha77e612_0 conda-forge jedi 0.18.1 pyhd8ed1ab_2 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge joblib 1.2.0 pyhd8ed1ab_0 conda-forge jpeg 9e h166bdaf_2 conda-forge json-c 0.16 hc379101_0 conda-forge jsonschema 4.16.0 pyhd8ed1ab_0 conda-forge jupyter_client 7.0.6 pyhd8ed1ab_0 conda-forge jupyter_core 4.11.1 py310hff52083_0 conda-forge jupyterlab_pygments 0.2.2 pyhd8ed1ab_0 conda-forge kaleido-core 0.2.1 h3644ca4_0 conda-forge kealib 1.4.15 ha7026e8_1 conda-forge keyutils 1.6.1 h166bdaf_0 conda-forge kiwisolver 1.4.4 py310hbf28c38_0 conda-forge krb5 1.19.3 h3790be6_0 conda-forge lcms2 2.12 hddcbb42_0 conda-forge ld_impl_linux-64 2.36.1 hea4e1c9_2 conda-forge lerc 4.0.0 h27087fc_0 conda-forge libaec 1.0.6 h9c3ff4c_0 conda-forge libblas 3.9.0 16_linux64_openblas conda-forge libbrotlicommon 1.0.9 h166bdaf_7 conda-forge libbrotlidec 1.0.9 h166bdaf_7 conda-forge libbrotlienc 1.0.9 h166bdaf_7 conda-forge libcap 2.65 ha37c62d_0 conda-forge libcblas 3.9.0 16_linux64_openblas conda-forge libclang 14.0.6 default_h2e3cab8_0 conda-forge libclang13 14.0.6 default_h3a83d3e_0 conda-forge libcups 2.3.3 h3e49a29_2 conda-forge libcurl 7.83.1 h7bff187_0 conda-forge libdap4 3.20.6 hd7c4107_2 conda-forge libdb 6.2.32 h9c3ff4c_0 conda-forge libdeflate 1.14 h166bdaf_0 conda-forge libedit 3.1.20191231 he28a2e2_2 conda-forge libev 4.33 h516909a_1 conda-forge libevent 2.1.10 h9b69904_4 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libflac 1.3.4 h27087fc_0 conda-forge libgcc-ng 12.1.0 h8d9b700_16 conda-forge libgdal 3.5.2 hc23bfc3_0 conda-forge libgfortran-ng 12.1.0 h69a702a_16 conda-forge libgfortran5 12.1.0 hdcd56e2_16 conda-forge libglib 2.72.1 h2d90d5f_0 conda-forge libglu 9.0.0 he1b5a44_1001 conda-forge libgomp 12.1.0 h8d9b700_16 conda-forge libiconv 1.16 h516909a_0 conda-forge libkml 1.3.0 h37653c0_1015 conda-forge liblapack 3.9.0 16_linux64_openblas conda-forge libllvm14 14.0.6 he0ac6c6_0 conda-forge libnetcdf 4.8.1 nompi_h21705cb_104 conda-forge libnghttp2 1.47.0 hdcd2b5c_1 conda-forge libnsl 2.0.0 h7f98852_0 conda-forge libogg 1.3.4 h7f98852_1 conda-forge libopenblas 0.3.21 pthreads_h78a6416_3 conda-forge libopus 1.3.1 h7f98852_1 conda-forge libpng 1.6.38 h753d276_0 conda-forge libpq 14.5 hd77ab85_0 conda-forge librttopo 1.1.0 hf730bdb_11 conda-forge libsndfile 1.0.31 h9c3ff4c_1 conda-forge libsodium 1.0.18 h36c2ea0_1 conda-forge libspatialindex 1.9.3 h9c3ff4c_4 conda-forge libspatialite 5.0.1 h38b5f51_18 conda-forge libsqlite 3.39.3 h753d276_0 conda-forge libssh2 1.10.0 haa6b8db_3 conda-forge libstdcxx-ng 12.1.0 ha89aaad_16 conda-forge libtiff 4.4.0 h55922b4_4 conda-forge libtool 2.4.6 h9c3ff4c_1008 conda-forge libudev1 249 h166bdaf_4 conda-forge libuuid 2.32.1 h7f98852_1000 conda-forge libvorbis 1.3.7 h9c3ff4c_0 conda-forge libwebp-base 1.2.4 h166bdaf_0 conda-forge libxcb 1.13 h7f98852_1004 conda-forge libxkbcommon 1.0.3 he3ba5ed_0 conda-forge libxml2 2.9.14 h22db469_4 conda-forge libxslt 1.1.35 h8affb1d_0 conda-forge libzip 1.9.2 hc869a4a_1 conda-forge libzlib 1.2.12 h166bdaf_3 conda-forge locket 1.0.0 pyhd8ed1ab_0 conda-forge lxml 4.9.1 py310h5764c6d_0 conda-forge lz4 4.0.0 py310h5d5e884_2 conda-forge lz4-c 1.9.3 h9c3ff4c_1 conda-forge magics 4.12.1 hb2107fa_0 conda-forge magics-python 1.5.6 pyhd8ed1ab_0 conda-forge mapclassify 2.4.3 pyhd8ed1ab_0 conda-forge markupsafe 2.1.1 py310h5764c6d_1 conda-forge mathjax 2.7.7 ha770c72_3 conda-forge matplotlib 3.6.0 py310hff52083_0 conda-forge matplotlib-base 3.6.0 py310h8d5ebf3_0 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mccabe 0.7.0 pyhd8ed1ab_0 conda-forge metpy 1.3.1 pyhd8ed1ab_0 conda-forge mistune 2.0.4 pyhd8ed1ab_0 conda-forge msgpack-python 1.0.4 py310hbf28c38_0 conda-forge munch 2.5.0 py_0 conda-forge munkres 1.1.4 pyh9f0ad1d_0 conda-forge mysql-common 8.0.30 haf5c9bc_1 conda-forge mysql-libs 8.0.30 h28c427c_1 conda-forge nbclient 0.6.8 pyhd8ed1ab_0 conda-forge nbconvert 7.0.0 pyhd8ed1ab_0 conda-forge nbconvert-core 7.0.0 pyhd8ed1ab_0 conda-forge nbconvert-pandoc 7.0.0 pyhd8ed1ab_0 conda-forge nbformat 5.5.0 pyhd8ed1ab_0 conda-forge ncl 6.6.2 hfc90af8_40 conda-forge ncurses 6.3 h27087fc_1 conda-forge ncview 2.1.8 h7c2f205_4 conda-forge nest-asyncio 1.5.5 pyhd8ed1ab_0 conda-forge netcdf-fortran 4.6.0 nompi_hc402ea5_100 conda-forge netcdf4 1.6.1 nompi_py310h55e1e36_100 conda-forge networkx 2.8.6 pyhd8ed1ab_0 conda-forge notebook 6.4.12 pyha770c72_0 conda-forge nspr 4.32 h9c3ff4c_1 conda-forge nss 3.78 h2350873_0 conda-forge numcodecs 0.10.2 py310hd8f1fbe_0 conda-forge numpy 1.23.3 py310h53a5b5f_0 conda-forge openjpeg 2.5.0 h7d73246_1 conda-forge openssl 1.1.1s h166bdaf_0 conda-forge ossuuid 1.6.2 hf484d3e_1000 conda-forge owslib 0.27.2 pyhd8ed1ab_1 conda-forge packaging 21.3 pyhd8ed1ab_0 conda-forge pandas 1.4.4 py310h769672d_0 conda-forge pandoc 2.19.2 ha770c72_0 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge pango 1.50.10 hc4f8a73_0 conda-forge parallel 20220922 ha770c72_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge partd 1.3.0 pyhd8ed1ab_0 conda-forge patsy 0.5.2 pyhd8ed1ab_0 conda-forge pcre 8.45 h9c3ff4c_0 conda-forge perl 5.32.1 2_h7f98852_perl5 conda-forge pexpect 4.8.0 pyh9f0ad1d_2 conda-forge pickleshare 0.7.5 py_1003 conda-forge pillow 9.2.0 py310hbd86126_2 conda-forge pint 0.19.2 pyhd8ed1ab_0 conda-forge pip 22.2.2 pyhd8ed1ab_0 conda-forge pixman 0.40.0 h36c2ea0_0 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_0 conda-forge plotly 5.10.0 pyhd8ed1ab_0 conda-forge ply 3.11 py_1 conda-forge pooch 1.6.0 pyhd8ed1ab_0 conda-forge poppler 22.04.0 h0733791_3 conda-forge poppler-data 0.4.11 hd8ed1ab_0 conda-forge portaudio 19.6.0 h8e90077_6 conda-forge postgresql 14.5 hfdbbde3_0 conda-forge proj 9.0.1 h93bde94_1 conda-forge prometheus_client 0.14.1 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.31 pyha770c72_0 conda-forge psutil 5.9.2 py310h5764c6d_0 conda-forge psycopg2 2.9.3 py310h6acc77f_0 conda-forge pthread-stubs 0.4 h36c2ea0_1001 conda-forge ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge pulseaudio 14.0 h0868958_9 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge pycodestyle 2.9.1 pyhd8ed1ab_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pyflakes 2.5.0 pyhd8ed1ab_0 conda-forge pygments 2.13.0 pyhd8ed1ab_0 conda-forge pykdtree 1.3.6 py310hde88566_2 conda-forge pyngl 1.6.1 py310hc9be37a_4 conda-forge pyopenssl 22.0.0 pyhd8ed1ab_0 conda-forge pyorbital 1.7.3 pyhd8ed1ab_0 conda-forge pyparsing 3.0.9 pyhd8ed1ab_0 conda-forge pyproj 3.4.0 py310hf94497c_0 conda-forge pyqt 5.15.7 py310h29803b5_0 conda-forge pyqt5-sip 12.11.0 py310hd8f1fbe_0 conda-forge pyresample 1.25.1 py310h769672d_0 conda-forge pyrsistent 0.18.1 py310h5764c6d_1 conda-forge pyshp 2.3.1 pyhd8ed1ab_0 conda-forge pysocks 1.7.1 pyha2e5f31_6 conda-forge pyspectral 0.11.0 pyhd8ed1ab_0 conda-forge python 3.10.6 h582c2e5_0_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-fastjsonschema 2.16.1 pyhd8ed1ab_0 conda-forge python-geotiepoints 1.4.1 py310hde88566_0 conda-forge python-kaleido 0.2.1 pyhd8ed1ab_0 conda-forge python_abi 3.10 2_cp310 conda-forge pytz 2022.2.1 pyhd8ed1ab_0 conda-forge pyyaml 6.0 py310h5764c6d_4 conda-forge pyzmq 24.0.0 py310h330234f_0 conda-forge qt-main 5.15.6 hc525480_0 conda-forge rasterio 1.3.2 py310h1bedc6d_0 conda-forge readline 8.1.2 h0f457ee_0 conda-forge regionmask 0.9.0 pyhd8ed1ab_0 conda-forge requests 2.28.1 pyhd8ed1ab_1 conda-forge rtree 1.0.0 py310hbdcdc62_1 conda-forge satpy 0.37.1 pyhd8ed1ab_0 conda-forge scikit-learn 1.1.2 py310h0c3af53_0 conda-forge scipy 1.9.3 py310hdfbd76f_2 conda-forge seaborn 0.12.0 hd8ed1ab_0 conda-forge seaborn-base 0.12.0 pyhd8ed1ab_0 conda-forge send2trash 1.8.0 pyhd8ed1ab_0 conda-forge setuptools 65.3.0 pyhd8ed1ab_1 conda-forge shapely 1.8.4 py310h5e49deb_0 conda-forge simplejson 3.17.6 py310h5764c6d_1 conda-forge sip 6.6.2 py310hd8f1fbe_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge snappy 1.1.9 hbd366e4_1 conda-forge snuggs 1.4.7 py_0 conda-forge sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge soupsieve 2.3.2.post1 pyhd8ed1ab_0 conda-forge sqlalchemy 1.4.41 py310h5764c6d_0 conda-forge sqlite 3.39.3 h4ff8645_0 conda-forge stack_data 0.5.0 pyhd8ed1ab_0 conda-forge statsmodels 0.13.2 py310hde88566_0 conda-forge tblib 1.7.0 pyhd8ed1ab_0 conda-forge tenacity 8.0.1 pyhd8ed1ab_0 conda-forge terminado 0.15.0 py310hff52083_0 conda-forge threadpoolctl 3.1.0 pyh8a188c0_0 conda-forge tiledb 2.11.2 h1e4a385_0 conda-forge tinycss2 1.1.1 pyhd8ed1ab_0 conda-forge tk 8.6.12 h27826a3_0 conda-forge toml 0.10.2 pyhd8ed1ab_0 conda-forge toolz 0.12.0 pyhd8ed1ab_0 conda-forge tornado 6.1 py310h5764c6d_3 conda-forge tqdm 4.64.1 pyhd8ed1ab_0 conda-forge traitlets 5.4.0 pyhd8ed1ab_0 conda-forge trollimage 1.18.3 pyhd8ed1ab_0 conda-forge trollsift 0.4.0 pyhd8ed1ab_0 conda-forge typing-extensions 4.3.0 hd8ed1ab_0 conda-forge typing_extensions 4.3.0 pyha770c72_0 conda-forge tzcode 2022c h166bdaf_0 conda-forge tzdata 2022c h191b570_0 conda-forge udunits2 2.2.28 hc3e0081_0 conda-forge unicodedata2 14.0.0 py310h5764c6d_1 conda-forge urllib3 1.26.11 pyhd8ed1ab_0 conda-forge wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge webencodings 0.5.1 py_1 conda-forge wheel 0.37.1 pyhd8ed1ab_0 conda-forge xarray 2022.6.0 pyhd8ed1ab_1 conda-forge xcb-util 0.4.0 h166bdaf_0 conda-forge xcb-util-image 0.4.0 h166bdaf_0 conda-forge xcb-util-keysyms 0.4.0 h166bdaf_0 conda-forge xcb-util-renderutil 0.3.9 h166bdaf_0 conda-forge xcb-util-wm 0.4.1 h166bdaf_0 conda-forge xerces-c 3.2.3 h55805fa_5 conda-forge xorg-fixesproto 5.0 h7f98852_1002 conda-forge xorg-imake 1.0.7 0 conda-forge xorg-inputproto 2.3.2 h7f98852_1002 conda-forge xorg-kbproto 1.0.7 h7f98852_1002 conda-forge xorg-libice 1.0.10 h7f98852_0 conda-forge xorg-libsm 1.2.3 hd9c2040_1000 conda-forge xorg-libx11 1.7.2 h7f98852_0 conda-forge xorg-libxau 1.0.9 h7f98852_0 conda-forge xorg-libxaw 1.0.14 h7f98852_1 conda-forge xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge xorg-libxext 1.3.4 h7f98852_1 conda-forge xorg-libxfixes 5.0.3 h7f98852_1004 conda-forge xorg-libxi 1.7.10 h7f98852_0 conda-forge xorg-libxmu 1.1.3 h7f98852_0 conda-forge xorg-libxpm 3.5.13 h7f98852_0 conda-forge xorg-libxrender 0.9.10 h7f98852_1003 conda-forge xorg-libxt 1.2.1 h7f98852_2 conda-forge xorg-makedepend 1.0.6 h27087fc_2 conda-forge xorg-renderproto 0.11.1 h7f98852_1002 conda-forge xorg-xextproto 7.3.0 h7f98852_1002 conda-forge xorg-xproto 7.0.31 h7f98852_1007 conda-forge xyzservices 2022.6.0 pyhd8ed1ab_0 conda-forge xz 5.2.6 h166bdaf_0 conda-forge yaml 0.2.5 h7f98852_2 conda-forge zarr 2.12.0 pyhd8ed1ab_0 conda-forge zeromq 4.3.4 h9c3ff4c_1 conda-forge zict 2.2.0 pyhd8ed1ab_0 conda-forge zipp 3.8.1 pyhd8ed1ab_0 conda-forge zlib 1.2.12 h166bdaf_3 conda-forge zstd 1.5.2 h6239696_4 conda-forge ```