pyam - an open-source Python package for energy system scenario analysis & visualization
Authors: Huppmann Daniel , Gidden Matthew 
Published: March 2021

&lt;p&gt;&lt;strong&gt;Background: Transparency, reproducibility and reusability of scientific analysis&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Researchers are now widely expected to share the data and source code of their work&amp;#160;to foster transparency, reproducibility and reusability.&lt;br&gt;Alas, the quality of data documentation and scientific software scripts&amp;#160;can vary substantially. In many instances, metadata and information on the provenance of data&amp;#160;are missing or incomplete, and source code often does not include a clear list of dependencies&amp;#160;(including version information) or systems requirements.&amp;#160;Finally, the source code does not include sufficient inline documentation&amp;#160;to be easily understood.&amp;#160;As a consequence, even though the data and related scripts may be released&amp;#160;under an open-source license, analysis too often cannot be reproduced or adapted&amp;#160;with reasonable effort by other researchers.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The pyam package&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;This talk presents the open-source Python package &lt;strong&gt;pyam&lt;/strong&gt; for energy system scenario analysis&amp;#160;and visualization. The aim of pyam is not to provide any ground-breaking new methods&amp;#160;or analysis routines. Instead, it provides a reliable, well-tested interface&lt;br&gt;similar in feel &amp; style to the widely used &lt;strong&gt;pandas&lt;/strong&gt;&amp;#160;package,&amp;#160;but geared for data formats and applications often used in energy systems analysis&lt;br&gt;and integrated assessment modelling.&lt;/p&gt;&lt;p&gt;By using pyam for their scenario input data processing and analysis workflows,&amp;#160;researchers can reduce standard tasks like unit conversion and data validation&amp;#160;from a 5-minute effort to 30 seconds - and have the knowledge that their scripts&amp;#160;won't break if pandas or another dependency change their APIs,&amp;#160;because the pyam community will work to ensure forward-compatibility and continuity.&amp;#160;As another side benefit, the pyam package will raise meaningful errors when input data doesn't make sense,&amp;#160;whereas own ad-hoc scripts may fail silently or - even worse - return non-sensical values.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Spatial, temporal and sectoral aggregation &amp; downscaling features&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;To highlight the applicability of the pyam package for the EGU community&amp;#160;and energy &amp; climate modellers at large,&amp;#160;this talk will focus on the features for spatial, temporal and sectoral aggregation&amp;#160;and downscaling. The package include several often-used methods like weighting by&amp;#160;proxy variables or deriving indicators based on minimum or maximum values of timeseries data.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Building a community&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The pyam package follows best-practice of version control, continuous-integration&amp;#160;and scientific-software documentation. This facilitates building on the package by&amp;#160;other researchers. The community uses several tools for communication and discussion, including a Slack channel, an email list and a Github repository for issues &amp; pull requests. And of course, we appreciate contributions by colleagues&amp;#160;to extend the scope of features and methods based on their own use cases and requirements!&lt;/p&gt;&lt;p&gt;&lt;strong&gt;More information&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;ReadTheDocs: https://pyam-iamc.readthedocs.io/&lt;br&gt;GitHub repo: https://github.com/iamconsortium/pyam&lt;/p&gt;