Skip to main content

Python API wrapper for Terna transparency data

Project description

terna-py

Python client for the Transparency API of Terna, the Italian electricity transmission system operator

PyPI Latest Release Downloads

Documentation of the API: https://developer.terna.it/docs/read/APIs_catalog#en

Installation

python3 -m pip install terna-py

Usage

import terna as trn
import pandas as pd

# Please follow the API documentation to register an account and create credentials
key = '<YOUR API KEY>'
secret = '<YOUR API SECRET>'
client = trn.TernaPandasClient(api_key=key,api_secret=secret)

# Note: you specifically need to set a start= and end= parameter which should be a pandas timestamp with timezone
start = pd.Timestamp("20210101", tz='Europe/Rome')
end = pd.Timestamp("20210131", tz='Europe/Rome')
bzone = ["Centre-North", "Centre-South", "North", "Sardinia", "Sicily", "South", "Calabria", "Italy"]
gen_type = ['Thermal', 'Wind', 'Geothermal', 'Photovoltaic', 'Self-consumption', 'Hydro']
res_gen_type = ['Wind', 'Geothermal', 'Photovoltaic', 'Hydro']
type = ['Thermal', 'Wind', 'Geothermal', 'Photovoltaic', 'Self-consumption', 'Hydro', 'Pumping-consumption', 'Net Foreign Exchange']
year = 2022

# Note: all methods return Pandas DataFrames
## total load and market load, quarter-hourly data
df_tload = client.get_total_load(start=start, end=end, bzone=bzone)
df_mload = client.get_market_load(start=start, end=end, bzone=bzone)

## generation by source, renewable generation by source and energy balance, quarter-hourly data
df_act_gen = client.get_actual_generation(start=start, end=end, gen_type=gen_type)
df_res_gen = client.get_renewable_generation(start=start, end=end, res_gen_type=res_gen_type)
df_ener_bal = client.get_energy_balance(start=start, end=end, type=type)

## installed capacity, annual data
df_cap = client.get_installed_capacity(year=year, gen_type=gen_type)

## cross-border commercial schedules and physical flows, quarter-hourly data
df_xborderschedule = client.get_scheduled_foreign_exchange(start=start, end=end)
df_xborderflow = client.get_physical_foreign_flow(start=start, end=end)

## cross-zonal commercial schedules and physical flows, quarter-hourly data
df_internalschedule = client.get_scheduled_internal_exchange(start=start, end=end)
df_internalflow = client.get_physical_internal_flow(start=start, end=end)

## use get_custom_item() to query any other API, see example below 
## demand coverage by source, select year(s) and region(s)
item = 'load/v2.0/demand-coverage-by-source'
data = {
            'year': [2022,2023],
            'region': ['Sardegna'],
            'source': [ 'Bioenergie', 'Eolico', 'Fotovoltaico', 'Geotermoelettrico', 'Termoelettrico tradizionale', 'Idrico rinnovabile', 'Idrico tradizionale', 'Saldo import/export' ]
        }
df = client.get_custom_item(item, data)

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

terna_py-0.5.6.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

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

terna_py-0.5.6-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file terna_py-0.5.6.tar.gz.

File metadata

  • Download URL: terna_py-0.5.6.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for terna_py-0.5.6.tar.gz
Algorithm Hash digest
SHA256 b176a8cf7e5c60af9d77648d4112f5a5dd2ec0105c795b9ff152662d0d52dedd
MD5 819325a519dcac1a71ccee95cb1ceece
BLAKE2b-256 655b9349959d960ccbef2728dfb5ef8dd8371a9895810d77958cc462b6cfa628

See more details on using hashes here.

File details

Details for the file terna_py-0.5.6-py3-none-any.whl.

File metadata

  • Download URL: terna_py-0.5.6-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for terna_py-0.5.6-py3-none-any.whl
Algorithm Hash digest
SHA256 4544d0949ebd7f262fca8ad779086584dcee132dd38d7bed1abfb58f90c71664
MD5 7f010a7f6a9c618d7a2aebcbca455e51
BLAKE2b-256 25f418fb7c90b5cab70aa30ed13b2599497925afff4245696634241b554e4d73

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