Recent Releases of pyam
pyam - Release v3.0.0
Release v3.0.0
Highlights
- Implement reading and writing of netcdf files implemented by @LinhHo
- Remove automated sorting of timeseries data for performance improvement
- Add support Python 3.13
API changes
The internal object that holds the timeseries data is not automatically sorted any more, so the pd.DataFrame returned from IamDataFrame.data
may change when upgrading to pyam v3.0. You can use the new method IamDataFrame.sort_data()
to explicitly sort the timeseries data by the data dimensions
.
Individual updates
- https://github.com/IAMconsortium/pyam/pull/901 Add support for Python 3.13
- https://github.com/IAMconsortium/pyam/pull/899 Add
to_netcdf()
method - https://github.com/IAMconsortium/pyam/pull/896 Add
sort_data()
method - https://github.com/IAMconsortium/pyam/pull/896 Sort columns of
timeseries()
with mixed time domain - https://github.com/IAMconsortium/pyam/pull/893 No sorting of timeseries data on initialization or append
- https://github.com/IAMconsortium/pyam/pull/879 Add
read_netcdf()
function
New Contributors
- @LinhHo made their first contribution in https://github.com/IAMconsortium/pyam/pull/879
Full Changelog: https://github.com/IAMconsortium/pyam/compare/v2.3.0...v3.0.0
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann 4 months ago

pyam - Release v2.3.0
Release v2.3.0
Highlights
This release includes a new option to filter by variable depth
.
Individual updates
- #886 Implement filtering by variable
depth
- #880 Use
pd.Series.iloc[pos]
for forward-compatibility - #877 Support
engine
and otherpd.ExcelFile
keywords
New Contributors
- @korsbakken made their first contribution in https://github.com/IAMconsortium/pyam/pull/877
- @quant12345 made their first contribution in https://github.com/IAMconsortium/pyam/pull/880
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann 6 months ago

pyam - Release v2.2.4
Release v2.2.4
Support filtering by a measurand
argument with tuples of variable and units and improve the filter()
documentation.
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann 9 months ago

pyam - Release v2.2.3
Release v2.2.3
Patch release to set minimum requirement of ixmp4 to latest version and pin numpy to <2.0.
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann 10 months ago

pyam - Release v2.2.2
Release v2.2.2
Patch release to correctly handle regexp-characters ([]{}?^
) in filter()
and better handling of the logging-configuration.
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann about 1 year ago

pyam - Release v2.2.1
Release v2.2.1
Patch release to explicitly include the requests dependency, which was dropped from ixmp4 with release 0.8.1.
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann about 1 year ago

pyam - Release v2.2.0
Release v2.2.0
Highlights
- Direct integration with ixmp4 platforms hosted by IIASA
- More flexible and intuitive signature for data validation and categorization
- Support for Python 3.12 and migrate to poetry & ruff
Dependency changes
- Replace pandas-datareader by wbdata to query World Bank data sources
- Bumped minimum version of pandas and numpy to fit ixmp4's requirements.
Individual updates
- #838 Support filters when reading from an ixmp4 platform
- #837 Support filters as direct keyword arguments for
categorize()
similar tovalidate()
signature (see #804) - #832 Improve the test-suite for the ixmp4 integration
- #827 Migrate to poetry for project management
- #830 Implement more consistent logging behavior with ixmp4
- #829 Add
pyam.iiasa.platforms()
for a list of available platforms - #826 Add
read_ixmp4()
function and extend integration test - #825 Add support for Python 3.12
- #824 Update ixmp4 requirement to >=0.7.1
- #821 Introduce ruff
- #818 Use context manager for reading Excel file
- #813 Fix a corner case in region-aggregation with missing data
- #797 Add
to_ixmp4()
method to write to an ixmp4 platform
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann about 1 year ago

pyam - Release v2.1.0
Release v2.1.0
Highlights
- More flexible and intuitive options for data validation
- Improved support for region-aggregation with inconsistent data/weight index
- Fix wrong color codes for AR6 Illustrative Pathways
Individual updates
- #804 Support filters as direct keyword arguments for
validate()
method - #801 Support initializing with
meta
dataframe in long format - #796 Raise explicit error message if no connection to IIASA manager service
- #794 Fix wrong color codes for AR6 Illustrative Pathways
- #792 Support region-aggregation with weights-index >> data-index
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 1 year ago

pyam - Release v2.0.0
Release v2.0.0
Highlights
- Use ixmp4 as dependency for better integration with the IIASA Scenario Explorer database infrastructure
- Refactor the "exclude"-column for validation as own attribute (instead of a column in
meta
) - Implement a cleaner package structure and reduce exposure of internal methods/modules
Dependency changes
Support for Python 3.7-3.9 was removed due to an incompatible dependency.
PR #766 added the ixmp4 package for better integration with the IIASA scenario database infrastructure.
API changes
Credentials to access the IIASA scenario database infrastructure should now be managed using the ixmp4 package (see here).
The column exclude of the meta
indicators was moved to a new attribute exclude
. All validation methods are refactored such that the argument exclude_on_fail
changes this new attribute (see PR #759).
The term "exclude" is now an illegal column for (timeseries) data and meta indicators. When importing an xlsx file created with pyam < 2.0, which has an "exclude" column in the "meta" sheet, the column is moved to the new exclude
attribute with a log message.
PR #764 implemented a more restrictive approach to exposing pyam-internals at the package level, requiring a more explicit import of these methods. For example, use pyam.utils.to_list()
instead of pyam.to_list()
.
PR #773 removed the map_regions()
method. This feature is now implemented via the nomenclature.RegionProcessor class.
Individual updates
- #773 Remove
map_regions()
and default mappings csv - #772 Show all missing rows for
require_data()
- #771 Refactor to start a separate validation module
- #766 Use ixmp4 for credentials to access a Scenario Explorer database
- #764 Clean-up exposing internal methods and attributes
- #763 Implement a fix against carrying over unused levels when initializing from an indexed pandas object
- #759 Excise "exclude" column from meta and add a own attribute
- #747 Drop support for Python 3.7
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 1 year ago

pyam - Release v1.9.0
Release v1.9.0
Highlights
- Ensure compatibility with pandas v2.0
- Add Python 3.11 to supported versions
- Fix an issue when concatenating a list of pd.DataFrame objects
Individual updates
- #745 Add Python 3.11 to supported versions
- #742 Fix an issue when concatenating only pd.DataFrame objects
- #739 Ensure compatibility with pandas v2.0
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann almost 2 years ago

pyam - Release v1.8.0
Release v1.8.0
Highlights
- Performance improvement at initialization and in internal operations
- Update the IIASA-Connection API in preparation of a new database backend
- Improve the tutorials
API changes
In anticipation of a change in the ixmp API, the argument default
in the IIASA-Connection methods was renamed to default_only
.
Individual updates
- #734 Validation for illegal column names in
data
- #733 Change IIASA-Connection argument to
default_only
- #732 Fix a few typos in tutorials
- #731 Add fast-path to initialization for sufficient multi-index
- #730 Refactor initialization code
- #729 Improve performance at initialization
- #723 Ensure correct order of
time
attribute
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann about 2 years ago

pyam - Release v1.7.0
Release v1.7.0
Highlights
- Add a feature to compute (weighted) quantiles for scenario data
- Implement a
require_data()
method for scenario validation - Remove 'xls' as by-default-supported file format to harmonize behavior with pandas
API changes
The method compute_bias()
was removed; please use compute.bias()
instead.
Dependency changes
Remove xlrd as a dependency; please install it explicitly for reading .xls
files.
Bump minimum version of pandas to v1.2.0 to support automatic engine selection.
Individual updates
- #715 Add a
require_data()
method - #713 Informative error when using lists for filter by level,
level
now a forbidden column. - #709 Hotfix ops to support
fillna=0
- #708 Remove 'xls' as by-default-supported file format
- #686 Add support for (weighted) quantile timeseries as
df.compute.quantiles()
with a tutorial
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 2 years ago

pyam - Release v1.6.0
Release v1.6.0
Highlights
- Improved performance for writing data to xlsx
- Support for filtering by model-scenario pairs with an
index
argument - Better integration with the IIASA Scenario Explorer database API
Dependency changes
PR #701 added xlsxwriter
as a dependency for better performance.
Individual updates
- #702 Migrate
compute_bias()
tocompute
module - #701 Add xlsxwriter as dependency to improve
to_excel()
performance - #699 Add filter options to IIASA API
index()
,meta()
andproperties()
methods - #697 Add warning if IIASA API returns empty result
- #696 Added ability to load preferentially from a local cache
- #695 Remove unused meta levels during initialization
- #688 Remove ixmp as optional dependency
- #684 Use new IIASA-manager API with token refresh
- #679
set_meta()
now supports pandas.DataFrame as an argument - #674 Support filtering data by model-scenario pairs with the
index
argument tofilter()
andslice()
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 2 years ago

pyam - Release v1.5.0
Release v1.5.0
Highlights
This release introduces an IamSlice class that allows faster filtering and inspection of an IamDataFrame.
Individual updates
- #668 Allow renaming of empty IamDataFrame objects
- #665 Provide better support for IamDataFrame objects with non-standard index dimensions
- #659 Add an
offset
method - #657 Add an
IamSlice
class
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann almost 3 years ago

pyam - Release v1.4.0
Release v1.4.0
Highlights
- Add colors used for IPCC AR6 WGIII scenario analysis
- Support scenario data with mixed 'year' and 'datetime' domain (beta)
- Add explicit support for Python 3.10
Dependency changes
Following a change of the UNFCCC data inventory API (see pik-primap/unfccc_di_api#39), PR #647 updated the dependencies to require unfccc-di-api>=3.0.1
.
API changes
PR #598 added support for mixed time-domains, i.e., where the time column has both integer
and datetime
items. As part of the changes, filtering an IamDataFrame with yearly data using arguments
that are only relevant for the datetime-domain (e.g., month, hour, time) returns an empty IamDataFrame. Previously, this raised an error.
Individual updates
- #651 Pin
pint<=0.18
as a quickfix for a regression in the latest release - #650 Add IPCC AR6 WGIII colors to PYAM_COLORS
- #647 Pin
unfccc-di-api
to latest release - #634 Better error message when initializing with invisible columns
- #598 Support mixed 'year' and 'datetime' domain
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann about 3 years ago

pyam - Release v1.3.1
Release v1.3.1
This is a patch release to ensure compatibility with pandas v1.4.0.
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann about 3 years ago

pyam - Release v1.3.0
Release v1.3.0
Highlights
- Implement a
compute
module for derived timeseries indicators - Add a
diff()
method similar to the correspondingpandas.DataFrame.diff()
- Improve error reporting on IamDataFrame initialization
Individual updates
- #608 The method
assert_iamframe_equals()
passes if an all-nan-col is present - #604 Add an annualized-growth-rate method
- #602 Add a
compute
module/accessor and a learning-rate method - #600 Add a
diff()
method - #592 Fix for running in jupyter-lab notebooks
- #590 Update expected figures of plotting tests to use matplotlib 3.5
- #586 Improve error reporting for non-numeric data in any value column
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 3 years ago

pyam - Release v1.2.0
Release v1.2.0
Highlights
- Update the source code of the manuscript in Open Research Europe to reflect changes based on reviewer comments
- Increase the performance of the IamDataFrame initialization
- Add an experimental "profiler" module for performance benchmarking
Dependency changes
The dependencies were updated to require xlrd>=2.0
(previously <2.0
) and openpyxl
was added as a dependency.
Individual updates
- #585 Include revisions to the ORE manuscript source code following acceptance/publication
- #583 Add profiler module for performance benchmarking
- #579 Increase performance of IamDataFrame initialization
- #572 Unpinned the requirements for xlrd and added openpyxl as a requirement to ensure ongoing support of both
.xlsx
and.xls
files out of the box
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 3 years ago

pyam - Release v1.1.0
Release v1.1.0
Highlights
- Update pyam-colors to be consistent with IPCC AR6 palette
- Enable
colors
keyword argument as list inplot.pie()
- Fix compatibility with pandas v1.3
API changes
PR #559 marked the attribute _LONG_IDX
as deprecated. Please use dimensions
instead.
Individual updates
- #566 Updated AR6 default color pallet to final version used by WG1
- #564 Add an example with a secondary axis to the plotting gallery
- #563 Enable
colors
keyword argument as list inplot.pie()
- #562 Add
get_data_column()
, refactor filtering by the time domain - #560 Add a feature to
swap_year_for_time()
- #559 Add attribute
dimensions
, fix compatibility with pandas v1.3 - #557 Swap time for year keeping subannual resolution
- #556 Set explicit minimum numpy version (1.19.0)
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 3 years ago

pyam - Release v1.0.0
Release v1.0.0
This is the first major release of the pyam package.
The release coincides with the publication of a manuscript in Open Research Europe (doi: 10.12688/openreseurope.13633.1).
API changes compared to the latest previous release
As part of release 1.0, several features where removed that were marked as deprecated in previous releases:
- The setters
df.data
anddf[<col>]
were removed.
Please useIamDataFrame(<data>)
instead. - The methog
df.interpolate()
now returns a new IamDataFrame by default.
Please usedf.interpolate(inplace=True)
to retain the previous behavior. - It is no longer allowed to pass credentials to access an IIASA Scenario Explorer as a clear-text
creds
keyword argument
when callingpyam.iiasa.Connection()
orpyam.read_iiasa()
.
Please usepyam.iiasa.set_config(<user>, <password>)
to store credentials on your machine. - The methods
models()
,scenarios()
,regions()
andvariables()
were removed.
Please use the attributesmodel
,scenario
,region
,variable
,unit
andunit_mapping
instead. - All plotting functions following the notation
df.<plot-type>()
were removed.
Please usedf.plot.<type>()
instead.
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann almost 4 years ago

pyam - Release v0.13.0
Release v0.13.0
Highlights
- Add a
unit_mapping
attribute to show a variable-unit dictionary. - Support plotting of continuous-time data by automatically using the time domain as x-axis in many plots.
- Improve the performance of the
rename()
method.
API changes
PR #550 harmonized the behavior of the rename()
function when the renaming creates overlapping timeseries data. Before, this raised an error in case there was a conflict with existing data, but automatically performed a groupby-sum when mapping to the same coordinates. This was marked as deprecated; in the future, an error will be raised for any overlapping coordinates after the rename operation.
PR #548 added a unit_mapping
attribute. This will replace the variables(include_units=True)
method.
Individual updates
- #551 Default to IamDataFrame-time-col on the x-axis of plots
- #550 Refactor the
rename()
method for performance improvement - #549 Make
plotly
an optional dependency - #548 Add a
unit_mapping
attribute to show a variable-unit dictionary - #546 Fixed logging for recursive aggregation
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann almost 4 years ago

pyam - Release v0.12.0
Release v0.12.0
Highlights
- Add algebraic operations working directly on the timeseries data including automatic handling of units.
- Drop negative weights when performing weighted regional aggregation by default.
- Allow recursive aggregation when (some) intermediate variables exist and perform validation of the existing intermediate variables.
API changes
PR #534 changed the behavior of the aggregate_region()
method when performing weighted region aggregation. By default, if any weights are negative, the corresponding aggregated values are dropped from the resulting IamDataFrame. The previous behavior can be achieved by setting drop_negative_weights=False
.
Individual updates
- #543 Add a tutorial for working with algebraic operations
- #541 Support units in binary operations
- #538 Add option to set defaults in binary operations
- #537 Enhance binary ops to support numerical arguments
- #534 Add feature to drop negative weights
- #532 Add an option to skip existing intermediate variables when aggregating recursively
- #533 Add an
apply()
function for custom mathematical operations - #527 Add an in-dataframe basic mathematical operations
subtract
,add
,multiply
,divide
- #523 Add feature to compute weights for de-biasing using count
- #519 Enable explicit
label
and fix for non-string items in plot legend
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann almost 4 years ago

pyam - Release v0.11.0
Release v0.11.0
Highlights
- Easily order data in the line plot feature.
- Add a module for reading data from the UNFCCC Data Inventory via the PIK-PRIMAP unfccc-di-api package.
- Improved integration with any IIASA Scenario Explorer instance:
read non-default versions from the connected database and obtain the "audit" info (scenario upload/edit timestamp and user). - Performance improvements when aggregating or concatenating data.
- Refactor the entire code base to the Black code style.
API changes
PR #507 harmonizes the behavior of the aggregate()
and aggregate_region()
methods when performing "empty" aggregation, i.e., no components exist to perform the requested aggregation. In the new implementation, an empty IamDataFrame is returned if append=False
(instead of None).
PR #488 changes the default behavior when initializing an IamDataFrame from xlsx: now, all sheets names starting with data
will be parsed for timeseries data.
Individual updates
- #510 Improve performance of
pyam.concat()
- #508 Bugfix for non-empty but invisible header and no rows in 'meta' sheet
- #507 Refactor aggregation-functions to increase performance
- #502 Switch to Black code style
- #499 Implement
order
feature in line plot - #497 Add a module for reading data from the UNFCCC Data Inventory
- #496 Enable loading meta from csv file
- #494 Small performance improvements
- #491 Allow loading meta from file without exclude columns or with empty rows
- #488 Read all sheets starting with
data
when reading from xlsx - #486 Enable reading non-default scenario versions from IIASA API
- #483 Add a tutorial for integration with R
- #481 Enable custom index columns
- #477 Add a nightly test suite
- #476 Add docstrings to plotting functions
df.plot.<kind>()
- #471 Add a
iiasa.Connection.properties()
function to retrieve scenario audit data
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann about 4 years ago

pyam - Release v0.10.0
Release v0.10.0
Highlights
- Refactor the plotting library for better UX and consistency with pandas,
matplotlib and seaborn. - Add a
sankey()
feature to the plotting library. - Rework the documentation and tutorials.
API changes
Several PRs in this release changed the implementation of the plotting library
for better UX and consistency with pandas, matplotlib and seaborn.
Replace the calls to plotting features by the following:
plot(...)
(orplot(kind='line', ...)
) forline_plot()
plot.stack(...)
forstack_plot()
plot.bar()
forbar_plot()
- ...
These PRs also add an order
arg to the plotting functions, and the levels
are ordered based on the run_control()['order']
dictionary by default.
Individual updates
- #475 Add a scatter plot example to the gallery
- #473 Refactor to plotting API following pandas/matplotlib implementation
- #472 Add a
sankey()
example to the plotting gallery - #470 Add two types of
order
arg tobarplot()
- #467 Refactor the GAMS-pyam tutorial to use the gamstransfer module
- #466 Add a
sankey()
function to create sankey diagrams - #464 Add
order
arg tostackplot()
- #463 Clarification of initialization-error message if file does not exist
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 4 years ago

pyam - Release v0.9.0
Release v0.9.0
Highlights
- Extend the data format to work with dimensionless variables (i.e., accept "empty" units).
- Refactor the
interpolate()
feature to accept a list of years ordatetime
instances. - Add the list of authors/contributors to the docs.
API changes
PR #456 changed the interface of the interpolate()
feature to do the operation inplace (previous behaviour) or return a new instance (future default). A deprecation warning is written if a user does not provide the arg inplace
to warn of the future change.
Individual updates
- #461 Add list of authors to repo and docs pages
- #459 Add a
get_variable_components()
function to retrieve or join variable components - #458 Enable
Path
for IamDataFrame initialization - #456 Speed up interpolation and support interpolation for multiple time-points
- #454 Enable dimensionless units and fix
info()
if IamDataFrame is empty - #451 Fix unit conversions from C to CO2eq
- #450 Defer logging set-up to when the first logging message is generated
- #445 Prevent conflicts between attributes and data/meta columns
- #444 Use warnings module for deprecation warnings
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 4 years ago

pyam - Release v0.8.0
Release v0.8.0
Highlights
- Add a boxplot visualization feature to the plotting toolbox.
- Implement an API to read data from World Bank Open Data Catalogue.
- Write a tutorial illustrating how to read model results from a GAMS gdx file.
- Define
index
,model
,scenario
, ... attributes and show a summary of the index dimensions onprint()
. - Refactor the timeseries data backend for improved performance.
API changes
PR #432 added attributes to access the list of (unique) items of each index dimension (model
, scenario
, ...). The PR also marked as deprecated the equivalent functions (models()
, scenarios()
, ...). The new behaviour is closer (though still different) to what a pandas user would expect.
Notes
PR #420 added an object IamDataFrame._data
to handle timeseries data internally. This is implemented as a pandas.Series
(instead of the previous long-format pandas.DataFrame
) to improve performance. The previous behaviour with IamDataFrame.data
is maintained via getter and setter functions.
Individual updates
- #440 Add
boxplot()
visualization feature - #438 Add an
index
attribute of model-scenario combinations - #437 Improved test for appending mismatched timeseries
- #436 Raise an error with appending mismatching timeseries index dimensions
- #432 Add attributes to access index dimensions
- #429 Fix return type of
validate()
after data refactoring - #427 Add an
info()
function and use inprint(IamDataFrame)
- #424 Add a tutorial reading results from a GAMS model (via a gdx file).
- #420 Add a
_data
object (implemented as a pandas.Series) to handle timeseries data internally. - #418 Read data from World Bank Open Data Catalogue as IamDataFrame.
- #416 Include
meta
in new IamDataFrames returned by aggregation functions.
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 4 years ago

pyam - Release v0.7.0
Release v0.7.0
Highlights
- Add new features for aggregating and downscaling timeseries data.
- Update the plotting library for compatibility with the latest matplotlib release.
- Refactor the feature to read data directly from an IIASA scenario database API.
- Migrate the continuous-integration (CI) infrastructure from Travis & Appveyor to GitHub Actions and use CodeCov.io instead of coveralls.io for test coverage metrics.
API changes
PR #413 changed the return type of pyam.read_iiasa()
and pyam.iiasa.Connection.query()
to an IamDataFrame
(instead of a pandas.DataFrame
) and loads meta-indicators by default.
Also, the following functions were deprecated for package consistency:
index()
replacesscenario_list()
for an overview of all scenariosmeta_columns
(attribute) replacesavailable_metadata()
meta()
replacesmetadata()
PR #402 changed the default behaviour of as_pandas()
to include all columns of meta
in the returned dataframe, or only merge columns given by the renamed argument meta_cols
. The feature to discover meta-columns from a dictionary was split out into a utility function pyam.plotting.mpl_args_to_meta_cols()
.
Individual Updates
- #413 Refactor IIASA-connection-API and rework all related tests.
- #412 Add building the docs to GitHub Actions CI.
- #411 Add feature to pass an explicit weight dataframe to
downscale_region()
. - #410 Activate tutorial tests on GitHub Actions CI (py3.8).
- #409 Remove travis and appveyor CI config.
- #408 Update badges on the docs page and readme.
- #407 Add Codecov to Github Actions CI.
- #405 Add ability for recursivley aggregating variables.
- #402 Refactor
as_pandas()
and docs for more consistent description ofmeta
. - #401 Read credentials for IIASA-API-Connection by default from known location.
- #396 Enable casting to
IamDataFrame
multiple times. - #394 Switch CI to Github Actions.
- #393 Import ABC from collections.abc for Python 3.10 compatibility.
- #380 Add compatibility with latest matplotlib and py3.8
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann almost 5 years ago

pyam - Release v0.6.0
Release v0.6.0
Highlights
- Add feature to aggregate timeseries at sub-annual time resolution
- Refactored the iam-units utility from a submodule to a dependency
- Clean up documentation and dependencies
Individual Updates
- #386 Enables unit conversion to apply to strings with "-equiv" in them.
- #384 Add documentation for the pyam.iiasa.Connection class.
- #382 Streamline dependencies and implementation of xlsx-io
- #373 Extends the error message when initializing with duplicate rows.
- #370 Allowed filter to work with np.int64 years and np.datetime64 dates.
- #369
convert_unit()
supports GWP conversion of same GHG species without context, lower-case aliases for species symbols. - #361 iam-units refactored from a Git submodule to a Python dependency of pyam.
- #322 Add feature to aggregate timeseries at sub-annual time resolution
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann almost 5 years ago

pyam - Release v0.5.0
Release v0.5.0
Highlights
- Improved feature for unit conversion using the pint package and the IAMconsortium/units repository, providing out-of-the-box conversion of unit definitions commonly used in integrated assessment research and energy systems modelling; see this tutorial for more information
- Increased support for operations on timeseries data with continuous-time resolution
- New tutorial for working with various input data formats; take a look here
- Rewrite and extension of the documentation pages for the API; read the new docs!
API changes
PR #341 changed the API of IamDataFrame.convert_unit()
from a dictionary to explicit kwargs current
, to
and factor
(now optional, using pint
if not specified).
PR #334 changed the arguments of IamDataFrame.interpolate()
and pyam.fill_series()
to time
. It can still be an integer (i.e., a year).
With PR #337, initializing an IamDataFrame with n/a
entries in columns other than value
raises an error.
Individual Updates
- #354 Fixes formatting of API parameter docstrings
- #352 Bugfix when using
interpolate()
on data with extra columns - #349 Fixes an issue with checking that time columns are equal when appending IamDataFrames
- #348 Extend pages for API docs, clean up docstrings, and harmonize formatting
- #347 Enable contexts and custom UnitRegistry with unit conversion
- #341 Use
pint
and IIASA-ene-units repo for unit conversion - #339 Add tutorial for dataframe format io
- #337 IamDataFrame to throw an error when initialized with n/a entries in columns other than
value
- #334 Enable interpolate to work on datetimes
⚠️ Warning ⚠️
This release includes the repository IAMconsortium/units as a submodule, but GitHub currently does not support including submodules in the archives distributed with a release. Please download the content of the units folder directly from the repository..
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann about 5 years ago

pyam - Release v0.4.1
Release v0.4.1
Summary
This is a patch release to enable compatibility with pandas v1.0.
It also adds experimental support of frictionless datapackage
format (read more on GitHub).
Individual Updates
- #324 Enable compatibility with pandas v1.0
- #323 Support import/export of frictionless
datapackage
format
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann about 5 years ago

pyam - Release v0.4.0
Release v0.4.0
Highlights
- New feature: downscale regional timeseries data to subregions using a proxy variable
- Improved features for aggregation by sectors and regions: support weighted-average, min/max, etc.
(including a reworked tutorial) - Streamlined I/O: include
meta
table when reading from/writing to xlsx files - Standardized logger behaviour
API changes
PR #305 changed the default behaviour of aggregate_region() regarding the treatment of components at the region-level. To keep the previous behaviour, add components=True
.
PR #315 changed the return type of aggregate() and aggregate_region() to an IamDataFrame
instance. To keep the previous behaviour, add timeseries()
.
The object returned by check_aggregate() and check_aggregate_region() now includes both the actual and the expected value as a pd.DataFrame
instance.
The function check_internal_consistency() now returns a concatenated dataframe rather than a dictionary and also includes optional treatment of components (see paragraph above). To keep the previous behaviour, add components=True
.
Individual Updates
- #315 Add
equals()
feature, change return types of[check_]aggregate[_region]()
, rework aggregation tutorial - #314 Update IPCC color scheme colors and add SSP-only colors
- #313 Add feature to
downscale
timeseries data to subregions using another variable as proxy - #312 Allow passing list of variables to
aggregate
functions - #305 Add
method
andweight
options to the (region) aggregation functions - #302 Rework the tutorials
- #301 Bugfix when using
to_excel()
with apd.ExcelWriter
- #297 Add
empty
attribute, better error fortimeseries()
on empty dataframe - #295 Include
meta
table when writing to or reading fromxlsx
files - #292 Add warning message if
data
is empty at initialization (after formatting) - #288 Put
pyam
logger in its own namespace (see here) - #285 Add ability to fetch regions with synonyms from IXMP API
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 5 years ago

pyam - Release v0.3.0
Release v0.3.0
Highlights
- Streamlined generation of quantitative metadata indicators from timeseries data using
set_meta_from_data()
- Better support for accessing public and private IIASA scenario explorer databases via the REST API
- More extensive documentation of the
pyam
data model and the IAMC format - Compatible with recent
pandas
v0.25
Individual Updates
- #277 Restructure and extend the docs pages, switch to RTD-supported theme
- #275 Completely removes all features related to region plotting, notably
region_plot()
andread_shapefile()
- #270 Include variables with zeros in
stack_plot
(see #266) - #269 Ensure append doesn't accidentally swap indexes
- #268 Update
aggregate_region
so it can find variables below sub-cateogories too - #267 Make clear error message if variable-region pair is missing when
check_aggregate_region
is called - #261 Add a check that
keep
infilter()
is a boolean - #254 Hotfix for aggregating missing regions and filtering empty dataframes
- #243 Update
pyam.iiasa.Connection
to support all public and private database connections. DEPRECATED: the argument 'iamc15' has been deprecated in favor of names as queryable directly from the REST API. - #241 Add
set_meta_from_data
feature - #236 Add
swap_time_for_year
method and confirm datetime column is compatible with pyam features - #273 Fix several issues accessing IXMP API (passing correct credentials, improve reliability for optional fields in result payload)
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann over 5 years ago

pyam - New Version: 0.2.0
Release v0.2.0
Highlights
- the
filters
argument inIamDataFrame.filter()
has been deprecated pd.date_time
now has experimental supported for time-related columns- plots now support the official IPCC scenario color palatte
- native support for putting legends outside of plot axes
- dataframes can now be initialized with default values, making reading raw
datasets easier
Individual Updates
- #228 Update development environment creation instructions and make pandas requirement more specific
- #219 Add ability to query metadata from iiasa data sources
- #214 Tidy up requirements specifications a little
- #213 Add support for IPCC colors, see the new tutorial "Using IPCC Color Palattes"
- #212 Now natively support reading R-style data frames with year columns like "X2015"
- #207 Add a
aggregate_region()
function to sum a variable from subregions and add components that are only defined at the region level - #202 Extend the
df.rename()
function with acheck_duplicates (default True)
validation option - #201 Added native support for legends outside of plots with
pyam.plotting.OUTSIDE_LEGEND
with a tutorial - #200 Bugfix when providing
cmap
andcolor
arguments to plotting functions - #199 Initializing an
IamDataFrame
accepts kwargs to fill or create from the data any missing required columns - #198 Update stack plot functionality and add aggregation tutorial. Also adds a
copy
method toIamDataFrame
. - #197 Added a
normalize
function that normalizes all data in a data frame to a specific time period. - #195 Fix filtering for
time
,day
andhour
to use genericpattern_match()
(if such a column exists) in 'year'-formmatted IamDataFrames - #192 Extend
utils.find_depth()
to optionally return depth (as list of ints) rather than assert level tests - #190 Add
concat()
function - #189 Fix over-zealous
dropna()
inscatter()
- #186 Fix over-zealous
dropna()
inline_plot()
, reworkas_pandas()
to (optionally) discover meta columns to be joined - #178 Add a kwarg
append
to the functionrename()
, change behaviour of mapping to only apply to data where all given columns are matched - #177 Modified formatting of time column on init to allow subclasses to avoid pandas limitation (https://stackoverflow.com/a/37226672)
- #176 Corrected title setting operation in line_plot function
- #175 Update link to tutorial in readme.md
- #174 Add a function
difference()
to compare two IamDataFrames - #171 Fix a bug when reading from an
ixmp.TimeSeries
object, refactor to mitigate circular dependency - #162 Add a function to sum and append timeseries components to an aggregate variable
- #152 Fix bug where scatter plots did not work with property metadata when using two variables (#136, #152)
- #151 Fix bug where excel files were not being written on Windows and MacOSX (#149)
- #145 Support full semantic and VCS-style versioning with
versioneer
- #132 support time columns using the
datetime
format and additionalstr
columns indata
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by gidden almost 6 years ago

pyam - Patch release to support install and docs
Now requests
is included in setup.py
and docs have been updated accordingly
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by gidden over 6 years ago

pyam - Patch release for installation and data
Now pip will install dependencies as expected and the iiasa
module was added to allow automatic data downloads from IIASA infrastructure.
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by gidden over 6 years ago

pyam - Initial Release
The initial release of pyam
! See our docs for details on installing and getting started.
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by gidden over 6 years ago
