Eomaps

Latest version: v8.3.1

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

Scan your dependencies

Page 10 of 15

3.5

πŸš€ updates
⭐ EOmaps now properly handles encoded datasets!
- This saves a lot of memory and provides a huge speedup when plotting integer-encoded datasets!
- If you plot GeoTIFFs or NetCDFs with the functions `Maps.read_data`, `Maps.from_file` or `m.new_layer_from_file`, the data is now kept in the encoded dtype and conversions are only performed "on demand" (e.g. when adding colorbars or in pick-callbacks)
- (if you really want to immediately convert all data-values, use `mask_and_scale=True` )
- The encoding information can be get/set via `m.data_specs.encoding` or `m.set_data_specs(encoding=...)`

python
m = Maps()
m.set_data(data=[1,2,3], xcoord=[1,2,3], ycoord=[1,2,3], encoding=dict(scale_factor=0.01, add_offset=1))
the "decoding" of the values is evaluated via "add_offset" + "scale_factor" * x

3.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

3.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)

python
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)

3.3.2

A minor bugfix release that brings some nice updates for raster-shading!

🌳 NEW
- ⭐ Raster-shading with `m.set_shape.shade_raster()` can now finally be used with re-projected datasets as well!
- The previous limitation `plot_crs == data_crs` is now gone for good πŸ₯³

πŸ”¨ fixes
- fix issues for `m.util.layer_slider` when switching between xyz-WebMap layers if axis-extent changed
- fix glitches of dynamic artists during pan/zoom
- fix image parsing in github-pages jekyll parser

3.3.1

A minor bugfix release (that also brings some miscellaneous convenience functions)

🌳 NEW
(⭐: new feature, πŸƒ: new functionality for existing feature)
- ⭐ there's a new function `m.subplots_adjust()` for `Maps` and `MapsGrid` objects to quickly set the margins of the plots as well as the horizontal and vertical spacing between subplots:
python
m = Maps()
m.subplots_adjust(left=0.2, right=0.8, top=0.9, bottom=0.1)

python
mg = MapsGrid()
mg.subplots_adjust(left=0.2, right=0.8, top=0.9, bottom=0.1, hspace=0.05, wspace=0.15)

(these are just shortcuts for `m.figure.gridspec.update()` + `m.redraw()`)
- πŸƒ `m.add_colorbar` now has an additional kwarg `log=True/False` to make the y-axis of the histogram logarithmic.
- πŸƒ `m.add_scalebar` now provides style-presets via `preset="<preset-name>"`
- at the moment there's only 1 preset... more to come in future releases!
- `"bw"`: a simple black-and-white style without a background

πŸ”¨ fixes
- fix `m.savefig` with different dpi-settings requres a re-draw
- fix `m.plot_map` with `dynamic=True` does not require a update
- incorporated some updates to ensure that layers are only re-drawn if necessary
- make sure cached backgrounds are always re-drawn if new artists are added
- fix annotation in example 9 (still used old syntax)

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

Page 10 of 15

Β© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.