Code Monkey home page Code Monkey logo

piaminterfaces's Introduction

Project specific interfaces to REMIND / MAgPIE

R package piamInterfaces, version 0.20.3

CRAN status R build status codecov r-universe

Purpose and Functionality

Project specific interfaces to REMIND / MAgPIE.

Tutorial

  • To understand how to submit to the IIASA database, read this REMIND tutorial.
  • In the following, we differentiate templates (list of variables and corresponding units used in a project) and mappings (specifying which PIAM variable will be mapped to a project variable).

Mappings

Mappings found in the inst/mappings folder serve to map variables from the PIAM framework to variables needed for the submission to databases. The mappings are ;-separated files, using # as comment character, with the following mandatory columns:

  • variable: name of the variable in the project template
  • unit: unit corresponding to variable
  • piam_variable: name of the variable in REMIND / MAgPIE / EDGE-T etc. reporting
  • piam_unit: unit corresponding to piam_variable
  • piam_factor: factor with which the piam_variable has to be multiplied for units to match

Recommended column:

  • description: description text defining the variable. Never use " and ; in the text.
  • source: abbreviation of the PIAM part where the piam_variable comes from. Use B = Brick, C = MAGICC, M = MAgPIE, R = REMIND, S = SDP postprocessing, T = EDGE-Transport. This column is used to select the variables passed to remind2 and coupling tests. If the variable is not normally reported, add a small x after the model abbreviation for it to be skipped.

Additionally, some mappings use those columns:

  • idx: serial number of variable
  • Tier: importance of variable. 1 means most important
  • Comment: place for comments

To edit a mapping in R, use:

mappingdata <- getMapping("AR6")
...
write.csv2(mappingdata, "test.csv", na = "", row.names = FALSE, quote = FALSE)

Opening the csv files in Excel can be problematic, as it sometimes changes values and quotation marks. You can edit the files in LibreOffice Calc using these settings in the Text Import dialog:

  • Text Import with:
    • Character set: Unicode (UTF-8)
    • Separated by: Semicolon.
  • Save with:
    • Character set: Unicode (UTF-8)
    • Field Delimiter: ;
    • String Delimiter: (none)

The github diff on a large semicolon-separated file is often unreadable. For a human-readable output, save the old version of the mapping and run:

remind2::compareScenConf(fileList = c("oldfile.csv", "mappingfile.csv"), row.names = NULL)

Model intercomparison

  • To compare the results of different models, pass as modeldata a quitte object or a csv/xlsx file. You get a PDF document for each scenario and each model with area plots for all the summation groups in AR6 (or NAVIGATE) summation files plus line plots for each variable in the lineplotVariables vector you supplied. It takes some time, better use a slurm job for:

    plotIntercomparison(modeldata, summationsFile = "AR6", lineplotVariables = c("Temperature|Global Mean", "Population"))
    
  • If your modeldata is not well filtered such that for example model regions are not too different, you can use interactive = TRUE which allows to select models, regions, scenarios and variables that you like in your PDF. As lineplotVariables, you can also specify mapping names.

    plotIntercomparison(modeldata, summationsFile = "AR6", lineplotVariables = c("AR6", "AR6_NGFS"), interactive = TRUE)
    

Installation

For installation of the most recent package version an additional repository has to be added in R:

options(repos = c(CRAN = "@CRAN@", pik = "https://rse.pik-potsdam.de/r/packages"))

The additional repository can be made available permanently by adding the line above to a file called .Rprofile stored in the home folder of your system (Sys.glob("~") in R returns the home directory).

After that the most recent version of the package can be installed using install.packages:

install.packages("piamInterfaces")

Package updates can be installed using update.packages (make sure that the additional repository has been added before running that command):

update.packages()

Questions / Problems

In case of questions / problems please contact Falk Benke [email protected].

Citation

To cite package piamInterfaces in publications use:

Benke F, Richters O (2024). piamInterfaces: Project specific interfaces to REMIND / MAgPIE. R package version 0.20.3, <URL: https://github.com/pik-piam/piamInterfaces>.

A BibTeX entry for LaTeX users is

@Manual{,
 title = {piamInterfaces: Project specific interfaces to REMIND / MAgPIE},
 author = {Falk Benke and Oliver Richters},
 year = {2024},
 note = {R package version 0.20.3},
 url = {https://github.com/pik-piam/piamInterfaces},
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.