Eomaps

Latest version: v8.3.2

Safety actively analyzes 707009 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 11 of 15

3.3

A release with some nice new features and a lot of usability updates and fixes.
โ— note that there is a breaking change compared to <v3.2 (only affecting the ambiguous "layer" kwarg of dynamic artists (see ๐ŸŒฆ๏ธ changes below for details) )

๐ŸŒณ NEW
(โญ: new feature, ๐Ÿƒ: new functionalities for existing features)
- โญ There's a new pre-defined WebMap service: `m.add_wms.GEBCO` that provides nice underwater topography (https://www.gebco.net/)
- โญ Theres a new function `m.redraw()` that can be used to force a re-draw of the entire figure
- โญ shortcuts for `mg.redraw` and `mg.util` have been added to `MapsGrid`
- ๐Ÿƒ `m.add_wms. ... <layer>.set_extent_to_bbox()` now supports a new kwarg `shrink` which can be used to set the extent to a "shrinked" bbox (useful to avoid request-errors for tiles outside the bbox)
- ๐Ÿƒ `m.add_colorbar` can now be used to add **individual colorbars for different plot-layers**
(the colorbars will always reflect the currently displayed layer)
- ๐Ÿƒthe `peek_layer` callback can now be used to either view one (or more) layers or to **overlay** one (or more) layers on top of the current background layer.
- ๐Ÿƒ some major improvements have been implemented for fetching WebTiles from xyz-TileServer links.
- `m.add_wms.get_service` now supports using custom `wms`, `wmts`, `restAPI` or `xyz` services

๐ŸŒฆ๏ธ changes
- the ambiguous (and misleading) `layer` kwarg has finally been removed from dynamic artists.
(note this "layer" was NOT referring to the actual plot-layer but to the stacking of dynamic artists!)
- `layer` now always refers to the background layer name and not to the stack-order of dynamic artists!
- โ— the plot-order of multiple artists on the same layer is now determined by matplotlib's `zorder` property.
- โ• old: `m.cb.click.attach.mark(layer=5)` โžก๏ธ new: `m.cb.click.attach.mark(zorder=5)`
- โ• old: `m.cb.click.attach.annotate(layer=5)` โžก๏ธ new: `m.cb.click.attach.annotate(zorder=5)`
- โ• old: `m.BM.add_artist(art, layer=5)` โžก๏ธ new: `m.BM.add_artist(art)` + `art.set_zorder(5)`
- all examples have been updated accordingly

๐Ÿ”จ fixes
- fix _onrelease() missing 1 required positional argument
- fix issues with `nbagg` and `ipympl` backends (e.g. jupyter notebooks)
- fix `plt.show` should only be called if we're in an interactive backend!
- fix some issues with the scalebar and colorbar
- re-work of `draggable_axes`
- fix maxzoom for stamen_watercolor layer

3.2

A release with some nice new features and a lot of fixes & improvements.
... Note: many parts of the [๐Ÿ“š documentation](https://eomaps.readthedocs.io/en/latest/) have been updated with small code-examples and images!

๐ŸŒณ New

- โญ `m.add_annotation` and `m.add_marker` now support adding multiple objects in one go!
- โญ raster-shading with datashader now supports 2D arrays for values and coordinates (e.g. curvilinear QuadMeshes)
- โญ there's a new function `m.show_layer(name)` that provides a shortcut for switching the currently displayed layer
- โญ layer-names can now be arbitrary strings! (e.g. `Maps(layer=...)` or `m.plot_map(layer=...)`)
- โ— The layer-name `"all"`, has a special meaning: all features on this layer will be visible in ALL other layers!

---

โญ ๐Ÿฆœ Utility widgets !
EOmaps now has a slot for **utility widgets** that provides some nice tools to simplify common tasks.
- Utilities are accessible via `m.util.<...>`

At the moment, there are 2 utilities that simplify switching between layers:
- โญ `m.util.layer_selector()` : get a "legend-like" object with buttons that can be used to switch between layers
- โญ `m.util.layer_slider()` : get a slider that can be used to switch between layers

Checkout the [๐Ÿฆœ Utility widgets](https://eomaps.readthedocs.io/en/latest/api.html#utility-widgets) section in the docs and the updated example: [๐Ÿ›ฐ WebMap services and layer-switching](https://eomaps.readthedocs.io/en/latest/EOmaps_examples.html#webmap-services-and-layer-switching)

---

โญ๐ŸŒˆ Updates for the scalebar
The scalebar has been re-worked for a much improved "out-of-the-box" usability.
- By default, the scalebar is **now automatically re-scaled on pan/zoom events** based on the current extent of the map.
- the new `autoscale_fraction` argument can be used to set the relative size of the (autoscaled) scalebar
- the new `auto_position` argument can be used to set the position targeted for automatic re-positioning on pan/zoom events.
- The background patch is now automatically scaled to enclose the labels.
- When dragging the scalebar with the mouse, it is now immediately released if you release the mouse-button.

python
m.add_scalebar() get a scalebar that autoscales itself on pan/zoom events
m.add_scaleblar(scale=10000) get a scalebar with a fixed segment-separation of 10km


---


๐ŸŒฆ๏ธ changes
- some changes to `m.new_layer` :
- It now supports the additional `layer` kwarg
- โ— By default ONLY the "plot-shape" is now copied to the new layer.
- this avoids side-effects from unintentional copying of plot-specs (`vmin` `vmax` etc.)
- you can still copy plot-specs by using `m.new_layer(copy_plot_specs=True)`
- `Maps.from_file` and `Maps.read_file` and `m.new_layer_from_file` now support using already opened NetCDF and GeoTIFF files

โš™๏ธ fixes
- fix treatment of colorbar orientation in `m.figure.set_colorbar_position`
- fix reprojection of wms-layers with a native crs specified as "EPSG:3857"
- fix sorting of layer-names
- avoid identification of pixel-ID if no pick-callback is attached
- fix label-axis should not respond to navigation events
- fix adding multiple markers in one go
- fallback to WSG84 boundary in `wms_layer.set_bbox_to_extent()`

3.1.4

a minor bugfix release that introduces a new (optional) kwarg for `m.plot_map()`

๐ŸŒณ New
- Checkout the new example! [๐Ÿงฎ Select 1D slices of 2D datasets](https://eomaps.readthedocs.io/en/latest/EOmaps_examples.html#select-1d-slices-of-a-2d-dataset)
(as suggested in 54)
- โญ There is a new (optional) kwarg `set_extent` for `m.plot_map(set_extent=True)`
- `set_extent=True` : set the plot-extent to the data extent
- `set_extent=False` : keep the plot-extent as it was before


๐Ÿ”จ fixes
- fix `m.new_layer()` when parent layer uses `shade_raster` or `shade_points`
(fixes `__call__() got an unexpected keyword argument 'glyph'`)
- allow overriding the permanent kwarg in `m.add_annotation`n `m.add_annotation`

3.1.3

... another bugfix release

๐ŸŒฆ๏ธ changes
- an AssertionError is now raised if data- and coordinate dimensions do not match
(to avoid treating datasets with equal size but different shape as valid 1D inputs)

๐Ÿ”จ fixes
- fix re-projection of data provided with 1D coordinates and 2D data-values (e.g. raster-data)
- fix treatment of nan-values for datashader plots
- update docs for NaturalEarth features and GeoDataFrames

3.1.2

... some more quick fixes
๐Ÿ”จ fixes
- fix rotation angle of ellipses
- remove unnecessary print command
- fix treatment of plot_specs kwargs (vmin, vmax, cmap etc...) in Maps.from_file
- fix defaultargs in add_gdf

3.1.1

A minor bugfix release

๐ŸŒฆ๏ธ changes
- ๐Ÿš€ major speedup and reduced memory consumption for very large datasets
- new way for indexing picked pixels (uses much less ram with similar performance)
- the `pick_distance` argument of `Maps()` now specifies the search-rectangle for identifying picked pixels
- a rectangle of `radius * pick_distance` x `radius * pick_distance` around the center of the clicked pixel is used

๐Ÿ”จ fixes
- fix deleting callbacks from within a callback
- fix automatic identification of Equi7Grid crs
- fix treatment of numerical wms-layer names
- fix intersection of gdf with crs domain
- fix Maps.read_file should be a classmethod
- fix deleting data_specs when figure is closed

Page 11 of 15

ยฉ 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.