makeMCT.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # -*- coding: utf-8 -*-
  2. # =============================================================================
  3. # Copyright (C) 2018 Mercados Electricos de Centroamérica. All rights reserved
  4. # =============================================================================
  5. """Crea limites de trasnferencia entre área de Control
  6. """
  7. from numpy import argwhere
  8. from pandas import read_excel
  9. # Se definen las líneas que componenn las interconexiones entre las areas de
  10. # control
  11. __GUAESA = ['1126-29162-1', '1124-29161-1']
  12. __GUAHON = ['1710-3190-1']
  13. __ESAHON = ['28181-29181-1', '28181-29182-2']
  14. __HONNIC = ['3301-4411-1', '3310-4407-1']
  15. __NICCRC = ['4412-50050-1', '4408-50000-1']
  16. __CRCPAN = ['6500-56050-1', '6400-58350-1', '6000-56050-1']
  17. __INTER = {'GUAESA': __GUAESA,
  18. 'GUAHON': __GUAHON,
  19. 'ESAHON': __ESAHON,
  20. 'HONNIC': __HONNIC,
  21. 'NICCRC': __NICCRC,
  22. 'CRCPAN': __CRCPAN}
  23. def linmct(brnames):
  24. """Construye un diccionario con el indice que corresponde al nombre del
  25. circuito o linea que copone la interconexión entre las áreas de control
  26. """
  27. lmct = {}
  28. for item in __INTER:
  29. lmct[item] = []
  30. for i in __INTER[item]:
  31. l = int(argwhere(brnames == i))
  32. lmct[item].append(l)
  33. return lmct
  34. def readmct(file):
  35. """Lee la información de Máximas Capacidades de Trasnferencia del archivo
  36. Excel del caso a resolver.
  37. """
  38. mct = read_excel(file, 'mct', index_col=[0, 1])
  39. return mct
  40. def set_dir_flujo():
  41. """Consruye un diccionario en el cual se define la dirección del circuito
  42. que compone la interconexión.
  43. En el caso de la interconexión entre Costa Rica y Panamá, las líneas se
  44. encuentran definidas en el sentido Sur-Norte, por lo que su dirección de
  45. flujo corresponde a -1
  46. """
  47. d = {}
  48. for key in __INTER.keys():
  49. if key == 'CRCPAN':
  50. d[key] = -1
  51. else:
  52. d[key] = 1
  53. return d