This forum is shutting down! Please post new discussions at

Removing Timber and modifying Carbon in next release of InVEST

RichRich Administrator, NatCap Staff
Hi InVEST Users,

As part of our next release of InVEST we'll remove the Managed Timber Production model and simplify the Carbon Storage and Sequestration model in an ongoing effort to modernize the InVEST toolsuite.

Regarding carbon, we'll deprecate the harvested wood products carbon pool functionality as well as the ad hoc uncertainty module.  For the moment, we'll retain the core current/future/REDD scenario analysis capability as well as the naive economic valuation module.  But looking forward, we recommend users transition to the Carbon Forest Edge model released with InVEST 3.3.0 as it captures the non-linear carbon losses of forest edge effects in addition to the carbon pool storage abstraction of the 2008 model.

The InVEST timber module has been effectively unchanged since 2008.  It is, in short, a discount rate net present value calculator for timber yields. Oddly, the model requires data to be input via a georeferenced shapefile despite the aspatiality of its internal economic scheme. Though Timber was important in establishing a set of practical ecosystem service models in 2008, we feel it has not kept up with the modern relative complexity of InVEST and NatCap's theme of "where matters".

Future users of InVEST who wish to experience these old models can always install older versions of InVEST in parallel with the current version.  Those versions, their sample data, and user guides are always available for download from



  • @Rich you mention that with version 3.3.0 the Carbon Forest Edge model has been released, correct? I am using v. 3.3.0 of the python natcap package installed with pip install, but there is not forest edge naming in it, so I assume that is not the newly released one. Seems like you only release that with the .exe Windows binary installation of InVEST, not the python package?

    Thanks, F.
  • RichRich Administrator, NatCap Staff
    It's been released, and is in the package.  Can you "import natcap.invest.forest_carbon_edge_effect"?

    If not, can you verify that `natcap.invest.__version__` really is 3.3.0?  If it is and you can't import the module, then something is broken. :O
  • @Rich I see now! Thanks for the clarification. So you guys suggest using this module instead of carbon (deprecated)? Another question: since most of the geoprocessing is done internally using custom function inside your pygeoprocessing module, how can I modify, for example, the coordinate system of one or more output rasters? In the carbon module the output raster seems to always be in the same CS as the input landcover...but what if I wanted to reproject everything to Web Mercator? Is it easier to ask the user to have the lulc layer projected already or tweak the code to get the output and project it?
  • RichRich Administrator, NatCap Staff
    Yes, we recommend the carbon edge effect.  It does nearly everything the old carbon model does, plus provides functionality for actual carbon modeling in the pantropics.  At the moment it also runs faster than the 3.3.0 carbon model.  

    For your section question, I'd recommend a coordinate reprojection after the fact.  From a design standpoint that separates the scientifc model from the data manipulation part and you don't start loading a simple model with a bunch of options that are easily done outside.  I'd suggest taking a look at `gdal.ReprojectImage`; if you're already in a scripting framework you could do the reprojection yourself right after the call.
  • Taking carbon as an example for our discussion, I see that the output raster files are created by the call to the method


    Am I correct? To make sure I understand the last part of your answer, do you suggest including gdal.ReprojectImage after the vectorize_datasets() call or you were saying after InVEST is done running and wrote output files, then use something ro reproject? 

    Thanks, F
  • RichRich Administrator, NatCap Staff
    I was suggesting doing the reprojection after the InVEST call is done. But that's just my preference if i were doing it myself.
Sign In or Register to comment.