A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Recent Releases of premise

premise - Disables multiprocessing when import ecospold files

Full Changelog: https://github.com/polca/premise/compare/v.2.2.6...v.2.2.7

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 2 months ago

premise - Fixes database export issue and provides alternative to multiprocessing when importing ecospold files

Full Changelog: https://github.com/polca/premise/compare/v.2.2.5...v.2.2.6

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 3 months ago

premise - Improves Simapro export with ei 3.8

Full Changelog: https://github.com/polca/premise/compare/v.2.2.4...v.2.2.5

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 4 months ago

premise - Creates bw2 and bw25 variants and add CDR inventories

Full Changelog: https://github.com/polca/premise/compare/v.2.2.3...v.2.2.4

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 4 months ago

premise - v.2.2.3 fix isue with empty battery markets and wrong heat-related CO2 emissions

What's Changed

Full Changelog: https://github.com/polca/premise/compare/v.2.2.2...v.2.2.3

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 5 months ago

premise - IncrementalDatabase and others

What's Changed

Full Changelog: https://github.com/polca/premise/compare/2.2.1...v.2.2.2

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 5 months ago

premise - Incorrect invert input in IEA PV datasets.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 6 months ago

premise - 2.2.0

  • Update documentation regarding PV efficiencies.
  • Scale down PV mounting system for open-ground installations.
  • Scale down PV EoL input.

Full Changelog: https://github.com/polca/premise/compare/v.2.1.9...2.2.0

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 6 months ago

premise - Fix issues linking with ei 3.7

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 6 months ago

premise - Fixes linking issues with ei 3.7

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 6 months ago

premise - Improves IncrementalDatabase

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 6 months ago

premise - Adds IncrementalDatabase

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 6 months ago

premise - Fixes issues with production exchanges set to zero in scenario difference file

Full Changelog: https://github.com/polca/premise/compare/v.2.1.5...v.2.1.6

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 6 months ago

premise - Fix issue with consequential runs

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 6 months ago

premise - Adds TIAM-UCL scenarios

  • Adds TIAM-UCL scenarios
  • Update documentation
  • Better communication of scenario processing message by @marc-vdm in https://github.com/polca/premise/pull/181
  • Fixes water evaporation value in hydropower dams
  • Fix issues with deleted biosphere exchange of imported inventories

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 6 months ago

premise - Fix issue with unlinked exchanges with ei conseq 3.8/3.9

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 8 months ago

premise - Fix issue about missing `input` key in biosphere exchanges

validation.py fails because it does not test the presence of input in biosphere exchanges.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 8 months ago

premise - v.2.1.1

What's Changed

  • Ei310 compatibility

  • New cement modeling using IMAGE scenarios, after Müller et al. 2024

  • Uncertainty values from ecoinvent and imported inventories can be switched on and off separately

  • Transport is re-modeled: easier approach, scenario-specific fleet, after work of Jonas Klimt

  • Freight transport by train added, when using REMIND

  • Added inventories for PV (perovskite, GaAs)

  • Added battery inventories (Li-S, Li-O2, Sodium-ion) and introduction of battery scenarios

  • Added waste CHP inventories after Bisinella et al. 2021

  • Added inventories on ammonia production

  • Fixed export to bw 2.5

  • Fixing uncertainty value in inventories

  • Fixed generation of external scenario: the script was looping endlessly on some occasions

  • Fix water balance issue for silica-based amine production. Added uncertainty to DAC inventories.

  • Fix water unit conversion when exporting to Simapro

New Contributors

Full Changelog: https://github.com/polca/premise/compare/v.2.1.0...v.2.1.1

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 8 months ago

premise - Adjust truck battery size and add missing files to MANIFEST

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 8 months ago

premise - Fixes some LCIs for PVs

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 9 months ago

premise - v.2.1.1.dev7

  • Fix the issue of non-square matrix in bw 2.5 (because of a dataset with type waste treatment)
  • Fix uncertainty data (values outside bounds)
  • Preserve uncertainty during regionalization of datasets

Full Changelog: https://github.com/polca/premise/compare/v.2.1.1.dev6...v.2.1.1.dev7

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 9 months ago

premise - Improve export to bw25 projects + allow writing untransformed databases

The export to BW25 projects is now done using the SQLLite backend.
Also, .write_db_to_brightway() works with untransformed databases.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 9 months ago

premise - Fix linking issue due to liquid oxygen dataset

Full Changelog: https://github.com/polca/premise/compare/v.2.1.1.dev4...v.2.1.1.dev5

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 9 months ago

premise - Fix issue when creating only one World market from external scenarios

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 10 months ago

premise - Fixes issue with hydrogen markets

Filtering criteria for H2 from SMR were too loose, which led other technologies to slip in (e.g., SMR with biomethane, etc.).

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 10 months ago

premise - Fixes stuff with external scenarios

Too many proxy datasets were created because we could not properly keep track of those created and those left to create.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 10 months ago

premise - Fixes Simapro export

Improves export to Simapro with better classification
Remove CO2 leakage from DAC datasets

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 10 months ago

premise - Ecoinvent 3.10 + fixes

  • Adds ecoinvent 3.10 support
  • Adds inventories for ammonia production
  • Fixes scaling of PV systems (mounting panels were nto scaled down)
  • Adjusts electricity mix for aluminium production (previously unchanged, now aligned on regional electricity mixes)
  • Fixes water balance for H2 from coal gasification
  • H2 from SMR now uses national gas markets instead of regional one

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 11 months ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 12 months ago

premise - Fix issue when converting cubic meters of water to kilograms

Before, cubic meters fo water were divided by 1000 to obtain kilograms, which was wrong.
Only concerns Simapro exports.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 12 months ago

premise - Change database export name

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 12 months ago

premise - Fix validation issues

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 12 months ago

premise - Fix issue with accessing log file and prevent same function being applied twice

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 12 months ago

premise -

Adds pickling of databases to avoid RAM maxing out

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 12 months ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi 12 months ago

premise - v.2.1.0.dev1

Full Changelog: https://github.com/polca/premise/compare/v.2.1.0.dev0...v.2.1.0.dev1

Fixes some export issues mostly.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - More flexible listing of external scenarios

THe use of external scenarios is no longer determined by the IAM scenario.

Hence, this now works:

fp = "/Users/romain/GitHub/RTE_scenarios/datapackage.json"
rte = Package(fp)

scenarios = [
{"model": "image", "pathway":"SSP2-Base", "year": 2020, "external scenarios": [{"scenario": "Reference - M0", "data": rte}]},
{"model": "image", "pathway":"SSP2-Base", "year": 2050, "external scenarios": [{"scenario": "Reference - M0", "data": rte}]},
{"model": "image", "pathway":"SSP2-RCP26", "year": 2050, "external scenarios": [{"scenario": "Reference - M0", "data": rte}]},
{"model": "image", "pathway":"SSP2-RCP26", "year": 2050, "external scenarios": [{"scenario": "Reference - N03", "data": rte}]},
{"model": "image", "pathway":"SSP2-RCP26", "year": 2050, "external scenarios": [{"scenario": "Extensive reindustrialization - M23", "data": rte}]},
{"model": "image", "pathway":"SSP2-RCP19", "year": 2050, "external scenarios": [{"scenario": "Extensive reindustrialization - M23", "data": rte}]},
{"model": "remind", "pathway":"SSP2-PkBudg1150", "year": 2050, "external scenarios": [{"scenario": "Sobriety - M23", "data": rte}]},
#{"model": "remind", "pathway":"SSP2-Base", "year": 2025},
]

ndb = NewDatabase(
scenarios = scenarios,
source_db="ecoinvent 3.9.1 cutoff",
source_version="3.9.1",
key='xxxx',
use_multiprocessing=True
)

External scenarios to use are passed directly in the list of scenarios. Also, any external scenario cna be used with any IAM scenario. Finally, we pass a list, meaning that several external scenarios can be considered per scenario.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - Fixes several errors

What's Changed

  • The efficiency of lignite and oil power plants were incorrectly calculated because premise could not identify the fuel input.
  • The Simapro files could no longer be imported in Simapro 9.5.
  • Add conda-forge badge and update install instructions by @m-rossi in https://github.com/polca/premise/pull/94

New Contributors

Full Changelog: https://github.com/polca/premise/compare/v.2.0.1...v.2.0.2

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - Fix issue with EN 1804

Three exchanges in the LCI of germanium caused a linking issue with ecoinvent EN 18504.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - Major update

Changes with respect to 1.8.0

  • Adds .write_db_to_olca(), which produces a slightly modified version of a Simapro CSV database file which can then be imported in OpenLCA. The use of the SimaPro_Import.csv mapping file must be selected.
  • Marginal mixes were wrong because the average lifetime of the mix was calculated using the technology-specific lead time values instead of lifetime values.
  • Fix issue with CCS in IMAGE scenarios
  • Fix several issues with external scenarios
  • Drops DAC efficiency improvement based on cumulated deployment.
  • Improves documentation for consequential modelling.
  • Code-breaking change: update function are now called like so .update(). For example, to update the electricity sector: .update("electricity"). To update all sectors: .update().

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - Fix issue with external scenarios

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - Fix issue with external scenarios

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - Add H2 supply and fix external scenario implementation

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - Fix issue with interpolating years and external scenarios

What's Changed

Full Changelog: https://github.com/polca/premise/compare/v.2.0.0.dev1...v.2.0.0.dev2

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - Fixes issue with marginal mix modeling.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - v.2.0.0.dev0

Full Changelog: https://github.com/polca/premise/compare/v.1.8.2.dev7...v.2.0.0.dev0

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - Fix issues with external scenarios building

Could not modify efficiency of datasets
Changed the order of preference for finding eligible suppliers (RoW and GLO placed before RER).

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 1 year ago

premise - Fix issue with update_electricity() when consequential

The script was looking for non-existing technologies in the consequential database (e.g., CHPs).

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Fixes issue with marginal mixes

Marginal mixes were wrong because the average lifetime of the mix was calculated using the technology-specific lead time values instead of lifetime values.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Add export to OpenLCA

Adds .write_db_to_olca(), which produces a slightly modified version of a Simapro CSV database file which can then be imported in OpenLCA. The use of the SimaPro_Import.csv mapping file must be selected.

There are a few dozen unlinked flows, mostly chemicals and metal ions, which hopefully will be addressed in the next update of the mapping flow.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Fix issue with CCS in IMAGE scenarios
Fix issue with external scenarios
Drops DAC efficiency improvement based on cumulated deployment.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Fix issue with consequential modelling

premise aws emptying an incorrect dataset
Also, some imported inventories had exchanges that did not exist in consequential ei.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - v.1.8.2.dev1

Full Changelog: https://github.com/polca/premise/compare/v.1.8.2.dev0...v.1.8.2.dev1

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - v.1.8.2.dev0

What's Changed

Full Changelog: https://github.com/polca/premise/compare/v.1.8.1...v.1.8.2.dev0

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - v.1.8.1

Fix linking issue caused by wrong unit ("standard cubic meter"/"Sm3").

Full Changelog: https://github.com/polca/premise/compare/v.1.8.0...v.1.8.1

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Stable release

What's Changed

New Contributors

Full Changelog: https://github.com/polca/premise/compare/v.1.7.9...v.1.8.0

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Allows export to BW 2.5 projects

What's Changed

Full Changelog: https://github.com/polca/premise/compare/v.1.7.9...v.1.8.0.dev1

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Fix reading of CSV in custom scenarios

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Allows reading in Excel files in custom scenarios

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - v.1.7.7

What's Changed

New Contributors

Full Changelog: https://github.com/polca/premise/compare/v.1.7.6...v.1.7.7

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Fix superstructure DBs export.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Fix World region creation in custom scenarios

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Fix issue with CC for cement
Fix issue with calculating efficiencies for cement

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Fix issue with suppliers detection

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Introduce battery and hydrogen storage
Add vanadium LCIs
Allows disabling multiprocessing
Change dependency to bw2io>=0.8.10
Add stationary home battery LCIs

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Allows to disable multiprocessing.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Adds home energy storage system
Removes keys from SDF
Improves filtering of region names in transformation.py

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Loosen version for dependencies.
Fix issue with linking imported inventories (which did not go through lower-casing).

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - Fix marginal modelling issue when shares are NaNs

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Fix error in PEM electrolysis inventories (remove steam input).

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Fix issue with testing for CCS variables in data_collection.py.
The issue caused CCS shares for cement and steel production to be 0% for all scenarios, hence important.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Fix reading of ecospold files
Fix export as Simapro file

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Fix error when no arguments are given with consequential system model.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Fix lead time when consequential
Fix inter year in fuels.py

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

Fix building of global hydrogen market sin scenarios with no hydrogen production
Fix linking to original DAC dataset

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - v.1.6.0

  • Fix fuel market shares

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise -

  • multiprocessing implementation
  • refined electrolyzers' inventories
  • add inventories for large-scale autonomous CSP
  • export scenario difference files to Excel, CSV, and Feather formats

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi over 1 year ago

premise - v.1.5.8

Add emission factors for coal PPs.
Cleanup Carma inventories.
Lower case dataset names.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Fixes some linking issues, specifically when markets shares are 0.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Fixes some electricity variables. Some CCS PP datasets were adjusted, while others were not.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

fuel_groups.yaml was not declared in MANIFEST.in

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

•	Updates current IMAGE scenarios (v.3.3)
•	Adds IMAGE SSP1-Base scenario
•	Extra variables available in IMAGE scenarios, allowing the creation of hydrogen markets, for example.
•	Updates inventories on H2 production: electrolysis (PEM, AEC, SOEC), pyrolysis, and thermochemical water splitting. Note: some datasets have been renamed.
•	Updates inventories on fuel cells.
•	Fix linking of "market for diesel, burned in...": previously, the GLO market would not be replaced by a regional market.
•	Efficiency improvements applied on both pre- and post- power CCS datasets.

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi almost 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 2 years ago

premise -

Industrial Ecology - Life Cycle Assessment - Jupyter Notebook
Published by romainsacchi about 2 years ago