EDmodel / ED2

Ecosystem Demography Model
79 stars 114 forks source link

LULC in ED2 #44

Closed crollinson closed 9 years ago

crollinson commented 9 years ago

Has anybody recently run ED with land use/land change turned on (IANTH_DISTURB=1)?

It doesn't seem to be able to read the files we currently have and I'm trying to figure out if we need to change the code or the inputs.

mpaiao commented 9 years ago

About 4 years ago I added a header to the files, because we were using land use scenarios that didn't have target biomass. I reprocessed all GLU files to include the header, perhaps this is what is missing? I can upload the files if you want. I also have the new data sets (historic + future scenarios, based on Hurtt et al. 2011) if it interests you.

By the way, should we have some place to share commonly used data sets?

crollinson commented 9 years ago

@mpaiao I think that header is what's missing and I'm not sure what needs to go there. If you could send along an example and/or any handy scripts you might have developed to add the header, that'd be great. If you need to email them, you can reach me at crollinson (at) gmail.com.

I have some other Hurtt landuse change stuff from 1500-present that we're using for our paleo multi-model comparison, but I agree that it would be nice to store commonly used ed-formatted datasets somewhere centrally. @mdietze, would Pecan be a good place for storing LULC (or other) datasets or do you have a better suggestion?

mdietze commented 9 years ago

@crollinson I suspect I just never got a copy of @mpaiao 's updated version of the LULC files, so we should get that and put a copy on geo and the pecan servers and update the PEcAn database to point to these new files.

In terms of using PEcAn to store the files for general use by the community, that won't work at the moment because the database only stores the locations of files, it doesn't give an option to download or upload them (this, as well as moving them machine-to-machine via a REST API are part of the PEcAn 2 proposal). Simpler in the short term is probably just to stick them at some public location (Dropbox, ftp, etc) and then put a link to the 'official' files off of the ED2 wiki

mpaiao commented 9 years ago

@crollinson @mdietze I left the GLU files with the headers at my Dropbox https://www.dropbox.com/s/z5nrhlketvdftud/glu-ed22.tar.gz?dl=0

I didn't leave the Hurtt et al. (2011) ones because I'm running out of space on Dropbox, but if it interests I can point to the location on odyssey.

crollinson commented 9 years ago

@mpaiao I was double checking the landuse codes and think you might have secondary and primary forest listed backwards throughout the code. Lines 216-224 of memory/disturb_coms.f90 read are: ! ====== Biomass to be harvested. ====== ! ! 12 - Wood harvest on primary forested land. [ kgC] ! ! 13 - Wood harvest on primary forested land. [ kgC/m²] ! ! 14 - Wood harvest on mature secondary forest land. [ kgC] ! ! 15 - Wood harvest on mature secondary forest land. [ kgC/m²] ! ! 16 - Wood harvest on primary non-forested land. [ kgC] ! ! 17 - Wood harvest on primary non-forested land. [ kgC/m²] ! ! 18 - Wood harvest on young secondary forest land. [ kgC] ! ! 19 - Wood harvest on young secondary forest land. [ kgC/m²] !

This is consistent with how you have things coded in dynamics/disturbance.f90.

However the order columns 12-19 in the land change tables is: sbh f_sbh vbh f_vbh sbh2 f_sbh2 vbh2 f_vbh2

Unless the table I have that clarifies what the column headers mean is wrong v=primary forest and s=secondary forest.

The fix is pretty easy but quite important, so I want to make sure there's not some quirk I'm missing before I complete the fix & submit a pull request to the mainline.

crollinson commented 9 years ago

After looking at it a bit more, you may only have things mis-labeled in the disturb_coms.f90. It looks like things are labeled correctly in forestry.f90. The only place I am now confused about is in disturbance.f90 lines 1166-1176:

        !------------------------------------------------------------------------------!
        !     Primary forest to secondary forest (3 => 2).  Here we must decide        !
        ! whether we want a biomass target harvesting, or a selective logging.  When   !
        ! harvesting is biomass-based, then we set the disturbance rate to zero,       !
        ! otherwise we read the disturbance rate.                                      !
        !------------------------------------------------------------------------------!
        if (clutime%landuse(12) > 0.) then
           cpoly%disturbance_rates(2,3,isi) = 0.0
        else
           cpoly%disturbance_rates(2,3,isi) = clutime%landuse(11)
        end if
        !------------------------------------------------------------------------------!

The "else" part of the statement with landuse(11) is correct (or at least consistent with what the box says). However, I'm not sure if you mean the landuse(12)>0 to be referring to the PRIMARY forest harvest rate or the SECONDARY forest harvest rate. I'm thinking it should be landuse(14) and refer to the primary forest transition, but I'm not quite sure.

mpaiao commented 9 years ago

This should be clutime%landuse(14). This won't matter for simulations using Hurtt's based simulation because neither clutime%landuse(12) nor (14) will be negative. I had spotted this a couple of months ago, but I ended up not submitting because I've been changing both disturbance.f90 and forestry.f90 and forgot about it.

mpaiao commented 9 years ago

By the way, I'm not sure if this should be in the "issues" topic or moved somewhere else, but this is a list of the main changes I implemented in my own branch, and I would like to make sure these changes won't cause serious conflicts with other people's work before I consider a pull request.

a. Changed the land use classes in ED (csite%dist_type(ipa)), so we can differentiate the original disturbance for more than one year in case of treefall/fire or logging/abandonment/forestry. Currently I have 6 categories: 1 - Agriculture (cropland/pasture, still not split) 2 - Forest plantation 3 - Tree fall 4 - Fire 5 - Abandonment 6 - Logged This change eliminated some redundant variables, such as plantation, nat_dist_type, nat_disturbance_rate since these patches are tracked and can coexist in the same site (at least in the most degraded areas in the Amazon). History initialisation still looks for them, and applies the appropriate conversion.

b. Harvesting now takes the minimum DBH into account for all logging. The minimum is set a the land use file as before, but now it is also used during logging with biomass target (aka George Hurtt's files). c. Disturbance rate(isi) in the output is now consistent with the patch creation. This wasn't always true for logging. d. Patch fusion now allows different disturbance types to be fused as long as they are sufficiently old. e. Disturbance rates are now updated annually, to ensure that the rates are consistent with patch dynamics.

crollinson commented 9 years ago

Thanks Marcos for the confirmation. I didn't think it would make a difference for me, but since we're in a major updating phase, I'll go ahead and submit a pull request for the corrections.

As for the other changes you've outlined, I'm definitely in favor of the more detailed disturbance tracking. That would definitely be useful for our paleo runs.