| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- # -*- coding: utf-8 -*-
- # =============================================================================
- # Copyright (C) 2018 Mercados Electricos de Centroamérica. All rights reserved
- # =============================================================================
- """Crea las estructuras con numeración secuencial de buses, circuitos y nombres de circuitos
- """
- from numpy import array
- from numpy import zeros
- from utils.idx_brch import BUS_I, BUS_J, CKT
- from pandas import DataFrame
- def setbus(net):
- """Lee la información de la red y crea una serie con los códigos de nodos y su numeración correlativa.
- """
- b = net['bus_i'].append(net['bus_j']).drop_duplicates().sort_values()
- b = b.reset_index(drop=True)
- return b
- def setbranch(net, b):
- """Utiliza la información de la red, lod códigos de nodos y su numeración correlativa para generar un listado con
- de los circuitos de acuerdo a la numeración correlativo del nodo.
- """
- br = net.copy()
- for i in range(0, net.shape[0]):
- br.loc[i, 'bus_i'] = b[b == br['bus_i'][i]].index[0]
- br.loc[i, 'bus_j'] = b[b == br['bus_j'][i]].index[0]
- br = br.sort_values(['bus_i', 'bus_j'])
- return br.values
- def setvariable(variable):
- l=variable.shape[0]
- z=zeros(l)
- for i in range(0,variable.shape[0]):
- z[i]=variable[i]
- return z
- def setvariable_s(variable):
- (l,n)=variable.shape
- z=zeros((l,n))
- for i in range(0,l):
- for j in range(0,n):
- z[i,j]=variable.iloc[i,j]
- return z
- def setvariable_p(variable, n):
- z=zeros((n,5))
- m=0
- for j in range(0,n):
- for i in range(0,5):
- z[j,i]=variable[m]
- m=m+1
- return z
- def branchnames(b, br):
- """Devuelve un dataframe con los BUS I BUS J y CKT ordenados.
- """
- brnames_bi = []
- brnames_bj = []
- for i in range(0, br.shape[0]):
- brnames_bi.append("".join([str(b[br[i, BUS_I]])]))
- brnames_bj.append("".join([str(b[br[i, BUS_J]])]))
- brnames=DataFrame()
- brnames['BUS I']=brnames_bi
- brnames['BUS J']=brnames_bj
- brnames['CKT']=br[:,2]
- brnames.loc[i,'Total']=0
- for i in range(0, brnames.shape[0]):
- brnames.loc[i,'Total']=brnames.loc[i,'BUS I']+"-"+brnames.loc[i,'BUS J']+"-"+brnames.loc[i,'CKT']
- return brnames
- def set_periodo(numero,periodo):
- """Devuelve una matriz con el periodo para usar en los array de rtr, iep y pexantes
- """
- z=zeros(numero)
- for i in range(0,numero):
- z[i]=periodo
- return z
- def set_dgnacional(bus,dg):
- """Devuelve un dataframe con los despachos nacionales ordenados por nodos
- """
- bus1=DataFrame()
- bus1['nodos']=bus
- bus1['Generacion']=0
- bus1['Demanda']=0
- for i in range(0,len(bus)):
- for j in range(0,len(dg)):
- if bus1.iat[i,0]==dg.iat[j,0]:
- bus1.loc[i,'Generacion']=dg.iat[j,2]
- bus1.loc[i,'Demanda']=dg.iat[j,3]
- break
- return bus1
|