Recent Releases of lsapy

lsapy - v0.2.0

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).

- Python
Published by baptistehamon 10 months ago

lsapy - v0.1.1

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).

- Python
Published by baptistehamon 10 months ago

lsapy - v0.1.0

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 questions 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 set up 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)

- Python
Published by baptistehamon 10 months ago

lsapy - v0.1.0-dev2

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 CODEOFCONDUCT 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 accross pyproject.toml and environments.yml files.

- Python
Published by baptistehamon about 1 year ago

lsapy - v0.1.0-dev1

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)

- Python
Published by baptistehamon about 1 year ago

lsapy - v0.1.0-dev0

First release on PyPI.

  • SuitabilityFunction to define the function used for suitability computation.
  • SuitabilityCriteria to define criteria to consider in the LSA.
  • LandSuitability to conduct LSA.

- Python
Published by baptistehamon about 1 year ago