Package to download electricity time series from https://www.omie.es/
Project description
OMIEData:
Python package to import data from OMIE (Iberian Peninsula's Electricity Market Operator): https://www.omie.es/
Concretely, you can easily access to data for the following markets:
- Daily market: hourly prices in Spain and Portugal, total hourly energy after auction (with/without billateral contracts), breakdown of the total hourly energy by technology and bid/ask curves.
- Intra-day market: hourly prices for the different sessions and total hourly energy.
- Additional data in next releases.
Installation
The package is uploaded at https://pypi.org/project/OMIEData/, so
python -m pip install OMIEData
from the command line will install the last version uploaded to pypi.
Aternatively, to install it from GitHub repository, type:
python -m pip install git+https://github.com/acruzgarcia/OMIEData
in the command line. You can also install the .whl or .tar.gz files within dist as:
python -m pip install OMIEData-VERSION-py3-none-any.whl
or
python -m pip install OMIEData-VERSION.tar.gz
or to install a previous version from dist_old.
Examples:
A very simple example to download hourly electricity prices and demand:
import datetime as dt
import matplotlib.pyplot as plt
from OMIEData.DataImport.omie_marginalprice_importer import OMIEMarginalPriceFileImporter
from OMIEData.Enums.all_enums import DataTypeInMarginalPriceFile
dateIni = dt.datetime(2020, 1, 1)
dateEnd = dt.datetime(2022, 3, 22)
# This can take time, it is downloading the files from the website..
df = OMIEMarginalPriceFileImporter(date_ini=dateIni, date_end=dateEnd).read_to_dataframe(verbose=True)
df.sort_values(by='DATE', axis=0, inplace=True)
print(df)
The code will generate a data-frame like the following one:
DATE CONCEPT H1 ... H22 H23 H24
0 2020-01-01 PRICE_SP 41.88 ... 45.60 42.90 37.55
1 2020-01-01 PRICE_PT 41.88 ... 45.60 42.90 37.55
2 2020-01-01 ENER_IB 18132.30 ... 22492.60 21800.90 19946.30
3 2020-01-01 ENER_IB_BILLAT 26488.50 ... 32611.70 31523.70 29088.30
4 2020-01-02 PRICE_SP 35.40 ... 42.00 38.60 33.39
... ... ... ... ... ... ...
3241 2022-03-21 PRICE_PT 218.69 ... 261.44 240.29 228.88
3245 2022-03-22 PRICE_PT 223.00 ... 256.00 242.18 212.99
3246 2022-03-22 ENER_IB 20652.20 ... 27113.50 24167.60 21841.50
3244 2022-03-22 PRICE_SP 223.00 ... 256.00 242.18 212.99
3247 2022-03-22 ENER_IB_BILLAT 29840.30 ... 38281.20 34781.90 31872.50
[3248 rows x 26 columns]
You can filter the data-frame to have only the prices in spain, and then plot
# Just prices in spain
str_price_spain = str(DataTypeInMarginalPriceFile.PRICE_SPAIN)
dfPrices = df[df.CONCEPT == str_price_spain]
# Plotting
plt.figure()
plt.plot(dfPrices.DATE, dfPrices.H12, label='H12')
plt.plot(dfPrices.DATE, dfPrices.H23, label='H23')
plt.legend()
plt.show()
which will produce the following plot:
Another example to download hourly demand resulting of the daily market auction, breakdown by technologies:
import datetime as dt
from OMIEData.Enums.all_enums import SystemType
from OMIEData.DataImport.omie_energy_by_technology_importer import OMIEEnergyByTechnologyImporter
dateIni = dt.datetime(2020, 6, 1)
dateEnd = dt.datetime(2020, 7, 30)
system_type = SystemType.SPAIN
# This can take time, it is downloading the files from the website..
df = OMIEEnergyByTechnologyImporter(date_ini=dateIni,
date_end=dateEnd,
system_type=system_type).read_to_dataframe(verbose=True)
df.sort_values(by=['DATE', 'HOUR'], axis=0, inplace=True)
print(df)
Another example to download supply/demand curves:
import datetime as dt
from OMIEData.DataImport.omie_supply_demand_curve_importer import OMIESupplyDemandCurvesImporter
dateIni = dt.datetime(2020, 6, 1)
dateEnd = dt.datetime(2020, 6, 1)
hour = 1
# This can take time, it is downloading the files from the website..
df = OMIESupplyDemandCurvesImporter(date_ini=dateIni, date_end=dateEnd, hour=hour).read_to_dataframe(verbose=True)
df.sort_values(by=['DATE', 'HOUR'], axis=0, inplace=True)
print(df)
Other examples that illustrate the use of the package in here:
Enjoy!.
Project details
Release history Release notifications | RSS feed
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 omiedata-0.3.0.0.tar.gz
.
File metadata
- Download URL: omiedata-0.3.0.0.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ff3de5cb8085a898afc4e6e372b9575ab22ec68c3ccba466bec524b6b5a1fa4 |
|
MD5 | f32d1e2abf43176827d0e7425d148d40 |
|
BLAKE2b-256 | d707e2f8505efd963d80456934b91c1ffd0f3b702822cd306f1eea389bff8e76 |
File details
Details for the file OMIEData-0.3.0.0-py3-none-any.whl
.
File metadata
- Download URL: OMIEData-0.3.0.0-py3-none-any.whl
- Upload date:
- Size: 24.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7ea7e85733f0a2dcd6eec322379d9b9e194d39edd8b817028532e7f626a9fb5 |
|
MD5 | ed38f600cecd86478a499e3897a358db |
|
BLAKE2b-256 | 3831778858319cd8c8642846d5103470d558db7c0a1426e53dcc785af821c4e1 |