Skip to main content

Python Energy Data Analysis Utilities

Project description

pyedautils

Python Energy Data Analysis Utilities

CI - Test Coverage PyPI Latest Release PyPI Downloads

What is it?

pyedautils is a python package designed for analyzing and visualizing comfort and energy time series data. It provides a compact yet expanding collection of utility functions and visualizations aimed at streamlining data exploration.

Installation

The package is available on PyPi.org and can be installed with:

pip install pyedautils

Table of contents

plots.py

data_io.py

geopy.py

meteo_swiss.py

season.py


plots.py

plot_daily_profiles_overview()

This function creates an overview of typical daily profiles per weekday and season of year with a confidence band where 90% of the values lie (q5 to q95).

from pyedautils.data_io import load_data
from pyedautils.plots import plot_daily_profiles_overview

# data preprocessing
file_path = "pyedautils/data/ele_meter.csv"
df = load_data(file_path)
df['value'] = df['value'].diff()
df = df.dropna()

# create and show plot
fig = plot_daily_profiles_overview(df)
fig.show(renderer="browser")

plot_daily_profiles_overview


data_io.py

File handling utilities for loading and saving data.

save_data()

Saves data to a file in various formats (CSV, Pickle, JSON) based on the given file extension of pile_path.

from pyedautils.data_io import save_data

file_path = "./my_filename.json"
save_data(df, file_path)

load_data()

Loads data from a file in various formats (CSV, Pickle, JSON) based on the given file extension of file_path.

from pyedautils.data_io import load_data

file_path = "pyedautils/data/ele_meter.csv"
df = load_data(file_path)

geopy.py

Helper funtions to find the coordinates from an address, convert lat/long values to swiss WGS84 coordinates and get the altitude from coordinates.

get_lat_long()

Returns latitude and longitude coordinates for the given address.

from pyedautils.geopy import get_lat_long

get_lat_long("Technikumstrasse 21, 6048 Horw, Switzerland")

# Out: [47.0143233, 8.305245521466286]

get_altitude_lat_long()

Returns altitude in meters above sea level for the given WGS84 coordinates. The opentopodata.org api gets used.

from pyedautils.geopy import get_altitude_lat_long

get_altitude_lat_long(47.0132975, 8.3059169)

# Out: 444.9

convert_wsg84_to_lv95()

Converts WGS84 latitude and longitude coordinates to Swiss coordinate system LV95.

from pyedautils.geopy import convert_wsg84_to_lv95

convert_wsg84_to_lv95(47.0132975, 8.3059169)

# Out: [2665945.104007165, 1207280.4252477456]

get_altitude_lv95()

Returns altitude in meters above sea level for the given LV95 coordinates. The geo.admin.ch api gets used.

from pyedautils.geopy import get_altitude_lv95

get_altitude_lv95([2665960.531, 1207281.985])

# Out: 442.6

get_coordindates_ch_plz()

Returns latitude and longitude for a Swiss postal code.

from pyedautils.geopy import get_coordindates_ch_plz

get_coordindates_ch_plz(6048)

# Out: (47.0108, 8.3039)

get_distance_between_two_points()

Calculates the distance in km between two points on the Earth's surface given their latitude and longitude coordinates.

from pyedautils.geopy import get_coordindates_ch_plz, get_distance_between_two_points

coord1 = get_coordindates_ch_plz(6048) # Horw
coord2 = get_coordindates_ch_plz(3800) # Interlaken

get_distance_between_two_points(coord1, coord2)

# Out: 50.301

meteo_swiss.py

find_nearest_station()

Returns station id of closest meteo swiss station to a coordinate.

from pyedautils.meteo_swiss import find_nearest_station
from pyedautils.geopy import get_coordindates_ch_plz, get_altitude_lat_long

coord = get_coordindates_ch_plz(6197)
altitude = get_altitude_lat_long(coord[0], coord[1])

find_nearest_station(coord[0], coord[1], altitude, sensor="temp")

# Out: "FLU"

season.py

get_season()

Get the season name out of a date for filter and grouping purposes.

from pyedautils.season import get_season
from datetime import datetime

get_season(datetime(2024,5,5))

# Out: 'Spring'

Default language of the returned strings is English. You can change that by passing the argument labels:

get_season(datetime(2024,5,5), labels=["Frühling", "Sommer", "Herbst", "Winter"])

# Out: 'Frühling'

Build info

# open anaconda console and navigate to pyedautils
py -m build
pip install 

Disclaimer
The author declines any liability or responsibility in connection with the published code and documentation.


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

pyedautils-0.0.11.tar.gz (602.5 kB view hashes)

Uploaded Source

Built Distribution

pyedautils-0.0.11-py3-none-any.whl (224.4 kB view hashes)

Uploaded Python 3

Supported by

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