Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added options for baseline protection #662

Merged
merged 13 commits into from May 17, 2024

Conversation

pvjeetze
Copy link
Contributor

@pvjeetze pvjeetze commented Apr 12, 2024

🐦 Description of this PR 🐦

  • This PR adds options for choosing the baseline protection. This means that not only the full WDPA protection can be selected but also subsets of protected area categories (IUCN categories I, II & II and IUCN catergories IV, V & VI). In addition, no baseline protection at all can be chosen, which might be useful for certain test cases.
  • The default option of using all legally designated PAs in the historic period is not changed by this PR.

image

image

🔧 Checklist for PR creator 🔧

  • Label pull request from the label list.

    • Low risk: Simple bugfixes (missing files, updated documentation, typos) or changes in start or output scripts
    • Medium risk: Uncritical changes in the model core (e.g. moderate modifications in non-default realizations)
    • High risk: Critical changes in model core or default settings (e.g. changing a model default or adjusting a core mechanic in the model)
  • Self-review own code

    • No hard coded numbers and cluster/country/region names.
    • The new code doesn't contain declared but unused parameters or variables.
    • magpie4 R library has been updated accordingly and backwards compatible where necessary.
    • scenario_config.csv has been updated accordingly (important if default.cfg has been updated)
  • Document changes

    • Add changes to CHANGELOG.md
    • Where relevant, put In-code documentation comments
    • Properly address updates in interfaces in the module documentations
    • run goxygen::goxygen() and verify the modified code is properly documented
  • Perform test runs

    • Low risk:
      • Run a compilation check via Rscript start.R --> "compilation check"
    • Medium risk:
      • Run test runs via Rscript start.R --> "test runs"
      • Check logs for errors/warnings
    • High risk:
      • Run test runs via Rscript start.R --> "test runs"
      • Check logs for errors/warnings
      • Default run from the PR target branch for comparison
      • Provide relevant comparison plots (land-use, emissions, food prices, land-use intensity,...)

📉 Performance changes 📈

  • Current develop branch default : ** mins
  • This PR's default : ** mins

🚨 Checklist for reviewer 🚨

  • PR is labeled correctly
  • Code changes look reasonable
    • No hard coded numbers and cluster/country/region names.
    • No unnecessary increase in module interfaces
    • model behavior/performance is satisfactory.
  • Changes are properly documented
    • CHANGELOG is updated correctly
    • Updates in interfaces have been properly addressed in the module documentations
    • In-code documentation looks appropriate
  • content review done (at least 1)
  • RSE review done (at least 1)

@pvjeetze pvjeetze requested a review from weindl April 17, 2024 08:19
@pascal-sauer pascal-sauer self-requested a review April 18, 2024 07:28
@pvjeetze
Copy link
Contributor Author

Dear @ALL here's a brief reminder to please review this PR :)

Copy link
Contributor

@flohump flohump left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thanks for adding the additional protection layers.
Please also update scenario_fsec.csv accordingly, i.e. input files and maybe protection layers.

Copy link
Contributor

@pascal-sauer pascal-sauer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some clarifying questions, looks fine otherwise :)

warning("No countries selected in land conservation disaggregation. Results may be erroneous")
}

if (!all(c(cfg$gms$c22_base_protect, cfg$gms$c22_base_protect_noselect) %in% "none")) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (!all(c(cfg$gms$c22_base_protect, cfg$gms$c22_base_protect_noselect) %in% "none")) {
if (cfg$gms$c22_base_protect != "none" || cfg$gms$c22_base_protect_noselect != "none") {

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On second thought, this if statement does not actually do anything, does it? The same variables are checked individually afterwards.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This statementa checks is one of the two switches are not "none". If one is not "none" it moves into the bracket. Then in the bracket. The checks go into different procedures for the two switches. It could be that c22_base_protect is none, but c22_base_protect_noselect is switched to WDPA or vice versa. Therefore there are different checks later.

}
if (base_protect_select != "none") {
land_consv_hr[consv_iso, , ] <- collapseDim(wdpa_hr[consv_iso, nyears(wdpa_hr), base_protect_select], dim = 3.1)
} else if (base_protect_select == "none") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This if is redundant, isn't it?

Suggested change
} else if (base_protect_select == "none") {
} else {

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This else would not be reached if the check in line 107 is FALSE, so that check actually can change things. Is that intended?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right. I just put it as well for better readability.

message = "Write outputs peatland Mha")
comment = "unit: Mha per grid-cell",
message = "Write outputs peatland Mha"
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you use an auto-formatter? The way it was formatted before is compliant with the linter rules we have in the R packages, the new formatting is not.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lucode2::autoFormat() does not work with scripts. I used a different auto formatter.

Copy link
Contributor

@weindl weindl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

p22_country_dummy(iso) Dummy parameter indicating whether country is affected by selected land conservation policy (1)
i22_land_iso(iso) Total land area at ISO level (mio. ha)
p22_conservation_fader(t_all) Land conservation fader (1)
p22_add_consv(t,j,consv22_all,land) Addtional land conservation in conservation priority areas (mio. ha)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small typo "Addtional"

@pvjeetze
Copy link
Contributor Author

Looks good. Thanks for adding the additional protection layers. Please also update scenario_fsec.csv accordingly, i.e. input files and maybe protection layers.

@flohump I added the FSEC files. No changes are needed wrt to the used switches.

@pvjeetze
Copy link
Contributor Author

@flohump I've addressed the comments, please see whether this PR can be approved and then merged.

Copy link
Contributor

@flohump flohump left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@pvjeetze pvjeetze merged commit 5231701 into magpiemodel:develop May 17, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants