Repository: electricitymaps/electricitymaps-contrib

Issue:
PA parser: Map thermal generation units to fuel type
When running the Panama (PA) test_parser `poetry run test_parser PA production`, some thermal units (Térmicas) are not yet mapped to a fuel type. Further research has to be done. 

Steps to take:
1. Find fuel type of CADASA and Sparkle Power units
2. add mapping to `map_thermal_generation_unit_name_to_fuel_type` in `/parsers/PA.py`

> 2021-12-24 01:01:55,967 WARNING  test_parser                    CADASA 1 is not mapped to generation type
> 2021-12-24 01:01:55,967 WARNING  test_parser                    CADASA 2 is not mapped to generation type
> 2021-12-24 01:01:55,967 WARNING  test_parser                    Sparkle Power 1 is not mapped to generation type
> 2021-12-24 01:01:55,967 WARNING  test_parser                    Sparkle Power 2 is not mapped to generation type
> 2021-12-24 01:01:55,967 WARNING  test_parser                    Sparkle Power 3 is not mapped to generation type
> 2021-12-24 01:01:55,967 WARNING  test_parser                    Sparkle Power 4 is not mapped to generation type
> 2021-12-24 01:01:55,967 WARNING  test_parser                    Sparkle Power 5 is not mapped to generation type
> 2021-12-24 01:01:55,968 WARNING  test_parser                    Sparkle Power 6 is not mapped to generation type
> 2021-12-24 01:01:55,968 WARNING  test_parser                    Sparkle Power 7 is not mapped to generation type
> 2021-12-24 01:01:55,968 WARNING  test_parser                    Sparkle Power 8 is not mapped to generation type

Source of production data: https://sitr.cnd.com.pa/m/pub/gen.html


Discussion:

Resolving patch:
diff --git a/parsers/PA.py b/parsers/PA.py
--- a/parsers/PA.py
+++ b/parsers/PA.py
@@ -14,11 +14,14 @@
 import logging
 
 
+PRODUCTION_URL = 'https://sitr.cnd.com.pa/m/pub/gen.html'
+
+
 def extract_pie_chart_data(html):
-  """Extracts generation breakdown pie chart data from the source code of the page"""
-  dataSource = re.search(r"var localPie = (\[\{.+\}\]);", html).group(1)#Extract object with data
-  dataSource = re.sub(r"(name|value|color)", r'"\1"', dataSource) #Un-quoted keys ({key:"value"}) are valid JavaScript but not valid JSON (which requires {"key":"value"}). Will break if other keys than these three are introduced. Alternatively, use a JSON5 library (JSON5 allows un-quoted keys)
-  return json.loads(dataSource)
+    """Extracts generation breakdown pie chart data from the source code of the page"""
+    data_source = re.search(r"var localPie = (\[\{.+\}\]);", html).group(1)  # Extract object with data
+    data_source = re.sub(r"(name|value|color)", r'"\1"', data_source)  # Un-quoted keys ({key:"value"}) are valid JavaScript but not valid JSON (which requires {"key":"value"}). Will break if other keys than these three are introduced. Alternatively, use a JSON5 library (JSON5 allows un-quoted keys)
+    return json.loads(data_source)
 
 
 def fetch_production(zone_key='PA', session=None, target_datetime=None, logger: logging.Logger = logging.getLogger(__name__)) -> dict:
@@ -26,146 +29,158 @@ def fetch_production(zone_key='PA', session=None, target_datetime=None, logger:
     if target_datetime:
         raise NotImplementedError('This parser is not yet able to parse past dates')
 
-    #Fetch page and load into BeautifulSoup
+    # Fetch page and load into BeautifulSoup
     r = session or requests.session()
-    url = 'http://sitr.cnd.com.pa/m/pub/gen.html'
+    url = PRODUCTION_URL
     response = r.get(url)
     response.encoding = 'utf-8'
     html_doc = response.text
     soup = BeautifulSoup(html_doc, 'html.parser')
 
-    #Parse production from pie chart
-    productions = extract_pie_chart_data(html_doc) #[{name:"Hídrica 1342.54 (80.14%)",value:1342.54,color:"#99ccee"}, ...]
+    # Parse production from pie chart
+    productions = extract_pie_chart_data(html_doc)  # [{name:"Hídrica 1342.54 (80.14%)",value:1342.54,color:"#99ccee"}, ...]
     map_generation = {
-      'Hídrica': 'hydro',
-      'Eólica': 'wind',
-      'Solar': 'solar',
-      'Biogás': 'biomass',
-      'Térmica': 'unknown'
+        'Hídrica': 'hydro',
+        'Eólica': 'wind',
+        'Solar': 'solar',
+        'Biogás': 'biomass',
+        'Térmica': 'unknown'
     }
     data = {
         'zoneKey': 'PA',
         'production': {
-          #Setting default values here so we can do += when parsing the thermal generation breakdown
-          'biomass': 0.0,
-          'coal': 0.0,
-          'gas': 0.0,
-          'hydro': 0.0,
-          'nuclear': 0.0,
-          'oil': 0.0,
-          'solar': 0.0,
-          'wind': 0.0,
-          'geothermal': 0.0,
-          'unknown': 0.0,
+            # Setting default values here so we can do += when parsing the thermal generation breakdown
+            'biomass': 0.0,
+            'coal': 0.0,
+            'gas': 0.0,
+            'hydro': 0.0,
+            'nuclear': 0.0,
+            'oil': 0.0,
+            'solar': 0.0,
+            'wind': 0.0,
+            'geothermal': 0.0,
+            'unknown': 0.0,
         },
         'storage': {},
         'source': 'https://www.cnd.com.pa/',
     }
-    for prod in productions: #{name:"Hídrica 1342.54 (80.14%)", ...}
-        prod_data = prod['name'].split(' ') #"Hídrica 1342.54 (80.14%)"
-        production_type = map_generation[prod_data[0]] #Hídrica
-        production_value = float(prod_data[1]) #1342.54
+    for prod in productions:  # {name:"Hídrica 1342.54 (80.14%)", ...}
+        prod_data = prod['name'].split(' ')  # "Hídrica 1342.54 (80.14%)"
+        production_type = map_generation[prod_data[0]]  # Hídrica
+        production_value = float(prod_data[1])  # 1342.54
         data['production'][production_type] = production_value
 
-    #Known fossil plants: parse, subtract from "unknown", add to "coal"/"oil"/"gas"
+    # Known fossil plants: parse, subtract from "unknown", add to "coal"/"oil"/"gas"
     thermal_production_breakdown = soup.find_all('table', {'class': 'sitr-table-gen'})[1]
-    #Make sure the table header is indeed "Térmicas (MW)" (in case the tables are re-arranged)
+    # Make sure the table header is indeed "Térmicas (MW)" (in case the tables are re-arranged)
     thermal_production_breakdown_table_header = thermal_production_breakdown.parent.parent.parent.select('> .tile-title')[0].string
     assert ('Térmicas' in thermal_production_breakdown_table_header), (
-      "Exception when extracting thermal generation breakdown for {}: table header does not contain "
-      "'Térmicas' but is instead named {}".format(zone_key, thermal_production_breakdown_table_header)
+        "Exception when extracting thermal generation breakdown for {}: table header does not contain "
+        "'Térmicas' but is instead named {}".format(zone_key, thermal_production_breakdown_table_header)
     )
     thermal_production_units = thermal_production_breakdown.select('tbody tr td table.sitr-gen-group tr')
     map_thermal_generation_unit_name_to_fuel_type = {
-      'ACP Miraflores 2': 'oil',#[7] Sheet "C-GE-1A-1 CapInstXEmp"
-      'ACP Miraflores 5': 'oil',#[7] Sheet "C-GE-1A-1 CapInstXEmp"
-      'ACP Miraflores 6': 'oil',#[7] Sheet "C-GE-1A-1 CapInstXEmp"
-      'ACP Miraflores 7': 'oil',#[7] Sheet "C-GE-1A-1 CapInstXEmp"
-      'ACP Miraflores 8': 'oil',#[7] Sheet "C-GE-1A-1 CapInstXEmp"
-      'ACP Miraflores 9': 'oil',#[7] Sheet "C-GE-1A-1 CapInstXEmp"
-      'ACP Miraflores 10': 'oil',#[7] Sheet "C-GE-1A-1 CapInstXEmp"
-      'BLM 2': 'coal',#[7] Sheet "C-GE-1A-2 CapInstXEmp"
-      'BLM 3': 'coal',#[7] Sheet "C-GE-1A-2 CapInstXEmp"
-      'BLM 4': 'coal',#[7] Sheet "C-GE-1A-2 CapInstXEmp"
-      'BLM 5': 'oil',#[7] Sheet "C-GE-1A-2 CapInstXEmp"
-      'BLM 6': 'oil',#[7] Sheet "C-GE-1A-2 CapInstXEmp"
-      'BLM 8': 'oil',#[7] Sheet "C-GE-1A-2 CapInstXEmp"
-      'BLM 9': 'oil',#[7] Sheet "C-GE-1A-2 CapInstXEmp" mentions no fuel type, and given all other units are accounted for this must be the heat recovery boiler for the 3 diesel-fired units mentioned in [2]
-      'Cativá 1': 'oil',#[1][2]
-      'Cativá 2': 'oil',#[1][2]
-      'Cativá 3': 'oil',#[1][2]
-      'Cativá 4': 'oil',#[1][2]
-      'Cativá 5': 'oil',#[1][2]
-      'Cativá 6': 'oil',#[1][2]
-      'Cativá 7': 'oil',#[1][2]
-      'Cativá 8': 'oil',#[1][2]
-      'Cativá 9': 'oil',#[1][2]
-      'Cativá 10': 'oil',#[1][2]
-      'Cobre Panamá 1': 'coal',#[3]
-      'Cobre Panamá 2': 'coal',#[3]
-      'Costa Norte 1': 'gas',#[4][5]
-      'Costa Norte 2': 'gas',#[4][5]
-      'Costa Norte 3': 'gas',#[4][5]
-      'Costa Norte 4': 'gas',#[4][5]
-      'Esperanza 1': 'oil',#[7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
-      'Esperanza 2': 'oil',#[7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
-      'Esperanza 3': 'oil',#[7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
-      'Esperanza 4': 'oil',#[7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
-      'Esperanza 5': 'oil',#[7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
-      'Esperanza 6': 'oil',#[7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
-      'Esperanza 7': 'oil',#[7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
-      'Jinro': 'oil',#[6][7]
-      'Pacora 1': 'oil',#[6]
-      'Pacora 2': 'oil',#[6]
-      'Pacora 3': 'oil',#[6]
-      'PanAm 1': 'oil',#[6][7]
-      'PanAm 2': 'oil',#[6][7]
-      'PanAm 3': 'oil',#[6][7]
-      'PanAm 4': 'oil',#[6][7]
-      'PanAm 5': 'oil',#[6][7]
-      'PanAm 6': 'oil',#[6][7]
-      'PanAm 7': 'oil',#[6][7]
-      'PanAm 8': 'oil',#[6][7]
-      'PanAm 9': 'oil',#[6][7]
-      'Termocolón 1': 'oil',#[6] (spelled "Termo Colón")
-      'Termocolón 2': 'oil',#[6] (spelled "Termo Colón")
-      'Termocolón 3': 'oil',#[6] (spelled "Termo Colón")
-      'Tropitérmica 1': 'oil',#[6]:162[7] spelled "Tropitermica" in both
-      'Tropitérmica 2': 'oil',#[6]:162[7] spelled "Tropitermica" in both
-      'Tropitérmica 3': 'oil',#[6]:162[7] spelled "Tropitermica" in both
+        'ACP Miraflores 2': 'oil',  # [7] Sheet "C-GE-1A-1 CapInstXEmp"
+        'ACP Miraflores 5': 'oil',  # [7] Sheet "C-GE-1A-1 CapInstXEmp"
+        'ACP Miraflores 6': 'oil',  # [7] Sheet "C-GE-1A-1 CapInstXEmp"
+        'ACP Miraflores 7': 'oil',  # [7] Sheet "C-GE-1A-1 CapInstXEmp"
+        'ACP Miraflores 8': 'oil',  # [7] Sheet "C-GE-1A-1 CapInstXEmp"
+        'ACP Miraflores 9': 'oil',  # [7] Sheet "C-GE-1A-1 CapInstXEmp"
+        'ACP Miraflores 10': 'oil',  # [7] Sheet "C-GE-1A-1 CapInstXEmp"
+        'BLM 2': 'coal',  # [7] Sheet "C-GE-1A-2 CapInstXEmp"
+        'BLM 3': 'coal',  # [7] Sheet "C-GE-1A-2 CapInstXEmp"
+        'BLM 4': 'coal',  # [7] Sheet "C-GE-1A-2 CapInstXEmp"
+        'BLM 5': 'oil',  # [7] Sheet "C-GE-1A-2 CapInstXEmp"
+        'BLM 6': 'oil',  # [7] Sheet "C-GE-1A-2 CapInstXEmp"
+        'BLM 8': 'oil',  # [7] Sheet "C-GE-1A-2 CapInstXEmp"
+        'BLM 9': 'oil',  # [7] Sheet "C-GE-1A-2 CapInstXEmp" mentions no fuel type, and given all other units are accounted for this must be the heat recovery boiler for the 3 diesel-fired units mentioned in [2]
+        'CADASA 1': 'biomass',  # [9]
+        'CADASA 2': 'biomass',  # [9]
+        'Cativá 1': 'oil',  # [1][2]
+        'Cativá 2': 'oil',  # [1][2]
+        'Cativá 3': 'oil',  # [1][2]
+        'Cativá 4': 'oil',  # [1][2]
+        'Cativá 5': 'oil',  # [1][2]
+        'Cativá 6': 'oil',  # [1][2]
+        'Cativá 7': 'oil',  # [1][2]
+        'Cativá 8': 'oil',  # [1][2]
+        'Cativá 9': 'oil',  # [1][2]
+        'Cativá 10': 'oil',  # [1][2]
+        'Cobre Panamá 1': 'coal',  # [3]
+        'Cobre Panamá 2': 'coal',  # [3]
+        'Costa Norte 1': 'gas',  # [4][5]
+        'Costa Norte 2': 'gas',  # [4][5]
+        'Costa Norte 3': 'gas',  # [4][5]
+        'Costa Norte 4': 'gas',  # [4][5]
+        'Esperanza 1': 'oil',  # [7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
+        'Esperanza 2': 'oil',  # [7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
+        'Esperanza 3': 'oil',  # [7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
+        'Esperanza 4': 'oil',  # [7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
+        'Esperanza 5': 'oil',  # [7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
+        'Esperanza 6': 'oil',  # [7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
+        'Esperanza 7': 'oil',  # [7] has a single 92MW bunker fuel power plant, but [8] shows this is actually a power barge with 7 units
+        'Jinro': 'oil',  # [6][7]
+        'Pacora 1': 'oil',  # [6]
+        'Pacora 2': 'oil',  # [6]
+        'Pacora 3': 'oil',  # [6]
+        'PanAm 1': 'oil',  # [6][7]
+        'PanAm 2': 'oil',  # [6][7]
+        'PanAm 3': 'oil',  # [6][7]
+        'PanAm 4': 'oil',  # [6][7]
+        'PanAm 5': 'oil',  # [6][7]
+        'PanAm 6': 'oil',  # [6][7]
+        'PanAm 7': 'oil',  # [6][7]
+        'PanAm 8': 'oil',  # [6][7]
+        'PanAm 9': 'oil',  # [6][7]
+        'Sparkle Power 1': 'oil',  # [10]
+        'Sparkle Power 2': 'oil',  # [10]
+        'Sparkle Power 3': 'oil',  # [10]
+        'Sparkle Power 4': 'oil',  # [10]
+        'Sparkle Power 5': 'oil',  # [10]
+        'Sparkle Power 6': 'oil',  # [10]
+        'Sparkle Power 7': 'oil',  # [10]
+        'Sparkle Power 8': 'oil',  # [10]
+        'Termocolón 1': 'oil',  # [6] (spelled "Termo Colón")
+        'Termocolón 2': 'oil',  # [6] (spelled "Termo Colón")
+        'Termocolón 3': 'oil',  # [6] (spelled "Termo Colón")
+        'Tropitérmica 1': 'oil',  # [6]:162[7] spelled "Tropitermica" in both
+        'Tropitérmica 2': 'oil',  # [6]:162[7] spelled "Tropitermica" in both
+        'Tropitérmica 3': 'oil',  # [6]:162[7] spelled "Tropitermica" in both
     }
-    #Sources:
-    #1. https://www.celsia.com/Portals/0/contenidos-celsia/accionistas-e-inversionistas/perfil-corporativo-US/presentaciones-US/2014/presentacion-morgan-ingles-v2.pdf
-    #2. https://www.celsia.com/en/about-celsia/business-model/power-generation/thermoelectric-power-plants
-    #3. https://endcoal.org/tracker/
-    #4. http://aesmcac.com/aespanamades/en/colon/ "It reuses the heat from the exhaust gas from the gas turbines in order to obtain steam, to be later used by a steam turbine and to save fuel consumption in the production of electricity."
-    #5. https://panamcham.com/sites/default/files/el_inicio_del_futuro_del_gas_natural_en_panama.pdf "3 gas turbines and 1 steam (3X1 configuration)" "Technology: Combined Cycle" | This and the previous source taken together seems to imply that the steam turbine is responsible for the second cycle of the CCGT plant, giving confidence that output from all four units should indeed be tallied under "gas". Furthermore, as the plant also has a LNG import facility it is most unlikely the steam turbine would be burning a different fuel such as coal or oil.
-    #6. https://www.etesa.com.pa/documentos/Tomo_II__Plan_Indicativo_de_Generacin_2019__2033.pdf page 142
-    #7. http://168.77.210.79/energia/wp-content/uploads/sites/2/2020/08/2-CEE-1970-2019-GE-Generaci%C3%B3n-El%C3%A9ctrica.xls (via http://www.energia.gob.pa/mercado-energetico/?tag=84#documents-list)
-    #8. https://www.asep.gob.pa/wp-content/uploads/electricidad/resoluciones/anno_12528_elec.pdf
+    # Sources:
+    # 1. https://www.celsia.com/Portals/0/contenidos-celsia/accionistas-e-inversionistas/perfil-corporativo-US/presentaciones-US/2014/presentacion-morgan-ingles-v2.pdf
+    # 2. https://www.celsia.com/en/about-celsia/business-model/power-generation/thermoelectric-power-plants
+    # 3. https://endcoal.org/tracker/
+    # 4. http://aesmcac.com/aespanamades/en/colon/ "It reuses the heat from the exhaust gas from the gas turbines in order to obtain steam, to be later used by a steam turbine and to save fuel consumption in the production of electricity."
+    # 5. https://panamcham.com/sites/default/files/el_inicio_del_futuro_del_gas_natural_en_panama.pdf "3 gas turbines and 1 steam (3X1 configuration)" "Technology: Combined Cycle" | This and the previous source taken together seems to imply that the steam turbine is responsible for the second cycle of the CCGT plant, giving confidence that output from all four units should indeed be tallied under "gas". Furthermore, as the plant also has a LNG import facility it is most unlikely the steam turbine would be burning a different fuel such as coal or oil.
+    # 6. https://www.etesa.com.pa/documentos/Tomo_II__Plan_Indicativo_de_Generacin_2019__2033.pdf page 142
+    # 7. http://168.77.210.79/energia/wp-content/uploads/sites/2/2020/08/2-CEE-1970-2019-GE-Generaci%C3%B3n-El%C3%A9ctrica.xls (via http://www.energia.gob.pa/mercado-energetico/?tag=84#documents-list)
+    # 8. https://www.asep.gob.pa/wp-content/uploads/electricidad/resoluciones/anno_12528_elec.pdf
+    # 9. https://www.irena.org/-/media/Files/IRENA/Agency/Publication/2018/May/IRENA_RRA_Panama_2018_En.pdf
+    # 10. https://www.asep.gob.pa/wp-content/uploads/electricidad/concesiones_licencias/concesiones_licencias/2021/listado_licencias_abr27.pdf
     for thermal_production_unit in thermal_production_units:
-      unit_name_and_generation = thermal_production_unit.find_all('td')
-      unit_name = unit_name_and_generation[0].string
-      unit_generation = float(unit_name_and_generation[1].string)
-      if(unit_name in map_thermal_generation_unit_name_to_fuel_type):
-        if(unit_generation > 0):#Ignore self-consumption
-          unit_fuel_type = map_thermal_generation_unit_name_to_fuel_type[unit_name]
-          data['production'][unit_fuel_type] += unit_generation
-          data['production']['unknown'] -= unit_generation
-      else:
-        logger.warning(u'{} is not mapped to generation type'.format(unit_name), extra={'key': zone_key})
-
-    #Thermal total from the graph and the total one would get from summing output of all generators deviates a bit,
-    #presumably because they aren't updated at the exact same moment.
-    #Because negative production causes an error with ElectricityMap, we'll ignore small amounts of negative production
-    #TODO we might want to use the sum of the production of all thermal units instead of this workaround,
-    #because now we're still reporting small *postive* amounts of "ghost" thermal production
-    if data['production']['unknown'] < 0 and data['production']['unknown'] > -10:
-      logger.info(f"Ignoring small amount of negative thermal generation ({data['production']['unknown']}MW)", extra={"key": zone_key})
-      data['production']['unknown'] = 0
-
-    #Round remaining "unknown" output to 13 decimal places to get rid of floating point errors
-    data['production']['unknown'] = round(data['production']['unknown'],13)
+        unit_name_and_generation = thermal_production_unit.find_all('td')
+        unit_name = unit_name_and_generation[0].string
+        unit_generation = float(unit_name_and_generation[1].string)
+        if unit_name in map_thermal_generation_unit_name_to_fuel_type:
+            if unit_generation > 0:  # Ignore self-consumption
+                unit_fuel_type = map_thermal_generation_unit_name_to_fuel_type[unit_name]
+                data['production'][unit_fuel_type] += unit_generation
+                data['production']['unknown'] -= unit_generation
+        else:
+            logger.warning(u'{} is not mapped to generation type'.format(unit_name), extra={'key': zone_key})
+
+    # Thermal total from the graph and the total one would get from summing output of all generators deviates a bit,
+    # presumably because they aren't updated at the exact same moment.
+    # Because negative production causes an error with ElectricityMap, we'll ignore small amounts of negative production
+    # TODO we might want to use the sum of the production of all thermal units instead of this workaround,
+    # because now we're still reporting small *postive* amounts of "ghost" thermal production
+    if 0 > data['production']['unknown'] > -10:
+        logger.info(f"Ignoring small amount of negative thermal generation ({data['production']['unknown']}MW)", extra={"key": zone_key})
+        data['production']['unknown'] = 0
+
+    # Round remaining "unknown" output to 13 decimal places to get rid of floating point errors
+    data['production']['unknown'] = round(data['production']['unknown'], 13)
 
     # Parse the datetime and return a python datetime object
     spanish_date = soup.find('h3', {'class': 'sitr-update'}).string


Test patch:
diff --git a/parsers/test/mocks/PA_nominal_generation.html b/parsers/test/mocks/PA_nominal_generation.html
new file mode 100644
--- /dev/null
+++ b/parsers/test/mocks/PA_nominal_generation.html
@@ -0,0 +1,710 @@
+<!DOCTYPE html>
+<html class="fontawesome-i2svg-active fontawesome-i2svg-complete" lang="es"><head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+    <!-- Global site tag (gtag.js) - Google Analytics -->
+    <script type="text/javascript" async="" src="PA_nominal_generation_files/analytics.js"></script><script async="" src="PA_nominal_generation_files/js.js"></script>
+    <script>
+        if (!document.location.pathname.includes("test2")) {
+            window.dataLayer = window.dataLayer || [];
+            function gtag() { dataLayer.push(arguments); }
+            gtag('js', new Date());
+
+            gtag('config', 'UA-143545287-1');
+        }
+    </script>
+
+  <title>SITR - Generación</title> 
+  <style type="text/css">svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}</style><link rel="icon" type="image/png" href="https://sitr.cnd.com.pa/m/icon.png">
+  
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">  
+  <meta name="description" content="Sistema de Información en Tiempo Real">  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">  
+  
+  <!-- Open Graph Meta-->
+  <meta property="og:type" content="website">
+  <meta property="og:site_name" content="CND">
+  <meta property="og:title" content="CND - Sistema de Información en Tiempo Real">
+  <meta property="og:url" content="https://sitr.cnd.com.pa/m">
+  <meta property="og:description" content="El Centro Nacional de Despacho coordina las operaciones y transacciones que ocurren entre los participantes en el mercado eléctrico mayorista.">
+  <meta property="og:image" content="https://sitr.cnd.com.pa/m/icon.png">
+
+    <!-- Main CSS-->
+    <link rel="stylesheet" type="text/css" href="PA_nominal_generation_files/main.css">
+    <link rel="stylesheet" type="text/css" href="PA_nominal_generation_files/stylesnew.css">
+
+    <script src="PA_nominal_generation_files/all.js" data-auto-replace-svg="nest"></script>
+
+    <!--<script src="https://kit.fontawesome.com/30bdb1bdbd.js" crossorigin="anonymous" SameSite="None"></script>-->
+</head>
+
+<body class="app sidebar-mini">
+    <!-- Navbar-->
+    <header class="app-header">
+        <a class="app-header__logo" href="https://sitr.cnd.com.pa/m/index.html">
+            <img class="img-fluid" src="PA_nominal_generation_files/SITR.png" alt="" width="115" height="50">
+        </a>
+
+        <!-- Sidebar toggle button-->
+        <a class="app-sidebar__toggle" href="#" data-toggle="sidebar" aria-label="Hide Sidebar">
+            <i class="" data-fa-i2svg=""><svg class="svg-inline--fa fa-bars fa-w-14 fa-1x" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="bars" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""><path fill="currentColor" d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path></svg></i>
+        </a>
+    </header>
+
+    <!-- Sidebar menu-->
+    <div class="app-sidebar__overlay" data-toggle="sidebar"></div>
+    <aside class="app-sidebar">
+        <ul class="app-menu">
+            <li>
+                <a class="app-menu__item">
+                    <i class="app-menu__icon" data-fa-i2svg=""><svg class="svg-inline--fa fa-tachometer-alt fa-w-18 fa-1x" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="tachometer-alt" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" data-fa-i2svg=""><path fill="currentColor" d="M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path></svg></i><span class="app-menu__label pace">Datos del <span class="notranslate">SIN</span></span>
+                </a>
+            </li>
+            <li>
+                <a class="app-menu__item active">
+                    <i class="app-menu__icon" data-fa-i2svg=""><svg class="svg-inline--fa fa-chart-pie fa-w-17 fa-1x" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chart-pie" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 544 512" data-fa-i2svg=""><path fill="currentColor" d="M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"></path></svg></i><span class="app-menu__label pace">Generación</span>
+                </a>
+            </li>
+            <li>
+                <a class="app-menu__item">
+                    <i class="app-menu__icon" data-fa-i2svg=""><svg class="svg-inline--fa fa-water fa-w-18 fa-1x" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="water" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" data-fa-i2svg=""><path fill="currentColor" d="M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z"></path></svg></i><span class="app-menu__label pace">Seguimiento a la MRG</span>
+                </a>
+            </li>
+            <li>
+                <a class="app-menu__item">
+                    <i class="app-menu__icon" data-fa-i2svg=""><svg class="svg-inline--fa fa-sitemap fa-w-20 fa-1x" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="sitemap" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512" data-fa-i2svg=""><path fill="currentColor" d="M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"></path></svg></i><span class="app-menu__label pace">Interconexión</span>
+                </a>
+            </li>
+            <li>
+                <a class="app-menu__item">
+                    <i class="app-menu__icon" data-fa-i2svg=""><svg class="svg-inline--fa fa-route fa-w-16 fa-1x" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="route" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path></svg></i><span class="app-menu__label pace">Flujo Occidente</span>
+                </a>
+            </li>
+            <li>
+                <a class="app-menu__item">
+                    <i class="app-menu__icon" data-fa-i2svg=""><svg class="svg-inline--fa fa-user-lock fa-w-20 fa-1x" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="user-lock" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512" data-fa-i2svg=""><path fill="currentColor" d="M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z"></path></svg></i><span class="app-menu__label pace">Privado</span>
+                </a>
+            </li>
+        </ul>
+    </aside>
+    <main class="app-content">
+        <div class="app-title">
+            <div>
+                <h1>Centro Nacional de Despacho</h1>
+                <h3>
+                    <i class="" data-fa-i2svg=""><svg class="svg-inline--fa fa-chart-pie fa-w-17" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chart-pie" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 544 512" data-fa-i2svg=""><path fill="currentColor" d="M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"></path></svg></i> Generación
+                </h3>
+                <!-- <p>Start a beautiful journey here</p> -->
+            </div>
+            <!-- <ul class="app-breadcrumb breadcrumb">
+              <li class="breadcrumb-item"><i class="fa fa-home fa-lg"></i></li>
+              <li class="breadcrumb-item"><a href="#">Blank Page</a></li>
+            </ul> -->
+            <h3 class="app-breadcrumb breadcrumb sitr-update">30-diciembre-2021 9:58:37</h3>
+        </div>
+
+        <div class="app-title-msg sr-only" role="alert">
+            <span></span>
+        </div>
+
+
+        <div class="row">
+            <div class="col-md-6">
+                <div class="tile">
+                    <h3 class="tile-title">Energía Renovable vs. Energía Térmica</h3>
+                    <div class="tile-body">
+                        <div class="sitr-pie" id="sitr-energy-pie" style="height: 42.5vh; min-height: 250px; width: 100%; user-select: none; position: relative;" _echarts_instance_="ec_1640876263963"><div style="position: relative; width: 1038px; height: 564px; padding: 0px; margin: 0px; border-width: 0px;"><canvas style="position: absolute; left: 0px; top: 0px; width: 1038px; height: 564px; user-select: none; padding: 0px; margin: 0px; border-width: 0px;" data-zr-dom-id="zr_0" width="1038" height="564"></canvas></div><div class=""></div></div>
+
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-6">
+                <div class="tile">
+                    <div class="tile-title">
+                        <h3 class="title">Tipos de Generación</h3>
+                    </div>
+                    <div class="tile-body">
+                        <div class="sitr-pie" id="sitr-gen-pie" style="height: 42.5vh; min-height: 272px; width: 100%; user-select: none; position: relative;" _echarts_instance_="ec_1640876263964"><div style="position: relative; width: 1038px; height: 564px; padding: 0px; margin: 0px; border-width: 0px;"><canvas style="position: absolute; left: 0px; top: 0px; width: 1038px; height: 564px; user-select: none; padding: 0px; margin: 0px; border-width: 0px;" data-zr-dom-id="zr_0" width="1038" height="564"></canvas></div><div class=""></div></div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <div class="row">
+            <div class="col-md">
+                <div class="tile">
+                    <h3 class="tile-title">
+                        Código de colores de las mediciones de generación
+                    </h3>
+                    <div class="tile-body">
+
+                        <div class="d-flex bd-highlight">
+                            <div class="p-2 w-100 bd-highlight align-middle text-center">
+                                <span class="badge badge-pill badge-primary" style="background-color:black;">Normal.</span>
+                            </div>
+                            <div class="p-2 w-100 bd-highlight text-center">
+                                <span class="badge badge-pill badge-primary" style="background-color:ORCHID;">Sin telemetría.</span>
+                            </div>
+                            <div class="p-2 w-100 bd-highlight align-middle text-center">
+                                <span class="badge badge-pill badge-primary" style="background-color:ROYALBLUE;">Entrada manual.</span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <div class="row">
+            <div class="col-md">
+                <div class="tile">
+                    <h3 class="tile-title">
+                        Hidroeléctricas (MW)
+                    </h3>
+                    <div class="tile-body">
+
+                        <!-- Units -->
+                        <div class="table-responsive-sm moreSmall">
+                            <table class="table sitr-table-gen" cellspacing="0" cellpadding="0">
+                                <tbody>
+                                    <tr>
+                                        <td>
+                                            <table class="table sitr-gen-group table-hover table-striped table-sm">
+                                                <tbody><tr><td><span>Algarrobos 1</span></td><td><span style="color:#222" ;="">2.32</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Algarrobos 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Baitún 1</span></td><td><span style="color:#222" ;="">34.16</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Baitún 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Baitún 4</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Bajo del Totuma</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Bajo Mina 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Bajo Mina 2</span></td><td><span style="color:#222" ;="">20.10</span></td></tr>
+                                                <tr><td><span>Bajo Mina 3</span></td><td><span style="color:#222" ;="">0.42</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Barro Blanco 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Barro Blanco 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Barro Blanco 3</span></td><td><span style="color:#222" ;="">1.55</span></td></tr>
+                                                <tr><td><span>Bayano 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Bayano 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Bayano 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Bonyic 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Bonyic 2</span></td><td><span style="color:#222" ;="">10.75</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Bonyic 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Bugaba I 1</span></td><td><span style="color:#222" ;="">1.39</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Bugaba I 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Bugaba I 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Bugaba II 1</span></td><td><span style="color:#222" ;="">1.60</span></td></tr>
+                                                <tr><td><span>Bugaba II 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Bugaba II 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Changuinola 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Changuinola 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Changuinola 3</span></td><td><span style="color:#222" ;="">9.39</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Cochea 1</span></td><td><span style="color:#222" ;="">6.79</span></td></tr>
+                                                <tr><td><span>Cochea 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Concepción 1</span></td><td><span style="color:ORCHID" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Concepción 2</span></td><td><span style="color:ORCHID" ;="">4.72</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Dolega 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Dolega 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Dolega 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Eco Hidro Tizingal</span></td><td><span style="color:ROYALBLUE" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>El Alto 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>El Alto 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>El Alto 3</span></td><td><span style="color:#222" ;="">18.37</span></td></tr>
+                                                <tr><td><span>Estí 1</span></td><td><span style="color:#222" ;="">45.28</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Estí 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Estrella 1</span></td><td><span style="color:#222" ;="">13.92</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Estrella 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Fortuna 1</span></td><td><span style="color:#222" ;="">24.54</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Fortuna 2</span></td><td><span style="color:#222" ;="">29.46</span></td></tr>
+                                                <tr><td><span>Fortuna 3</span></td><td><span style="color:#222" ;="">27.06</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Fraile 1</span></td><td><span style="color:#222" ;="">2.09</span></td></tr>
+                                                <tr><td><span>Fraile 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Fraile 3</span></td><td><span style="color:#222" ;="">1.20</span></td></tr>
+                                                <tr><td><span>Gatún 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Gatún 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Gatún 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Gatún 4</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Gatún 5</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Gatún 6</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Gualaca 1</span></td><td><span style="color:#222" ;="">6.24</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Gualaca 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>La Cuchilla 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>La Cuchilla 2</span></td><td><span style="color:#222" ;="">3.47</span></td></tr>
+                                            </tbody></table>
+                                        </td>
+
+                                        <td>
+                                            <table class="table table-hover table-striped table-sm sitr-gen-group">
+                                                <tbody><tr><td><span>La Potra 1</span></td><td><span style="color:#222" ;="">9.10</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>La Potra 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>La Potra 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>La Potra 4</span></td><td><span style="color:#222" ;="">1.82</span></td></tr>
+                                                <tr><td><span>Las Cruces 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Las Cruces 2</span></td><td><span style="color:#222" ;="">9.45</span></td></tr>
+                                                <tr><td><span>Las Cruces 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Lorena 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Lorena 2</span></td><td><span style="color:#222" ;="">5.86</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Macano 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Macano 2</span></td><td><span style="color:#222" ;="">1.92</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Macano 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Madden 1</span></td><td><span style="color:#222" ;="">6.17</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Madden 2</span></td><td><span style="color:#222" ;="">6.06</span></td></tr>
+                                                <tr><td><span>Madden 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Mendre 1</span></td><td><span style="color:#222" ;="">4.00</span></td></tr>
+                                                <tr><td><span>Mendre 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Mendre II 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Mendre II 2</span></td><td><span style="color:#222" ;="">1.88</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>M. Monte 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>M. Monte 2</span></td><td><span style="color:#222" ;="">1.06</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Monte Lirio 1</span></td><td><span style="color:#222" ;="">8.43</span></td></tr>
+                                                <tr><td><span>Monte Lirio 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Monte Lirio 3</span></td><td><span style="color:#222" ;="">15.39</span></td></tr>
+                                                <tr><td><span>Pando 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Pando 2</span></td><td><span style="color:#222" ;="">12.07</span></td></tr>
+                                                <tr><td><span>Paso Ancho 1</span></td><td><span style="color:#222" ;="">2.02</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Paso Ancho 2</span></td><td><span style="color:#222" ;="">2.19</span></td></tr>
+                                                <tr><td><span>Pedregalito I 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Pedregalito I 2</span></td><td><span style="color:#222" ;="">5.00</span></td></tr>
+                                                <tr><td><span>Pedregalito I 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Pedregalito II 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Pedregalito II 2</span></td><td><span style="color:#222" ;="">3.27</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Perlas Norte 1</span></td><td><span style="color:ORCHID" ;="">0.01</span></td></tr>
+                                                <tr><td><span>Perlas Norte 2</span></td><td><span style="color:ORCHID" ;="">4.50</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Perlas Sur 1</span></td><td><span style="color:ORCHID" ;="">0.01</span></td></tr>
+                                                <tr><td><span>Perlas Sur 2</span></td><td><span style="color:ORCHID" ;="">4.53</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Planetas I 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Planetas I 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Planetas I 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Planetas II 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Planetas II 2</span></td><td><span style="color:#222" ;="">2.99</span></td></tr>
+                                                <tr><td><span>Prudencia 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Prudencia 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>RP-490 1</span></td><td><span style="color:#222" ;="">4.95</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>RP-490 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Salsipuedes 1</span></td><td><span style="color:#222" ;="">9.26</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Salsipuedes 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Salsipuedes 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>San Andrés 1</span></td><td><span style="color:#222" ;="">2.08</span></td></tr>
+                                                <tr><td><span>San Andrés 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>San Lorenzo 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>San Lorenzo 2</span></td><td><span style="color:#222" ;="">3.61</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Valles 1</span></td><td><span style="color:#222" ;="">19.57</span></td></tr>
+                                                <tr><td><span>Valles 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Yeguada 1</span></td><td><span style="color:#222" ;="">2.59</span></td></tr>
+                                                <tr><td><span>Yeguada 2</span></td><td><span style="color:#222" ;="">2.56</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Yeguada 3</span></td><td><span style="color:#222" ;="">0.53</span></td></tr>
+                                            </tbody></table>
+                                        </td>
+                                    </tr>
+                                </tbody>
+                            </table>
+                        </div>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <div class="row">
+            <div class="col-md">
+                <div class="tile">
+                    <h3 class="tile-title">
+                        Térmicas (MW)
+                    </h3>
+                    <div class="tile-body">
+
+                        <div class="table-responsive-sm moreSmall">
+                            <!-- Units -->
+                            <table class="table sitr-table-gen" cellspacing="0" cellpadding="0">
+                                <tbody>
+                                    <tr>
+                                        <td>
+                                            <table class="table table-hover table-striped table-sm sitr-gen-group">
+                                                <tbody><tr><td><span>ACP Miraflores 5</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>ACP Miraflores 9</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>ACP Miraflores 10</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>BLM 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>BLM 3</span></td><td><span style="color:ROYALBLUE" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>BLM 4</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>BLM 5</span></td><td><span style="color:ROYALBLUE" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>BLM 6</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>BLM 8</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>BLM 9</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>CADASA 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>CADASA 2</span></td><td><span style="color:#222" ;="">0.05</span></td></tr>
+                                                <tr><td><span>Cativá 1</span></td><td><span style="color:#222" ;="">7.03</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Cativá 2</span></td><td><span style="color:#222" ;="">6.89</span></td></tr>
+                                                <tr><td><span>Cativá 3</span></td><td><span style="color:#222" ;="">6.56</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Cativá 4</span></td><td><span style="color:#222" ;="">6.30</span></td></tr>
+                                                <tr><td><span>Cativá 5</span></td><td><span style="color:#222" ;="">7.06</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Cativá 6</span></td><td><span style="color:#222" ;="">6.51</span></td></tr>
+                                                <tr><td><span>Cativá 7</span></td><td><span style="color:#222" ;="">1.37</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Cativá 8</span></td><td><span style="color:#222" ;="">6.62</span></td></tr>
+                                                <tr><td><span>Cativá 9</span></td><td><span style="color:#222" ;="">7.07</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Cativá 10</span></td><td><span style="color:#222" ;="">6.57</span></td></tr>
+                                                <tr><td><span>Cobre Panamá 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Cobre Panamá 2</span></td><td><span style="color:#222" ;="">149.60</span></td></tr>
+                                                <tr><td><span>Costa Norte 1</span></td><td><span style="color:#222" ;="">75.64</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Costa Norte 2</span></td><td><span style="color:#222" ;="">127.68</span></td></tr>			
+                                                <tr><td><span>Costa Norte 3</span></td><td><span style="color:#222" ;="">76.21</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Costa Norte 4</span></td><td><span style="color:#222" ;="">76.35</span></td></tr>													
+                                            </tbody></table>
+                                        </td>
+                                        <td>
+                                            <table class="table table-hover table-striped table-sm sitr-gen-group">
+                                                <tbody><tr><td><span>PanAm 1</span></td><td><span style="color:#222" ;="">15.51</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>PanAm 2</span></td><td><span style="color:#222" ;="">15.61</span></td></tr>
+                                                <tr><td><span>PanAm 3</span></td><td><span style="color:#222" ;="">15.44</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>PanAm 4</span></td><td><span style="color:#222" ;="">15.53</span></td></tr>
+                                                <tr><td><span>PanAm 5</span></td><td><span style="color:#222" ;="">15.58</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>PanAm 6</span></td><td><span style="color:#222" ;="">15.63</span></td></tr>
+                                                <tr><td><span>PanAm 7</span></td><td><span style="color:#222" ;="">16.32</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>PanAm 8</span></td><td><span style="color:#222" ;="">16.13</span></td></tr>
+                                                <tr><td><span>PanAm 9</span></td><td><span style="color:#222" ;="">16.21</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Sparkle Power 1</span></td><td><span style="color:#222" ;="">2.79</span></td></tr>
+                                                <tr><td><span>Sparkle Power 2</span></td><td><span style="color:#222" ;="">2.92</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Sparkle Power 3</span></td><td><span style="color:#222" ;="">2.93</span></td></tr>
+                                                <tr><td><span>Sparkle Power 4</span></td><td><span style="color:#222" ;="">3.20</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Sparkle Power 5</span></td><td><span style="color:#222" ;="">7.51</span></td></tr>
+                                                <tr><td><span>Sparkle Power 6</span></td><td><span style="color:#222" ;="">7.49</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Sparkle Power 7</span></td><td><span style="color:#222" ;="">7.42</span></td></tr>
+                                                <tr><td><span>Sparkle Power 8</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Termocolón 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Termocolón 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Termocolón 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Tropitérmica 1</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Tropitérmica 2</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Tropitérmica 3</span></td><td><span style="color:#222" ;="">0.00</span></td></tr>
+										
+                                            </tbody></table>
+                                        </td>
+                                    </tr>
+                                </tbody>
+                            </table>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <div class="row">
+            <div class="col-md">
+                <div class="tile">
+                    <h3 class="tile-title">
+                        Solares (MW)
+                    </h3>
+                    <div class="tile-body">
+                        <div class="table-responsive-sm moreSmall">
+                            <!-- Units -->
+                            <table class="table sitr-table-gen" cellspacing="0" cellpadding="0">
+                                <tbody>
+                                    <tr>
+                                        <td>
+                                            <table class="table table-hover table-striped table-sm sitr-gen-group">
+                                                <tbody><tr><td><span>Bejuco Solar</span></td><td><span style="color:#222" ;="">0.60</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Coclé Solar 1</span></td><td><span style="color:#222" ;="">0.41</span></td></tr>
+                                                <tr><td><span>Daconan Solar</span></td><td><span style="color:#222" ;="">-2.15</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Divisa Solar</span></td><td><span style="color:#222" ;="">5.73</span></td></tr>
+                                                <tr><td><span>Don Félix</span></td><td><span style="color:#222" ;="">5.95</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Ecosolar</span></td><td><span style="color:#222" ;="">6.45</span></td></tr>
+                                                <tr><td><span>Ecosolar 2</span></td><td><span style="color:#222" ;="">6.57</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>El Espinal</span></td><td><span style="color:ORCHID" ;="">0.00</span></td></tr>
+                                                <tr><td><span>El Fraile Solar 1</span></td><td><span style="color:#222" ;="">0.31</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Estrella Solar</span></td><td><span style="color:#222" ;="">3.78</span></td></tr>
+                                                <tr><td><span>Farallón II</span></td><td><span style="color:#222" ;="">3.70</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Fotovoltaica Santiago Gen 1</span></td><td><span style="color:#222" ;="">3.64</span></td></tr>
+                                                <tr><td><span>Ikako</span></td><td><span style="color:#222" ;="">7.93</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Ikako I</span></td><td><span style="color:#222" ;="">5.76</span></td></tr>
+                                                <tr><td><span>Ikako II</span></td><td><span style="color:#222" ;="">7.27</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Ikako III</span></td><td><span style="color:#222" ;="">7.67</span></td></tr>			
+                                                <tr><td><span>Jagüito Solar</span></td><td><span style="color:#222" ;="">3.95</span></td></tr>												
+                                                <tr class="sitr-alt-row"><td><span>La Esperanza Solar 20 MW</span></td><td><span style="color:#222" ;="">3.42</span></td></tr>
+                                                <tr><td><span>Las Mendozas Solar</span></td><td><span style="color:#222" ;="">2.45</span></td></tr>																								
+											</tbody></table>
+                                        </td>
+                                        <td>
+                                            <table class="table table-hover table-striped table-sm sitr-gen-group">
+                                                <tbody><tr><td><span>Macano Solar</span></td><td><span style="color:#222" ;="">1.53</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Mayorca Solar</span></td><td><span style="color:#222" ;="">9.62</span></td></tr>
+                                                <tr><td><span>Milton Solar</span></td><td><span style="color:#222" ;="">6.02</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Pacora II</span></td><td><span style="color:ORCHID" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Panasolar</span></td><td><span style="color:#222" ;="">6.45</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Parque Solar Prudencia</span></td><td><span style="color:ORCHID" ;="">0.00</span></td></tr>
+                                                <tr><td><span>Pesé Solar</span></td><td><span style="color:#222" ;="">9.03</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Sarigua</span></td><td><span style="color:#222" ;="">0.53</span></td></tr>
+                                                <tr><td><span>Sol de David</span></td><td><span style="color:#222" ;="">3.72</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Sol Real</span></td><td><span style="color:#222" ;="">6.66</span></td></tr>
+                                                <tr><td><span>Solar Bugaba</span></td><td><span style="color:#222" ;="">1.30</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Solar Caldera</span></td><td><span style="color:#222" ;="">2.15</span></td></tr>
+                                                <tr><td><span>Solar Chiriquí</span></td><td><span style="color:#222" ;="">6.39</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Solar Coclé</span></td><td><span style="color:#222" ;="">7.78</span></td></tr>
+                                                <tr><td><span>Solar Fotovoltaica Penonomé</span></td><td><span style="color:#222" ;="">94.45</span></td></tr>	
+                                                <tr class="sitr-alt-row"><td><span>Solar Los Ángeles</span></td><td><span style="color:#222" ;="">7.84</span></td></tr>											
+                                                <tr><td><span>Solar Paris</span></td><td><span style="color:#222" ;="">6.40</span></td></tr>
+                                                <tr class="sitr-alt-row"><td><span>Solar Pocrí</span></td><td><span style="color:#222" ;="">12.24</span></td></tr>
+                                                <tr><td><span>Vista Alegre</span></td><td><span style="color:#222" ;="">5.14</span></td></tr>																								
+											</tbody></table>
+                                        </td>
+                                    </tr>
+                                </tbody>
+                            </table>
+
+                        </div>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <div class="row">
+            <div class="col-md">
+                <div class="tile">
+                    <h3 class="tile-title">
+                        Eólicas (MW)
+                    </h3>
+                    <div class="tile-body">
+                        <div class="table-responsive-sm moreSmall sitr-table-gen">
+                            <!-- Units -->
+                            <table class="table table-hover table-striped table-sm sitr-gen-group">
+                                <tbody>
+
+                                    <tr><td><span>Marañón GGC1</span></td><td><span style="color:#222" ;="">13.60</span></td></tr>
+                                    <tr class="sitr-alt-row"><td><span>Nvo. Chagres I GGC1</span></td><td><span style="color:#222" ;="">6.50</span></td></tr>
+                                    <tr><td><span>Nvo. Chagres I GGC2</span></td><td><span style="color:#222" ;="">7.90</span></td></tr>
+                                    <tr class="sitr-alt-row"><td><span>Nvo. Chagres I GGC3</span></td><td><span style="color:#222" ;="">3.60</span></td></tr>
+                                    <tr><td><span>Nvo. Chagres II GGC1</span></td><td><span style="color:#222" ;="">6.70</span></td></tr>
+                                    <tr class="sitr-alt-row"><td><span>Nvo. Chagres II GGC2</span></td><td><span style="color:#222" ;="">15.50</span></td></tr>
+                                    <tr><td><span>Nvo. Chagres II GGC3</span></td><td><span style="color:#222" ;="">9.60</span></td></tr>
+                                    <tr class="sitr-alt-row"><td><span>Portobelo GGC1</span></td><td><span style="color:#222" ;="">11.30</span></td></tr>
+                                    <tr><td><span>R. Vientos I GGC1</span></td><td><span style="color:#222" ;="">16.70</span></td></tr>
+                                    <tr class="sitr-alt-row"><td><span>R. Vientos I GGC2</span></td><td><span style="color:#222" ;="">14.00</span></td></tr>
+                                    <tr><td><span>R. Vientos II GGC1</span></td><td><span style="color:#222" ;="">9.50</span></td></tr>
+                                    <tr class="sitr-alt-row"><td><span>R. Vientos II GGC2</span></td><td><span style="color:#222" ;="">10.80</span></td></tr>
+
+                                </tbody>
+                            </table>
+                        </div>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+
+
+        <div class="row">
+            <div class="col-md">
+                <div class="tile">
+                    <h3 class="tile-title">
+                        Biogás (MW)
+                    </h3>
+                    <div class="tile-body">
+                        <!-- Biogas -->
+                        <!-- Units -->
+                        <div class="table-responsive-sm moreSmall sitr-table-gen">
+                            <table class="table table-hover table-striped table-sm sitr-gen-group">
+                                <tbody>
+
+                                    <tr><td><span>Cerro Patacón</span></td><td><span style="color:#222" ;="">2.70</span></td></tr>
+
+
+                                </tbody>
+                            </table>
+
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <div class="row pt-1 my-md-2 pt-md-5">
+            <div class="col-md-4 text-center">
+                <a href="http://www.cnd.com.pa/" target="_blank"><img class="mb-2" src="PA_nominal_generation_files/LogoPlanoCNDE.png" alt="" width="150" height="150"></a>
+            </div>
+            <div class="col-md-7 py-3 px-lg-5">
+                <ul class="list-unstyled text-small text-justify footerCND">
+                    <li>
+                        <small>
+                            “Por mandato de lo establecido en la Ley No.
+ 6 de 1997, se pone a disposición de los interesados la información 
+contenida en este sitio, para su utilización por cualquier medio legal, 
+pero su uso deberá citar la fuente: EMPRESA DE TRANSMISIÓN ELÉCTRICA, 
+S.A. (ETESA). Nuestra empresa no se hace responsable de ningún error, 
+omisión, interpretación, pérdidas o daños que resulten de la utilización
+ de la información o material contenidos en este sitio, por parte de 
+usuarios, visitantes o terceras personas y su uso indebido y sin 
+confirmar, estará sujeto a sanciones penales (Artículos 289, 290 y 291 
+del Código Penal) y/o administrativas. Además, en algunos casos que les 
+sea aplicable, dicha información puede ser actualizada por ETESA, para 
+corregir errores o imprecisiones”.
+                        </small>
+                    </li>
+                    <li><small>Declaración de Privacidad © <span class="pace" id="year">2021</span> ETESA - Todos los Derechos Reservados.</small></li>
+                </ul>
+            </div>
+        </div>
+
+    </main>
+    <!-- Essential javascripts for application to work-->
+    <script src="PA_nominal_generation_files/jquery.js"></script>
+    <script src="PA_nominal_generation_files/popper.js"></script>
+    <script src="PA_nominal_generation_files/bootstrap.js"></script>
+
+    <script src="PA_nominal_generation_files/main.js"></script>
+
+    <script defer="defer" src="PA_nominal_generation_files/scriptsnew.js"></script>
+
+    <script src="PA_nominal_generation_files/echarts.js"></script>
+
+    <script>
+        var localPie = [{name:"Hídrica 421.84 (27.32%)",value:421.84,color:"#99ccee"},{name:"Térmica 741.51 (48.02%)",value:741.51,color:"#ee8822"},{name:"Solar 262.76 (17.02%)",value:262.76,color:"#ffff00"},{name:"Eólica 115.40 (7.47%)",value:115.4,color:"#ceceff"},{name:"Biogás 2.70 (0.17%)",value:2.7,color:"#72bf72"}];
+        var localPie2 = [{name:"Renovable 802.70 (51.98%)",value:802.7,color:"#98FB98"},{name:"Térmica 741.51 (48.02%)",value:741.51,color:"#ee8822"}];
+    </script>
+
+    <script>
+        // Initialization
+        // Execute locally first
+        $(document).ready(function () {
+            sitr.initialize(false);
+            //localExecutionEnergy();
+            //localExecutionGen();
+
+            sitr.getData(sitr.dataSource.gen, sitr.fillGenData);
+            sitr.getData(sitr.dataSource.flow, sitr.fillMsg);
+
+        });
+
+        function localExecutionEnergy() {
+
+            var myEnergyPieChart = echarts.init(document.getElementById('sitr-energy-pie'));
+
+            var localChartData = [];
+            var localColorChartData = [];
+            var localNameChartData = [];
+
+            // Chart
+            $.each(localPie2, function () {
+                localChartData.push({
+                    value: this.value,
+                    name: this.name
+                });
+                localColorChartData.push(
+                    this.color);
+                localNameChartData.push(this.name);
+
+            });
+
+            option = {
+                tooltip: {
+                    position: 'bottom',
+                    trigger: 'item',
+                    formatter: '{b}'
+                },
+                legend: {
+                    position: 'inside',
+                    orient: 'vertical',
+                    left: 10,
+                    data: localNameChartData
+                },
+                series: [{
+                    name: 'Energía Renovable vs. Energía Térmica',
+                    type: 'pie',
+                    radius: ['40%', '50%'],
+                    center: ['50%', '60%'],
+                    avoidLabelOverlap: false,
+                    data: localChartData,
+                    color: localColorChartData,
+                    label: {
+                        show: false,
+                        position: 'center',
+                        formatter: '{b}',
+                        alignTo: 'labelLine',
+                        bleedMargin: 5
+                    },
+                    emphasis: {
+                        label: {
+                            show: false,
+                            color: '#c7dcfb',
+                            fontSize: '27',
+                            fontWeight: 'bold',
+                            textBorderColor: '#d9eaee',
+                            textShadowColor: '#778496',
+                            textShadowBlur: 2,
+                            textShadowOffsetY: 3,
+                            textShadowOffsetX: 1
+                        },
+                        itemStyle: {
+                            shadowBlur: 10,
+                            shadowOffsetX: 0,
+                            shadowColor: 'rgba(0, 0, 0, 0.5)'
+                        },
+                        labelLine: {
+                            show: false
+                        }
+                    }
+                }]
+            };
+
+            // use configuration item and data specified to show chart
+            myEnergyPieChart.setOption(option);
+        }
+
+        function localExecutionGen() {
+            var myGenPieChart = echarts.init(document.getElementById('sitr-gen-pie'));
+
+            var localChartData = [];
+            var localColorChartData = [];
+            var localNameChartData = [];
+
+            // Chart
+            $.each(localPie, function () {
+                localChartData.push({
+                    value: this.value,
+                    name: this.name
+                });
+                localColorChartData.push(
+                    this.color);
+                localNameChartData.push(this.name);
+            });
+
+            option = {
+                tooltip: {
+                    position: 'inside',
+                    trigger: 'item',
+                    formatter: '{b}'
+                },
+                legend: {
+                    orient: 'vertical',
+                    left: 10,
+                    data: localNameChartData
+                },
+                series: [{
+                    name: 'Tipos de Generación',
+                    type: 'pie',
+                    radius: '50%',
+                    center: ['50%', '65%'],
+                    data: localChartData,
+                    color: localColorChartData,
+                    label: {
+                        show: false,
+                        formatter: '{b}',
+                        position: 'outer',
+                        alignTo: 'labelLine',
+                        bleedMargin: 5
+                    },
+                    emphasis: {
+                        itemStyle: {
+                            shadowBlur: 10,
+                            shadowOffsetX: 0,
+                            shadowColor: 'rgba(0, 0, 0, 0.5)'
+                        }
+                    }
+                }]
+            };
+
+            // use configuration item and data specified to show chart
+            myGenPieChart.setOption(option);
+        }
+
+    </script>
+
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/parsers/test/test_PA.py b/parsers/test/test_PA.py
new file mode 100644
--- /dev/null
+++ b/parsers/test/test_PA.py
@@ -0,0 +1,45 @@
+import unittest
+
+import arrow
+import requests
+import requests_mock
+from freezegun import freeze_time
+from pkg_resources import resource_string
+
+from parsers import PA
+
+
+class TestFetchProduction(unittest.TestCase):
+    def setUp(self):
+        self.adapter = requests_mock.Adapter()
+        self.session = requests.Session()
+        self.session.mount('https://', self.adapter)
+
+    @freeze_time('2021-12-30 09:58:40', tz_offset=-5)
+    def test_nominal_response_uses_timestamp_from_page(self):
+        expected_datetime = arrow.get('2021-12-30T09:58:37-05:00').datetime
+        nominal_response = resource_string('parsers.test.mocks', 'PA_nominal_generation.html')
+        self.adapter.register_uri('GET', PA.PRODUCTION_URL, content=nominal_response, status_code=200)
+        result = PA.fetch_production(session=self.session)
+        self.assertEqual(result['datetime'], expected_datetime)
+
+    @freeze_time('2021-12-30 09:57:47', tz_offset=-5)
+    def test_nominal_response_maps_to_electricitymap_fuels(self):
+        expected_production = {'biomass': 2.75,
+                               'coal': 149.6,
+                               'gas': 355.88,
+                               'geothermal': 0.0,
+                               'hydro': 421.84,
+                               'nuclear': 0.0,
+                               'oil': 238.19999999999996,
+                               'solar': 262.76,
+                               'unknown': 0,
+                               'wind': 115.4}
+        nominal_response = resource_string('parsers.test.mocks', 'PA_nominal_generation.html')
+        self.adapter.register_uri('GET', PA.PRODUCTION_URL, content=nominal_response, status_code=200)
+        result = PA.fetch_production(session=self.session)
+        self.assertEqual(result['production'], expected_production)
+
+
+if __name__ == '__main__':
+    unittest.main()