- Placeholder
- Handle ambiguous and nonexistent local times when creating daily dataclass
- Update docs.
- Update typehints on core daily and utility functions.
- Minor change to loading test data to ensure the reporting period is a year ahead of the baseline period.
- Flip slope when deserializing legacy hdd_only models
- Add support for deserializing legacy hourly models
- Fix legacy daily model deserialization
- Move masking behavior for rows with missing temperature from reporting dataclass to prediction output
- Add disqualification check to billing model predict()
- Force index to use nanosecond precision
- Compute coverage using same offset as initial reads to fix issues when downsampling hourly data
- Update test data location
- Fix bug in daily plotting to remove NaN values if input
- Refactor sufficiency criteria to be more explicit and easier to manage
- Correct dataframe input behavior and final row temperature aggregation
- Remove unnecessary datetime normalization in order to respect hour of day
- Convert timestamps in certain warnings to strings to allow serialization
- Allow configuration of segment_type in HourlyModel wrapper
- Update daily model methods, API, and serialization
- Provide new API for hourly model to match daily syntax and prepare for future additions
- Add baseline and reporting dataclasses to support compliant initialization of meter and temperature data
- Addition of modules and amendments in support of international facility for EEMeter, including principally:
- Addition of quickstart.py; updating setup.py and init/py accordingly.
- Inclusion of temperature conversion amendments to design_matrices; features; and derivatives.
- Addition of new tests and samples.
- Amendments to tutorial.ipynb.
- Addition of eemeter international.ipynb.
- Change .iteritems() to .items() in accordance with pandas>=2.0.0
- .get_loc(x, method=...) to .get_indexer([x],method=...)[0] in accordance with pandas>=2.0.0
- Updated mean() to mean(numeric_only=True) in accordance to pandas>=2.0.0
- Updated tests to work with pandas>=2.0.0
- Update python version in Dockerfile.
- Update other dependencies (including adding rust) in Dockerfile.
- Remove pinned dependencies in Pipfile.
- Relock Pipfile (and do so inside of the docker image).
- Update pytests to account for changes in newer pandas where categorical variables are no longer included in
df.sum().sum()
. - Clarify the functioning of start, end and max_days parameters to
get_reporting_data()
andget_baseline_data()
.
- Update observed_mean calculation to account for solar (negative usage) to provide sensible cvrmse calculations.
- Remove missing hour_of_week categories in the CalTrack hourly methods so they predict null for those hours.
- Remove python27 support.
- Update Pipfile lock.
- Update
fit_temperature_bins
to potentially take anoccupancy_lookup
in order to fit different temperature bins for occupied/unoccupied modes. This changes the args passed to eemeter.create_caltrack_hourly_segmented_design_matrices, where it now requires a set of bins for occupied and unoccupied temperatures separately. - Update CalTRACK hourly model formula to use different bins for occupied and unoccupied mode.
- Fix tests and make changes to ensure tests pass on pandas version 1.2.1.
- Fix bug in segmentation.py causing a section of tutorial to fail.
- Add additional terms into ModelMetrics() class which can be used in fractional savings uncertainy computations.
- Remove fixing of versions of libraries in setup.py to avoid unforeseen issues with library updates.
- Fix versions of libraries in setup.py to avoid unforeseen issues with library updates.
- Clarify blackout period.
- Fix issue with
get_reporting_data
andget_baseline_data
when passing data with non-UTC timezones.
- Add functions to clean billing/daily data according to caltrack rules.
- Further limit segments used in hourly
totals_metrics
to only calculate when weight=1.
- Update hourly
totals_metrics
calculation to properly use only the segment of the model.
- Add
totals_metrics
to hourly models.
- Fix bug with
get_baseline_data
in regards to recent addition ofn_days_billing_period_overshoot
kwarg.
- Update
get_baseline_data
to allow for limit to billing overshoot usingn_days_billing_period_overshoot
kwarg.
- Add function to clean billing data to fit caltrack specifications (
clean_caltrack_billing_data
).
- Update io functions to support latest pandas (>=0.24.x).
- Update documentation for CalTRACK Hourly methods.
- Add tutorial.
- Fix completeness check for
get_terms
for last term.
- Make more usable outputs for the
get_terms
function (list of eemeter.Term objects).
- Update
as_freq
so it has an optionalinclude_coverage
parameter where it returns a dataframe with one column including the percent coverage of data used to create each sample.
- Fixes the columns that are given in an empty prediction result called with the
with_design_matrix=True
flag set for caltrack usage per day methods. - Update bug report github issue template.
- Add test for
as_freq
.
- Change
as_freq
to handle all Null series.
- Add
get_terms
method to allow splitting reporting data into any number of terms specified by day length.
- Change
fit_caltrack_hourly_model
so it returns aCalTRACKHourlyModelResults
object rather than aCalTRACKHourlyModel
, in order to bring it in line with thecaltrack_usage_per_day
model outputs.
- Update MANIFEST.in to fix release and update
./bump_version.sh
script to remove build directories.
- Add data fields to the
DataSufficiency
even if there are no warnings when calculating sufficiency.
- Attempt 2 to fix release .whl file by removing local build and dist
directories before running
python setup.py upload
.
- Fix release .whl file which had some extra directories.
- Add draft MAINTAINERS.md.
- Fix
metered_savings
behavior so that it does not fail to compute error bands when there is 0 variance in the baseline.
- Fix
as_freq
behavior to preserve sum and add a null last index at the target frequency if necessary.
- Capture an additional exception type (
KeyError
) in recently adjustedget_baseline_data
andget_reporting_data
methods.
- Add parameters to
get_baseline_data
andget_reporting_data
to help make these methods a bit more correct for billing data. - Preserve nulls properly in
as_freq
. - Update jupyter version to be compatible with latest tornado version.
- Fix for bug that occasionally leads to
LinAlgError: SVD did not converge
error when fitting caltrack hourly models by addressing multi-collinearity when only a single occupancy mode is detected
- Hot fix for bug that occasionally leads to
LinAlgError: SVD did not converge
error when fitting caltrack hourly models by converting the weights fromnp.float64
tonnp.float32
.
- Fix bug where the model prediction includes features in the last row that should be null.
- Fix in
transform.get_baseline_data
andtransform.get_reporting_data
to enable pulling a full year of data even with irregular billing periods
- Added option in
transform.as_freq
to handle instantaneous data such as temperature and other weather variables.
- Predict with empty formula now returns NaNs.
- Update
compute_occupancy_feature
so it can handle instances where there are less than 168 values in the data.
- SegmentModel becomes CalTRACKSegmentModel, which includes a hard-coded check that the same hours of week are in the model fit parameters and the prediction design matrix.
- Reverts small data bug fix.
- Fix bug with small data (1<week) for hourly occupancy feature calculation.
- Bump dev eeweather version.
- Add
bump_version
script. - Filter two specific warnings when running tests: statsmodels pandas .ix warning, and eemeter model fitting warning.
- Add
json()
serialization forSegmentModel
andSegmentedModel
.
- Change
max_value
to float so that it can be json serialized even if the input is int64s.
- Add warning to
caltrack_sufficiency_criteria
regarding extreme values.
- Fix bug in fractional savings uncertainty calculations using billing data.
- Add fractional savings uncertainty to modeled savings derivatives.
- Update so that models built with empty temperature data won't result in error.
- Update so that models built from a single record won't result in error.
- Update multiple places where
df.empty
is used and replaced withdf.dropna().empty
. - Update documentation for running CalTRACK hourly methods.
- Fix zero division error in metrics calculation for several metrics that would otherwise cause division by zero errors in fsu_error_band calculation.
- Fix zero division error in metrics calculation for series of length 1.
- Fix bug related to caltrack billing design matrix creation during empty temperature traces.
- Add automatic t-stat computation for metered savings error bands, the implementation of which requires expicitly adding scipy to setup.py requirements.
- Don't compute error bands if reporting period data is empty for metered savings.
- Fix degree day ranges (30-90) for prefab caltrack design matrix creation methods.
- Fix the warning for total degree days to use total degree days instead of average degree days.
- Update the
use_billing_presets
option infit_caltrack_usage_per_day_model
to use a minimum data sufficiency requirement for qualifying CandidateModels (similar to daily methods). - Add an error when attempting to use billing presets without passing a weights column to facilitate weighted least squares.
- Give better error for duplicated meter index in compute temperature features.
- Change metrics input length error to warning.
- Apply black code style for easy opinionated PEP 008 formatting
- Apply JSON-safe float conversion to all metrics.
- Cont. fixing JSON representation of NaN values
- Fixed JSON representation of model classes
- Initial release of 2.x.x series