Python Energy Data Analysis Utilities
Project description
pyedautils
Python Energy Data Analysis Utilities
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
- get_lat_long()
- get_altitude_lat_long()
- convert_wsg84_to_lv95()
- get_altitude_lv95()
- get_coordindates_ch_plz()
- get_distance_between_two_points()
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")
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
Built Distribution
File details
Details for the file pyedautils-0.0.11.tar.gz
.
File metadata
- Download URL: pyedautils-0.0.11.tar.gz
- Upload date:
- Size: 602.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6224f417b47a2f05339a95a8cae21d8611726e298c6fd37d4d6084d2f7e5d41a |
|
MD5 | 2d0134b55aed35d47dbc8ee3fe7eace7 |
|
BLAKE2b-256 | 8c5bd50e13e570cf4389303e4486c721a11833d9b711a187eda40680060e2d20 |
File details
Details for the file pyedautils-0.0.11-py3-none-any.whl
.
File metadata
- Download URL: pyedautils-0.0.11-py3-none-any.whl
- Upload date:
- Size: 224.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f7f926cc8dcea26ad5a8349afe3b6f513e7e6828e568b128348b1f74587c01f |
|
MD5 | 83a7d0ed0abceaa7e26b268e91abfce4 |
|
BLAKE2b-256 | e404031f95be49cf72ba605a205864e1b423072118cd585485ae651eb5a08d26 |