Source code for pybamm.pybamm_data

import pathlib

import pooch


[docs] class DataLoader: """ Data Loader class for downloading and loading data files upstream at https://github.com/pybamm-team/pybamm-data/ The following files are listed in the registry - COMSOL Results --------------- :footcite:t:`Andersson2019` :footcite:t:`Doyle1993` :footcite:t:`Harris2020` :footcite:t:`Marquis2019` :footcite:t:`Marquis2020` - comsol_01C.json - comsol_05C.json - comsol_1C.json - comsol_1plus1D_3C.json - comsol_2C.json - comsol_3C.json Kokam SLPB 75106100 discharge data from Ecker et al (2015) ---------------------------------------------------------- :footcite:t:`Ecker2015i` :footcite:t:`Ecker2015ii` - Ecker_1C.csv - Ecker_5C.csv Enertech cells - discharge results for beginning of life -------------------------------------------------------- :footcite:t:`Andersson2019` :footcite:t:`Doyle1993` :footcite:t:`Harris2020` :footcite:t:`Marquis2019` :footcite:t:`Ai2019` :footcite:t:`Deshpande2012` :footcite:t:`Timms2021` - 0.1C_discharge_U.txt - 0.1C_discharge_displacement.txt - 0.5C_discharge_T.txt - 0.5C_discharge_U.txt - 0.5C_discharge_displacement.txt - 1C_discharge_T.txt - 1C_discharge_U.txt - 1C_discharge_displacement.txt - 2C_discharge_T.txt - 2C_discharge_U.txt - 2C_discharge_displacement.txt - stn_2C.txt - stp_2C.txt Drive cycles ------------ :footcite:t:`Andersson2019` :footcite:t:`Doyle1993` :footcite:t:`Harris2020` :footcite:t:`Marquis2019` :footcite:t:`Marquis2020` - UDDS.csv - US06.csv - WLTC.csv - car_current.csv """ def __init__(self): """ Create a pooch registry with the following data files available upstream at https://github.com/pybamm-team/pybamm-data/ """ self.version = "v1.0.1" # Version of pybamm-data release self.path = pooch.os_cache("pybamm") self.files = { # COMSOL results "comsol_01C.json": "sha256:bc5136fe961e269453bdc31fcaa97376d6f8c347d570fd30ce4b7660c68ae22c", "comsol_05C.json": "sha256:3b044135ad88bdb88959304a33fe42b654d5ef7ef79d1271dd909cec55b257fb", "comsol_1C.json": "sha256:d45e3ab482c497c37ebbc68898da22bab0b0263992d8f2302502028bfd5ba0e9", "comsol_1plus1D_3C.json": "sha256:cdd5759202f9c7887d2ea6032f82212f2ca89297191fe5282b8812e1a09b1e1f", "comsol_2C.json": "sha256:15c2637f54bf1639621c58795db859cb08611c8182b7b20ade10e4c3e2839a5b", "comsol_3C.json": "sha256:11d5afccb70be85d4ac7e61d413c6e0f5e318e1635b1347c9a3c6784119711e6", # Kokam SLPB 75106100 discharge data from Ecker et al (2015) "Ecker_1C.csv": "sha256:428dc5113a6430492f430fb9e895f67d3e20f5643dc49a1cc0a922b92a5a8e01", "Ecker_5C.csv": "sha256:a89f8bf6e305b2a4195e1fae5e803277a40ed7557d263ef726f621803dcbb495", # Enertech cells - discharge results for beginning of life "0.1C_discharge_U.txt": "sha256:7b9fcd137441eea4ab686faee8d57fe242c5544400939ef358ccd99c63c9579d", "0.1C_discharge_displacement.txt": "sha256:f1329731ead5a82a2be9851cf80e4c6d68dd0774e07aee5361e2af3ab420d7be", "0.5C_discharge_T.txt": "sha256:2140b2f6bd698135d09a25b1f04c271d35a3a02999ace118b10389e01defa2ae", "0.5C_discharge_U.txt": "sha256:9ed8368b2c6149d2a69218e7df6aaade2511c9f7f6fc7932cda153d9a3a10f39", "0.5C_discharge_displacement.txt": "sha256:8098565ff99bc938864797b402f483c1c64a583d6db85d086f39ab0e7b638dd1", "1C_discharge_T.txt": "sha256:97308dfd7f7dd6c434e30f6c00fb6707c43c963855bb0800e0336809d5cc3756", "1C_discharge_U.txt": "sha256:8fc19de45172215d65c56522c224e6fc700ee443db236b814238a829b7a14c3a", "1C_discharge_displacement.txt": "sha256:c2e8617ac48a20921da1b40bbebac479a0a143edf16b12b2e1ff9aaaf1a32ff4", "2C_discharge_T.txt": "sha256:4bd688fb7653539701fe3df61857474b4d54e8b142c84fdc4c8b92b9573fa5d0", "2C_discharge_U.txt": "sha256:7b3c24b5e6df377075002abc2f62bab7c88b27d826812ba5a4c8385a1a12e723", "2C_discharge_displacement.txt": "sha256:2b11513d80827c762325c819a084b87b3a239af7d112f234c9871481760a0013", "stn_2C.txt": "sha256:bb2f90ccfd2cd86ad589287caae13470e554df2f4f47f0f583a5a7e3e6bd9d4c", "stp_2C.txt": "sha256:6fe73b3a18e5fcfb95151dfd7d34c3cbe929792631447ed3ec88c047c9778223", # Drive cycles "UDDS.csv": "sha256:9fe6558c17aad3cc08109186923aeb7459cd3097a381c44e854bf22dd12a5a2a", "US06.csv": "sha256:5909eb2ec7983fae86a050ff3b35a2041d0ab698710a6b0f95d5816e348077ba", "WLTC.csv": "sha256:bb2f95018a44ac1425cb9c787c34721192af502c7385f1358f28e4f75df11fd8", "car_current.csv": "sha256:4305b91b9df073cb048c25dd3fae725e06a94fe200e322e5c08db290d6799e36", # BPX files "nmc_pouch_cell_BPX.json": "sha256:27261e2a7012725ed16c0c8b799b870388bd6c77f86bbf1949353286569c7d0d", } self.registry = pooch.create( path=self.path, base_url=f"https://github.com/pybamm-team/pybamm-data/releases/download/{self.version}", version=self.version, registry=self.files, )
[docs] def get_data(self, filename: str): """ Fetches the data file from upstream and stores it in the local cache directory under pybamm directory. Parameters ---------- filename : str Name of the data file to be fetched from the registry. Returns ------- pathlib.PurePath """ self.registry.fetch(filename) return pathlib.Path(f"{self.path}/{self.version}/{filename}")
[docs] def show_registry(self): """ Prints the name of all the files present in the registry. Returns ------- list """ return list(self.files.keys())