diff --git a/doc/customization_basic1.rst b/doc/customization_basic1.rst new file mode 100644 index 000000000..3056ba59c --- /dev/null +++ b/doc/customization_basic1.rst @@ -0,0 +1,109 @@ +.. SPDX-FileCopyrightText: PyPSA-Earth and PyPSA-Eur Authors +.. +.. SPDX-License-Identifier: CC-BY-4.0 + +.. _customization_basic1: + +####################### +2. Basic customization +####################### + +A good starting point to customize your model are settings of the default configuration file `config.default.yaml`. You may want to do a reserve copy of your current configuration file and then overwrite it by a default configuration: + +.. code:: bash + + .../pypsa-earth (pypsa-earth) % cp config.default.yaml config.yaml + +Specify the country/region of interest +-------------------------------------- + +The model can be adapted to include any country, multiple countries (e.g. `Nigeria` and `Benin`) or full continents (currently whole regions, such as `Africa`, `Asia`, `Europe`, `Oceania`, `NorthAmerica`, and `SouthAmerica`, are available for simulation) using ``countries`` argument: + +.. code:: yaml + + countries: ["NG", "BJ"] + +Configure ``enable`` section to download/build data +--------------------------------------------------------- + +For a successful model run, ensure the download of essential open-source data, including databundle and cost data, is activated in the ``enable`` section: + +.. code:: yaml + + enable: + retrieve_databundle: true # Recommended 'true', for the first run. Otherwise data might be missing. + retrieve_cost_data: true # true: retrieves cost data from technology data and saves in resources/costs.csv, false: uses cost data in data/costs.csv + download_osm_data: true # If 'true', OpenStreetMap data will be downloaded for the above given countries + build_natura_raster: false # If True, than an exclusion raster will be build + build_cutout: false + # If "build_cutout" : true, then environmental data is extracted according to `snapshots` date range and `countries` + +After the initial run, it is recommended to set the retrieval of databundle and cost data to ``false`` to prevent unnecessary redownloading of data. + +When ``build_natura_raster: false`` is utilized, the exclusion raster for protected areas is sourced from the pre-compiled ``data/natura.tiff`` file downloaded with the databundle. Conversely, if ``build_natura_raster`` is set to true, the exclusion raster, delineating areas where renewables cannot be installed, is computed using the ``build_natura_raster rule``. + +When using the weather year 2013, it is recommended to use default ``build_cutout: false`` because pre-compiled cutouts are automatically downloaded with ``retrieve_databundle: true``. +On contrary, when simulating a weather year other than 2013, it is crucial to set ``build_cutout: true`` in order to generate custom cutouts. However, it is essential to first configure the `Copernicus Climate Data Store (CDS) API`. Detailed instructions for setting up the `Copernicus API` can be found in :ref:`customization_copernicus`. +After initial run and successful generation of custom cutouts, ``build_cutout`` can be switched to false to avoid reconstructing the cutout. + +.. note:: + + No need to configure the `Copernicus API` if the weather year 2013 is used, as pre-compiled cutouts are automatically downloaded. + +Specify the weather year scope +------------------------------ + +Likewise, the example's temporal scope can be restricted (e.g. to 7 days): + +.. code:: yaml + + snapshots: + start: "2013-03-01" + end: "2013-03-07" + inclusive: "left" # end is not inclusive + +.. note:: + + Ensure that the selected date range aligns with the dates available in the cutout dataset. If the weather data within the cutouts corresponds to the year 2013, then the range of snapshots should fall within that same year. + +Specify the demand year +----------------------- + +Year-related parameters are also being used when specifying `load_options`: + +.. code:: yaml + + load_options: + ssp: "ssp2-2.6" + weather_year: 2013 + prediction_year: 2030 + scale: 1 + +The `weather_year` value corresponds to the weather data which was used to generate the electricity demand profiles for a selected area while `prediction_year` corresponds to the point of a `Shared Socioeconomic Pathways (SSP) `__ trajectory. PyPSA-Earth uses SSP2-2.6 scenario within the Shared Socioeconomic Pathways framework, which is characterized by medium challenges to mitigation and adaptation efforts resulting in a global warming of approximately 2.6°C by the end of the 21st century. +The available values for `weather_year` and `prediction_year` can be checked by looking into `pypsa-earth/data/ssp2-2.6` folder. Currently, there are pre-calculated demand data for 2011, 2013, 2018 weather years and for 2030, 2040, 2050, and 2100 scenario prediction years. + +Configure `atlite` section +-------------------------- + +To accurately model the temporal and spatial availability of renewables such as wind and solar energy, we process historical weather data using `atlite `__ package. +Atlite configurations can be adjusted in ``config.yaml``: + +.. code:: yaml + + atlite: + nprocesses: 4 + cutouts: + cutout-2013-era5: + module: era5 + dx: 0.3 # cutout resolution + dy: 0.3 # cutout resolution + # The cutout time is automatically set by the snapshot range. + +.. note:: + + No adjustments are required when utilizing pre-compiled cutouts. When using custom cutouts generated by ``build_cutout`` rule, replace all entries of ``cutout-2013-era5`` with the custom cutout name for a region of interest. For example, when simulating Kazakhstan with ``cutouts: asia-2013-era5``, every occurrence of ``cutout-2013-era5`` should be updated to ``asia-2013-era5`` which refers to ``asia-2013-era5.nc`` file generated in ``cutouts`` folder. + +Please note that a temporal dimension of the cutout should be consistent with the values set for `snapshots` parameter. A time range of the cutout is determined by the parameters set when building this cutout while the time resolution corresponds to those of the used climate archives. In case of ERA5 dataset used in PyPSA-Earth by default, hourly resolution is implied. + +To delve into the specifics of the provided configurations and explore additional settings, please refer to the :ref:`config` page. +There are many more configuration options beyond what is adapted for the tutorial! diff --git a/doc/customization_copernicus.rst b/doc/customization_copernicus.rst new file mode 100644 index 000000000..3e2703eee --- /dev/null +++ b/doc/customization_copernicus.rst @@ -0,0 +1,31 @@ +.. SPDX-FileCopyrightText: PyPSA-Earth and PyPSA-Eur Authors +.. +.. SPDX-License-Identifier: CC-BY-4.0 + +.. _customization_copernicus: + +####################### +5. Setup Copernicus API +####################### + + +To build custom cutouts, it is important to access to `Copernicus Climate Data Store `__. + +.. note:: + + Skip this recommendation if you are fine with the 2013 weather year. + +Steps to get access to Copernicus database: + +1. Register to the `Copernicus Climate Data Store `_; +2. Setup your CDS API key as described `on their website `_. + +These steps are required to use CDS API which allows an automatic file download while executing `build_cutouts` rule. + +The `build_cutout` flag should be set `true` to generate the cutout. After the cutout is ready, it's recommended to set `build_cutout` to `false` to avoid overwriting the existing cutout by accident. The `snapshots` values set when generating the cutout, will determine the temporal parameters of the cutout. Accessible years which can be used to build a cutout depend on ERA5 data availability. `ERA5 page `_ explains that the data is available from 1950 and updated continuously with about 3 month delay while the data on 1950-1978 should be treated as preliminary as that is a rather recent development. + +.. note:: + + Building a cutout may require a significant amount of time and storage space. Continental cutouts, such as those for Asia, South America, and Africa, typically require around 20 GB of storage space, while cutouts for individual countries or small regions may occupy approximately 1-5 GB. The process of building a cutout can take between 2 to 3 hours. + +After the first run, if you don't change country and don't need to increase a considered time span wider than the one you created the cutout with, you may set both `retrieve_databundle` and `build_cutout` to false. diff --git a/doc/customization_run.rst b/doc/customization_run.rst new file mode 100644 index 000000000..0b7e233c8 --- /dev/null +++ b/doc/customization_run.rst @@ -0,0 +1,70 @@ +.. SPDX-FileCopyrightText: PyPSA-Earth and PyPSA-Eur Authors +.. +.. SPDX-License-Identifier: CC-BY-4.0 + +.. _customization_run: + +#################### +3. Running the model +#################### + +Run full model +-------------- + +PyPSA-Earth utilized ``snakemake`` workflow management tool inherited from PyPSA-Eur. +Snakemake decomposes a large software process into a set of subtasks, or ’rules’, that are automatically chained to obtain the desired output. + +To execute a full model run, the following command needs to be applied: + +.. code:: bash + + .../pypsa-earth (pypsa-earth) % snakemake --cores 1 solve_all_networks + +Here, the flag ``--cores 1`` dictates the number of CPU cores allocated for the process. Notably, the ``solve_all_network`` rule within Snakemake orchestrates the process of solving the network. + +.. note:: + + ``Snakemake``, which is one of the major dependencies, will be automatically installed in ``pypsa-earth`` environment, thereby there is no need to install it manually. + +Execute different part of the workflow +-------------------------------------- + +The snakemake included in the ``pypsa-earth`` conda environment pypsa-earth can be used to execute any custom rule with the following command: + +.. code:: bash + + .../pypsa-earth (pypsa-earth) % snakemake < your custom rule > + +Starting with essential usability features, PyPSA-Earth `Snakemake procedure `_ enables users to execute the entire workflow flexibly with diverse options, requiring no Python coding. For example, users can model the global energy system or specific subsets of countries using only necessary data. Wildcards, serving as special generic keys, adapt to multiple values based on configuration options, facilitating the execution of extensive workflows with parameter sweeps and diverse options. + +You can execute some parts of the workflow in case you are interested in some specific parts. +E.g. power grid topology may be extracted and cleaned with the following command which refers to the script name: + +.. code:: bash + + .../pypsa-earth (pypsa-earth) % snakemake -j 1 clean_osm_data + +Solar profile for the requested area may be calculated using the output name: + +.. code:: bash + + .../pypsa-earth (pypsa-earth) % snakemake -j 1 resources/renewable_profiles/profile_solar.nc + +.. note:: + + Because of the wildcards in the ``build_renewable_profiles`` rule definition, the only available option to run the rule separately is by directly calling the output file in the snakemake command. + +Choose the solver +----------------- + +To solve a full optimization problem, it is important to pick a solver in `config.yaml` file. For instance, this tutorial uses the open-source solver glpk and does not rely +on the commercial solvers such as Gurobi or CPLEX (for which free academic licenses are available). + +.. code:: yaml + + solver: + name: glpk + +.. note:: + + ``glpk`` can solve the network with low temporal and spatial resolution. To make a full model run, it is advised to use ``CPLEX``, ``Gurobi``, or open-source `HIGHs `__. diff --git a/doc/customization_steps.rst b/doc/customization_steps.rst new file mode 100644 index 000000000..d81ac40e8 --- /dev/null +++ b/doc/customization_steps.rst @@ -0,0 +1,21 @@ +.. SPDX-FileCopyrightText: PyPSA-Earth and PyPSA-Eur Authors +.. +.. SPDX-License-Identifier: CC-BY-4.0 + +.. _customization_steps: + +####################################### +1. General Modeling Guidelines +####################################### + +To simplify navigation through the :ref:`tutorial` section, we offer a summary as follows: + +1. **Basic customization:** Provides guidance on customizing the default configuration file to suit specific modeling needs, including specifying the country/region of interest and enabling essential data downloads. + +2. **Running the model:** Explains the process of running the model using the Snakemake workflow management tool, selecting a solver, and ensuring successful optimization. + +3. **Model Validation:** Outlines procedures for validating data obtained from PyPSA-Earth, including simulation procedures, reference data sources, and advanced validation examples. + +4. **Setup Copernicus API:** Describes the steps to access the Copernicus Climate Data Store for building custom cutouts, including registration, setting up the CDS API key, and considerations for cutout generation. + +Each section provides essential information for effective model usage and customization, ensuring accurate and reliable results. diff --git a/doc/customization_validation.rst b/doc/customization_validation.rst new file mode 100644 index 000000000..dc63d7b5a --- /dev/null +++ b/doc/customization_validation.rst @@ -0,0 +1,59 @@ +.. SPDX-FileCopyrightText: PyPSA-Earth and PyPSA-Eur Authors +.. +.. SPDX-License-Identifier: CC-BY-4.0 + +.. _customization_validation: + +################### +4. Model Validation +################### + +To validate the data obtained with PyPSA-Earth, we recommend to go through the procedure here detailed. An exampled of the validation procedure is available in the `Nigeria validation `_ notebook. Public information on the power system of Nigeria are compared to those obtained from the PyPSA-Earth model. + +Simulation procedure +^^^^^^^^^^^^^^^^^^^^ + +It may be recommended to check the following quantities in the validation: + +#. Inputs used by the model: + + #. Network characteristics + + #. Substations + + #. Installed generation by type + +#. Outputs of the simulation: + + #. Demand + + #. Energy mix + +Where to look for reference data +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Data availability for many parts of the world is still quite limited. Usually the best sources to compare with are regional data hubs. There is also a collection of harmonized datasets curated by the international organisations. A non-exhaustive list of helpful sources: + +* `World Bank `_; + +* International Renewable Energy Agency `IRENA `_; + +* International Energy Agency `IEA `_; + +* `BP `_ Statistical Review of World Energy; + +* `Ember `_ Data Explorer. + + +Advanced validation examples +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following validation notebooks are worth a look when validating your energy model: + +1. A detailed `network validation `_. + +2. Analysis of `the installed capacity `_ for the considered area. + +3. Validation of `the power demand `_ values and profile. + +4. Validation of `hydro `_, `solar and wind `_ potentials. diff --git a/doc/tutorial.rst b/doc/tutorial.rst index e24be9501..8400509af 100644 --- a/doc/tutorial.rst +++ b/doc/tutorial.rst @@ -6,271 +6,25 @@ ########################################## -Full model +Model customization ########################################## -How to customise PyPSA-Earth? -============================= +The aim of this section is to guide through the main steps which are needed to build a full-scale model to solve your energy study problem. -A good starting point to customize your model are settings of the default configuration file `config.default`. You may want to do a reserve copy of your current configuration file and then overwrite it by a default configuration: +* :doc:`customization_steps` +* :doc:`customization_basic1` +* :doc:`customization_run` +* :doc:`customization_validation` +* :doc:`customization_copernicus` -.. code:: bash - .../pypsa-earth (pypsa-earth) % cp config.default.yaml config.yaml +.. toctree:: + :hidden: + :maxdepth: 2 + :caption: Model customization -The model can be adapted to include any country, multiple countries (e.g. Nigeria and Benin) or continents (currently `Africa` work as a whole continent) using `countries` argument: - -.. code:: yaml - - countries: ["NG", "BJ"] - -Likewise, the example's temporal scope can be restricted (e.g. to 7 days): - -.. code:: yaml - - snapshots: - start: "2013-03-1" - end: "2013-03-7" - inclusive: "left" # end is not inclusive - - -Year-related parameters are also being used when specifying `load_options`: - -.. code:: yaml - - load_options: - ssp: "ssp2-2.6" - weather_year: 2013 - prediction_year: 2030 - scale: 1 - -The `weather_year` value corresponds to the weather data which was used to generate the electricity demand profiles for a selected area while `prediction_year` correspond to the point of a ssp trajectory. The available values for `weather_year` and `prediction_year` can be checked by looking into `pypsa-earth/data/ssp2-2.6` folder. Currently, there are pre-calculated demand data for 2011, 2013, 2018 weather years and for 2030, 2040, 2050, and 2100 scenario prediction years. - -It is also possible to allow less or more carbon-dioxide emissions, while defining the current emissions. -It is possible to model a net-zero target by setting the `co2limit` to zero: - -.. code:: yaml - - electricity: - voltages: [220., 300., 380.] - co2limit: 1.487e+9 - co2base: 1.487e+9 - -PyPSA-Earth can generate a database of existing conventional powerplants through open data sources. -It is possible to select which types of powerplants to be included: - -.. code:: yaml - - extendable_carriers: - Generator: [solar, onwind, offwind-ac, offwind-dc, OCGT] - StorageUnit: [] # battery, H2 - Store: [battery, H2] - Link: [] # H2 pipeline - - -To accurately model the temporal and spatial availability of renewables such as wind and solar energy, we rely on historical weather data. -It is advisable to adapt the required range of coordinates to the selection of countries. - -.. code:: yaml - - atlite: - nprocesses: 4 - cutouts: - cutout-2013-era5-tutorial: - module: era5 - dx: 0.3 # cutout resolution - dy: 0.3 # cutout resolution - # The cutout time is automatically set by the snapshot range. - - -Note please that a temporal dimension of the cutout should be consistent with the values set for `snapshots` parameter. A time range of the cutout is determined by the parameters set when building this cutout while the time resolution corresponds to those of the used climate archives. In case of ERA5 dataset used in PyPSA-Earth by default, hourly resolution is implied. - -It is also possible to decide which weather data source should be used to calculate potentials and capacity factor time-series for each carrier. -For example, we may want to use the ERA-5 dataset for solar and not the default SARAH-2 dataset. - -.. code:: yaml - - cutout-2013-era5-tutorial: - module: era5 - -.. code:: yaml - - solar: - cutout: cutout-2013-era5-tutorial - -Finally, it is possible to pick a solver. For instance, this tutorial uses the open-source solver glpk and does not rely -on the commercial solvers such as Gurobi or CPLEX (for which free academic licenses are available). - -.. code:: yaml - - solver: - name: glpk - - -Be mindful that we only noted major changes to the provided default configuration that is comprehensibly documented in :ref:`config`. -There are many more configuration options beyond what is adapted for the tutorial! - -How to execute different parts of the workflow? -=============================================== - -Snakemake is a workflow management tool inherited by PyPSA-Earth from PyPSA-Eur. -Snakemake decomposes a large software process into a set of subtasks, or ’rules’, that are automatically chained to obtain the desired output. - -.. note:: - - ``Snakemake``, which is one of the major dependencies, will be automatically installed in the environment pypsa-earth, thereby there is no need to install it manually. - -The snakemake included in the conda environment pypsa-earth can be used to execute any custom rule with the following command: - -.. code:: bash - - .../pypsa-earth (pypsa-earth) % snakemake < your custom rule > - -Starting with essential usability features, the implemented PyPSA-Earth `Snakemake procedure `_ that allows to flexibly execute the entire workflow with various options without writing a single line of python code. For instance, you can model the world energy system or any subset of countries only using the required data. Wildcards, which are special generic keys that can assume multiple values depending on the configuration options, help to execute large workflows with parameter sweeps and various options. - -You can execute some parts of the workflow in case you are interested in some specific parts. -E.g. power grid topology may be extracted and cleaned with the following command which refers to the script name: - -.. code:: bash - - .../pypsa-earth (pypsa-earth) % snakemake -j 1 clean_osm_data - -Solar profile for the requested area may be calculated using the output name: - -.. code:: bash - - .../pypsa-earth (pypsa-earth) % snakemake -j 1 resources/renewable_profiles/profile_solar.nc - - -How to use PyPSA-Earth for your energy problem? -=============================================== - -PyPSA-Earth mostly relies on the :ref:`global datasets ` and can be tailored to represent any part of the world in a few steps. The following procedure is recommended. - -1. Adjust the model configuration ---------------------------------- - -The main parameters needed to customize the inputs for your national-specific data are defined in the :ref:`configuration ` file `config.yaml`. The configuration settings should be adjusted according to a particular problem you are intended to model. The main regional-dependent parameters are: - -* `countries` parameter which defines a set of the countries to be included into the model; - -* `cutouts` and `cutout` parameters which refer to a name of the climate data archive (so called `cutout `_) to be used for calculation of the renewable potential. - -Apart of that, it's worth to check that there is a proper match between the temporal and spatial parameters across the configuration file as it is essential to build the model properly. Generally, if there are any mysterious error message appearing during the first model run, there are chances that it can be resolved by a simple config check. - -It could be helpful to keep in mind the following points: - -1. the cutout name should be the same across the whole configuration file (there are several entries, one under `atlite` and some under each of the `renewable` parameters); - -2. the countries of interest defined with `countries` list in the `config.yaml` should be covered by the cutout area; - -3. the cutout time dimension, the weather year used for demand modeling and the actual snapshot should match. - -2. Build the custom cutout --------------------------- - -The cutout is the main concept of climate data management in PyPSA ecosystem introduced in `atlite `_ package. The cutout is an archive containing a spatio-temporal subset of one or more topology and weather datasets. Since such datasets are typically global and span multiple decades, the Cutout class allows atlite to reduce the scope to a more manageable size. More details about the climate data processing concepts are contained in `JOSS paper `_. - -Generally, the spatial and time resolution of the cutout data is determined by parameters of an underlying dataset. That is 30 km x 30 km grid and houtly resolution for ERA5 recommended for usage in PyPSA-Earth. - -The pre-built cutout for Africa is available for 2013 year and can be loaded directly from zenodo through the rule `retrieve_cutout`. There is also a smaller cutout for Africa built for a two-weeks time span; it is automatically downloaded when retrieving common data with `retrieve_databundle_light`. - -.. note:: - Skip this recommendation if the region of your interest is within Africa and you are fine with the 2013 weather year - -In case you are interested in other parts of the world you have to generate a cutout yourself using the `build_cutouts` rule. To run it you will need to: - -1. be registered on the `Copernicus Climate Data Store `_; - -2. install `cdsapi` package (can be installed with `pip`); - -3. setup your CDS API key as described `on their website `_. - -These steps are required to use CDS API which allows an automatic file download while executing `build_cutouts` rule. - -The `build_cutout` flag should be set `true` to generate the cutout. After the cutout is ready, it's recommended to set `build_cutout` to `false` to avoid overwriting the existing cutout by accident. The `snapshots` values set when generating the cutout, will determine the temporal parameters of the cutout. Accessible years which can be used to build a cutout depend on ERA5 data availability. `ERA5 page `_ explains that the data is available from 1950 and updated continuously with about 3 month delay while the data on 1950-1978 should be treated as preliminary as that is a rather recent development. - -After the first run, if you don't change country and don't need to increase a considered time span wider than the one you created the cutout with, you may set both `retrieve_databundle` and `build_cutout` to false. - -Spatial extent -^^^^^^^^^^^^^^ - -Normally cutout extent is calculated from the shape of the requested region defined by the `countries` parameter in the configuration file `config.yaml`. It could make sense to set the countries list as big as it's feasible when generating a cutout. A considered area can be narrowed anytime when building a specific model by adjusting content of the `countries` list. - -There is also option to set the cutout extent specifying `x` and `y` values directly. However, these values will overwrite values extracted from the countries shape. Which means that nothing prevents `build_cutout` to extract data which has no relation to the requested countries. Please use direct definition of `x` and `y` only if you really understand what and why you are doing. - -Temporal extent -^^^^^^^^^^^^^^^ - -If you create the cutout for a certain year (let's say 2013) and want to run scenarios for a subset of this year, you don't need to rerun the `build_cutout` as the cutout still contains all the hours of 2013. The workflow will automatically subset the cutout archive to extract data for the particular timeframe of interest. If you instead you want to run the 2014 scenario, then it is needed to rerun `build_cutout`. - -In case you need model a number of years, a convenient approach may be to create the cutout for the whole period under interest (e.g. 2013-2015) so that you don't need to build any additional cutouts. Note, however, that the disk requirements increase in this case. - -3. Check natura.tiff raster ------------------------------ - -A raster file `natura.tiff` is used to store shapes of the protected and reserved nature areas. Such landuse restrictions can be taking into account when calculating the renewable potential with `build_renewable_profiles` by switching-on `natura` option: - -.. code:: bash - - natura: true - -A pre-built `natura.tiff` is loaded along with other data needed to run a model with `retrieve_databundle_light` rule. This raster file contains data on the on protected areas around the world where areas no (renewable) assets can be installed. The `natura.tiff` raster has now global coverage so you don't need to create it locally. - -How to validate? -================ - -.. TODO add a list of actions needed to do the validation - -To validate the data obtained with PyPSA-Earth, we recommend to go through the procedure here detailed. An exampled of the validation procedure is available in the `Nigeria validation `_ notebook. Public information on the power system of Nigeria are compared to those obtained from the PyPSA-Earth model. - -Simulation procedure --------------------- - -It may be recommended to check the following quantities in the validation: - -#. inputs used by the model: - - #. network characteristics; - - #. substations; - - #. installed generation by type; - -#. outputs of the simulation: - - #. demand; - - #. energy mix. - -Where to look for reference data --------------------------------- - -Data availability for many parts of the world is still quite limited. Usually the best sources to compare with are regional data hubs. There is also a collection of harmonized datasets curated by the international organisations. A non-exhaustive list of helpful sources: - -* `World Bank `_; - -* International Renewable Energy Agency `IRENA `_; - -* International Energy Agency `IEA `_; - -* `BP `_ Statistical Review of World Energy; - -* `Ember `_ Data Explorer. - - -Advanced validation examples ----------------------------- - -The following validation notebooks are worth a look when validating your energy model: - -1. A detailed `network validation `_. - -2. Analysis of `the installed capacity `_ for the considered area. - -3. Validation of `the power demand `_ values and profile. - -4. Validation of `hydro `_, `solar and wind `_ potentials. - - -.. include:: ./how_to_docs.rst + customization_steps + customization_basic1 + customization_run + customization_validation + customization_copernicus