Вы находитесь на странице: 1из 9

Generacin de archivos de

salida MHT formato POA PM y


formato Poltica Comercial
Antecedentes Generales y Objetivos
Debido a la dificultad de manejo de los archivos de salida del modelo
multiembalse MHT, se pens en una solucin para facilitar el manejo de
estos mismos, en especial de los resultados mensuales esperados y
anuales esperados (archivos *.anu y *.men).
Para la elaboracin del presupuesto POA-PM se extraen de los archivos anu
y men:

Informacin Fsica y Monetaria de las empresas de inters.


Costos Marginales de todas las barras del sistema.
Generacin de las centrales de inters.

Hasta la fecha la obtencin de estos datos se haca pegando los archivos de


texto plano anu y men en un archivo Excel con formato prestablecido
ajustando las filas de forma conveniente para que coincidieran cada fila de
CMgs por barras, informacin de empresas de inters y generacin de las
centrales de inters. Este proceso toma un tiempo considerable, sobre todo
cuando se agregan nuevas empresas pues el MHT cambia nuevamente la
posicin de las empresas. Adems, el archivo de datos mensuales (*.men)
no cabe en una hoja de Excel estndar (65.536 filas), teniendo que poner
alguna informacin de este archivo en una hoja adicional.
El objetivo planteado para la primera etapa fue desarrollar una herramienta
que automticamente fuese capaz de extraer esta informacin y la pudiese
escribir en un archivo de Excel (*.xls) con un formato compatible con el POAPM.
En la elaboracin de la poltica comercial se utilizan las salidas por
secuencia del modelo, hasta ahora el proceso se hace de manera bastante
automtica por medio de una Macro de Visual Basic for Application (VBA)
que entrega archivos separados por coma CSV, pero tiene el inconveniente
de tener que pasar gran cantidad de informacin (cerca de 1,5 GB) y el
proceso debe ser corrido en ambiente Windows. Por lo tanto, para la
segunda etapa se plante el objetivo de hacer el proceso de generacin de
los archivos separados por coma en el mismo servidor que corre el MHT
para aprovechar la capacidad de clculo y evitar el traspaso masivo de
informacin.

Creacin de archivo .xls formato POA-PM


Metodologa Empleada
Se escogi Python como lenguaje de programacin, pues tiene licencia de
cdigo abierto y es multiplataforma (compatible con Windows y Linux),
adems el interprete de Python viene incluida en las distribuciones de Linux.
Por otro lado posee gran cantidad de paquetes con herramientas ya
desarrolladas muy tiles para cumplir con el objetivo, por ejemplo el
paquete xlwt que permite escribir directamente en Python archivos xls y
tambin wxPython que permite generar interfaces grficas de usuario.
Para permitir reutilizar esta herramienta y ampliar el alcance de la misma,
se decidi implementar un modelo de objetos que refleje en buena medida
los elementos fsicos y comerciales de un sistema elctrico, es por esto que
se crearon las siguientes clases:

Central
Barra
Lnea
Cliente
Empresa

Y tambin relaciones entre los distintos objetos, por ejemplo cada instancia
de la clase Central pertenece a una instancia de la clase Empresa, cada
instancia de la clase Cliente es suministrado por una instancia de la clase
Empresa, etc.
Cada uno de estos objetos tiene propiedades, por ejemplo el objeto Central
tiene una propiedad que se llama generacin, que es un arreglo donde cada
fila est compuesta por 3 datos: ao, mes y generacin. La forma de acceso
a
la
propiedad
es:
Objeto.propiedad
en
el
ejemplo
sera
Central.generacin.
Este modelo de objeto hace que las relaciones entre objetos parezcan ms
intuitivas pues reflejan las interacciones que suceden en un sistema
elctrico real.
Inicialmente se plante la idea de leer directamente los archivos de salida
del MHT anu y men, etapa en la que se logr hasta aproximadamente un
70% de avance. Luego se tuvo una reunin con la Subgerencia de Modelos
que nos presentaron un desarrollo, llamado baseMHT, que lee los datos del
MHT (de entrada y salida) y los pasa a una base de datos SQLite. En este
punto se decidi cambiar la metodologa de trabajo, utilizando el desarrollo
baseMHT para la creacin de la base de datos, para luego, a travs de
Python (y el paquete PySQLite) conectarse a la base de datos y realizar
consultas en lenguaje SQL para crear los objetos correspondientes a nuestro
modelo de datos.

Una vez creados los objetos y llenado sus propiedades (datos referentes al
objeto) la siguiente etapa consiste en volcar los datos al archivo Excel
compatible con el formato del POA-PM, para esto se utiliz el paquete de
Python llamado xlwt que posee herramientas para crear Workbooks,
WorkSheet y escribir sobre las hojas de clculo. El formato de POA-PM
consiste en hacer una hoja por Empresa de Inters, (las empresas quedan
definidas en los archivos de entrada del MHT y pueden representar
empresas de generacin, empresas de suministro o mixtas) con los datos
agrupados de forma anual. Dado que en el modelo de datos se utilizaron
datos mensuales, adems de mostrar los datos de forma anual se agregaron
los datos mensuales para poder conocer en mayor detalle las variables de
cada una de las empresas. Los datos anuales se obtienen por medio de
frmulas de Excel a partir de los datos mensuales, cabe destacar que tanto
datos mensuales como frmulas se escriben a travs de Python.

Interfaz de usuario
Una vez resuelta la forma de escritura de las planillas Excel el paso
siguiente fue definir la interfaz de usuario. En primera instancia se pens
hacer una interfaz tipo consola en donde los datos de entrada aportados por
el usuario (por ejemplo: ubicacin de la base de datos, definicin empresas
a cargar en el archivo Excel de salida, etc. ) se obtuvieran a partir de
archivos csv y respuestas del usuario a preguntas hechas a travs de la
consola. Se descart esta posibilidad pues la idea era hacer la creacin del
archivo formato POA-PM un proceso menos tedioso al actual, por lo que se
prob implementar una interfaz grfica donde el proceso de obtencin de
datos de entrada se hiciera lo ms natural posible. Para esto se utiliz el
paquete grfico wxPython.
La interfaz de usuario tiene la siguiente apariencia:

Obtencin de base de datos y ruta de acceso


La aplicacin baseMHT funciona en el servidor, por lo tanto la obtencin de
la base de datos se debe hacer a travs de la consola o se puede generar al

correr el MHT en el servidor , a travs de la opcin que ltimamente se


agreg.
Se debe pasar la base de datos con nombre del tipo nombre_caso.db y el
archivo *.dem correspondiente a una carpeta accesible desde Windows. El
archivo *.dem es necesario, pues en la base de datos se excluyeron los
datos fsicos mensuales por empresa, si se agregaran estos datos a la base
de datos no sera necesario pasar este archivo.
Para darle a la interfaz la ruta de la base de datos, se debe presionar el
siguiente botn:

O a travs del Men: Archivo -> Seleccionar BD


Se desplegar un men de seleccin de archivo tpico de Windows, ah se
debe dar la ruta con la base de datos a cargar:

Seleccin de Empresas a cargar


Una vez cargada la base de datos se deben seleccionar que empresas sern
incluidas en el archivo formato POA-PM, para esto se debe apretar el
siguiente botn:

O a travs del men: Archivo -> Seleccionar Empresas


La interfaz para seleccionar las empresas se muestra a continuacin:

Una vez seleccionadas las empresas a incluir en el Margen, se debe guardar


la seleccin.
Ejecutar consultas
Para ejecutar las consultas SQL que permiten poblar de datos el modelo de
objetos basta con apretar el siguiente botn:

O a travs del men: Archivo -> Ejecutar Consultas


Exportar a Excel
Una vez realizadas las consultas, para exportar los resultados al formato
POA-PM, basta con apretar el siguiente botn:

O a travs del men: Archivo -> Exportar a Excel


Una vez exportado el archivo estar en el mismo directorio que la base de
datos con el nombre PM.xls.

Creacin de archivo csv formato Poltica Comercial


Metodologa Empleada
Para el clculo de la poltica comercial se necesita extraer informacin por
secuencia, lo que hace que la cantidad de datos sea bastante elevada, es
por esto que se opt por procesar los datos en el servidor, ya que este tiene
una capacidad de clculo mayor que los PCs de cada usuario.
Dado que el objetivo es aprovechar la capacidad de clculo del servidor,
adems de evitar el traspaso masivo de datos, se decidi generar los
archivos .csv requeridos para elaborar la poltica comercial a partir de la
aplicacin baseMHT.
Dado que las consultas se hacen en el mismo servidor, la interfaz grfica
para esta solucin no es opcin, por lo que se decidi que las variables de
entrada sean suministradas por medio de archivos de texto. Los datos que
se deben definir son:

Lineas a las que calcular Ingresos Tarifarios por secuencia


Barras a extraer CMgs por secuencia
Empresas a las que calcular el Margen por secuencia
Centrales a las que extraer Generacin por secuencia

Dado que las Lneas y Barras a extraer informacin por secuencia


permanece constante, se opt por definir los conjuntos de Lneas y Barras
en el archivo en el que se elabora la consulta ITL.sql o CMG.sql segn
corresponda. Adems, las Centrales de inters, sern las pertenecientes a
las Empresas de Inters, por lo tanto se carga la informacin de Centrales
que pertenezcan a las Empresas definidas.

Seleccin de Empresas a cargar


La seleccin de Empresas a cargar se hace por medio del archivo
Empresa_MAR.csv, que es un archivo separado por coma, sin encabezado
que tiene la siguiente estructura:
Empresa, Holding, Comentario, MAR, MVP
Lo relevante es que las empresas de inters tengan un 1 en la variable
correspondiente a MAR, puesto que as se define a que empresas se le
cargar la informacin por secuencia.
Obtener archivos por secuencia
Para poder obtener los archivos se deben pasar a la carpeta que contiene el
caso MHT en el servidor los siguientes archivos:

ITL.sql
CMG.sql
MAR.sql
GEN.sql
Prepara_Tablas.sql
Empresa_MAR.csv
secuencia.bat

Adicionalmente se debe contar con una base de datos vaca en el directorio


de
usuario
llamado
base.db,
en
otras
palabras
el
archivo
/home/usuario/base.db debe existir, y debe ser una base vaca con
formato baseMHT.
Una vez los archivos estn en el servidor, se debe usar el comando .
secuencia.bat en el directorio del caso. Tal como se muestra a
continuacin:

Вам также может понравиться