EOmaps v5.0
A new major release that brings a lot of very nice features and updates π₯³
β (possibly) breaking changes to v4.x β
New layer-name convention:
-
All layer-names are now parsed as
string!
(any non-string object passed as layer-name will be converted to string and a warning is shown) -
The
"|"character is used as a separator for multi-layers (see new β§ Multi Layers feature below)
(a layer-name such as"first|second"now represents the combined artists for the layers"first"and"second")
Changes for the colorbar
The implementation of the colorbar has been re-worked and several changes have been introduced:
- Colorbars are now accessible via
m.colorbar- Some arguments of
m.add_colorbar(...)have changed! Check the docstring for details! - The individual colorbar-axes are accessible via
m.colorbar.ax_cbandm.colorbar.ax_cb_plot - To set the size of the colorbar, use
m.colorbar.set_position(...) - To remove a colorbar, use
m.colorbar.remove()
- Some arguments of
π³ New
π§° Companion widget
Starting with v5.0, EOmaps provides an awesome companion-widget to speed up data-comparisons and analysis.
NOTE: Using the widget is only possible if you use matplotlibs
"PyQt5"backend!
- To open the widget, simply press
won the keyboard while the mouse-pointer is hoovering the map. - The
?button on the top left can be used to activate showing help-tooltips if you hoover over the controls explain their functionalities.
π Checkout the corresponding section in the docs for more details! π§° Companion Widget
βοΈ Draw shapes on the map
There is a new functionality to draw simple (geo-coded) shapes on the map!
π Checkout the corresponding section in the docs for more details! βοΈ Draw shapes on the map
β§ Multi Layers
It is now possible to create "multi-layers" which inherit their artists from existing layers.
The layer-name hereby consists of existing layer-names separated by "|".
To show the layers "first" and "second" at the same time, use:
m.show_layer("first|second")- If you view a multi-layer, ALL artists from the constituting layers will be shown!
- E.g.:
"first|second|third"will show all artists of the layers"first","second"and"third"
- E.g.:
- The "vertical stacking order" for plotting is still exclusively determined by the
zorderproperty of the artists!- (artists at the same zorder are ordered with respect to the creation-time)
- It is possible (however rarely useful) to create a
Mapsobject representing multi-layers- Its artists will then only be shown if all constituting layers are visible
π Checkout the corresponding section in the docs for more details! π Basics/Layers
ποΈ Updates for the Layout Editor
- Select (and edit) multiple axes by holding
shiftwhile clicking on the axes - Scaling the axes-size (with the scroll-wheel or the
+/-buttons) now preserves the center of the axis - If you hold down
controlwhile a colorbar is selected, the scroll wheel (or the+/-buttons) will adjust
the relative size between the colorbar and the histogram - If you hold down
h(orv) the scroll-wheel adjusts only the horizontal (or vertical) size of the axes
π Checkout the corresponding section in the docs for more details! ποΈ Layout Editor
πΊοΈ Set map-extent via OpenStreetMap Nominatim query
- There is now a method to set the extent of the map via a OSM query.
m = Maps() m.set_extent_to_location("Austria") m.add_wms.OpenStreetMap.add_layer.default()
π· Snapshots for JupyterNotebooks
- The new
m.shapshot()functionality allows you to plot static snapshots of a map
in Jupyter Notebooks (or in the IPython console) irrespective of the used backend.
π Updates for peek-layer callbacks:
- It is now possible to use transparency when peeking on a layer!
m.cb.click.attach.peek_layer(layer="some layer", alpha=.5) - There's a new option
how="full"to overlay another layer on the whole axis - The size of the square used for peeking (e.g.
how=0.5) is now always with respect to the smallest axis-dimension
... additional new features ...
- Equi7Grid projections can now be accessed via explicit names (e.g.:
Equi7_EU,Equi7_AF...) - Any colormap created by EOmaps during runtime is now always registered as a matplotlib colormap
- It is now possible to add logos to specific layers by using:
m.add_logo(layer=...) - π°οΈ New WebMap services
m.add_wms.OpenStreetMap.OSM_wmsm.add_wms.OpenStreetMap.OSM_landuse
Dynamic artists are now layer-sensitive!
- annotations and markers can now be added to specific layers:
m.add_annotation(layer=...)andm.add_marker(layer=...) - To add dynamic artists on specific layers, simply use
m.BM.add_artist(<artist>, layer=...)
(to make the artist visible on all layers, simply uselayer="all")
π¦οΈ (non-breaking) Changes
- obsolete arguments
radiusandradius_crshave been removed fromm.set_shape.raster() - the default radius for
m.set_shape.geod_circleshas been set to 1km
π¨ Fixes
- fix default style kwarg for wms layers
- remove obsolete shape arguments
- fix custom args for feature presets
- fix _on_layer_change actions
- fix fetching wmts services
- fix passing kwargs to wms and wmts services added to the active layer
- fix updating background layers on add/remove of artists
- fix handling of encoded NetCDF data



