Eomaps

Latest version: v8.3.1

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

Scan your dependencies

Page 4 of 15

7.1.2

> Make sure to check the release-notes for [EOmaps v7.1](https://github.com/raphaelquast/EOmaps/releases/tag/v7.1) as well!

🔨 Fixes
- fix import error when adding `wms` layers
- only log unique picker names for multi-geometry GeoDataFrames
- allow using `scatter_points` as marker-shape
- fix setting permanent-kwarg for markers
- fix search-radius should default to `m.cb.pick._search_radius`
- return created annotation object in `m.add_annotation()`
- fix docstrings for get/set extent
- avoid reprojection of gdf if init or cartopy crs can be identified
- add more descriptive __repr__ for Maps objects
- make sure to only re-evaluate scalebar scale on extent changes
- `contributing.md` file added

7.1.1

7.1

A new minor release that introduces **contour plots** and brings some nice updates for the companion widget!

> Make sure to check the release-notes for [EOmaps v7.0](https://github.com/raphaelquast/EOmaps/releases/tag/v7.0) for an overview of all new features that arrived with v7.x

🌳 New

Contour plots!
- There is a new **plot-shape**: `m.set_shape.contour()`
- it can be used to draw contour-plots (filled shapes or lines) of regular (2D) or irregular (1D) datasets!
- use `colorbar.indicate_contours()` to indicate the contour-levels on an existing colorbar

- Checkout the new [Contour Plot Example](https://eomaps.readthedocs.io/en/dev/EOmaps_examples.html#ex-14) in the docs for more details!

<img src=https://github.com/raphaelquast/EOmaps/assets/22773387/9d13c7e3-bfad-410f-b906-6d95c66487c8 width=50% alt="contour plot example">


Companion widget updates
- The drop-down menu for WebMaps is now easier to navigate and has properly **grouped entries**
- The "Add Feature" widget now has individual buttons for each category and properly **grouped entries**


Map Feature Infos
The **Editor** tab of the companion widget now offers a new button for each artist
that opens a **popup with additional information on the feature** (if available)

- General infos (Licensing, References etc.)
- Source code to reproduce the feature

Checkout the corresponding section in the docs for more details: [Additional information on Features and WebMaps](https://eomaps.readthedocs.io/en/dev/api_companion_widget.html#additional-information-on-features-and-webmaps)

⚠️ Deprecations

- The following arguments of `m.new_layer()` are depreciated and will be removed in upcoming releases:
- `copy_data_specs` $\rightarrow$ `inherit_data`
- `copy_classify_specs` $\rightarrow$ `inherit_classification`
- `copy_shape` $\rightarrow$ `inherit_shape`

To create a new layer (or map) that uses the same data and classification as the Maps-object `m`, you can now use:
python
m2 = m.new_layer(inherit_data=True, inherit_classification=True)
m2 = m.new_map(ax=222, inherit_data=True, inherit_classification=True)


- Using the WebMap service name `DLR_basemaps` is deprecated
- services are now integrated in the parent category `DLR` (use `m.add_wms.DLR.basemap...` to access basemap features)

🔨 Fixes
- ❗ fix compatibility with `python < 3.9`
- run unittests on `python 3.8` as well
- remove no longer needed `mamba` requirement `numpy < 1.24`
- fix toggling of the AnnotationEditor for multiple maps in one figure
- fix setting plot-extent for GeoDataFrames with `m.add_gdf(dataframe, set_extent=True)`
- fix classification issues for encoded masked datasets
- fix resetting of linestyles on layout editor exit

7.0

A new major release that brings a lot of important updates for EOmaps!

- Export figures as vektor graphics (and export to clipboard with *ctrl+c*)
- Extensive re-work of the companion-widget (new design and new features)
- Basic command line interface
- Improved documentation (incl. a [Contribution Guide](https://eomaps.readthedocs.io/en/dev/contribute.html) and an [API Reference](https://eomaps.readthedocs.io/en/dev/generated/eomaps.html))
- Improved Jupyter Notebook support
- Editable annotations
- Logging

Interested in contributing to EOmaps? Checkout the new [Contribution Guide](https://eomaps.readthedocs.io/en/dev/contribute.html) on how to get started!


🌳 New

🗺 Export figures as vector graphics
Export routines have been re-worked! Now its possible to export figures as vector graphics (svg, pdf, eps) in addition to rasterized images (png, jpeg, tiff, ...)!
- use `m.savefig(rasterize_data=False)` to control if datasets are exported as vectors or not
- by default datasets are rasterized even on vector export to avoid creating very large files

Checkout the corresponding [section in the docs](https://eomaps.readthedocs.io/en/dev/api_basics.html#image-export-jpeg-png-svg-etc) for more details.

📦 Directly export figures to the clipboard (`ctrl + c`)!

This is really useful to quickly copy-paste the current state of a figure at runtime to other programs (e.g. paste figures in documents or in an image-editing software for post-processing)

The export can be customized (file-type, dpi, etc.)
- simply adjust the most important parameters in the [Companion Widget](https://eomaps.readthedocs.io/en/latest/api.html#companion-widget)
(currently set values are used for clipboard export)
- or use `m.set_clipboard_kwargs(...)` to programmatically set clipboard-export parameters

🧰 Companion Widget updates

The companion widget has been extensively re-worked:
- New design with a nice and clean look and greatly improved usability
- New features:
- Human readable names for artists in the editor
- Assign transparencies to individual layers
- Currently set export parameters are now used as parameters for export to clipboard
(e.g. whenever `ctrl + c` is pressed)
- set arrow/patch/text/colors for annotations (and a button to make existing annotations editable)


<img src=https://raw.githubusercontent.com/raphaelquast/EOmaps/dev/docs/_static/minigifs/companion_widget.gif width=50%>

Checkout the corresponding [section in the docs](https://eomaps.readthedocs.io/en/dev/api_companion_widget.html) for more details.

🔍 Zoomable InsetMaps
[InsetMaps](https://eomaps.readthedocs.io/en/dev/api_inset_maps.html) can now be zoomed (and indicator patches are updated accordingly)

Editable Annotations
The `AnnotationEditor` allows you to interactively place (or edit existing) annotations!
- Set text, colors, patch and arrow designs
- Drag textbox and anchor position

✑ Command Line Interface
EOmaps can now be used directly from the terminal via the `eomaps` command!
The following options can be provided:
- `--help` get some help
- `--crs <crs identifier>` set the crs of the map
- `--location <location>`set the map extent to the queried location`
- `--file <path>` open a file for plotting
- `--ne <feature name>` add basic features to the map
- `--wms <wms name>` add some selected WebMaps to the map

For example: `eomaps --crs 4326 --ne coastline --ne ocean --location europe


Checkout the corresponding [section in the docs](https://eomaps.readthedocs.io/en/dev/api_command_line_interface.html) for more details.

Updates for Jupyter Notebooks
It is now possible to use the companion widget in jupyter notebooks!

To support using the widget, use the [ipympl](https://matplotlib.org/ipympl/) backend together with the `%gui qt` command!
python
%matplotlib widget
%gui qt

from eomaps import Maps
m = Maps()
m.add_feature.preset("coastline", "ocean")


Logging
Proper `logging` has finally been implemented!
To set the log-level (and customize log message formatting), use:

python
from eomaps import Maps, set_loglevel
set_loglevel("info")

m = Maps(3857)
m.set_data([1, 2, 3], [1, 2, 3], [1, 2, 3], crs=4326)
m.plot_map()


📖 Documentation updates
The [documentation](https://eomaps.readthedocs.io) has been extensively updated to make it cleaner and easier to navigate.
- Improved document structure and proper cross-referencing throughout the docs
- Many updates on individual chapters
- New chapter [🚀 Contribution Guide](https://eomaps.readthedocs.io/en/dev/contribute.html)

additional new features worth mentioning:

- There is a new way to add multiple preset features to a map in one go:
python
m = Maps()
m.add_feature.preset("coastline", "ocean", "land")

- New (shorter) syntax for delayed actions that initialize a new layer:
python
def func(m):
m.add_feature.preset.coastline()

m = Maps()
m.on_layer_activation(func, layer="my_layer")

- It is now possible to select if callbacks are executed on all layers or only on the visible layer (see `m.cb.<method>.set_execute_on_all_layers()` )
- There is a new convenience method `m.add_title(...)` to add a title to a map
- The new class-method `Maps.config(...)` can be used to set global config variables
(backend specific configs, default shortcuts etc.)

⚠️ Depreciations
- `m.set_data_specs(...)` is deprecated and will be removed in the next minor version. Use `m.set_data(...)` instead!
- `m_inset.indicate_inset_extent` is deprecated, Use `m_inset.add_extent_indicator` instead!


> A lot of code re-factoring has been done to better follow [PEP8 naming conventions](https://peps.python.org/pep-0008/#naming-conventions).
> Most of the changes concern internal class and function definitions and should not affect public API.
>
> For more details see [From EOmaps v6.x to v7.x]():


🔨 Fixes
- properly cross-reference functions in docs
- fix companion-widget init for maps in already initialized figures
- better caching for transformers and crs objects
- unify handling of default PyQt5 keypress callbacks
- avoid recursions caused by dynamically updated grids on savefig
- fix performance issue with `m.get_extent`
- fix colorbar causing singular matrix errors with hist_size=1
- only warn for vmin/vmax=None if data is not inherited
- fix clearing peek-layer callback markers on savefig
- make sure "all" layer callbacks are executed after normal layers
- fix performance issues with the LayoutEditor
- allow activating the LayoutEditor if toolbar actions are active
- fix InsetMaps._parent override on init
- fix clearing temp artists on Maps-cleanup
- fix search radius crs when using geod_circles
- fix dataset-Maps object identification for semi-transparent layers
- fix treatment of figure background patches
- fix issues with jupyter notebook `inline` backend
- fix issues with LayoutEditor and jupyter notebook `ipympl` backend
- avoid using black dots in the LayoutEditor to support dark themes
- fix cleanup of data_manager callbacks on consecutive calls to plot_map
- fix activating current layer on control+click on tab-widget
- cache combined layers only if necessary
- avoid unnecessary draws in shape-drawer
- avoid duplicated snapshots on update with inline backend
- fix using the companion widgets with backends other than PyQt5
- fix shade canvas size updates on figure resize events

6.5

A new release that finally adds a long-standing feature request to EOmaps: [**GridLabels**](https://eomaps.readthedocs.io/en/dev/api.html#add-labels-to-the-grid)!

🌳 new
🌐 Grid Labels
It is now possible to **add labels to grids in arbitrary projections**!
Make sure to checkout the new section in the docs [Adding Labels to the Grid](https://eomaps.readthedocs.io/en/dev/api.html#add-labels-to-the-grid) as well as the new [🌐 Gridlines and Grid Labels](https://eomaps.readthedocs.io/en/dev/EOmaps_examples.html#gridlines-and-grid-labels) example!

python
m = Maps(...)
...
g = m.add_gridlines(...)
g.add_labels(...)


<img src="https://github.com/raphaelquast/EOmaps/blob/dev/docs/_static/minigifs/grid_labels_01.png?raw=true" alt="EOmaps introduction figure." width=20%> <img src="https://github.com/raphaelquast/EOmaps/blob/dev/docs/_static/example_gridlines.png?raw=true" alt="EOmaps introduction figure." width=38%>

🔬 New features for InsetMaps

- `m_inset.add_indicator_line(...)`: Add a line that connects the inset-map with the inset-extent on another map.
- The edge-color of the inset-map can now be specified directly via the `boundary` kwarg (e.g. `boundary="red"`)

...other new features
- Picked compass objects are now indicated with a red boundary
- ColorBar objects have a new convenience-method `cb.set_labels(...)` to set the colorbar & histogram labels (and the style)
- the [📖 Documentation](https://eomaps.readthedocs.io/en/dev/index.html) has been re-structured and updated
<img src="https://github.com/raphaelquast/EOmaps/blob/dev/docs/_static/intro.png?raw=true" alt="EOmaps introduction figure." width=30%>

🌦️ changes
- Fill values in integer encoded datasets are now excluded when evaluating data-bounds (vmin/vmax)
- `m.from_file`, `m.read_file` and `m.new_layer_from_file` now support the additional kwarg `fill_values="mask"/"keep"`
(to avoid costly and memory-intensive initialization of masked-arrays for extremely large datasets)
- the `print_to_console` callback now returns tuples by default

🔨 fixes
- fix cartopy crs identification from pyproj-crs
- fix updating compass objects on init and scroll events
- fix colorbars should only inherit positions if orientation is the same
- fix colorbar minor ticks for vertical colorbars
- fix clipping of colorbar bins provided as lists
- make sure NE preset features handle mpl-synonyms (ec, fc, lw ...)
- fix orientation of inset-map boundary vertices

6.4.1

A minor bugfix release to ensure immediate draws of new background artists

🔨 fixes
- fix setting vmin/vmax for encoded data
- fix add/remove bg_artists should immediately trigger a draw

Page 4 of 15

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.