Reading and Writing Datasets#
The battdat.io
module provides tools to read and write from BatteryDataset
objects.
Format |
Module |
Reading |
Writing |
---|---|---|---|
Arbin |
✔️ |
✖️ |
|
Battery Archive (https://www.batteryarchive.org) |
✖️ |
✔️ |
|
Battery Data Hub (https://batterydata.energy.gov) |
✔️ |
✖️ |
|
✔️ |
✔️ |
||
MACCOR |
✔️ |
✖️ |
|
✔️ |
✔️ |
Note
The parquet and HDF5 formats write to the battery-data-toolkit file formats.
Reading Data#
DatasetReader
classes provide the ability to create a dataset
through the read_dataset
method.
The inputs to read_dataset
always include a BatteryMetadata
object
containing information beyond what is available in the files.
Most DatasetReader
read data from a filesystem and are based on DatasetFileReader
.
These readers take list of paths to data files alongside the metadata and also include methods (e.g., group()
) to
find files:
from battdat.io.batterydata import BDReader
extractor = BDReader(store_all=True)
group = next(extractor.identify_files('./example-path/'))
dataset = extractor.read_dataset(group)
The type of output dataset is defined by the output_class
attribute.
Most uses of readers do not require modifying this attribute.
Writing Data#
DatasetWriter
classes write battdat.data.BatteryDataset
objects into forms usable by other tools.
For example, the BatteryArchiveWriter
converts the metadata into the schema used by Battery Archive
and writes the data into the preferred format: CSV files no longer than 100k rows.
from battdat.io.ba import BatteryArchiveWriter
exporter = BatteryArchiveWriter()
exporter.export(example_data, './to-upload')