What’s new
v2023.9.12
All changes
New module
project.ssp
(PR #122) to generate SDMX codelists for the 2017/original SSPs and the 2024 update, and provide these asEnum
to other code.New module
tools.exo_data
to retrieve exogenous data for, among others, population and GDP (PR #122). This module has a general API that can be implemented by provider classes.New function
model.emissions.get_emission_factors()
and associated data file to provide data from this table in the MESSAGEix-GLOBIOM documentation (PR #122).New functions in
util.sdmx
(PR #122):make_enum()
to make pure-PythonEnum
(or subclass) data structures based on SDMX code lists.
same_node()
also fills “node_shares”, “node_loc”, and “node”, as appropriate (PR #122).
Deprecations
eval_anno()
is deprecated; code should instead usesdmx.model.common.AnnotableArtefact.eval_annotation()
, which provides the same functionality.
v2023.9.2
New module
message_ix_models.report
for reporting (PR #116). Use of this module requires ixmp and message_ix version 3.6.0 or greater.Add documentation on Migrating individual modules using git filter-repo and helper scripts (PR #89).
v2023.7.26
Add code and CLI commands to fetch and load MESSAGEix-GLOBIOM snapshots (PR #102). Use of this module requires ixmp and message_ix version 3.5.0 or greater.
Add
util.pooch.fetch()
, a thin wrapper for using Pooch (PR #102).New module
message_ix_models.model.macro
with utilities for calibratingmessage_ix.macro
(PR #104).New method
Workflow.guess_target()
(PR #104).Change in behaviour of
Workflow.add_step()
: the method now returns the name of the newly-added workflow step, rather than theWorkflowStep
object added to carry out the step (PR #104). The former is more frequently used in code that usesWorkflow
.Add the 17-region aggregation (R17) node code list (PR #109).
Add the 20-region aggregation (R20) node code list (PR #109).
v2023.5.31
v2023.5.13
Adjust
generate_product()
for pandas 2.0.0 (PR #98).
2023.4.2
New utility function
replace_par_data()
(PR #90).disutility.get_spec()
preserves allAnnotations
attached to theCode
object used as a template for usage technologies (PR #90).Add
CO2_Emission_Global_Total
to the “A” relation codelist (PR #90).Adapter
andMappingAdapter
can be imported frommessage_ix_models.util
(PR #90).
2023.2.8
Codelists for the
relation
MESSAGEix set (PR #85):The “bare” reference energy system now includes relations from the codelist indicated by
model.Config.relations
; default “A”.
Commodities (commodity.yaml) (PR #85):
Add “biomass”, “non-comm”, “rc_spec”, and “rc_therm”.
Add “report” annotations for some items. These include string fragments to be used in variable names when reporting data in the IAMC data structure.
generate_product()
(andgenerate_set_elements()
) can handle a regular expression to select a subset of codes for the Cartesian product (PR #85).New utility method
Context.write_debug_archive()
writes a ZIP archive containing files listed byConfig.debug_paths
(PR #85).WorkflowStep
can store and apply keyword options for the optionalclone()
step at the start of the step execution (PR #85).Bugfix:
WorkflowStep.__call__()
ensures thatConfig.scenario_info
on theContext
instance passed to its callback matches the target scenario (PR #85).
2022.11.7
Add the Zambia (ZMB) node code list (PR #83).
Add the utility
same_time()
, to copy the set time in parameters (PR #83).New
Config
andmodel.Config
dataclasses
for clearer description/handling of recognized settings stored onContext
(PR #82).ConfigHelper
for convenience/utility functionality inmessage_ix_models
-based code.New functions
generate_product()
,generate_set_elements()
,get_region_codes()
inmodel.structure
(PR #82).Revise and improve the Workflow API (PR #82).
Adjust for pandas 1.5.0 (PR #81).
2022.8.17
Add
nodes_ex_world()
and use this indisutility.data_conversion()
instead of expected a “World” node ID to be the first element inScenarioInfo.N
(PR #78).Add example files and documentation for IIASA Scenario Explorer metadata (PR #78).
Expand
~
(i.e.$HOME
) in the"message local data"
configuration setting (PR #78).
2022.7.25
Add
get_advance_data()
, and related tools for data from the ADVANCE project, including the node codelist for the data (PR #76).Add unit annotations to Commodities (commodity.yaml) (PR #76).
New utility methods
ScenarioInfo.io_units()
to derive units forinput
andoutput
parameters fromunits_for()
commodity stocks and technology activities (PR #76).Transfer
add_tax_emission()
frommessage_data
, improve, and add tests (PR #76).Unit annotations on commodity and technology codes are copied to child codes using
process_units_anno()
(PR #76).make_matched_dfs()
acceptspint.Quantity
to set both magnitude and units in generated data (PR #76).strip_par_data()
also removes the set element for which data is being stripped (PR #76).The common CLI options --verbose and --dry-run are stored on
Context
automatically (PR #76).New utility method
Context.set_scenario()
(PR #76).iam_units.registry
is the default unit registry even whenmessage_data
is not installed (PR #76).Expand
broadcast()
to allowDataFrame
with multiple dimensions as input (PR #74).
2022.5.6
Bump minimum required version of
message_ix
to v3.4.0 from v3.2.0 (PR #71).Add a documentation page on Distributed computing (PR #59).
Add
testing.not_ci()
for marking tests not to be run on continuous integration services; improvesession_context()
(PR #62).apply_spec()
also adds elements of the “node” set usingixmp.Platform.add_region()
(PR #62).Add new logo the documentation (PR #68).
Add
Workflow
; see Multi-scenario workflows (workflow) (PR #60).
2022.3.30
Add
adapt_R11_R12
, a function for adapting data from the 11-region aggregation (R11) to the 12-region aggregation (R12) node lists (PR #56).Work around iiasa/ixmp#425 in
disutility.data_conversion()
(docs, PR #55).
2022.3.3
Change the node name in R12.yaml from R12_CPA to R12_RCPA (PR #49).
Register “message local data” ixmp configuration file setting and use to set the
.Context.local_path
when provided. See (3) Other, system-specific (“local”) directories (PR #47)
2022.1.26
New
Spec
class for easier handling of specifications of model (or model variant) structure (PR #39)New utility function
util.local_data_path()
(PR #39).repr()
ofContext
no longer prints a (potentially very long) list of all keys and settings (PR #39).as_codes()
accepts adict
withCode
values (PR #39).
Earlier releases
2021.11.24
Add --years and --nodes to
common_params()
(PR #35).New utility function
structure.codelists()
(PR #35).
2021.7.27
Improve caching using mod:genno v1.8.0 (PR #29).
2021.7.22
Migrate utilities
cached()
,check_support()
,convert_units()
,maybe_query()
,series_of_pint_quantity()
(PR #27)Add
testing.NIE
.Add the
--jvmargs
option to pytest (seepytest_addoption()
).Remove
Context.get_config_file()
,get_path()
,load_config()
, andunits()
, all deprecated since 2021-02-28.
2021.7.6
Add
identify_nodes()
, a function for identifying a Node code lists based on aScenario
(PR #24).Add
adapt_R11_R14
, a function for adapting data from the 11-region aggregation (R11) to the 14-region aggregation (R14) node lists (PR #24).Add
export_test_data()
and mix-models export-test-data command (PR #16). See Prepare data for testing.Allow use of pytest’s persistent cache across test sessions (PR #23). See Reproducibility.
Add the 12-region aggregation (R12) node code list (PR #14).
2021.4.7
Add
model.disutility
, code for setting up structure and data for generalized consumer disutility (PR #13)
2021.3.24
Add Years or time periods (year/*.yaml), YAML data files,
ScenarioInfo.year_from_codes()
and associated tests (GH #11, PR #12)
2021.3.22
Migrate
model.bare
,model.build
,model.cli
, and associated documentation (PR #9)Migrate utilities:
ScenarioInfo
,add_par_data()
,eval_anno()
,iter_parameters()
, andstrip_par_data()
.
2021.3.3
Migrate
util.click
,util.logging
; expand documentation (PR #8:).Context.clone_to_dest()
method replacesclone_to_dest()
function.Build PDF documentation on ReadTheDocs.
Allow CLI commands from both
message_ix_models
andmessage_data
via mix-models.Migrate mix-models techs CLI command.
2021.2.28
Migrate
Context
class andtesting
module frommessage_data
(PR #5:).Add
load_private_data()
,package_data_path()
,private_data_path()
.Document: Data, metadata, and configuration and Command-line interface.
Update node codelists to ensure they contain both current and former ISO 3166 codes for countries that have changed status (PR #6:). For instance, ANT dissolved into BES, CUW, and SXM in 2010; all four are included in R11_LAM so this list can be used to handle data from either before or after 2010.
2021.2.26
Add
get_codes()
and related code lists (PR #2:).Add
MessageDataFinder
and document Migrating from message_data (PR #3:).
2021.2.23
Initial release.