Minuta interfaz MHT

9
Generación de archivos de salida MHT formato POA – PM y formato Política Comercial Antecedentes Generales y Objetivos Debido a la dificultad de manejo de los archivos de salida del modelo multiembalse MHT, se pensó en una solución para facilitar el manejo de estos mismos, en especial de los resultados mensuales esperados y anuales esperados (archivos *.anu y *.men). Para la elaboración del presupuesto POA-PM se extraen de los archivos anu y men: Información Física y Monetaria de las empresas de interés. Costos Marginales de todas las barras del sistema. Generación de las centrales de interés. Hasta la fecha la obtención de estos datos se hacía 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, información de empresas de interés y generación de las centrales de interés. Este proceso toma un tiempo considerable, sobre todo cuando se agregan nuevas empresas pues el MHT cambia nuevamente la posición de las empresas. Además, el archivo de datos mensuales (*.men) no cabe en una hoja de Excel estándar (65.536 filas), teniendo que poner alguna información de este archivo en una hoja adicional. El objetivo planteado para la primera etapa fue desarrollar una herramienta que automáticamente fuese capaz de extraer esta información y la pudiese escribir en un archivo de Excel (*.xls) con un formato compatible con el POA-PM.

description

programado usando wxpython

Transcript of Minuta interfaz MHT

Generacin de archivos de salida MHT formato POA PM y formato Poltica ComercialAntecedentes Generales y ObjetivosDebido 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 POA-PM.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 cargarUna 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 EmpleadaPara 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: