Changelog#

v0.2.0 (2025-08-20)#

Contributor to this version: Baptiste Hamon (@baptistehamon).

New features#

  • Functions’ alternative names can now be used in SuitabilityFunction (PR #43).

  • The documentation of membership functions has been improved (PR #43).

  • LSAPy officially supports Python>=3.10 and is OS independent (PR #46).

  • repr methods of SuitabilityFunction, SuitabilityCriteria and LandSuitabilityAnalysis have been modified to provide more user-friendly information (issue #55, PR #59).

  • A setter has been added to the attrs method of SuitabilityCriteria and LandSuitabilityAnalysis (issue #55, PR #59).

  • The open_data function has been added to the lsapy.utils module to load data from the LSAPy data repository (issue #60, PR #62).

  • A median aggregation method has been added (PR #63).

Breaking changes#

  • The deprecated SuitabilityFunction.map method has been removed (PR #44).

  • short_name, long_name, description and comment attributes of SuitabilityCriteria and LandSuitabilityAnalysis have been removed and are now stored in the attrs attribute (issue #55, PR #59).

  • load_climate_data and load_soil_data functions have been removed (issue #60, PR #62).

  • Some names of aggregation methods have been changed (PR #63):
    • weighted_mean is now wmean

    • geomean is now gmean

    • weighted_geomean is now wgmean

    • limiting_factor is now limfactor

  • The vars_weighted_mean, vars_mean, vars_geomean, vars_weighted_geomean and limiting_factor aggregation methods have been removed (PR #63).

Internal changes#

  • Tests have been added for currently implemented LSAPy functionalities (issue #7, PR #46).
    • pytest is used as the testing framework to run all unit tests, doctests and test notebooks.

    • nox has been set up and is used to run tests in CI workflows.

  • A CI GitHub Actions workflow has been added (issue #8, PR #46)
    • The CI runs tests on Python 3.10 to 3.13, on Ubuntu, macOS and Windows.

    • The coverage, doctests and notebook tests are run on Ubuntu under Python 3.12.

  • New pre-commit hooks have been added and the package pyproject has been updated (PR #58)
    • New hooks: yamllint, vulture, nbstripout, pygrep-hooks, mdformat, blackdoc, formatbibtex, gitleaks and meta.

    • Update dependencies: remove unused Shapely and add dependencies for new hooks.

    • Add deptry config to track dependencies.

    • Update package metadata: keywords, classifiers (python versions) and project URLs.

    • Update package sdist files.

  • The lsapy.core.formatting module has been added and contains repr formatting functions (issue #55, PR #59).

  • LSAPy sample data management has been improved (issue #60, PR #62):
    • LSAPy now uses pooch to fetch sample data.

    • Old data files have been removed from the data folder, and the new climate data file has been added.

    • A registry file has been added to store sample data file names, hashes and URLs.

  • Aggregation functions have been moved to the lsapy.core.aggregation module (PR #63).

  • A relaxed configuration of mypy has been added to the project (PR #66).

Bug fixes#

  • Fix issues with representations of SuitabilityFunction when no parameters are provided (issue #61, PR #65).

  • Add **kwargs to SuitabilityCriteria.compute and LandSuitabilityAnalysis.run to allow handling Dask arrays (issue #64, PR #65).

  • The codebase has been modified to improve typing and fix mypy errors (issue #35, PR #66).

v0.1.1 (2025-07-26)#

Contributor to this version: Baptiste Hamon (@baptistehamon).

Internal changes#

  • The documentation has been updated to reflect the changes in LandSuitabilityAnalysis workflow (issue #41, PR #42).

v0.1.0 (2025-07-25)#

Contributor to this version: Baptiste Hamon (@baptistehamon).

New features#

  • New function membership.fit_membership implemented as replacement of the deprecated MembershipSuitFunction.fit method (issue #29, PR #30).

Breaking changes#

  • MembershipSuitFunction and DiscreteSuitFunction have been removed (issue #29, PR #30).

  • Changes in SuitabilityFunction (issue #15, PR #23 & PR #30):
    • func_method and func_params have been renamed to name and params respectively.

    • map has been deprecated because of its redundancy with the __call__ method. Changes will be permanent in LSAPy v0.1.0. Call the function directly instead.

  • LandSuitability has been renamed to LandSuitabilityAnalysis. (issue #15, PR #26)
    • name has been renamed to land_use.

    • compute_criteria_suitability, compute_category_suitability, and compute_suitability methods have been removed and the method run has been implemented as replacement (issue #15, PR #38)

    • mask, statistics and spatial_statistics methods have been removed.

Internal changes#

  • Templates for requesting new features, asking question and submitting PR have been added (issue #11, PR #12).

  • The README has been updated to make links permanent and to add a docs badge (PR #13, PR #15).

  • A configuration file for Zenodo integration has been added to the repository (PR #14).

  • Pre-commit has been setup and ruff, codespell and numpydoc hooks have been added (issue #8, PR #18/PR #19).

  • The autoupdate schedule of pre-commit has been set to weekly (PR #21)

  • The unused introduction.ipynb notebook has been removed (issue #15, PR #20).

  • The structure around SuitabilityFunction (PR #30):
    • The SuitabilityFunction has been moved to LSAPy function._suitability module.

    • The membership functions have been moved to the function.membership module.

    • The discrete function has been moved to the function._discrete module.

    • The equation decorator has been rename to declare_equation and moved to the core.function module.

    • The get_function_from_name function has been moved to the core.function module.

  • Changes on SuitabilityCriteria (issue #15, PR #31):
    • It now has a comment and is_computed attributes.

    • func parameter is now optional, useful when the criteria is already computed.

  • LSAPy logo has been added: README and documentation have been updated to use it (PR #27)

v0.1.0-dev2 (2025-05-25)#

Contributor to this version: Baptiste Hamon (@baptistehamon).

Internal changes#

  • Major changes for documentation (issue #2, PR #9):
    • All public objects are now documented using the NumPy-style.

    • introduction.ipynb has been slip into three different ones: criteria.ipynb, function.ipynb, and lsa.ipynb.

    • The top-level documentation has been updated/created:
      • The format of README and CHANGELOG files is now reStructuredText (RST).

      • A proper README has been created.

      • A CODE_OF_CONDUCT file adopting the Contributor Covenant code of conduct has been added.

      • A CONTRIBUTING.md providing guidelines on how to contribute to the project has been added.

    • FT20250 and UC logos used in the documentation have been added to the repository.

    • The documentation building using Sphinx has been setup:
      • The documentation uses the PyData theme.

      • A User-facing documentation is now available and has been published on Read the Docs.

    • The project dependencies have been updated and made consistent across pyproject.toml and environments.yml files.

v0.1.0-dev1 (2025-05-16)#

Contributor to this version: Baptiste Hamon (@baptistehamon).

New features#

  • Add ruff configuration to the project.

Bug fixes#

  • Fix the fit of MembershipSuitFunction returning the wrong best fit (issue #1, PR #5)

v0.1.0-dev0 (2025-03-12)#

Contributor to this version: Baptiste Hamon (@baptistehamon).

  • First release on PyPI.

New features#

  • SuitabilityFunction to define the function used for suitability computation.

  • SuitabilityCriteria to define criteria to consider in the LSA

  • LandSuitability to conduct LSA.