3.9.1
This bugfix release includes the following fixes and features:
-
General:
- Added error-handling for when
pandas
fails to decode a
non-utf8 encoded CSV. - Moved the sample data JSON files out of the root sample_data
folder and into their respective model folders. - Updated documentation on installing InVEST from source.
- Restructured API reference docs and removed outdated and
redundant pages. - Include logger name in the logging format. This is helpful for
the cython modules, which can't log module, function, or line
number info. - Fixed a bug in makefile that prevented
make env
from working
properly. - Fixed an issue with the InVEST application launching on Mac OS X
11 "Big Sur". When launching the InVEST.app
bundle, the
environment variableQT_MAC_WANTS_LAYER
is defined. If running
InVEST through python, this environment variable may need to be
defined by hand like so:
QT_MAC_WANTS_LAYER=1 python -m natcap.invest
. A warning will
be raised if this environment variable is not present on mac. - Fixing an issue on Mac OS X where saving the InVEST application
to a filepath containing spaces would prevent the application
from launching. - Fixed an issue on Mac OS when certain models would loop
indefinitely and never complete. This was addressed by bumping
thetaskgraph
requirement version to0.10.3
- Allow Windows users to install for all users or current user.
This allows non-admin users to install InVEST locally. - Fixed a bug where saving a datastack parameter set with relative
paths would not convert Windows separators to linux style. - Provide a better validation error message when an overview
'.ovr' file is input instead of a valid raster. - Removed internal references to
TaskGraph
copy_duplicate_artifact
calls in anticipation from that
feature being removed fromTaskGraph
. User facing changes
include slightly faster initial runtimes for the Coastal
Vulnerability, Coastal Blue Carbon, SDR, DelineateIt, and
Seasonal Water Yield models. These models will no longer attempt
to copy intermediate artifacts that could have been computed by
previous runs. - Validation now returns a more helpful message when a spatial
input has no projection defined. - Updated to pygeoprocessing 2.3.2
- Added support for GDAL 3.3.1 and above
- Added some logging to
natcap.invest.utils._log_gdal_errors
to
aid in debugging some hard-to-reproduce GDAL logging errors that
occasionally cause InVEST models to crash. If GDAL calls
_log_gdal_errors
with an incorrect set of arguments, this is
now logged.
- Added error-handling for when
-
Carbon
- Fixed a bug where, if rate change and discount rate were set to
0, the valuation results were in$/year rather than $ , too small
by a factor oflulc_fut_year - lulc_cur_year
. - Improved UI to indicate that Calendar Year inputs are only
required for valuation, not also for sequestration. - Increasing the precision of
numpy.sum
from Float32 to Float64
when aggregating raster values for the HTML report.
- Fixed a bug where, if rate change and discount rate were set to
-
DelineateIt:
- The DelineateIt UI has been updated so that the point-snapping
options will always be interactive. - DelineateIt's point-snapping routine has been updated to snap
MULTIPOINT
geometries with 1 component point as well as
primitivePOINT
geometries. All other geometric types will not
be snapped. When a geometry cannot be snapped, a log message is
now recorded with the feature ID, the geometry type and the
number of component geometries. Features with empty geometries
are now also skipped.
- The DelineateIt UI has been updated so that the point-snapping
-
Fisheries Habitat Scenario Tool
- Fixed divide-by-zero bug that was causing a RuntimeWarning in
the logs. This bug did not affect the output.
- Fixed divide-by-zero bug that was causing a RuntimeWarning in
-
HRA
- Fixed bugs that allowed zeros in DQ & Weight columns of criteria
table to raise DivideByZero errors.
- Fixed bugs that allowed zeros in DQ & Weight columns of criteria
-
NDR
- Fixed a bug that allowed SDR to be calculated in areas that
don't drain to any stream. Now all outputs that depend on
distance to stream (d_dn
,dist_to_channel
,ic
,ndr_n
,
ndr_p
,sub_ndr_n
,sub_ndr_p
,n_export
,p_export
) are
only defined for pixels that drain to a stream. They have nodata
everywhere else.
- Fixed a bug that allowed SDR to be calculated in areas that
-
Pollination
- Updated so that the
total_pollinator_abundance_[season].tif
outputs are always created. Before, they weren't created if a
farm vector was not supplied, even though they are independent.
- Updated so that the
-
Recreation
- Fixed some incorrectly formatted log and error messages
-
Seasonal Water Yield
- Fixed a bug where
qf.tif
outputs weren't properly masking
nodata values and could show negative numbers.
- Fixed a bug where
-
SDR
- Fixed a bug in validation that did not warn against different
coordinate systems (all SDR inputs must share a common
coordinate system). - Fixed a bug that was incorrectly using a factor of 0.0986 rather
than 0.0896. This would have a minor effect on end-user results. - Changed how SDR thresholds its L factor to allow direct
thresholding rather than based off of upstream area. Exposed
this parameter asl_max
in theargs
input and in the user
interface. - Fixed a bug that allowed SDR to be calculated in areas that
don't drain to any stream. Now all outputs that depend on
distance to stream (d_dn
,d_dn_bare
,ic
,ic_bare
,
sdr
,sdr_bare
,e_prime
,sed_retention
,
sed_retention_index
,sed_deposition
,sed_export
) are only
defined for pixels that drain to a stream. They have nodata
everywhere else.
- Fixed a bug in validation that did not warn against different
-
Urban Flood Risk
- Fixed a bug where a String
Type
column in the infrastructure
vector would cause the aggregation step of the model to crash,
even with the correct integer value in the column.
- Fixed a bug where a String
-
Wind Energy
- Raising ValueError when AOI does not intersect Wind Data points.