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 inargs
as a key, the
symbol will have a value ofFalse
. 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 toFalse
,
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.
- Symbols in conditional requirement expressions now represent the values
-
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
- Added the results_suffix to a few intermediate files where it was
- 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.
- Updated model validation to prevent the case where a user provides only
- 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
- Fixed a bug in handling
- HRA
- Fixed a bug where habitat and stressor vectors were not being rasterized
with theALL_TOUCHED=TRUE
setting.
- Fixed a bug where habitat and stressor vectors were not being rasterized
- 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
- Fixed an issue with viewshed calculations where some slight numerical
- 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.
- Fixed an issue encountered in the sediment deposition function where
- 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
outputQF.tif
to have malformed values.
#1541
- Fixed an issue with the precip directory units. Units for these input
- Wind Energy
- Fixed a bug where some number inputs were not being properly cast to
float
orint
types. If the inputs happened to be passed as
astr
this caused unintended side effects such as a concatenation
error. (#1498)
- Fixed a bug where some number inputs were not being properly cast to
- 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
andPovr_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
- Fixed a