Skip to content

EOmaps v3.4.1

Compare
Choose a tag to compare
@raphaelquast raphaelquast released this 05 Apr 21:21
· 2559 commits to master since this release
865f435

[hotfix release to fix issues with multiple maps in one figure]

... EOmaps v3.4

A release that brings a lot of updates on speed and memory management and some very nice (but possibly breaking) changes compared previous versions of EOmaps.

❗ IMPORTANT CHANGES ❗

⭐ Starting with EOmaps v3.4 all callbacks and colorbars are layer-specific !

This means that callbacks only trigger if the layer of the associated Maps object is visible!
(...and colorbars are only visible if the associated layer is visible)

  • To trigger callbacks or add features & datasets independent of the visible layer, use m.all.cb. ...
    (or attach them to a Maps object on the "all" layer)

  • Note: pick callbacks now always react to the visible collection!
    (except for the ones on the "all" layer)

    m = Maps(layer=0)
    m.cb.click.attach.annotate()       # this callback is ONLY executed if the layer 0 is visible
    
    m1 = m.new_layer(layer=1)
    m1.cb.click.attach.mark()          # this callback is ONLY executed if the layer 1 is visible
    
    m.all.cb.click.attach.annotate()   # this callback is executed independent of the visible layer!

🍃 removed arguments

  • the obsolete "orientation" argument has been removed from Maps(...)
    (it set the colorbar-orientation which is now specified via m.add_colorbar(orientation=...)

🌳 NEW

  • m.show() can be used to make the associated layer visible. (a shortcut for m.show_layer(m.layer)
  • m.BM.on_layer(...) can be used to trigger functions if the visible layer changes.
  • 🌟 WebMap layers are now lazily evaluated and only added to the map if the corresponding layer is actually visible.
  • 🌟 [experimental feature] memory-mapping can now be used to avoid using up a lot of ram for very large datasets
    • Intermediate datasets are stored as memory-mapped files in a temp-folder on disk to release memory
    • By default memory-mapping is disabled! (to activate it, use: m.plot_map(memmap=False) )

🌦️ changes

  • Adding data from files (e.g. m.from_file or m.new_layer_from_file) now always uses "shade_raster" as the default plot-shape (since EOmaps v3.3.2, raster-shading works perfectly fine with re-projected rasters as well)
  • If a file with >2M data-points is plotted, only "shade" shapes are attempted by default to avoid overloading memory.
  • only one colorbar is allowed for Maps objects (use multiple objects for multiple colorbars)

🔨 fixes

  • Fix several issues with memory-leaks and garbage-collection of objects
  • Fix autoscale_fraction not recognized when using preset="bw" in m.add_scalebar
  • Maps objects are now properly garbage-collected
  • Fix auto-scaling of scalebars for very small scales
  • Maps.from_file now properly handles pathlib.Path objects
  • Fix utility widget start-layer should be the currently visible layer
  • Fix pick-events should only identify points on visible layers
  • Fix m.add_colorbar(log=True) for horizontal colorbars
  • Fix colorbar limit autoscaling
  • Fix logo size changes on zoom
  • Remove obsolete layer kwarg from m.add_logo
  • Fix incorrect color-normalization for shade_raster or shade_points if vmin/vmax outside the data-range are used
    (thanks to @maxhollmann)

🔥 hotfix EOmaps v3.4.1

  • fix issues with delayed WebMap services on multiple maps in one figure
  • fix issues with m.all for multiple maps in one figure