Change log#
v3.1.0 - 2025-02-13#
:sparkles: New Features#
3bbd673- setdatesattribute inSpatioTemporalZonalAnalysis(commit by @martibosch)b70b3ca- spatial signature analysis (commit by @martibosch)
:white_check_mark: Tests#
b602b87- add {posargs} to pytest command in tox to run selected tests (commit by @martibosch)
v3.0.3 - 2024-12-11#
:bug: Bug Fixes#
18220ed- consistent handling of metrics for classes with no patches (commit by @martibosch)
v3.0.2 - 2024-12-10#
:bug: Bug Fixes#
f73a61b- cython, py3.13, build with setuptools and tests with tox (PR #60 by @martibosch)
v3.0.1 - 2024-10-25#
:bug: Bug Fixes#
d1f7d37- drop stale black requirement (commit by @martibosch)
v3.0.0 - 2024-10-24#
:sparkles: New Features#
913fb06- catch pyogrio errors when reading zones for geopandas>1 (commit by @martibosch)
v3.0.0rc2 (2024-05-21)#
:boom: BREAKING CHANGES#
due to
bbef272- rename kws -> kwargs (commit by @martibosch):rename kws -> kwargs
:sparkles: New Features#
:bug: Bug Fixes#
ea7cde5- missing fragstats abbrevs for core (also use f-strings) (commit by @martibosch)d074f32- len in SpatioTemporalZonalAnalysis (commit by @martibosch)1ce4a4e- min two classes warning for entropy (credits to @kareed1) (commit by @martibosch)72c1cc9- except zerodivisionerror in disjunct_core_area_am (commit by @martibosch)6fa816c- catch fiona DriverError forzoneswhen fiona is installed (commit by @martibosch)
:recycle: Refactors#
bbef272- rename kws -> kwargs (commit by @martibosch)
v3.0.0rc1 (2023-11-20)#
Feat#
core area metrics (#45)
Fix#
apply
to_numericin stza compute_class_metrics_dffillna with 0 for core area metrics
v3.0.0rc0 (2023-09-11)#
Feat#
3.0.0rc0 (#40)
Fix#
manual cbuildwheel steps (until action is in marketplace) (#28)
single quotes in release.yml (see actions/runner/issues/866) (#27)
manage dtype for adj/reclassif arrays; fix reclassif arr init
2.4.2 (19/11/2021)#
fix sum(level) -> groupby(level).sum (pandas deprecation)
dropped six for metaclasses (using direct ABC inheritance)
2.4.1 (19/11/2021)#
GitHub Actions tests in develop branch too
2.4.0 (13/11/2021)#
added methods to compute information theory-based metrics by Nowosad et Stepinski (2019).
using pre-commit with black, isort, flake8 and pydocstyle
CI (tests) and CD (release to PyPI) with github actions
2.3.0 (23/04/2021)#
improved exception caching in compute metric data frames methods
init
BufferAnalysiswithLandscapewith non-Nonetransformtest required init args in
LandscapeandZonalGridAnalysistest
ValueErrorin data frames with patch/class/landscape-only metricsseveral corrections in docstrings/comments/error msgs
fix: removed
SpatioTemporalBufferAnalysis._landscape_metrics_df(dropped this kind of caching in v2.0.0)using python3
superwith no argumentsadded
neighborhood_ruleargument (to choose 4/8-cell adjacencies)fixed legend in
plot_landscapeand addedlegend_kwsargfixed multilandscape plot with one landscape, e.g., 1-zone analysis
fixed values of zone_arr (to id zones) to avoid nodata=0 confusion
default nodata (when providing numpy arrays) from settings module
2.2.1 (12/11/2020)#
ZonalAnalysis.attribute_namefrommaskswhen providing geoseriesavoid reprojecting equivalent CRS (pyproj
__eq__vs.is_exact_same) inZonalAnalysis
2.2.0 (05/11/2020)#
fill
NaNvalues according to the metric inMultiLandscape.compute_class_metrics_dfconsistent imports so that there are no direct class/function calls, and no module abbreviations in the documentation
zonal analysis with more general
masksargument, which also accepts vector geometries (and replaces the now deprecatedmasks_arr)
2.1.3 (02/09/2020)#
ensure numeric dtypes in metrics data frames
np.nannodata in img passed torasterio.plot.showinplot_landscape
2.1.2 (03/08/2020)#
more robust
loc(with index and columns) to compute metrics data frames inMultiLandscape
2.1.1 (12/06/2020)#
corrected
ZonalGridAnalysisdocstringcorrected computation of
num_zone_colsinZonalGridAnalysis
2.1.0 (11/05/2020)#
configured flake8 in setup.cfg and added flake8 test in travis.yml
added
compute_zonal_statisticsmethod toZonalAnalysisand adedZonalGridAnalysisclassImplemented the
effective_mesh_sizemetric
2.0.0a1 (24/09/2019)#
gradient -> zonal
corrected cmap arg: default from rcParams, accept str
updates in the docs (changed link to notebook + cleaned Makefile)
2.0.0a0 (20/09/2019)#
corrected shapely version in setup.py (bumpversion messed it)
updated bumpversion for release candidates
catch TypeError for existing metrics but at the wrong level
always import modules, not methods/classes
consistent API: all data frames obtained with
computemethods
1.1.1 (18/09/2019)#
corrected rst typo in
total_areadocsfixed missing perimeter distribution statistic metric and dried class constants definitions
fixed patch edge array computation when computing ENN (otherwise the speed-up of 1.1.0 is not effective)
1.1.0 (17/09/2019)#
speed-up (~x2) in
Landscape.compute_patch_euclidean_nearest_neighbor: compute pixel-to-pixel distances for patch edges only
1.0.2 (25/07/2019)#
fix landscape array dtype in
SpatioTemporalBufferAnalysisincluded
LICENSEinMANIFEST.in
1.0.1 (24/07/2019)#
deleted Python 2 classifiers in
setup.pyfix ValueError message for
landscape_crsandlandscape_transforminBufferAnalysisfix landscape array dtype in
GradientAnalysisandBufferAnalysis
1.0.0 (18/07/2019)#
dropped Python 2 support
added
SpatioTemporalBufferAnalysis.plot_landscapesmethodadded
buffer_dist_legendargument and docs inSpatioTemporalBufferAnalysis. plot_metricfix proper metric data frame properties in
SpatioTemporalBufferAnalysispass
transformargument when initializatingMultiLandscapeinstances (i.e.,SpatioTemporalAnalysis,BufferAnalysis,GradientAnalysisandSpatioTemporalBufferAnalysis)plot_landscapeandplot_landscapeswith rasterio.plot.showchanged
feature_{name,values}forattribute_{name,values}inMultiLandscape(abstract) classdropped
plot_metricsmethod
0.6.1 (02/07/2019)#
cell width and length comparisons with
numpy.iscloseto deal with imprecisions that come from float pixel resolutions (e.g., in GeoTIFF files)critical fix: moved pythran signatures from
compute.pythrantocompute.pyso that the build is properly done when pip-installing
0.6.0 (01/07/2019)#
flat array approach to the computation of the adjacency matrix with pythran to improve performance (plus fixes a bug on the computation of
total_edge)initialization of
scipy.spatial.cKDTreewith keyword argumentsbalanced_treeandcompact_nodesset toFalse
0.5.0 (28/05/2019)#
methods plotting multiple axes return only the figure instead of a tuple with the figure and the axes
settings module that allow configuring metrics’ labels in plots, defaulting to FRAGSTATS abbreviations
chaged CRS in tests to work with pyproj >= 2.0.0
corrected
figlengthforfigwidthwarn when computing metrics that require an unmet minimum number of patches or classes (and their computation returns nan)
all tests with
unittest.TestCaseassert methods
0.4.1 (03/04/2019)#
added docstrings for
MultiLandscape,GradientAnalysisandBufferAnalysisraise
ValueErrorwhen using buffer rings around a polygon geometry
0.4.0 (03/04/2019)#
implemented
SpatioTemporalBufferAnalysiswith a dedicatedplot_metricmethodadded buffer ring-wise analysis through a
buffer_ringsboolean argument inBufferAnalysis
0.3.1 (29/03/2019)#
float equality comparations with numpy
isclosemethod
0.3.0 (28/03/2019)#
implemented
GradientAnalysisandBufferAnalysisadded optional
geopandasdependencescreated abstract
MultiLandscapeclassLandscapeinitialization from ndarray or geotiff (droppedread_geotiffmethod)implemented
contagionconvolution-based adjacency dataframe
fixed bug with
class_condinLandscape.compute_arr_edge
0.2.0 (18/03/2019)#
implemented
euclidean_nearest_neighborand all its corresponding class/landscape distribution statistic metricsfixed dtype of
self.classesinlandscape.Landscapeset default argument
nodata=None(instead ofnodata=0) forlandscape.read_geotiffchanged test input data files
implemented
__len__ofspatiotemporal.SpatioTemporalAnalysis
0.1.1 (22/01/2019)#
corrected if-else statements involving
Nonevariables
0.1.0 (22/01/2019)#
initial release