Skip to main content

PVGIS Simulator for Mosaik

Project description

This component simulates PV power output based on PVGIS (Photovoltaic Geographical Information System) photovoltaic performance data (the data is free to use). PVGIS provides information for any location in Europe and Africa, as well as a large part of Asia and America.

The PV simulator does not require any input, the only need to configure the PV system, geographical location and select an available reference year.

Since PVGIS only provides hourly data, any other step_size causes the data to be aggregated or splitted accordingly. If the step_size is less than an hour, it splits the value equally.

PV output data:

  • P[MW] - active power produced

PV system input data:

  • scale_factor - multiplies output [coef], might be used as a contol signal

Configuration:

  • scale_factor [coef] - multiplies power production once model is created, 1 is equal to 1 kW peak power installed

  • latitude [grad]

  • longitude [grad]

  • slope [grad] - inclination angle for the fixed plane

  • azimuth [grad] - orientation angle for the fixed plane

  • optimal_angle - if True, calculates and uses an optimal slope

  • optimal_both - if True, calculates and uses an optimal slope and azimuth

  • system_loss [%] - system inefficiency

  • pvtech - PV technology: “CIS” (defaul), “crystSi”, “CdTe”, “Unknown”

  • database - solar radiation database, PVGIS-SARAH2, PVGIS-NSRDB, PVGIS-ERA5, PVGIS-SARAH (default)

  • datayear - reference year from database

An example scenario is located in the ´demo´ folder.

Other options

Please pay attention to the input data. If you want to use only Direct Normal Irradiance input data as part of the co-simulation, then mosaik-pv is suitable, if you want to use full weather information (global irradiance, wind speed, air temperature and pressure) then mosaik-pvlib is suitable. If you are satisfied with historical performance estimates for a particular location or have no other input data, then mosaik-pvgis is the best solution which is based on PVGIS performance data.

Installation

pip install mosaik-pvgis

If you don’t want to install this through PyPI, you can use pip to install the requirements.txt file:

pip install -r requirements.txt
  • To use this, you have to install at least version 3.2.0 of mosaik.

  • It is recommended, to use the mosaik-csv library to export the results.

How to Use

Specify simulators configurations within your scenario script:

SIM_CONFIG = {
    'PVSim': {
        'python': 'mosaik_components.pv.pvgis_simulator:PVGISSimulator'
    },
    'CSV_writer': {
        'python': 'mosaik_csv_writer:CSVWriter',
    },
    ...
}

Initialize the PV-system:

# Create PV system with certain configuration
PVSIM_PARAMS = {
    'start_date' : START,
    'cache_dir' : './', # it caches PVGIS API requests
    'verbose' : True, # print PVGIS parameters and requests
}
pv_sim = world.start(
                "PVSim",
                step_size=STEP_SIZE,
                sim_params=PVSIM_PARAMS,
            )

Instantiate model entities:

PVMODEL_PARAMS = {
    'scale_factor' : 1000, # multiplies power production, 1 is equal to 1 kW peak power installed
    'lat' : 52.373,
    'lon' : 9.738,
    'slope' : 0, # default value,
    'azimuth' : 0, # default value,
    'optimal_angle' : True, # calculate and use an optimal slope
    'optimal_both' : False, # calculate and use an optimal slope and azimuth
    'pvtech' : 'CIS', # default value,
    'system_loss' : 14, # default value,
    'database' : 'PVGIS-SARAH3', # default value,
    'datayear' : 2016, # default value,
}
pv_model = pv_sim.PVSim.create(1, **PVMODEL_PARAMS)

Connect with PV-simulator:

world.connect(
                    pv_model[0],
                    csv_writer,
                    'P[MW]',
                )

world.run(until=END)

Notes

The simulator configuration can be specified with the sim_params parameter in world.start:

  • cache_dir : ‘./’ - if not False, a local dir and file are used to store PVGIS API requests (may cause some problems in case of lack of space or restrictions on file discriptors)

  • verbose : True - output PVGIS API requests to stdout

  • gen_neg : False - if True, multiplies output power by (-1)

Changelog

1.2.1 - 2024-10-04

  • PVGIS API update

  • Minor changes

1.2 - 2024-02-13

  • Control signal and gen_neg parameter are added

  • Minor changes

1.0 - 2024-01-11

  • Restructured as a mosaik component

  • Readme and examples added

  • Initial release of version implemented by Danila Valko

Authors

The adapter was initially developed by Danila Valko.

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

mosaik_pvgis-1.2.1.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

mosaik_pvgis-1.2.1-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file mosaik_pvgis-1.2.1.tar.gz.

File metadata

  • Download URL: mosaik_pvgis-1.2.1.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.15 Linux/5.15.154+

File hashes

Hashes for mosaik_pvgis-1.2.1.tar.gz
Algorithm Hash digest
SHA256 b30142701b0903337591d54b82d0d6766e8fe8268a97d4a1f0e7296c4df996c1
MD5 1fa4cd9867670c294ac8d5e7c096e52b
BLAKE2b-256 8240f3542687afa5ad4968f7df0052a4a2827e5e41dfee4162f61cd40d2dd675

See more details on using hashes here.

Provenance

File details

Details for the file mosaik_pvgis-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: mosaik_pvgis-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.15 Linux/5.15.154+

File hashes

Hashes for mosaik_pvgis-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3c14f8f0065c174371577a4a1a12834a697af52e61b49dd9790187f8da092042
MD5 cfcded8ee9738894689a52eb0247d3e9
BLAKE2b-256 a893f75e54770063b8552dae3e65576b7a8b654c75a24042f92c935b77e59fee

See more details on using hashes here.

Provenance

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