Coastal blue carbon - zero net C sequestration in disturbed blue carbon habitats


I’ve run the coastal blue carbon model many times over the past year and recently noticed an unexpected pattern in some of the outputs. All of the output carbon accumulation, emissions, and net sequestration rasters have zero values in cells where blue carbon habitat present in the baseline habitat raster is disturbed in the first time step raster.

I would expect these cells to have positive values in the accumulation and net sequestration raster between the baseline year and first time step, and then positive values in the emissions raster and negative values in the net sequestration raster in subsequent time steps, after the disturbance occurs. I would also expect to see a negative value in the total net carbon sequestration raster (for the entire analysis period). All of these rasters have zero values for these cells. Blue carbon habitats that are disturbed in later time steps, other than the first one following the baseline year, show up as expected in the output rasters (accumulation of C until the disturbance occurs, followed by emissions).

I am using a development version of InVEST 3.8.2 which you provided in this thread in July. I’ve uploaded my input data, results, and log files here. I’d appreciate your help figuring out why this is happening and how to fix it; I can correct for the omission when calculating totals, but would like to have the correct spatial layers as well for visualization.

Thank you!

Hi @kwarnell, thanks for sharing your inputs and logfile!

I would also expect that there would be positive values in accumulation and net sequestration rasters between the baseline period and the first transition, and the fact that this is not happening is worrisome.

It so happens that we’re just finishing up a rewrite of the Coastal Blue Carbon model that we believe fixes a number of issues that were present in the old implementation (including the issues corrected in the dev build I had linked to you before). I’m currently using your inputs in the new implementation to make sure that everything looks correct before I send you a new development build.

I hope to have more for you soon!


Hi @kwarnell, Thanks for your patience on this! Could you try installing this development build and seeing if it resolves the issue for you?

Here’s the download link:

Note that some of the structure of the inputs has changed in this version:

  • Rather than providing various rasters and their corresponding years into a textfield in the UI, the new version of the model has you providing these through a table. Here’s an example table that I put together for running through the model on your inputs: snapshots.csv (342 Bytes)
  • The previous version of the Coastal Blue Carbon model required a couple of tables that described the initial state of carbon and some characteristics of the carbon pools in each landcover class. These have been rolled into a single biophysical table in this new version of the model. Here’s the biophysical table for your inputs: biophysical.csv (5.4 KB)
  • The transition table and all other inputs are the same as in the previous version of the model.

Let me know if you have any questions or run into any difficulties with this build!

Hi @jdouglass, thanks for the updated build! I ran it using the same input data I shared with you and for a different set of inputs for a second location. The results for both look good, without the gaps in the net sequestration and emissions outputs that I saw with the previous version. I like the consolidated input format as well.

Just one observation: the new version creates a series of net C accumulation and emissions rasters in the output folder, but doesn’t include the C accumulation or stock rasters. Not sure if this was a purposeful change or just an oversight, but I found the accumulation and stock rasters useful for summarizing the results.

Thanks again!

Thanks for trying out this build, Katie! I’m glad it’s working well, and I’m also glad you like the consolidated input format :slight_smile:

Thanks for pointing out the missing output rasters … the development build linked below now produces rasters of the total carbon accumulation (across all 3 pools) between each snapshot in the output folder.

The model also has been adjusted to write out stock rasters for every year, including the snapshot years, which are in the intermediate folder as total-carbon-stocks-{year}.tif. Is that what you were looking for in terms of carbon stocks?


Thanks for the update - I haven’t had a chance to try that latest dev build, but the carbon stock rasters in the intermediate folder are what I’m looking for.

However, I just noticed an issue in the carbon emissions estimates (from the first dev build you shared in this thread). It appears that emissions only take place during the time interval directly following a disturbance, not in any subsequent time intervals. I’m also not sure that the amount of emissions during that first time interval after a disturbance is correct.

For example, using the test data I shared earlier in the thread, there are areas of marsh that are disturbed (drown) between the baseline year and the first snapshot year (2026). From the description of carbon emissions after disturbance in the user’s guide, I expect emissions from those areas to begin in the time interval after the disturbance and continue through future time intervals, following an exponential decay function using the half-life and disturbance values in the biophysical input table. In this case, the marsh areas have a total carbon stock (all in sediment carbon) of 0.000803 MMT/ha when they are disturbed, and should emit 25% of their carbon in total, with a half-life of 10 years. I’m having trouble parsing the carbon emission equation in the user’s guide (is Dp 0.000803 in this context, or that multiplied by 25%? what is r?), but I’d expect to see a substantial portion of the 25% total expected emissions occur during the first interval after disturbance (14 years, from 2026-2040), somewhat less in the second interval (2040-2063), and so on.

What I’m actually seeing is 0.000013 emitted during the first time interval after disturbance (1.62% of carbon stocks at the time of disturbance) and 0 emissions in subsequent time intervals. Relevant output rasters are available here.

Can you verify that my expectation is reasonable and the model is not behaving as expected? If so, a fix would be greatly appreciated!

Thank you!