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

update of use of USDA cost shares #741

Merged
merged 10 commits into from
Nov 6, 2024
Merged

Conversation

deleip
Copy link
Contributor

@deleip deleip commented Oct 31, 2024

🐦 Description of this PR 🐦

This PR updates data related to the USDA cost shares (affecting input data on factor costs, factor requirements, labor-capital share within factor costs, hourly labor costs). The capital share regression is now calibrated and used for projections on country level, which are then aggregated to regional level (instead of applying the regression directly on regional level). As the cost shares are the same in different modules (factor costs, livestock, employment, maccs), we now use a global parameter instead of module-specific parameters.

🔧 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,...)

Comparing runs using the sticky factor cost and livestock realizations with regional factor requirements (as this is the set up for which employment is calibrated)
image
image
image
image
image
image

📉 Performance changes 📈

  • Current develop branch default : 27 mins
  • This PR's default : 26 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)

@deleip deleip marked this pull request as ready for review November 5, 2024 07:11
modules/38_factor_costs/per_ton_fao_may22/preloop.gms Outdated Show resolved Hide resolved
p38_capital_cost_shares_iso(t,iso)$(m_year(t)>=2010) = f38_reg_parameters("slope") * log10(im_gdp_pc_ppp_iso(t,iso)) + f38_reg_parameters("intercept") + p38_share_calibration(iso);

* aggregate factor cost shares
pm_factor_cost_shares(t,i,"capital") = (1/sum(i_to_iso(i,iso), f38_hist_factor_costs("y2010",iso))) *
Copy link
Member

Choose a reason for hiding this comment

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

why does pm_factor_cost_shares have a time dimenson, if only "y2010" is used? why is only 2010 used?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

the aggregation is done for all years, but we use fixed 2010 values for the aggregation weight (p38_capital_cost_shares_iso in the next line also has the time dimension)

modules/38_factor_costs/sticky_labor/declarations.gms Outdated Show resolved Hide resolved
modules/38_factor_costs/sticky_labor/preloop.gms Outdated Show resolved Hide resolved
modules/38_factor_costs/sticky_labor/preloop.gms Outdated Show resolved Hide resolved
@deleip deleip merged commit 2d3a1de into magpiemodel:develop Nov 6, 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.

3 participants