The main method uses the estimated percentage of battery remaining to predict when the percentage left will be a given value.
The input is a time series NetCDF with at least two columns:
- time a CF compliant time of the observation
- m_lithium_battery_relative_charge as defined by Slocum masterdata file
A compatible input NetCDF file is generated from my Slocum_DataHarvester in the sensors files.
A linear regression is done to:
m_lithium_battery_relative_charge = a + b (time - min(time))/86400
so the slope is in days.
Install required dependencies:
pip install numpy xarray scipy matplotlibBasic usage:
./SlocumBatteryPercentageDuration.py sensor_data.ncWith plotting enabled:
./SlocumBatteryPercentageDuration.py --plot sensor_data.ncUsing only the last N days of data:
./SlocumBatteryPercentageDuration.py --ndays 7 sensor_data.ncSpecifying a custom threshold:
./SlocumBatteryPercentageDuration.py --threshold 10 sensor_data.ncUsing a specific time range:
./SlocumBatteryPercentageDuration.py --start "2025-01-01" --stop "2025-01-15" sensor_data.ncFor verbose output:
./SlocumBatteryPercentageDuration.py --verbose sensor_data.nc