create.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -*- coding: utf-8 -*-
  2. # =============================================================================
  3. # Copyright (C) 2018 Mercados Electricos de Centroamérica. All rights reserved
  4. # =============================================================================
  5. """Crea las estructuras con numeración secuencial de buses, circuitos y nombres de circuitos
  6. """
  7. from numpy import array
  8. from simsdt.utils.idx_brch import BUS_I, BUS_J, CKT
  9. def setbus(net):
  10. """Lee la información de la red y crea una serie con los códigos de nodos y su numeración correlativa.
  11. """
  12. b = net['bus_i'].append(net['bus_j']).drop_duplicates().sort_values()
  13. b = b.reset_index(drop=True)
  14. return b
  15. def setbranch(net, b):
  16. """Utiliza la información de la red, lod códigos de nodos y su numeración correlativa para generar un listado con
  17. de los circuitos de acuerdo a la numeración correlativo del nodo.
  18. """
  19. br = net.copy()
  20. for i in range(0, net.shape[0]):
  21. br.loc[i, 'bus_i'] = b[b == br['bus_i'][i]].index[0]
  22. br.loc[i, 'bus_j'] = b[b == br['bus_j'][i]].index[0]
  23. br = br.sort_values(['bus_i', 'bus_j'])
  24. return br.values
  25. def branchnames(b, br):
  26. """Devuelve un array con los nombres de los circuitos.
  27. """
  28. brnames = []
  29. for i in range(0, br.shape[0]):
  30. brnames.append("-".join(
  31. [str(b.iloc[br[i, BUS_I]]),
  32. str(b.iloc[br[i, BUS_J]]),
  33. str(br[i, CKT])]))
  34. brnames = array(brnames)
  35. return brnames