Skip to content

EOmaps v6.0

Compare
Choose a tag to compare
@raphaelquast raphaelquast released this 12 Feb 21:52
· 1443 commits to master since this release
6c94b34

A new major-release that comes with a lot of updates, performance improvements and some very nice new features!

❗ There are possibly breaking changes with respect to EOmaps v5.x ❗
(... and a lot of old syntax from v3.x, v4.x and v5.x has been removed)

🌳 New

🌴 Performance improvements!

EOmaps v6.0 represents a major change in the internals for layer and data management.

◰ Data Management

🌟 Data is now dynamically pre-selected based on the visible extent prior to plotting, which provides a huge speed-up for:

  • Zoom/pan on plots of very large datasets
  • Initial startup of plots that show only a subset of the assigned datasets

If you don't need to see the whole extent of the data, make sure to set the desired extent before calling m.plot_map() via

  • m.set.extent()
  • m.set_extent_to_location()

⧉ Composing layers

🌟 The interface to combine, stack or overlay layers has been greatly improved in terms of speed and usability.

  • To overlay the layer "B" on top of the layer "A", simply use m.show_layer("A", "B")
  • To overlay a layer with a global transparency, provide a tuple of (<layer-name>, <transparency>)
    e.g.: m.show_layer("A", ("B", 0.5)) will overlay the layer "B" with 50% transparency
  • Associated 🧰 Companion Widget updates
    • The order at which layers are selected in the layer-dropdown now determines the stacking order of the layers
    • To change the stacking order, simply re-arrange the (movable) layer-tabs in the Compare and Edit views!).
      rearrange_layers

🌲 new functionalities

  • m.set_extent(): set the map extent
  • m.inherit_classification: use the classification of a given Maps object (useful to avoid costly classifications for zoomed-in plots that show only a fraction of the data)
  • m.inherit_data(): share the data between Maps objects
  • m.text() add plain text
  • peek-layer callbacks now support "round" peek-shapes in addition to rectangles!
    • m.cb.click.attach.peek_layer(shape="round")
    • checkout the new button in the "Peek Layer" section of the 🧰 Companion Widget
  • Control the behavior of WebMap services if the size of the axes or figure is changing
    • m.refetch_wms_on_size_change(): toggle global behavior for WebMap services
    • use m.savefig(refetch_wms=False) to avoid re-fetching WebMaps if you save figures at different dpi!

🔨 Fixes

  • fix val_color for forwarded pick callbacks
  • estimate shape radius for x- and y- direction separately when using 2D datasets
  • fix transparency for cached background layers
  • handle possible exceptions in companion-widget drawer tab
  • make sure companion-widget dropdown does not close on layer-changes
  • fix attaching pick callbacks prior to plotting datasets
  • fix triggering re-draws of layers if artists are added to the "all" layer
  • fix treatment of animated axes in layout editor
  • fix cancelling save-file dialog
  • fix compass behavior on figure size changes
  • fix compass position and size on figure dpi changes
  • fix handling of spines
  • make sure inset-maps are always drawn above other maps
  • avoid re-drawing the background when drawing shapes
  • use annotation_clip=True for annotations by default
  • adjust default zorders of shapes and webmaps