Version v0.5.0 offers a better performance, a consistent point-on-border behavior, and also unmasks region interiors (holes). It also introduces a number of deprecations. Please check the notebook on methods and What’s New.
New behavior for ‘point-on-border’ and region interiors:
New ‘edge behaviour’: points that fall on the border of a region are now treated consistently (PR63). Previously the edge behaviour was not well defined and depended on the orientation of the outline (clockwise vs. counter clockwise; GH69 and matplotlib/matplotlib#9704).
Holes in regions are now excluded from the mask; previously they were included. For the
defined_regions, this is relevant for the Caspian Sea in the
naturalearth.land110region and also for some countries in
Regionsand changed its call signature. This allows to make all arguments except
regionmask.create_mask_contains()is deprecated and will be removed in a future version. Use
New faster and consistent methods to rasterize regions:
New algorithm to rasterize regions for equally-spaced longitude/ latitude grids. Uses
rasterio.features.rasterize: this offers a 50x to 100x speedup compared to the old method, and also has consistent edge behavior (closes GH22 and GH24).
New algorithm to rasterize regions for grids that are not equally-spaced. Uses
shapely.vectorized.contains: this offers a 2x to 50x speedup compared to the old method. To achieve the same edge-behavior a tiny (10 ** -9) offset is subtracted from lon and lat (closes GH22 and GH62).
Added a test to ensure that the two new algorithms (“rasterize”, “shapely”) yield the same result. Currently for 1° and 2° grid spacing (GH74).
Automatically detect whether the longitude of the grid needs to be wrapped, depending on the extent of the grid and the regions (closes GH34).
Regions.plot_regions()method that only plots the region borders and not a map, as
Regions.plot_regions()method can be used to plot the regions on a existing
cartopymap or a regular axes (closes GH31).
Add possibility to create an example dataset containing lon, lat and their bounds (closes GH66).
Added code coverage with pytest-cov and codecov.
Regions were missing a line when the coords were not closed and
For a region defined via
MultiPolygon: use the centroid of the largest
Polygonto add the label on a map. Previously the label could be placed outside of the region (closes GH59).
Fix regression: the offset was subtracted in
np.all(np.equal(mask.lon, lon)), instead of
"shapely"was not equal when gridpoints exactly fall on a 45° border outline (GH80).
Conda channel mixing breaks travis tests. Only use conda-forge, add strict channel priority (GH27).
Fix documentation compilation on readthedocs (aborted, did not display figures).
Fix wrong figure in docs: countries showed landmask (GH39).
v0.3.1 (4 October 2016)¶
This is a bugfix/ cleanup release.
travis was configured wrong - it always tested on python 2.7, thus some python3 issues went unnoticed (GH14).
natural_earth was not properly imported (GH10).
A numpy scalar of dtype integer is not
isinstance(np.int32, int)is False (GH11).
In python 3
zipis an iterator (and not a
list), thus it failed on
Removed unnecessary files (ne_downloader.py and naturalearth.py).
Resolved conflicting region outlines in the Giorgi regions (GH17).
v0.2.0 (5 September 2016)¶
Add name for xarray mask (GH3).
overhaul of the documentation
move rtd / matplotlib handling to background
v0.1.0 (15 August 2016)¶
first release on pypi