Skip to content

Releases: natcap/invest

3.16.2

13 Aug 19:49
Compare
Choose a tag to compare

3.16.2 (2025-08-13)

General

  • Updated readme to fix broken links, and also add links to repositories
    containing older source code and downloads, for future reference.
    (#2029 <https://github.com/natcap/invest/issues/2029>_)
  • Fixed a bug in build_datastack_archive where the raster filepath
    included in a datastack JSON for an ArcGIS GRID would be unusable.
    (#2103 <https://github.com/natcap/invest/issues/2103>_)

Workbench

  • Fixed a bug where the Workbench showed the incorrect status of a recently
    completed model run. (#2072 <https://github.com/natcap/invest/issues/2072>_)
  • Fixed a bug where parameter sets containing an argument with a value of 0
    weren't populating the model's UI for that argument.
    (#2075 <https://github.com/natcap/invest/issues/2075>_)
  • Fixed a bug where there was no visual indication for an invalid switch
    toggle state, which would prohibit running the model. NDR and
    Scenario Generator were the only affected models.
    (#2074 <https://github.com/natcap/invest/issues/2074>_)

Urban Cooling

  • Model validation now requires that the "UHI effect" is >= 0 degrees Celsius,
    meaning that the urban air temperature is greater than the rural reference
    temperature. (#2076 <https://github.com/natcap/invest/issues/2076>_)
  • Fixed a bug where NoData in cc was not correctly set if the Cooling
    Capacity Calculation Method was set to intensity
    (#2079 <https://github.com/natcap/invest/issues/2079>_).

3.16.1

01 Jul 20:42
Compare
Choose a tag to compare

This release includes the following fixes and features:

3.16.0

05 Jun 00:40
Compare
Choose a tag to compare

3.16.0 (2025-06-04)

Highlights

  • InVEST now supports plugins. The plugins framework allows users to develop
    their own models that can be loaded into the workbench and run like regular
    InVEST models. For more information, see the
    InVEST API documentation <https://invest.readthedocs.io/en/latest/index.html>_.
  • As part of the plugin release we developed two of our own plugin models.
    One is a wrapper around a python library for spatial downscaling of CMIP6
    climate data (InVEST GCM Downscaling <https://github.com/natcap/invest-gcm-downscaling>).
    The other is a version of the SDR model that takes in the landcover crop
    coefficient input as a spatial raster layer
    (Sediment Delivery Ratio with USLE C Raster Input <https://github.com/natcap/invest-sdr-usle-c-raster>
    ).
  • Added a feature to the NDR model that allows the nutrient load to be entered
    as an application rate or as an "extensive"/export measured value.
    Previously, the model's biophysical table expected the load_n and load_p
    columns to be an "extensive"/export measured value. Now, new columns for both
    nitrogen and phosphorous, load_type_n and load_type_p, are required
    with expected values of either application-rate or measured-runoff. See the
    Data Needs section <https://storage.googleapis.com/releases.naturalcapitalproject.org/invest-userguide/latest/en/ndr.html#data-needs>_ of the NDR User Guide for more details.
  • The Wind Energy model no longer returns results as rasters; instead, values
    are written to the output wind_energy_points shapefile for each point.
    For more details on this check out the Any Decision Record (ADR):
    ADR-0004: Remove Wind Energy Raster Outputs <https://github.com/natcap/invest/blob/main/doc/decision-records/ADR-0004-Remove-Wind-Energy-Raster-Outputs.md>_

General

  • The workbench and the natcap.invest python package now support plugins.
  • Fixed a micromamba command bug in 3.16.0a1 that was calling micromamba
    directly, instead of using the path to the executable
    (#1965 <https://github.com/natcap/invest/issues/1965>_). This was
    mistakenly not actually released in 3.16.0a2.
  • InVEST now has a file, CITATION.cff, which includes information needed for a
    citation, including a DOI for the 3.16.0 release,
    https://doi.org/10.60793/natcap-invest-3.16.0.
    (#1548 <https://github.com/natcap/invest/issues/1548>_)

Workbench

  • Fixed a bug where extracting and loading parameters from a datastack archive
    would overwrite data in the extraction location. Now, a new directory
    will be created in the chosen extraction location.
    (#1996 <https://github.com/natcap/invest/issues/1996>_)
  • Fixed a bug where the "Open" button on the home page would not
    open archived datastacks (.tgz) files.
    (#1993 <https://github.com/natcap/invest/issues/1993>_)
  • Metadata is now generated for files when creating a datastack (with any
    existing user-added metadata preserved)
    (#1774 <https://github.com/natcap/invest/issues/1774>_).

Coastal Blue Carbon

  • Updated the Coastal Blue Carbon documentation to clarify what happens when a
    class transitions from a state of accumulation or decay to a No Carbon Change
    ("NCC") state. (#671 <https://github.com/natcap/invest/issues/671>_).

HRA

  • The intermediate simplified vectors will now inherit their geometry type from
    the input vectors, rather than using ogr.wkbUnknown
    (#1881 <https://github.com/natcap/invest/issues/1881>_).

NDR

  • Fixed a bug in the effective retention calculation where nodata pour point
    pixels were mistakenly used as real data. The effect of this change is most
    pronounced along stream edges and should not affect the overall pattern of
    results. (#1845 <https://github.com/natcap/invest/issues/1845>_)
  • stream.tif is now saved in the main output folder rather than the
    intermediate folder (#1864 <https://github.com/natcap/invest/issues/1864>_).
  • Added a feature that allows the nutrient load to be entered as an
    application rate or as an "extensive"/export measured value.
    Previously, the model's biophysical table expected the load_[n|p]
    column to be an "extensive"/export measured value. Now, a new
    column for both nitrogen and phosphorous, load_type_[n|p], is
    required with expected values of either application-rate or
    measured-runoff. See the Data Needs section of the NDR User
    Guide for more details.
    (#1044 <https://github.com/natcap/invest/issues/1044>_).
  • Fixed a bug where input rasters (e.g. LULC) without a defined nodata value could
    cause an OverflowError. (#1904 <https://github.com/natcap/invest/issues/1904>_).

Seasonal Water Yield

  • stream.tif is now saved in the main output folder rather than the
    intermediate folder (#1864 <https://github.com/natcap/invest/issues/1864>_).

Urban Flood Risk

  • The raster output Runoff_retention.tif has been renamed
    Runoff_retention_index.tif to clarify the difference between it and
    Runoff_retention_m3.tif
    (#1837 <https://github.com/natcap/invest/issues/1837>_).

Visitation: Recreation and Tourism

  • user-day variables pr_PUD, pr_TUD, and avg_pr_UD are calculated
    and written to regression_data.gpkg even if the Compute Regression
    option is not selected.
    (#1893 <https://github.com/natcap/invest/issues/1893>_).

Wind Energy

  • The model no longer returns results as rasters; instead, values are
    written to the output wind_energy_points shapefile for each point
    (#1698 <https://github.com/natcap/invest/issues/1698>).
    Any Decision Record (ADR): ADR-0004: Remove Wind Energy Raster Outputs <https://github.com/natcap/invest/blob/main/doc/decision-records/ADR-0004-Remove-Wind-Energy-Raster-Outputs.md>
  • The output wind_energy_points.shp no longer returns Harvested or
    Valuation-related values for points that are invalid wind farm locations
    due to depth or distance constraints
    (#1699 <https://github.com/natcap/invest/issues/1699>_).

3.16.0a2

28 May 18:12
Compare
Choose a tag to compare

This release includes the following fixes and features:

3.16.0a1

28 May 02:55
Compare
Choose a tag to compare

This release includes the following fixes and features:

3.15.1

06 May 21:32
b78d58d
Compare
Choose a tag to compare

General

  • Handle exceptions that can arise during validation.check_spatial_overlap
    when a layer's bounding box cannot be transformed to EPSG:4326.
    (#1849 <https://github.com/natcap/invest/issues/1849>_).

Workbench

  • Fixed a bug that did not allow users to select a folder as the location
    to extract a datastack archive.
    (#1879 <https://github.com/natcap/invest/issues/1879>_).
  • When a parameter from a previous model run is changed, the model status
    indicator (e.g., the "Model Complete" notice) is cleared to help prevent
    confusion about which parameters went into the most recent model run
    (#1655 <https://github.com/natcap/invest/issues/1655>_).

Crop Production

  • Both the Percentile and Regression models now issue a warning if any LULC
    code in the LULC raster is not present in the landcover to crop table, or if
    any LULC code in the landcover to crop table is not present in the LULC
    raster (#925 <https://github.com/natcap/invest/issues/925>_).
  • The Regression model now correctly validates crop names against the existence
    of a corresponding regression yield table
    (#1723 <https://github.com/natcap/invest/issues/1723>_).

Seasonal Water Yield

  • Fixed bug in quickflow calculation where NoData values in precipitation
    were being incorrectly converted to 0's
    (#1592 <https://github.com/natcap/invest/issues/1592>_).

Wind Energy

  • Fixed a bug where the model would error if no AOI was provided when run from
    the workbench or from a datastack file where the value for 'aoi_vector_path'
    was an empty string. (#1900 <https://github.com/natcap/invest/issues/1900>_)

3.15.0

03 Apr 19:53
84f6108
Compare
Choose a tag to compare

3.15.0 (2025-04-03)

Highlights

  • Multiple models now use per-hectare units in their raster outputs. Prior
    to this update, these rasters reported per-pixel values. This change
    affects the following models:

    • Carbon
    • Crop Production
    • Forest Carbon Edge Effect
    • NDR
    • SDR
  • NDR, SDR, and Seasonal Water Yield now support the D8 routing algorithm
    in addition to MFD.

  • Visitation: Recreation and Tourism model now includes Twitter data.

  • InVEST model outputs now include metadata. Open the '.yml' files
    in a text editor to read and add to the metadata.

General

  • Fixed an issue where a user's PROJ_DATA environment variable could
    trigger a RuntimeError about a missing proj.db file.
    #1742
  • Now testing and building against Python 3.13.
    No longer testing and building with Python 3.8, which reached EOL.
    #1755
  • All InVEST model output data now include metadata sidecar files.
    These are '.yml' files with the same basename as the dataset they
    describe. #1662
  • InVEST's Windows binaries are now distributed once again with a valid
    signature, signed by Stanford University.
    #1580
  • InVEST's macOS disk image is now distributed once again with a valid
    signature, signed by Stanford University.
    #1784
  • The natcap.invest python package now officially supports linux.
    manylinux wheels will be available on PyPI.
    (#1730 <https://github.com/natcap/invest/issues/1730>_)
  • Removed the warning about gdal.UseExceptions().
    Python API users should still call gdal.UseExceptions(), but no
    longer need to do so before importing natcap.invest.
    #1702

Workbench

  • Auto-scrolling of log output is halted on user-initiated scrolling,
    enabling easier inspection of log output while a model is running
    (InVEST #1533 <https://github.com/natcap/invest/issues/1533>_).
  • Fixed a bug where toggle inputs would fail to respond if multiple tabs
    of the same model were open.
    #1842

Annual Water Yield

  • Fixed an issue where the model would crash if the valuation table was
    provided, but the demand table was not. Validation will now warn about
    this, and the MODEL_SPEC has been improved to reflect that this table
    is now required when doing valuation.
    #1769

Carbon

  • Updated styling of the HTML report generated by the carbon model, for
    visual consistency with the Workbench (InVEST #1732 <https://github.com/natcap/invest/issues/1732>_).
  • Raster outputs that previously contained per-pixel values (e.g., t/pixel)
    now contain per-hectare values (e.g., t/ha). (InVEST #1270 <https://github.com/natcap/invest/issues/1270>_).
  • Removed the REDD scenario and updated the naming of the Current and
    Future scenarios to Baseline and Alternate, respectively, to better
    indicate that users are not limited to comparing present and future.
    (InVEST #1758 <https://github.com/natcap/invest/issues/1758>_).
  • Changed output filename prefixes from tot_c to c_storage and
    delta to c_change. (InVEST #1825 <https://github.com/natcap/invest/issues/1825>_).
  • Fixed bug where discount rate and annual price change were incorrectly
    treated as ratios instead of percentages. (InVEST #1827 <https://github.com/natcap/invest/issues/1827>_).

Coastal Blue Carbon

  • The code column in the model's biophysical table input, as well as
    the code column in the preprocessor's LULC lookup table input and
    carbon_pool_transient_template output, have been renamed lucode,
    for consistency with other InVEST models (InVEST #1249 <https://github.com/natcap/invest/issues/1249>_).

Crop Production

  • Raster outputs that previously contained per-pixel values (e.g., t/pixel)
    now contain per-hectare values (e.g., t/ha). This change affects both
    the Percentile and Regression models (InVEST #1270 <https://github.com/natcap/invest/issues/1270>_).

Forest Carbon Edge Effect

  • Raster outputs that previously contained per-pixel values (e.g., t/pixel)
    now contain per-hectare values (e.g., t/ha). (InVEST #1270 <https://github.com/natcap/invest/issues/1270>_).

Habitat Quality

  • The lulc column in the sensitivity table input, and the lulc_code
    column in the rarity table outputs, have been renamed lucode, for
    consistency with other InVEST models (InVEST #1249 <https://github.com/natcap/invest/issues/1249>_).
  • The model now expects the maximum threat distance (max_dist in the
    threats table) to be specified in m instead of km (InVEST #1252 <https://github.com/natcap/invest/issues/1252>_).
  • Adjusted total habitat degradation calculation to calculate degradation
    for each threat and create intermediate degradation rasters. Total
    degradation is now calculated using these individual threat degradation
    rasters.
    #1100

NDR

  • Align rasters to the grid of the DEM raster
    (#1488 <https://github.com/natcap/invest/issues/1488>_).
  • Raster outputs that previously contained per-pixel values (e.g., kg/pixel)
    now contain per-hectare values (e.g., kg/ha). (InVEST #1270 <https://github.com/natcap/invest/issues/1270>_).
  • Made the runoff proxy index calculation more robust by allowing users to
    specify the average runoff proxy, preventing normalization issues across
    different climate scenarios and watershed selections.
    #1741
  • D8 routing is now supported in addition to MFD
    (#1440 <https://github.com/natcap/invest/issues/1440>_).

Scenario Generator

  • Updated the output CSV columns: Renamed lucode column original lucode
    to clarify that it contains the original, to-be-converted, value(s). Added
    replacement lucode column, containing the LULC code to which habitat was
    converted during the model run.
    #1295

Scenic Quality

  • Fixed a bug where the visibility raster could be incorrectly set to 1
    ('visible') if the DEM value was within floating point imprecision of the
    DEM nodata value (#1859 <https://github.com/natcap/invest/issues/1859>_).

SDR

  • Raster outputs that previously contained per-pixel values (e.g., t/pixel)
    now contain per-hectare values (e.g., t/ha). (InVEST #1270 <https://github.com/natcap/invest/issues/1270>_).
  • D8 routing is now supported in addition to MFD
    (#1440 <https://github.com/natcap/invest/issues/1440>_).

Seasonal Water Yield

  • D8 routing is now supported in addition to MFD
    (#1440 <https://github.com/natcap/invest/issues/1440>_).

Urban Cooling

  • Align rasters to the grid of the LULC raster, rather than the ET0 raster
    (#1488 <https://github.com/natcap/invest/issues/1488>_).
  • Updated the documentation for the mean_t_air attribute of the
    buildings_with_stats.shp output to clarify how the value is
    calculated. #1746
  • Fixed bug in the calculation of Cooling Capacity (CC) provided by parks,
    where the CC Index was not being properly incorporated.
    #1726

Urban Stormwater Retention

  • Fixed a bug causing inf values in volume outputs because nodata
    values were not being set correctly (InVEST #1850 <https://github.com/natcap/invest/issues/1850>_).

Visitation: Recreation and Tourism

  • Added a database of geotagged tweets to support calculating
    twitter-user-days (TUD) as proxy for visitation rates. The model now calculates
    photo-user-days (PUD) and TUD and uses their average as the response
    variable in the regression model. Please refer to the User's Guide for
    more details on the regression model.
  • Output data were updated to support the new TUD results, and vector outputs
    are now in GeoPackage format instead of ESRI Shapefile.
  • Regression coefficients are still listed in a summary text file, and are now
    also included in a tabular output: "regression_coefficients.csv".

Wind Energy

  • Fixed a bug that could cause the Workbench to crash when running the Wind
    Energy model with Taskgraph logging set to DEBUG (InVEST #1497 <https://github.com/natcap/invest/issues/1497>_).

3.14.3

19 Dec 22:13
Compare
Choose a tag to compare

3.14.3 (2024-12-19)

  • General
    • InVEST has been updated to build against numpy 2.
      #1641
    • Updating validation to handle a change in exceptions raised by GDAL in
      pygeoprocessing.get_raster_info and
      pygeoprocessing.get_vector_info.
      #1645
    • The scripting page of the InVEST API documentation has been updated to
      reflect changes in how InVEST is installed on modern systems, and also to
      include images of the InVEST workbench instead of just broken links.
      #1660
    • Updated translations for Spanish and Chinese
    • natcap.invest now works with (and requires) gdal.UseExceptions. A
      FutureWarning is raised on import if GDAL exceptions are not enabled.
    • Fixed an issue on Windows where GDAL fails to find its DLLs due to
      an interfering GDAL installation on the PATH, such as from anaconda.
      #1643
    • Improved error handling of NA values in raster reclassification to provide
      a more descriptive message.
  • Workbench
    • Several small updates to the model input form UI to improve usability
      and visual consistency (#912).
    • Fixed a bug that caused the application to crash when attempting to
      open a workspace without a valid logfile
      (#1598).
    • Fixed a bug that was allowing readonly workspace directories on Windows
      (#1599).
    • Fixed a bug that, in certain scenarios, caused a datastack to be saved
      with relative paths when the Relative Paths checkbox was left unchecked
      (#1609).
    • Improved error handling when a datastack cannot be saved with relative
      paths across drives (#1608).
    • The InVEST changelog now displays in the Workbench the first time a new
      version is launched (#1368).
  • Coastal Vulnerability
    • Fixed a regression where an AOI with multiple features could raise a
      TypeError after intersecting with the landmass polygon.
      #1657
  • Forest Carbon Edge Effects
    • Updating vector reprojection to allow partial reprojection. Related to
      #1645
  • Habitat Quality
    • Access raster is now generated from the reprojected access vector
      (#1615).
    • Rarity values are now output in CSV format (as well as in raster format)
      (#721).
    • Improved error handling when there is a missing LULC value in the
      sensitivity table (#1671).
  • Pollination
    • Fixed an issue with nodata handling that was causing some outputs to be
      filled either with the float32 value for positive infinity, or else with
      a value very close to it. #1635
    • While working on #1635, we also
      updated the stated dtype of most pollination model outputs to be float32
      instead of the float64 dtype that was being assumed previously. This
      will result in smaller output filesizes with minimal loss of precision.
  • Seasonal Water Yield
    • Added support for zero padding in month numbers in ET and precipitation
      file names (i.e., users can now name their file Precip_01.tif).
      (#1166)
    • Fixed a bug where numpy.nan pixel values would not be correctly
      detected as nodata in local recharge and baseflow routing functions.
      (#1705)
  • Urban Flood Risk
    • Fields present on the input AOI vector are now retained in the output.
      (#1600)
  • Urban Nature Access
    • The model now works as expected when the user provides an LULC raster
      that does not have a nodata value defined.
      #1293

3.14.2

30 May 00:21
Compare
Choose a tag to compare

This release includes the following fixes and features:

  • General
    • Validation now covers file paths contained in CSVs. CSV validation
      will fail if the files listed in a CSV fail to validate.
      #327

    • We have updated validation in several ways that will improve the
      developer experience of working with InVEST models, and we hope will also
      improve the user experience:

      • Symbols in conditional requirement expressions now represent the values
        of parameters instead of whether the value of the parameter is
        sufficient. If a symbol is not present in args as a key, the
        symbol will have a value of False. This allows for value-based
        comparisons, which is useful in models that have overlapping modes of
        operation. #1509
      • Vector fields, CSV rows/columns and the 1st level of directory
        contents may now all be conditionally required based on a python
        expression.
      • Under certain circumstances, validation may return more warnings than
        before. This specifically applies to model inputs that have conditional
        requirement expressions where their expression evaluates to False,
        and the user has provided a value for this parameter. Previous
        versions of InVEST would skip these parameters' type-specific
        validation. Now, these parameters will be validated with their
        type-specific validation checks.
    • Add support for latest GDAL versions; remove test-specific constraint on
      GDAL versions from invest requirements.
      #916

    • Updated to Cython 3 (#556)

  • Annual Water Yield
    • Added the results_suffix to a few intermediate files where it was
      missing. #1517
  • Coastal Blue Carbon
    • Updated model validation to prevent the case where a user provides only
      one snapshot year and no analysis year
      (#1534 <https://github.com/natcap/invest/issues/1534>_).
      Also enforces that the analysis year, if provided, is greater than the
      latest snapshot year. An analysis year equal to the latest snapshot year
      is no longer allowed.
  • Coastal Vulnerability
    • Fixed a bug in handling nan as the nodata value of the bathymetry
      raster. nan pixels will now be propertly ignored before calculating
      mean depths along fetch rays.
      #1528
  • HRA
    • Fixed a bug where habitat and stressor vectors were not being rasterized
      with the ALL_TOUCHED=TRUE setting.
  • Scenic Quality
    • Fixed an issue with viewshed calculations where some slight numerical
      error was introduced on M1 Macs, but not on x86-based computers. This
      numerical error was leading to slightly different visibility results.
      #1562
  • SDR
    • Fixed an issue encountered in the sediment deposition function where
      rasters with more than 2^32 pixels would raise a cryptic error relating
      to negative dimensions. #1431
    • Optimized the creation of the summary vector by minimizing the number of
      times the target vector needs to be rasterized.
  • Seasonal Water Yield
    • Fixed an issue with the precip directory units. Units for these input
      rasters are now correctly stated as mm/month.
      #1571
    • Fixed an issue where the monthly quickflow values were being summed over
      a block area and not summed pixelwise. This caused the quickflow
      output QF.tif to have malformed values.
      #1541
  • Wind Energy
    • Fixed a bug where some number inputs were not being properly cast to
      float or int types. If the inputs happened to be passed as
      a str this caused unintended side effects such as a concatenation
      error. (#1498)
  • Urban Nature Access
    • Fixed a NameError that occurred when running the model using
      search radii defined per population group with an exponential search
      kernel. #1502
    • Fixed an issue where Urban Nature Access would crash if an administrative
      boundary geometry did not overlap any people in the population raster.
      #1503
    • Fixed an issue where validation was failing to catch missing values in
      the uniform search radius args key when using uniform search radii.
      #1509
    • Fixed an issue where the output administrative units vector's
      Pund_adm and Povr_adm fields representing undersupplied and
      oversupplied populations, respectively, had values of 0 when running the
      model with search radii defined per population group. The output
      administrative units vector now has the correct values for these fields,
      consistent with the user's guide chapter.
      #1512
    • Fixed an issue where certain nodata values were not being handled
      correctly, leading to pixel values of +/- infinity in the urban nature
      balance output raster. #1519
    • Fixed an issue where an LULC raster without a nodata value would
      always raise in exception during reclassification.
      #1539

3.14.1

18 Dec 22:37
Compare
Choose a tag to compare

3.14.1 (2023-12-15)

  • General
    • In advance of the numpy 2.0 release, function calls to numpy.product
      have been replaced with numpy.prod.
      #1410
    • Add support for python 3.11 #1103
    • Adding a docker container that is built on each commit where a change to
      model code, requirements, or the docker configuration has been made.
      #1115
    • Vector geometry types will now be validated for all models
      #1374
    • Datastack archives will now be correctly extracted
      #1308
    • Validation of tables has been improved and standardized, which should
      result in more readable validation errors.
      #1379
    • Updated to pygeoprocessing 2.4.2. This includes an update to
      pygeoprocessing.zonal_statistics, which is now more correct on certain
      edge cases. Aggregated model results may change slightly.
    • Removed the utils functions array_equals_nodata,
      exponential_decay_kernel_raster, and gaussian_decay_kernel_raster,
      which were obsoleted by new pygeoprocessing features.
    • Version metadata at import time is now fetched with
      importlib.metadata instead of pkg_resources.
      #1442
    • The API docs logo has been updated to use the latest version of the
      InVEST logo. #1463
  • Workbench
    • Fixed a broken "Find my logfiles" button on MacOS.
      #1452
  • Coastal Vulnerability
    • Fixed a bug where the model would crash when processing a float type
      bathymetry raster with no nodata value.
      #992
  • Habitat Quality
    • Updated the threat table column description to clarify that the threat
      table columns: cur_path, fut_path, and base_path are meant
      to be file system path strings.
      #1455
  • HRA
    • Fixed an issue preventing the HRA criteria table from loading when the
      table was UTF-8 encoded with a Byte-Order Marker.
      #1460
    • Fixed an issue with the cross-OS loading of InVEST datastack files.
      #1065
    • Fixed an issue where habitats and stressors in the criteria table were
      not being lowercased causing a comparison issue against values from the
      info table that were being lowercased.
      #1467
  • NDR
    • Fixing an issue where minor geometric issues in the watersheds input
      (such as a ring self-intersection) would raise an error in the model.
      #1412
    • Fixed a task dependency issue where NDR would crash because of a race
      condition when run with n_workers > 0.
      #1426
    • Fixed an issue in NDR's effective retention where, on rasters with more
      than 2^31 pixels, the model would crash with an error relating to a
      negative (overflowed) index. #1431
  • Pollination
    • Fixed a regression where nodata values were not being properly compared.
      This was only an issue in some development builds after 3.14.0.
      #1458
    • Replaced custom kernel implementation with pygeoprocessing.kernels.
      Convolution results may be slightly different (more accurate).
  • SDR
    • Fixed an issue with SDR's sediment deposition where large regions would
      become nodata in cases where the DEM has valid data but other inputs
      (LULC, erosivity, erodibility) did not have valid pixels. Now, all
      raster inputs are mutually masked so that only those pixel stacks
      continue through to the model where all pixels in the stack are
      non-nodata. #911
    • RKLS, USLE, avoided erosion, and avoided export rasters will now have
      nodata in streams #1415
    • Fixed an issue in SDR's sediment deposition where, on rasters with more
      than 2^31 pixels, the model would crash with an error relating to a
      negative (overflowed) index. #1431
  • Seasonal Water Yield
    • Fixed an issue in Seasonal Water Yield's baseflow routing and local
      recharge functions where, on rasters with more than 2^31 pixels, the
      model would crash with an error relating to a negative (overflowed)
      index. #1431
  • Urban Cooling
    • Fixed a bug where model would error out if any feature in the buildings
      vector was missing a geometry; now they will be skipped
      #1401
  • Wind Energy
    • Fixed a bug where model would error when the grid points path was empty
      #1417