EOmaps v8.0.1
A new major release that brings a lot of important updates and improvements for EOmaps!
A big thanks goes to @banesullivan, @yeelauren and @jhkennedy who provided many useful suggestions and comments to improve EOmaps in the PyOpenSci review (pyOpenSci/software-submission#138)!
§ New License!
The EOmaps source code is now licensed under a BSD 3 Clause License to make it easier for users and contributors to improve and extend the codebase and to use EOmaps to build awesome tools for geo-data analysis!
Make sure to have a look at the licensing-note in the FAQ of the docs for some more details!
Interested in contributing to EOmaps? Checkout the updated Contribution Guide!
⚠️ Major changes to pip
install
Dependency management for EOmaps
has been improved to split between required and optional dependencies.
❗
pip install eomaps
now only installs the bare minimum requirements to runEOmaps
.
❗To install EOmaps with all optional dependencies, usepip install eomaps[all]
.
Make sure to have a look at the updated installation instructions in the docs for more details on how to selectively install optional dependencies!
🌳 New
m.set_data(...)
now directly acceptsxarray.Datasets
as input (see docs on how to assign datasets)- There is a new pre-defined keypress callback:
overlay_layer
- You can use it to toggle showing a layer on top of the currently visible layer.
m.all.cb.keypress.attach.overlay_layer(<layer-name>, key="a")
- You can use it to toggle showing a layer on top of the currently visible layer.
- The
switch_layer
keypress-callback now also accepts lists of layer-names (or lists of tuples(name, transparency)
) - m.cb.pick.share_events() now supports the additional kwarg
"ensure_same_id"
- If True, all maps that share the pick-event will use the same ID to identify the relevant datapoint
- If False, all maps that share the pick-event identify the closest datapoint based on the (reprojected) click position.
- The
LayoutEditor
now accepts-1
as width/height value for axes (to auto-adjust the value)
🕹️ Jupyter Widgets
There is now a collection of pre-configured Jupyter Widgets that can be used as control elements in Jupyter Notebooks!
Make sure to checkout the corresponding 🕹️ EOmaps Jupyter Widgets section in the docs!
🌦️ Changes
- ❗ Installation config is now provided as a
pyproject.toml
file (instead ofsetup.py
) - ❗ Supported python version is now
>=3.8
- EOmaps now uses qtpy to support multiple Qt versions for the 🧰 Companion Widget!
_version.py
has been removed. The version is now specified in the[project]
category of thepyproject.toml
file.- Actions now use
micromamba
to setup (and cache) test environments - Colorbar kwargs
show_outline
andylabel
have been renamed tooutline
andhist_label
The following (previously deprecated) methods are now removed:
m.set_data_specs
$\Rightarrow$ usem.set_data
insteadm.add_wms.DLR_basemaps...
$\Rightarrow$ usem.add_wms.DLR.basemap...
insteadm_inset.indicate_inset_extent
$\Rightarrow$ usem_inset.add_extent_indicator
instead
📖 Documentation updates
Make sure to checkout the fully updated API docs!
- Documentation environment was updated to most recent build dependencies
- Only minimal requirements to import eomaps are now installed for docs-build
- Info on how to configure VSCode/VSCodium for EOmaps has been added to the docs
- In general, the docs now (gradually switch to) use MySt and Jupyter Notebooks (parsed with myst_nb) to improve formatting, examples etc.
🔨 Fixes
- Make sure the widget is compatible with both Qt5 and Qt6
- Fix forcing colorbar-position inheritance
- Fix treatment of colorbar histogram style kwargs (e.g. edgecolor, facecolor, etc.)
- Address
numpy
binary incompatibility warning ifnetCDF4
is imported after numpy - Fix inheriting colorbar positions from other colorbars
- Address unittest issue with contour-shape labels
- Avoid blocking the terminal in unittests for jupyter notebooks
- Fix missing docstring for DLR webmap service
- Fix issues for move-callbacks shared between multiple Maps
- Fix visibility of datasets when using "dynamic_shade_indicator" colorbars
- Fix assignment of vmin/vmax for "count" based shade-aggregation
- Fix treatment of masked values in evaluation of vmin/vmax for encoded datasets
- Fix issues with help-text popups of the CompanionWidget LayerTabBar
- Improvements for colorbar implementation
- Unify treatment of layer-name parsing
- Try to push current view to toolbar nav-stack after layout-restore
- Fix issues with help-popups of the LayerTabBar of the companion-widget
- Fix issues with figure-exports after
m.apply_layout(...)
- Fix treatment of reprojected 1D datasets with
shade_raster
shape - Fix parsing maxsize argument in companion widget for
raster
-shape - Fix treatment of infinite values in weighted colorbar histograms
- Allow passing transform-kwarg to
m.add_text(...)
- Fix truncating companion-widget title if too long
- Make sure companion-widget dataset-dropdown is elided
- Avoid memory-leaks caused by artist-references in pick-containers
- Fix
numpy.ma.masked_array
issues with datashader/numba when using"shade_points"
- Fix handling pick-events that do not have an "idx" property
- Fix raster-aggregation if block-size cannot be evaluated (e.g. None)
- Fix handling of pick-events that do not have an "idx" property
- Make sure keypress-events are triggered irrespective of the toolbar mode
- Make sure LayoutEditor x0, y0 values are always set as specified
- Fix issues with string-type dpi values passed to savefig
- Avoid pandas dependency when attempting to use
raster
shape with 1D datasets - Make sure data encoding fill-value is properly applied