# -*- coding: utf-8 -*- # ============================================================================= # Copyright (C) 2018 Mercados Electricos de Centroamérica. All rights reserved # ============================================================================= """Crea limites de trasnferencia entre área de Control """ from numpy import argwhere from pandas import read_excel # Se definen las líneas que componenn las interconexiones entre las areas de # control __GUAHON = ['1710-3190-1'] __GUAELS =['1126-29162-1', '1124-29161-1'] __ELSHON = ['28181-29181-1', '28181-29182-2'] __HONNIC = ['3301-4411-1', '3310-4407-1'] __NICCRI = ['4406-4412-1', '4750-4408-1'] __CRIPAN = ['6500-56050-1', '6400-58350-1', '6000-56050-1'] #__ELSHON_IND_28181_29182=['28181-29181-1', '28181-29182-2'] #__IMP_TOT_ELSIND28181_29182=['28181-29181-1', '28181-29182-2'] #__IMP_TOT_HONIND28181_29182=['28181-29181-1', '28181-29182-2'] __EXP_TOT_GUA_NS = [] __IMP_TOT_SAL = [] __IMP_TOT_HON = [] __IMP_TOT_NIC =[] __IMP_TOT_CRI =[] __IMP_TOT_PAN = [] #__CRIPAN_IND_56050_6000=['6500-56050-1', '6400-58350-1', '6000-56050-1'] #__IMP_TOT_CRIIND_56050_6000=['6500-56050-1', '6400-58350-1', '6000-56050-1'] #__IMP_TOT_PANIND_56050_6000=['6500-56050-1', '6400-58350-1', '6000-56050-1'] __INTER = {'GUAHON': __GUAHON, 'GUAELS':__GUAELS, 'ELSHON': __ELSHON, #'ELSHON_IND_28181_29182': __ELSHON_IND_28181_29182, #'IMP_TOT_ELSIND28181_29182': __IMP_TOT_ELSIND28181_29182, #'IMP_TOT_HONIND28181_29182':__IMP_TOT_HONIND28181_29182, #'CRIPAN_IND_56050_6000':__CRIPAN_IND_56050_6000, #'IMP_TOT_CRIIND_56050_6000':__IMP_TOT_CRIIND_56050_6000, #'IMP_TOT_PANIND_56050_6000':__IMP_TOT_PANIND_56050_6000, 'HONNIC': __HONNIC, 'NICCRI': __NICCRI, 'CRIPAN': __CRIPAN, 'EXP_TOT_GUA_NS': __EXP_TOT_GUA_NS, 'IMP_TOT_SAL': __IMP_TOT_SAL, 'IMP_TOT_HON': __IMP_TOT_HON, 'IMP_TOT_NIC': __IMP_TOT_NIC, 'IMP_TOT_CRI': __IMP_TOT_CRI, 'IMP_TOT_PAN': __IMP_TOT_PAN} def linmct(brnames): """Construye un diccionario con el indice que corresponde al nombre del circuito o linea que copone la interconexión entre las áreas de control """ lmct = {} for item in __INTER: lmct[item] = [] for i in __INTER[item]: try: l = int(argwhere(brnames == i)) lmct[item].append(l) except Exception: 0 return lmct def readmct(file): """Lee la información de Máximas Capacidades de Trasnferencia del archivo Excel del caso a resolver. """ mct = read_excel(file, 'mct', index_col=[1,2,3]) return mct def set_dir_flujo(): """Consruye un diccionario en el cual se define la dirección del circuito que compone la interconexión. En el caso de la interconexión entre Costa Rica y Panamá, las líneas se encuentran definidas en el sentido Sur-Norte, por lo que su dirección de flujo corresponde a -1 """ d = {} for key in __INTER.keys(): if key == 'CRIPAN': d[key] = -1 elif key == 'IMP_TOT_HON': d[key] = -1 elif key == 'IMP_TOT_PAN': d[key] = -1 elif key == 'EXP_TOT_GUA_NS': d[key] = -1 elif key == 'IMP_TOT_HONIND28181_29182': d[key] = -1 elif key == 'CRIPAN_IND_56050_6000': d[key] = -1 elif key == 'IMP_TOT_CRIIND_56050_6000': d[key] = -1 elif key == 'IMP_TOT_PANIND_56050_6000': d[key] = -1 else: d[key] = 1 return d