Skip to main content

A tool for generating time series data related to energy systems and building operations

Project description

A simple tool for generating time series data related to energy systems and building operations.

License

License

Package

PyPI Python Version

Build Status

GitHub Actions GitLab CI

Documentation

Documentation

Development

open issues closed issues open merge requests closed merge requests

Community

contributions contributors repository counter

Introduction

EnTiSe (En-ergy Ti-me Se-ries) is a Python package designed to generate realistic time series data for various energy systems and building operations. It provides a flexible, pipeline- and strategy-based approach to create time series for different applications including HVAC, domestic hot water, electricity, mobility, and occupancy patterns.

Key Features

  • Multiple time series types including DHW, HVAC, PV, and more in the works.

  • Flexible pipeline- and strategy-based architecture for customizable time series generation.

  • Support for dependent methods to create related time series.

  • Two access patterns: batch processing via TimeSeriesGenerator or direct method imports for individual control.

Getting Started

To get started, follow these steps:

Requirements

  • Python (3.10 or newer)

  • Git for version control (optional, only for development)

Installation

EnTiSe can be installed directly from PyPI:

pip install entise

For faster installation, you can use uv:

pip install uv
uv pip install entise

For development or the latest features, you can install directly from the repository:

pip install git+https://github.com/tum-ens/need/entise.git

Or clone the repository and install in development mode:

git clone https://github.com/tum-ens/need/entise.git
cd entise
pip install -e ".[dev]"

Now you’re ready to use EnTiSe! Check the examples directory for usage examples.

Repository Structure

  • entise/: Main project code organized in a Python package.

    • constants/: Definitions of time series types and other constants.

    • core/: Core functionality and base classes.

    • data/: Data files and data handling utilities.

    • methods/: Implementation of various time series generation methods.

  • tests/: Folder for tests; structured by functionality.

  • docs/: Documentation source files.

  • examples/: Example scripts demonstrating usage of the package.

Usage Guidelines

Basic Usage

EnTiSe provides two flexible ways to generate time series data:

Batch Processing

For generating multiple time series at once:

from entise.core.generator import TimeSeriesGenerator

# Initialize the generator
gen = TimeSeriesGenerator()

# Add objects (e.g., buildings)
gen.add_objects({
    "id": "building1",
    "hvac": "1R1C",
    "resistance": 2.0,
    "capacitance": 1e5,
    "temp_min": 20.0,
    "temp_max": 24.0,
})

# Prepare input data (e.g., weather)
data = {
    "weather": pd.DataFrame({
        "temp_out": [0.0] * 24,
    }, index=pd.date_range("2025-01-01", periods=24, freq="h"))
}

# Generate time series
summary, df = gen.generate(data)

Direct Method Access

For working with individual methods directly:

from entise.methods.pv import PVLib

# Create an instance
pvlib = PVLib()

# Generate time series
result = pvlib.generate(
    latitude=48.1,
    longitude=11.6,
    power=5000,
    weather=weather_df
)

# Access results
summary = result["summary"]
timeseries = result["timeseries"]

For more detailed examples, check the examples directory.

Supported or Planned Time Series Types

EnTiSe supports generating time series for the following types:

Integrated:

  • Domestic Hot Water (DHW)

  • HVAC (Heating, Ventilation, and Air Conditioning)

  • Occupancy data

  • Solar Photovoltaic (PV)

Planned:

  • Concentrated Solar Power (CSP)

  • Electricity demand or supply

  • Geothermal energy

  • Hydroelectric power

  • Mobility (transportation-related data)

  • Tidal energy

  • Wave energy

  • Wind energy

Documentation

Please see the documentation for further information.

Contribution and Code Quality

Everyone is invited to develop this repository. Please follow the workflow described in the CONTRIBUTING.md.

Coding Standards

This repository follows consistent coding styles. Refer to CONTRIBUTING.md for detailed standards.

Changelog

The changelog is maintained in the CHANGELOG.md file. It lists all changes made to the repository. Follow instructions there to document any updates.

License and Citation

The code of this repository is licensed under the MIT License (MIT).
See LICENSE for rights and obligations.
See CITATION.cff for citation of this repository.
Copyright: EnTiSe (c) TU Munich - ENS | MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

entise-0.2.1.tar.gz (7.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

entise-0.2.1-py3-none-any.whl (74.7 kB view details)

Uploaded Python 3

File details

Details for the file entise-0.2.1.tar.gz.

File metadata

  • Download URL: entise-0.2.1.tar.gz
  • Upload date:
  • Size: 7.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for entise-0.2.1.tar.gz
Algorithm Hash digest
SHA256 8c6d79d487b9592611c15c84ed0879783e64b938a9a44ca8d978a0b2f77a85a6
MD5 023dcb341adaa3dde824236d5f5206b0
BLAKE2b-256 e66327429d46e80cdc968924f7955846cec8eaf4942ddf0b65a79230072272e7

See more details on using hashes here.

File details

Details for the file entise-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: entise-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 74.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for entise-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8a6a95a17a4c1be00f040c4d4aa714c176512f7f0989d5e71bcf8c0b69f16918
MD5 61c20c4f5fc0b4f3a971de23290b90c9
BLAKE2b-256 07b2b0e028b50d3f852bae26b8ef525377b4cd2cc216866421fc710a42ab377f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page