Releases: IAMconsortium/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
Release v1.3.1
Release v1.3.1
This is a patch release to ensure compatibility with pandas v1.4.0.
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
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
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)
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.
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
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
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
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