Repository files navigation

logo Toolkit for Basic LPJmL Handling

R package lpjmlkit, version 1.8.2

DOIR build statuscodecovr-universe

Purpose and Functionality

A collection of basic functions to facilitate the work with the Dynamic Global Vegetation Model (DGVM) Lund-Potsdam-Jena managed Land (LPJmL) hosted at the Potsdam Institute for Climate Impact Research (PIK). It provides functions for performing LPJmL simulations, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Overview

LPJmL Runner 🏃 to perform LPJmL simulations

LPJmL Runner only supports Unix-based operating systems that have an LPJmL version >= 4 installed.

  • write_config() write config.json files using a data frame with parameters to be changed and a base configuration file
  • 🔍 check_config() check if generated config.json files are valid for LPJmL simulations
  • run_lpjml() run LPJmL directly (e.g. single cell simulations) or 🚀 submit_lpjml() to SLURM (e.g. global simulations)

LPJmL Data 💾 for reading and processing LPJmL data

  • read_io() read LPJmL input and output as a LPJmLData object, containing the data array and LPJmLMetaData

    • 📈 plot() the data or get insights via summary() and other base stats
    • 🔁 transform() it to other time and space formats
    • subset() the underlying data
    • 📦 as_array(), as_tibble() and as_raster() / as_terra() to export into common R data formats
  • read_meta() read meta or header files as LPJmLMetaData object

miscellaneous

  • calc_cellarea() to calculate the area of LPJmLData objects underlying grid or for other objects latitudes
  • functions to handle LPJmL file headers, read_header() read the header of LPJmL files, get_headersize() get the size of a file header or create_header() to create a header object for writing input files
  • get_datatype() get information on the data type used in different LPJmL files
  • asub() functionality of the subset method to be used on a base array, also to replace data
  • ... more functions via library(help = "lpjmlkit")

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("lpjmlkit")

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

update.packages()

Tutorial

The package comes with vignettes describing the basic functionality of the package and how to use it. You can load them with the following command (the package needs to be installed):

vignette("lpjml-data") # LPJmL Data
vignette("lpjml-runner") # LPJmL Runner

Questions / Problems

In case of questions / problems please contact Jannes Breier jannesbr@pik-potsdam.de.

Citation

To cite package lpjmlkit in publications use:

Breier J, Ostberg S, Wirth S, Minoli S, Stenzel F, Hötten D, Müller C (2026). "lpjmlkit: Toolkit for Basic LPJmL Handling." doi:10.5281/zenodo.7773134 https://doi.org/10.5281/zenodo.7773134, Version: 1.8.2, https://github.com/PIK-LPJmL/lpjmlkit.

A BibTeX entry for LaTeX users is

@Misc{,
title = {lpjmlkit: Toolkit for Basic LPJmL Handling},
author = {Jannes Breier and Sebastian Ostberg and Stephen Björn Wirth and Sara Minoli and Fabian Stenzel and David Hötten and Christoph Müller},
doi = {10.5281/zenodo.7773134},
date = {2026-07-06},
year = {2026},
url = {https://github.com/PIK-LPJmL/lpjmlkit},
note = {Version: 1.8.2},
}

About

A collection of basic functions to facilitate the work with the DGVM LPJmL hosted at the Potsdam Institute for Climate Impact Research. It provides functions for running LPJmL, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

logo Toolkit for Basic LPJmL Handling

R package lpjmlkit, version 1.8.2

DOIR build statuscodecovr-universe

Purpose and Functionality

A collection of basic functions to facilitate the work with the Dynamic Global Vegetation Model (DGVM) Lund-Potsdam-Jena managed Land (LPJmL) hosted at the Potsdam Institute for Climate Impact Research (PIK). It provides functions for performing LPJmL simulations, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Overview

LPJmL Runner 🏃 to perform LPJmL simulations

LPJmL Runner only supports Unix-based operating systems that have an LPJmL version >= 4 installed.

  • write_config() write config.json files using a data frame with parameters to be changed and a base configuration file
  • 🔍 check_config() check if generated config.json files are valid for LPJmL simulations
  • run_lpjml() run LPJmL directly (e.g. single cell simulations) or 🚀 submit_lpjml() to SLURM (e.g. global simulations)

LPJmL Data 💾 for reading and processing LPJmL data

  • read_io() read LPJmL input and output as a LPJmLData object, containing the data array and LPJmLMetaData

    • 📈 plot() the data or get insights via summary() and other base stats
    • 🔁 transform() it to other time and space formats
    • subset() the underlying data
    • 📦 as_array(), as_tibble() and as_raster() / as_terra() to export into common R data formats
  • read_meta() read meta or header files as LPJmLMetaData object

miscellaneous

  • calc_cellarea() to calculate the area of LPJmLData objects underlying grid or for other objects latitudes
  • functions to handle LPJmL file headers, read_header() read the header of LPJmL files, get_headersize() get the size of a file header or create_header() to create a header object for writing input files
  • get_datatype() get information on the data type used in different LPJmL files
  • asub() functionality of the subset method to be used on a base array, also to replace data
  • ... more functions via library(help = "lpjmlkit")

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("lpjmlkit")

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

update.packages()

Tutorial

The package comes with vignettes describing the basic functionality of the package and how to use it. You can load them with the following command (the package needs to be installed):

vignette("lpjml-data") # LPJmL Data
vignette("lpjml-runner") # LPJmL Runner

Questions / Problems

In case of questions / problems please contact Jannes Breier jannesbr@pik-potsdam.de.

Citation

To cite package lpjmlkit in publications use:

Breier J, Ostberg S, Wirth S, Minoli S, Stenzel F, Hötten D, Müller C (2026). "lpjmlkit: Toolkit for Basic LPJmL Handling." doi:10.5281/zenodo.7773134 https://doi.org/10.5281/zenodo.7773134, Version: 1.8.2, https://github.com/PIK-LPJmL/lpjmlkit.

A BibTeX entry for LaTeX users is

@Misc{,
title = {lpjmlkit: Toolkit for Basic LPJmL Handling},
author = {Jannes Breier and Sebastian Ostberg and Stephen Björn Wirth and Sara Minoli and Fabian Stenzel and David Hötten and Christoph Müller},
doi = {10.5281/zenodo.7773134},
date = {2026-07-06},
year = {2026},
url = {https://github.com/PIK-LPJmL/lpjmlkit},
note = {Version: 1.8.2},
}

About

A collection of basic functions to facilitate the work with the DGVM LPJmL hosted at the Potsdam Institute for Climate Impact Research. It provides functions for running LPJmL, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

logo Toolkit for Basic LPJmL Handling

R package lpjmlkit, version 1.8.2

DOIR build statuscodecovr-universe

Purpose and Functionality

A collection of basic functions to facilitate the work with the Dynamic Global Vegetation Model (DGVM) Lund-Potsdam-Jena managed Land (LPJmL) hosted at the Potsdam Institute for Climate Impact Research (PIK). It provides functions for performing LPJmL simulations, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Overview

LPJmL Runner 🏃 to perform LPJmL simulations

LPJmL Runner only supports Unix-based operating systems that have an LPJmL version >= 4 installed.

  • write_config() write config.json files using a data frame with parameters to be changed and a base configuration file
  • 🔍 check_config() check if generated config.json files are valid for LPJmL simulations
  • run_lpjml() run LPJmL directly (e.g. single cell simulations) or 🚀 submit_lpjml() to SLURM (e.g. global simulations)

LPJmL Data 💾 for reading and processing LPJmL data

  • read_io() read LPJmL input and output as a LPJmLData object, containing the data array and LPJmLMetaData

    • 📈 plot() the data or get insights via summary() and other base stats
    • 🔁 transform() it to other time and space formats
    • subset() the underlying data
    • 📦 as_array(), as_tibble() and as_raster() / as_terra() to export into common R data formats
  • read_meta() read meta or header files as LPJmLMetaData object

miscellaneous

  • calc_cellarea() to calculate the area of LPJmLData objects underlying grid or for other objects latitudes
  • functions to handle LPJmL file headers, read_header() read the header of LPJmL files, get_headersize() get the size of a file header or create_header() to create a header object for writing input files
  • get_datatype() get information on the data type used in different LPJmL files
  • asub() functionality of the subset method to be used on a base array, also to replace data
  • ... more functions via library(help = "lpjmlkit")

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("lpjmlkit")

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

update.packages()

Tutorial

The package comes with vignettes describing the basic functionality of the package and how to use it. You can load them with the following command (the package needs to be installed):

vignette("lpjml-data") # LPJmL Data
vignette("lpjml-runner") # LPJmL Runner

Questions / Problems

In case of questions / problems please contact Jannes Breier jannesbr@pik-potsdam.de.

Citation

To cite package lpjmlkit in publications use:

Breier J, Ostberg S, Wirth S, Minoli S, Stenzel F, Hötten D, Müller C (2026). "lpjmlkit: Toolkit for Basic LPJmL Handling." doi:10.5281/zenodo.7773134 https://doi.org/10.5281/zenodo.7773134, Version: 1.8.2, https://github.com/PIK-LPJmL/lpjmlkit.

A BibTeX entry for LaTeX users is

@Misc{,
title = {lpjmlkit: Toolkit for Basic LPJmL Handling},
author = {Jannes Breier and Sebastian Ostberg and Stephen Björn Wirth and Sara Minoli and Fabian Stenzel and David Hötten and Christoph Müller},
doi = {10.5281/zenodo.7773134},
date = {2026-07-06},
year = {2026},
url = {https://github.com/PIK-LPJmL/lpjmlkit},
note = {Version: 1.8.2},
}

About

A collection of basic functions to facilitate the work with the DGVM LPJmL hosted at the Potsdam Institute for Climate Impact Research. It provides functions for running LPJmL, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

logo Toolkit for Basic LPJmL Handling

R package lpjmlkit, version 1.8.2

DOIR build statuscodecovr-universe

Purpose and Functionality

A collection of basic functions to facilitate the work with the Dynamic Global Vegetation Model (DGVM) Lund-Potsdam-Jena managed Land (LPJmL) hosted at the Potsdam Institute for Climate Impact Research (PIK). It provides functions for performing LPJmL simulations, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Overview

LPJmL Runner 🏃 to perform LPJmL simulations

LPJmL Runner only supports Unix-based operating systems that have an LPJmL version >= 4 installed.

  • write_config() write config.json files using a data frame with parameters to be changed and a base configuration file
  • 🔍 check_config() check if generated config.json files are valid for LPJmL simulations
  • run_lpjml() run LPJmL directly (e.g. single cell simulations) or 🚀 submit_lpjml() to SLURM (e.g. global simulations)

LPJmL Data 💾 for reading and processing LPJmL data

  • read_io() read LPJmL input and output as a LPJmLData object, containing the data array and LPJmLMetaData

    • 📈 plot() the data or get insights via summary() and other base stats
    • 🔁 transform() it to other time and space formats
    • subset() the underlying data
    • 📦 as_array(), as_tibble() and as_raster() / as_terra() to export into common R data formats
  • read_meta() read meta or header files as LPJmLMetaData object

miscellaneous

  • calc_cellarea() to calculate the area of LPJmLData objects underlying grid or for other objects latitudes
  • functions to handle LPJmL file headers, read_header() read the header of LPJmL files, get_headersize() get the size of a file header or create_header() to create a header object for writing input files
  • get_datatype() get information on the data type used in different LPJmL files
  • asub() functionality of the subset method to be used on a base array, also to replace data
  • ... more functions via library(help = "lpjmlkit")

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("lpjmlkit")

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

update.packages()

Tutorial

The package comes with vignettes describing the basic functionality of the package and how to use it. You can load them with the following command (the package needs to be installed):

vignette("lpjml-data") # LPJmL Data
vignette("lpjml-runner") # LPJmL Runner

Questions / Problems

In case of questions / problems please contact Jannes Breier jannesbr@pik-potsdam.de.

Citation

To cite package lpjmlkit in publications use:

Breier J, Ostberg S, Wirth S, Minoli S, Stenzel F, Hötten D, Müller C (2026). "lpjmlkit: Toolkit for Basic LPJmL Handling." doi:10.5281/zenodo.7773134 https://doi.org/10.5281/zenodo.7773134, Version: 1.8.2, https://github.com/PIK-LPJmL/lpjmlkit.

A BibTeX entry for LaTeX users is

@Misc{,
title = {lpjmlkit: Toolkit for Basic LPJmL Handling},
author = {Jannes Breier and Sebastian Ostberg and Stephen Björn Wirth and Sara Minoli and Fabian Stenzel and David Hötten and Christoph Müller},
doi = {10.5281/zenodo.7773134},
date = {2026-07-06},
year = {2026},
url = {https://github.com/PIK-LPJmL/lpjmlkit},
note = {Version: 1.8.2},
}

About

A collection of basic functions to facilitate the work with the DGVM LPJmL hosted at the Potsdam Institute for Climate Impact Research. It provides functions for running LPJmL, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

logo Toolkit for Basic LPJmL Handling

R package lpjmlkit, version 1.8.2

DOIR build statuscodecovr-universe

Purpose and Functionality

A collection of basic functions to facilitate the work with the Dynamic Global Vegetation Model (DGVM) Lund-Potsdam-Jena managed Land (LPJmL) hosted at the Potsdam Institute for Climate Impact Research (PIK). It provides functions for performing LPJmL simulations, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Overview

LPJmL Runner 🏃 to perform LPJmL simulations

LPJmL Runner only supports Unix-based operating systems that have an LPJmL version >= 4 installed.

  • write_config() write config.json files using a data frame with parameters to be changed and a base configuration file
  • 🔍 check_config() check if generated config.json files are valid for LPJmL simulations
  • run_lpjml() run LPJmL directly (e.g. single cell simulations) or 🚀 submit_lpjml() to SLURM (e.g. global simulations)

LPJmL Data 💾 for reading and processing LPJmL data

  • read_io() read LPJmL input and output as a LPJmLData object, containing the data array and LPJmLMetaData

    • 📈 plot() the data or get insights via summary() and other base stats
    • 🔁 transform() it to other time and space formats
    • subset() the underlying data
    • 📦 as_array(), as_tibble() and as_raster() / as_terra() to export into common R data formats
  • read_meta() read meta or header files as LPJmLMetaData object

miscellaneous

  • calc_cellarea() to calculate the area of LPJmLData objects underlying grid or for other objects latitudes
  • functions to handle LPJmL file headers, read_header() read the header of LPJmL files, get_headersize() get the size of a file header or create_header() to create a header object for writing input files
  • get_datatype() get information on the data type used in different LPJmL files
  • asub() functionality of the subset method to be used on a base array, also to replace data
  • ... more functions via library(help = "lpjmlkit")

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("lpjmlkit")

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

update.packages()

Tutorial

The package comes with vignettes describing the basic functionality of the package and how to use it. You can load them with the following command (the package needs to be installed):

vignette("lpjml-data") # LPJmL Data
vignette("lpjml-runner") # LPJmL Runner

Questions / Problems

In case of questions / problems please contact Jannes Breier jannesbr@pik-potsdam.de.

Citation

To cite package lpjmlkit in publications use:

Breier J, Ostberg S, Wirth S, Minoli S, Stenzel F, Hötten D, Müller C (2026). "lpjmlkit: Toolkit for Basic LPJmL Handling." doi:10.5281/zenodo.7773134 https://doi.org/10.5281/zenodo.7773134, Version: 1.8.2, https://github.com/PIK-LPJmL/lpjmlkit.

A BibTeX entry for LaTeX users is

@Misc{,
title = {lpjmlkit: Toolkit for Basic LPJmL Handling},
author = {Jannes Breier and Sebastian Ostberg and Stephen Björn Wirth and Sara Minoli and Fabian Stenzel and David Hötten and Christoph Müller},
doi = {10.5281/zenodo.7773134},
date = {2026-07-06},
year = {2026},
url = {https://github.com/PIK-LPJmL/lpjmlkit},
note = {Version: 1.8.2},
}

About

A collection of basic functions to facilitate the work with the DGVM LPJmL hosted at the Potsdam Institute for Climate Impact Research. It provides functions for running LPJmL, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

logo Toolkit for Basic LPJmL Handling

R package lpjmlkit, version 1.8.2

DOIR build statuscodecovr-universe

Purpose and Functionality

A collection of basic functions to facilitate the work with the Dynamic Global Vegetation Model (DGVM) Lund-Potsdam-Jena managed Land (LPJmL) hosted at the Potsdam Institute for Climate Impact Research (PIK). It provides functions for performing LPJmL simulations, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Overview

LPJmL Runner 🏃 to perform LPJmL simulations

LPJmL Runner only supports Unix-based operating systems that have an LPJmL version >= 4 installed.

  • write_config() write config.json files using a data frame with parameters to be changed and a base configuration file
  • 🔍 check_config() check if generated config.json files are valid for LPJmL simulations
  • run_lpjml() run LPJmL directly (e.g. single cell simulations) or 🚀 submit_lpjml() to SLURM (e.g. global simulations)

LPJmL Data 💾 for reading and processing LPJmL data

  • read_io() read LPJmL input and output as a LPJmLData object, containing the data array and LPJmLMetaData

    • 📈 plot() the data or get insights via summary() and other base stats
    • 🔁 transform() it to other time and space formats
    • subset() the underlying data
    • 📦 as_array(), as_tibble() and as_raster() / as_terra() to export into common R data formats
  • read_meta() read meta or header files as LPJmLMetaData object

miscellaneous

  • calc_cellarea() to calculate the area of LPJmLData objects underlying grid or for other objects latitudes
  • functions to handle LPJmL file headers, read_header() read the header of LPJmL files, get_headersize() get the size of a file header or create_header() to create a header object for writing input files
  • get_datatype() get information on the data type used in different LPJmL files
  • asub() functionality of the subset method to be used on a base array, also to replace data
  • ... more functions via library(help = "lpjmlkit")

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("lpjmlkit")

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

update.packages()

Tutorial

The package comes with vignettes describing the basic functionality of the package and how to use it. You can load them with the following command (the package needs to be installed):

vignette("lpjml-data") # LPJmL Data
vignette("lpjml-runner") # LPJmL Runner

Questions / Problems

In case of questions / problems please contact Jannes Breier jannesbr@pik-potsdam.de.

Citation

To cite package lpjmlkit in publications use:

Breier J, Ostberg S, Wirth S, Minoli S, Stenzel F, Hötten D, Müller C (2026). "lpjmlkit: Toolkit for Basic LPJmL Handling." doi:10.5281/zenodo.7773134 https://doi.org/10.5281/zenodo.7773134, Version: 1.8.2, https://github.com/PIK-LPJmL/lpjmlkit.

A BibTeX entry for LaTeX users is

@Misc{,
title = {lpjmlkit: Toolkit for Basic LPJmL Handling},
author = {Jannes Breier and Sebastian Ostberg and Stephen Björn Wirth and Sara Minoli and Fabian Stenzel and David Hötten and Christoph Müller},
doi = {10.5281/zenodo.7773134},
date = {2026-07-06},
year = {2026},
url = {https://github.com/PIK-LPJmL/lpjmlkit},
note = {Version: 1.8.2},
}

About

A collection of basic functions to facilitate the work with the DGVM LPJmL hosted at the Potsdam Institute for Climate Impact Research. It provides functions for running LPJmL, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

logo Toolkit for Basic LPJmL Handling

R package lpjmlkit, version 1.8.2

DOIR build statuscodecovr-universe

Purpose and Functionality

A collection of basic functions to facilitate the work with the Dynamic Global Vegetation Model (DGVM) Lund-Potsdam-Jena managed Land (LPJmL) hosted at the Potsdam Institute for Climate Impact Research (PIK). It provides functions for performing LPJmL simulations, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Overview

LPJmL Runner 🏃 to perform LPJmL simulations

LPJmL Runner only supports Unix-based operating systems that have an LPJmL version >= 4 installed.

  • write_config() write config.json files using a data frame with parameters to be changed and a base configuration file
  • 🔍 check_config() check if generated config.json files are valid for LPJmL simulations
  • run_lpjml() run LPJmL directly (e.g. single cell simulations) or 🚀 submit_lpjml() to SLURM (e.g. global simulations)

LPJmL Data 💾 for reading and processing LPJmL data

  • read_io() read LPJmL input and output as a LPJmLData object, containing the data array and LPJmLMetaData

    • 📈 plot() the data or get insights via summary() and other base stats
    • 🔁 transform() it to other time and space formats
    • subset() the underlying data
    • 📦 as_array(), as_tibble() and as_raster() / as_terra() to export into common R data formats
  • read_meta() read meta or header files as LPJmLMetaData object

miscellaneous

  • calc_cellarea() to calculate the area of LPJmLData objects underlying grid or for other objects latitudes
  • functions to handle LPJmL file headers, read_header() read the header of LPJmL files, get_headersize() get the size of a file header or create_header() to create a header object for writing input files
  • get_datatype() get information on the data type used in different LPJmL files
  • asub() functionality of the subset method to be used on a base array, also to replace data
  • ... more functions via library(help = "lpjmlkit")

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("lpjmlkit")

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

update.packages()

Tutorial

The package comes with vignettes describing the basic functionality of the package and how to use it. You can load them with the following command (the package needs to be installed):

vignette("lpjml-data") # LPJmL Data
vignette("lpjml-runner") # LPJmL Runner

Questions / Problems

In case of questions / problems please contact Jannes Breier jannesbr@pik-potsdam.de.

Citation

To cite package lpjmlkit in publications use:

Breier J, Ostberg S, Wirth S, Minoli S, Stenzel F, Hötten D, Müller C (2026). "lpjmlkit: Toolkit for Basic LPJmL Handling." doi:10.5281/zenodo.7773134 https://doi.org/10.5281/zenodo.7773134, Version: 1.8.2, https://github.com/PIK-LPJmL/lpjmlkit.

A BibTeX entry for LaTeX users is

@Misc{,
title = {lpjmlkit: Toolkit for Basic LPJmL Handling},
author = {Jannes Breier and Sebastian Ostberg and Stephen Björn Wirth and Sara Minoli and Fabian Stenzel and David Hötten and Christoph Müller},
doi = {10.5281/zenodo.7773134},
date = {2026-07-06},
year = {2026},
url = {https://github.com/PIK-LPJmL/lpjmlkit},
note = {Version: 1.8.2},
}

About

A collection of basic functions to facilitate the work with the DGVM LPJmL hosted at the Potsdam Institute for Climate Impact Research. It provides functions for running LPJmL, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

logo Toolkit for Basic LPJmL Handling

R package lpjmlkit, version 1.8.2

DOIR build statuscodecovr-universe

Purpose and Functionality

A collection of basic functions to facilitate the work with the Dynamic Global Vegetation Model (DGVM) Lund-Potsdam-Jena managed Land (LPJmL) hosted at the Potsdam Institute for Climate Impact Research (PIK). It provides functions for performing LPJmL simulations, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Overview

LPJmL Runner 🏃 to perform LPJmL simulations

LPJmL Runner only supports Unix-based operating systems that have an LPJmL version >= 4 installed.

  • write_config() write config.json files using a data frame with parameters to be changed and a base configuration file
  • 🔍 check_config() check if generated config.json files are valid for LPJmL simulations
  • run_lpjml() run LPJmL directly (e.g. single cell simulations) or 🚀 submit_lpjml() to SLURM (e.g. global simulations)

LPJmL Data 💾 for reading and processing LPJmL data

  • read_io() read LPJmL input and output as a LPJmLData object, containing the data array and LPJmLMetaData

    • 📈 plot() the data or get insights via summary() and other base stats
    • 🔁 transform() it to other time and space formats
    • subset() the underlying data
    • 📦 as_array(), as_tibble() and as_raster() / as_terra() to export into common R data formats
  • read_meta() read meta or header files as LPJmLMetaData object

miscellaneous

  • calc_cellarea() to calculate the area of LPJmLData objects underlying grid or for other objects latitudes
  • functions to handle LPJmL file headers, read_header() read the header of LPJmL files, get_headersize() get the size of a file header or create_header() to create a header object for writing input files
  • get_datatype() get information on the data type used in different LPJmL files
  • asub() functionality of the subset method to be used on a base array, also to replace data
  • ... more functions via library(help = "lpjmlkit")

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("lpjmlkit")

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

update.packages()

Tutorial

The package comes with vignettes describing the basic functionality of the package and how to use it. You can load them with the following command (the package needs to be installed):

vignette("lpjml-data") # LPJmL Data
vignette("lpjml-runner") # LPJmL Runner

Questions / Problems

In case of questions / problems please contact Jannes Breier jannesbr@pik-potsdam.de.

Citation

To cite package lpjmlkit in publications use:

Breier J, Ostberg S, Wirth S, Minoli S, Stenzel F, Hötten D, Müller C (2026). "lpjmlkit: Toolkit for Basic LPJmL Handling." doi:10.5281/zenodo.7773134 https://doi.org/10.5281/zenodo.7773134, Version: 1.8.2, https://github.com/PIK-LPJmL/lpjmlkit.

A BibTeX entry for LaTeX users is

@Misc{,
title = {lpjmlkit: Toolkit for Basic LPJmL Handling},
author = {Jannes Breier and Sebastian Ostberg and Stephen Björn Wirth and Sara Minoli and Fabian Stenzel and David Hötten and Christoph Müller},
doi = {10.5281/zenodo.7773134},
date = {2026-07-06},
year = {2026},
url = {https://github.com/PIK-LPJmL/lpjmlkit},
note = {Version: 1.8.2},
}

About

A collection of basic functions to facilitate the work with the DGVM LPJmL hosted at the Potsdam Institute for Climate Impact Research. It provides functions for running LPJmL, as well as reading, processing and writing model-related data such as inputs and outputs or configuration files.

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages