Eomaps

Latest version: v8.3.1

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

Scan your dependencies

Page 13 of 15

2.1

... there are a lot of documentation updates!

🌳 new
- axes-specifications can now be passed to the initialization of a `MapsGrid` object
- there are new WebMap layers!
- OSM default style (https://openstreetmap.org)
- OSM german default style (https://openstreetmap.de)
- OpenTopoMap (https://opentopomap.org)
- OSM stamen toner (standard, lite, lines, labels, background, hybrid) (http://maps.stamen.com/#toner)
- OSM stamen terrain (standard, lines, labels, background) (http://maps.stamen.com/#terrain)
- OSM stamen watercolor (http://maps.stamen.com/#watercolor)

πŸ›changes
- adding WebMap services now works exclusively via `m.add_wms` independent of the service-type
(`m.add_wmts` has been removed)
- for services that allow multiple access possibilities (e.g. WMS, WMTS, etc.), the preferred way of accessing the WebMap service can be set on the initialization of the Maps-object via `m = Maps(preferred_wms_service="wmts")`

πŸ”¨ fixes
- positional arguments are now properly forwarded when callbacks are attached
(e.g. `m.cb.click.peek_layer(1)` now works as expected)
- generalized access to xyz-tile-server
- kwargs passed to `MapsGrid` are now forwarded to `GridSpec`

2.0.2

another minor bugfix release

🌳 new
- There's a new example on how to use WebMap services in the doc!

πŸ”¨ fixes
- make sure WebMap services are put on the assigned default layer
- avoid initializing axes on S1GBM wms-collection initialization
- make sure to update S1GBM layer if "home" or "left/right" toolbar buttons are pressed

2.0.1

... just a minor bugfix release

2.0

This release represents a complete re-work compared to EOmaps v1.x.x !

🌼 A documentation is now available on readthedocs! [>>> check it out here](https://eomaps.readthedocs.io/)

🌳 new

🌴 WMS and WMTS capabilities
- ❗ requires optional dependency `owslib`
- WMTS (or WMS) layers can be added via:
- `m.add_wmts.<COLELCTION>.add_layer.<LAYER>(**kwargs)`
- `m.add_wmts.<COLELCTION>[<LAYER>](**kwargs)`
- pre-defined layers include interfaces to
- ESA Copernicus & WorldCover layers
- Sentinel-1 Global Backscatter Model
- EEA Discomap layers
- NASA GIBS
- Austrian basemaps (basemap.at & Vienna)
- ... and more!

🌡 re-arrange plot-axes via drag & drop
- press `alt` + `d` to activate / deactivate "axis-arrangement" mode
- use the mouse to select the axis you want to change
- use "left/right/up/down" or the mouse to move the selected layer
- use "alt+left/right/up/down" to move the layer quicker
- use "ctrl+up/down" to show/hide colorbars & histograms

🌲 share callback-events between multiple Maps objects
- e.g.: click on one map to trigger a callback on multiple connected maps!
- to connect maps-objects, provide a "parent"-object on initialization `m = Maps(parent=m0)`
- forward callback-triggers from one Maps object to others via:
`m.cb.click.forward_events(m1, m2, m3)`
- ... or join the callback-events "both-ways" via
`m.cb.click.share_events(m1, m2, m3)`

🌱... and some more:
- there's a new `MapsGrid` object to quickly initialize a grid of Maps-objects
`m1, m2, m3, m4 = MapsGrid(2, 2)`
- join zoom-limits between multiple axes (with the same crs)
`m.join_limits(m1, m2, m3)`

🦠changes
- `f`, `gs_ax` and `orientation` are now set on initialization of the Maps-object!
(they are no longer arguments of `m.plot_map()`)

- callbacks are now accessed differently
- instead of `m.cb.attach()` and `m.cb_click.attach` there's now
- `m.cb.click` : trigger callbacks when clicking anywhere on the map
- `m.cb.pick` : trigger callbacks when clicking on a point of the plotted dataset
- `m.cb.keypress` : trigger callbacks when pressing a key
- `m.cb.dynamic` : trigger callbacks on events (e.g. zoom)

πŸ”¨ fixes
- make sure shapes are properly copied on `m.copy()`
- make sure `geod_circles` only takes numbers as radius
- sharing callbacks now works across coordinate-systems!
- multiple temporary markers & annotations are now supported

1.03

🌳 New
- ⭐ The colorbar can now be used as a **dynamic shade indicator** with `m.add_colorbar(dynamic_shade_indicator=True)`
- it is dynamically updated based on the distribution of shaded pixels in the current field of view.
(only possible with `m.set_shape.shade_raster()` or `m.set_shape.shade_points()` )

<img src=https://user-images.githubusercontent.com/22773387/163251944-740c3e6a-a083-4749-a27c-f70be04742a0.gif width=75%/>
- ⭐ There is now a way to use `pick` callbacks on datasets **without plotting the data first**.
- To make a *"pick-only"* dataset, use `m.set_data(...)` to assign the dataset and then
call `m.make_dataset_pickable()` to initialize all required information to make the dataset pickable.
- This is useful if you want to indicate certain informations "on click" without plotting the data

βš™οΈ changes
- The default plot-shape is now determined based on the size of the assigned dataset.
- <500k datapoints: `m.set_shape.ellipses()`
- \>500k datapoints: `m.set_shape.shade_raster()`
- `Maps.from_file` and `m.new_layer_from_file` now no longer attempt multiple shapes for plotting in case the first attempt fails
(the default shape is used if no explicit shape-name is provided)

πŸ”¨ fixes
- Fix typo in `m.add_colorbar`
- Fix some typos in the docs
- Fix unnecessary dtype conversions in "shade_raster" and "shade_points"
- Avoid dtype conversions when reading NetCDFs and GeoTIFFs

1.0.2

🌳 new
- `m.set_shape.rectangles(radius, radius_crs, n)` now supports an additional `n` keyword to calculate intermediate points on the edges
(e.g. useful to draw "curved" projected rectangles)
πŸ›Έ fixes
- allow setting `n` also in the mark-callback

Page 13 of 15

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