Organización de la información correspondiente a la...

48
Organización de la información correspondiente a la Red de Nivelación Nacional en el GIT de Geodesia del IGAC Informe final de pasantía Sergio Daniel López Pinzón Diciembre de 2017 Universidad Distrital Francisco José de Caldas Facultad de Medio Ambiente y Recursos Naturales Ingeniería Topográfica Bogotá D. C.

Transcript of Organización de la información correspondiente a la...

Organización de la información correspondiente a la Red de Nivelación

Nacional en el GIT de Geodesia del IGAC

Informe final de pasantía

Sergio Daniel López Pinzón

Diciembre de 2017

Universidad Distrital Francisco José de Caldas

Facultad de Medio Ambiente y Recursos Naturales

Ingeniería Topográfica

Bogotá D. C.

ii Agradecimientos

A los profesores de la Universidad Distrital que hicieron parte de mi proceso formativo

por conducirme por el camino del conocimiento y por exhortarme, directa o indirectamente, a

dar firmeza de manera constante a mi formación intelectual.

A los funcionarios del GIT de geodesia por permitirme esta oportunidad, y especialmente a

quienes acompañaron la labor desempeñada por su confianza, gratitud y disposición para

atender cualquier requerimiento.

iii Resumen

En el periodo comprendido entre el 19 de agosto y el 13 de noviembre del presente año,

se desarrolló un ejercicio teórico-práctico, tendiente a organizar la información de la Red de

Nivelación Nacional para el grupo interno de trabajo –GIT- de geodesia en el Instituto

Geográfico Agustín Codazzi –IGAC- . El ejercicio al que se alude ostenta un carácter académico

y de inserción al quehacer profesional del Ingeniero Topógrafo, pues este se desarrolló

asumiendo las características propias de un trabajo de pasantía, modalidad de trabajo de grado

aquella, que fue adoptada por el autor del presente texto para optar al título del profesional en

mención.

El trabajo fue guiado a nivel interno por diferentes funcionarios del IGAC quienes fungen

como líderes del proyecto de nivelación en el GIT de geodesia. Las actividades que se

establecieron desde su dirección, fueron variando conforme se cumplían diferentes tareas

fundamentales para la consecución del objetivo general.

Siguiendo la lógica descrita, se obtuvo en una primera instancia, la transcripción a

formato digital de los extractos de nivelación de 10 líneas cuyos archivos estaban en formato

análogo, así como la transcripción a digital de 2 libros con información de cotas de puntos de

diferentes líneas de nivelación. Toda esta información concernía a datos obtenidos en el plan de

nivelación 1951-1999.

Para una segunda instancia, se obtuvo por medio de la construcción de una macro, la

estructuración del extracto de nivelación de 4 circuitos de la red, con miras a que las alturas

geométricas de los puntos que conforman cada circuito fueran calculadas.

Simultáneamente con esa actividad se estructuró junto con otro compañero pasante, la

que será la Base de Datos Geográfica –GDB- de la Red de Nivelación Nacional. Para este

iv

Propósito se diseñó un programa en Python que dinamizara el trabajo y con esto se pudo

colaborar en la creación y posterior incorporación a la GDB de, 6 shapes de tipo línea y 6 shapes

de tipo punto, los que representan respectivamente, la dirección que sigue una determinada línea

de nivelación y los puntos geodésicos que conforman una línea o circuito de nivelación. Esta

última información correspondía a datos de nivelación obtenidos desde el 2000 hasta el presente

año.

v Tabla de Contenidos

Capítulo 1 Introducción .................................................................................................................. 1

Capítulo 2 Objetivos ....................................................................................................................... 3

Objetivos específicos .................................................................................................................. 3

Capítulo 3 Desarrollo ...................................................................................................................... 4

Recuperación de información ..................................................................................................... 4

Recuperación de extractos de nivelación. ............................................................................... 4

Recuperación de libros. ........................................................................................................... 6

Gestión de información de nivelación ........................................................................................ 7

Estructuración de extractos de circuitos. ................................................................................ 7

Construcción de la GDB de la Red de Nivelación Nacional. ................................................. 9

Creación de los shapes de tipo línea ................................................................................... 9

Creación de los shapes de tipo punto. ............................................................................... 10

Capítulo 4 Resultados obtenidos ................................................................................................... 13

Recuperación de información ................................................................................................... 13

Gestión de información de nivelación ...................................................................................... 14

Capítulo 5 Análisis de resultados .................................................................................................. 19

Extractos estructurados ............................................................................................................. 19

Shapes de líneas construidos ..................................................................................................... 21

Shapes de puntos construidos ................................................................................................... 22

Base de datos geográfica ........................................................................................................... 23

Modelo conceptual. ............................................................................................................... 24

vi

Esquema físico. ..................................................................................................................... 24

Capítulo 6 Evaluación de resultados ............................................................................................. 28

Recuperación de información ................................................................................................... 28

Gestión de información de nivelación ...................................................................................... 28

Creación de shapes de tipo línea. .......................................................................................... 28

Estructuración de extractos y creación de shapes de tipo punto. .......................................... 29

Capítulo 7 Conclusiones y recomendaciones ............................................................................... 33

Anexos .......................................................................................................................................... 36

Anexo A. Programa para extracción de entidades de tipo punto. ............................................. 36

vii Lista de tablas

Tabla 1 Detalle de información de los extractos recuperados ...................................................... 14

Tabla 2 Detalle de información de los extractos estructurados .................................................... 15

Tabla 3 Detalle de información de todos los shapes construidos ................................................. 18

Tabla 4 Resumen de estructuración de extractos .......................................................................... 19

Tabla 5 Resumen de construcción de shapes de tipo línea ........................................................... 21

Tabla 6 Resumen de construcción de shapes de tipo punto .......................................................... 22

Tabla 7 Documentación de los atributos de la entidad línea ........................................................ 25

Tabla 8 Documentación de los atributos de la entidad punto ....................................................... 26

viii Lista de figuras

Figura 1. Ejemplo de extracto de nivelación en formato análogo .................................................. 5

Figura 2. Formato de extracto de nivelación actualizado ............................................................... 6

Figura 3. Ejemplo de producto obtenido tras la ejecución del script de Python ........................... 12

Figura 4. Estructura de la GDB..................................................................................................... 15

Figura 5. Shapes de tipo línea construidos.................................................................................... 16

Figura 6. Shapes de tipo punto construidos .................................................................................. 17

Figura 7. Porcentaje de contribución a la estructuración de extractos .......................................... 20

Figura 8. Porcentaje de contribución a la construcción de shapes de tipo línea ........................... 21

Figura 9. Porcentaje de contribución a la construcción de shapes de tipo punto .......................... 23

Figura 10. Modelo entidad-relación de la GDB............................................................................ 24

Figura 11. Diagrama de procesos para la gestión de la información ............................................ 30

1

Capítulo 1

Introducción

En el presente informe se expondrán las labores que se desarrollaron en el marco

de la pasantía llevada a cabo en el GIT de Geodesia del IGAC. La justificación de esta

actividad viene dada por la necesidad que presentaba el GIT, de contar con colaboradores

para organizar una parte sustancial de la información que está a cargo del proyecto de

nivelación. Esta necesidad convergiría con la intención del estudiante, autor de este texto,

de desarrollar su trabajo de grado en la modalidad de pasantía y redundaría finalmente, en

la vinculación de él al Instituto por medio de este proyecto.

Las labores delegadas para la pasantía, por parte de los líderes del proyecto de

nivelación, fueron variando conforme se cumplían, pero siempre estuvieron sujetas a la

consecución del objetivo general, el cual surge de la necesidad planteada. Es de aquí, que

se propusiera para la definición de dicho objetivo general, un concepto tan amplio como

‘organizar’- la información de la Red de Nivelación Nacional-; pues, cierto es, que el

enfoque bajo el cual se planteaban las actividades no era sino el que expone tal término.

Para mayor claridad: la diversidad de las tareas que se realizaron, surge debido a que

estas se establecían sobre la marcha, teniendo como única directriz, organizar la

información de la Red de Nivelación Nacional. De acuerdo con esto, es posible excusar la

falta de un cronograma de actividades estricto por cumplir, lo cual no significa ausencia

de rigor y ética profesional; por el contrario, manifiesta un entendimiento cabal por parte

del pasante y de sus superiores, de las necesidades del proyecto de nivelación y del GIT

de geodesia.

2

Visto desde una perspectiva macro, el trabajo realizado se divide en dos grandes

tareas que son mutuamente excluyentes, pero que, como ya se ha dicho, guardan relación

en su justificación porque ambas están dirigidas a dar mayor orden a la información que

maneja el proyecto de nivelación. Para conservar una estructura adecuada y comprensible

de este documento, se ha convenido denominarlas: Recuperación de información y

gestión de información de nivelación.

Este informe da cuenta en su tercer capítulo, de las formas en cómo se

desarrollaron esas dos tareas. Así mismo expone en el cuarto capítulo los resultados que

se obtuvieron para cada una. En el capítulo quinto se hace un análisis de estos resultados

y en el siguiente se describen los métodos que se utilizaron para validar su calidad.

Finalmente, en el último capítulo se presentan algunas conclusiones que se derivan de la

labor ejecutada y se proponen algunas recomendaciones para dar continuidad y mejorar el

trabajo realizado.

3

Capítulo 2

Objetivos

Contribuir en la organización de información concerniente a la Red de Nivelación

Nacional, la cual es administrada por el proyecto de nivelación del GIT de Geodesia del

IGAC.

Objetivos específicos

Recuperar información de archivos disponibles análogamente como formatos

escaneados y libros.

Estructurar un cierto número de extractos de nivelación, a fin de que puedan

utilizarse para calcular las alturas geométricas de los puntos que lo conforman y

para construir su respectivo shape.

Alimentar la GDB de la Red de Nivelación Nacional, creando un cierto número

de shapes de tipo punto y de tipo línea e incorporándolos a esta, luego de

efectuado el respectivo control de calidad para cada shape creado.

4

Capítulo 3

Desarrollo

El presente capítulo pretende exhibir el contexto que respecta a las tareas

solicitadas y a las formas y tiempos que fueron acogidos para el desarrollo de estas. Debe

entonces, iniciarse por reconocer la ausencia de un cronograma de actividades estricto

por cumplir, situación que no eximió el uso de tiempos para el control de las labores.

El desarrollo de la pasantía abarcó dos actividades elementales y mutuamente

excluyentes. La primera trató sobre la recuperación de información en formato análogo;

la segunda, sobre gestión de información para uso inmediato y estructuración de la GDB

de la Red de Nivelación Nacional.

Recuperación de información

La primera actividad que se delegó fue transcribir a digital información del plan

de nivelación 1951-1999, cuyos archivos estaban en formato análogo.

Esta tarea se ejecutó en un tiempo aproximado de un mes y su desarrollo se llevó

a cabo de manera itinerante conforme se iban recuperando los archivos; esto es, se

asignaba la recuperación de un archivo tal, tan pronto fuera este completamente

recuperado en digital, se asignaba otro archivo para la misma tarea.

La labor en cuestión comprendió dos tipos de recuperación que hacen posible una

mejor exposición de su desarrollo. Estas fueron: recuperación de extractos de nivelación

y recuperación de libros con información de cotas.

Recuperación de extractos de nivelación. Los extractos de nivelación son el

documento digital donde se registra, según el recorrido de una línea, la información de

5

desniveles entre los puntos que la conforman, así como otra información relevante sobre

nivelación. Este procedimiento de registro debe llevarse a cabo por parte de los

topógrafos encargados de realizar la nivelación geodésica de la línea.

Para los planes de nivelación ejecutados entre 1951 y 1999 no se contaba con esta

directriz, de forma tal que toda la información levantada en este periodo se encontraba en

formato análogo (hojas de campo, informes impresos, dibujos hechos a mano, extractos

diligenciados en esfero, etc.). De aquí la justificación de esta labor. Un ejemplo de esto

puede verse en la Figura 1.

Figura 1. Ejemplo de extracto de nivelación en formato análogo

Aunque fuera mucha la informacion que se tenía de cada línea, de acuerdo con

las necesidaeds del GIT, solo fue necesario transcribir los extractos de nivelación.

La forma en cómo se desarrolló este trabajo fue simple y llanamente, adaptando la

interfaz de la máquina de trabajo, de manera que fuera posible transcribir los datos de los

archivos análogos (fotos) a digital rápidamente.

6

El documento que se diligenciaba era un archivo Excel que contenía el nuevo

formato para los extractos de nivelacion. Fue diseñado por el GIT de geodesia y esta

incluido dentro de la gestión documetal del IGAC. Se reconoce con el serial F30100-28-

17V1. Para mayor ilustracion refierase a la Figura 2.

Figura 2. Formato de extracto de nivelación actualizado

Recuperación de libros. Esta otra parte de la fase de recuperación de

información, tiene que ver con transcribir a formato digital las cotas de ciertos puntos que

estaban almacenados en formato físico; explícitamente, se transcribieron a un archivo

Excel el punto y su respectiva cota, tomando como referente dos libros con información

de nivelación de las épocas de 1956 y 2000. Mientras que en el primero se realizó por

completo la tarea, en el segundo se participó de manera parcial.

Al igual que la parte anterior, el procedimiento para desarrollar la labor, se

reducía a disponer de manera efectiva el lugar y la máquina de trabajo para poder

digitalizar la información rápida y oportunamente. En este caso particular no se

7

diligenciaba ningún formato que hiciera parte de la gestión documental del IGAC,

simplemente se registraban en un archivo Excel los datos que se han mencionado.

Gestión de información de nivelación

Esta segunda fase de la pasantía tiene que ver, en su sentido más amplio, con

gestión de la información. Comprende dos tareas fundamentales que son

complementarias entre sí; estas son, estructuración de extractos de circuitos para uso

inmediato y creación de la GDB de la Red de Nivelación Nacional. La información a la

que esta parte se refiere fue levantada en el periodo comprendido entre el año 2000 y el

presente año. El tiempo utilizado para llevar a cabo esta labor fue aproximadamente de

dos meses.

Estructuración de extractos de circuitos. Como ya se ha mencionado, los

extractos de nivelación son el documento digital donde se registra la información de

desniveles entre los puntos que conforman una línea de nivelación. La Red de Nivelación

Nacional, está diseñada de forma que las líneas creen circuitos, con lo cual es posible

ajustarla de manera más precisa.

Esta situación conlleva a que sea necesario unir en un solo archivo el que sería el

extracto de nivelación de cada circuito; es decir, debe pasarse la información que se tiene

de las líneas que conforman un circuito a un único archivo. Esto es necesario hacerlo, ya

que el extracto de nivelación es el documento preciso para calcular y ajustar las alturas

geométricas de los puntos que hacen parte del circuito.

8

Para cumplir con este objetivo se decidió escribir una macro en VBA que tomara

toda la información que existiera en el extracto de una determinada línea, la guardara en

una matriz y posteriormente la transcribiera al formato actualizado F30100-28-17V1.

Cabe aclarar que la macro debía correrse para cada línea que hiciera parte del

cicuito, y por tanto el script debía modificarse cada tanto en ciertos aspectos como, rango

de donde se tomaban los datos y celda en la que comezaría a escribirse los nuevos datos.

A continuación se muestra el script utilizado.

Sub test()

Dim x As Variant

Dim c As Integer

c = 1

x = Worksheets("linea3").Range("A6:U520")

For i = 1 To UBound(x)

If x(i, 1) = "" Then

GoTo paso

Else

For j = 1 To UBound(x, 2)

If j = 1 Or j = 8 Or j = 9 Or j = 10 Or /

j = 12 Or j = 21 Then

Cells(1345 + c, j).Value = x(i, j)

End If

Next j

End If

c = c + 1

paso:

Next i

End Sub

La justificacion para utilizar una macro en esta labor viene dada por dos aspectos

fundamentales. Lo primero es que no todos los extractos de las líneas estaban en el

formato actualizado, por el contrario la mayoria estaba en formatos antiguos; esto junto

con el imperativo de transcribir solo ciertos datos al nuevo formato, puesto que este ya

estaba formulado en muchos campos, representa el primer aspecto para justificar su uso.

El segundo aspecto fundamental para justificar el uso de la macro se refiere a la ingente

9

cantidad de informacion que hay en cada extracto, pues la cantidad de puntos que tiene

cada línea oscila en un rango de entre 100 y 500 de estos.

Esta tarea guarda relacion con la creacion de la GDB debido a que una vez

estuviera estructurado el extracto, pasaba a crearse el shape de los puntos geodésicos que

conforman el circuito.

Construcción de la GDB de la Red de Nivelación Nacional. Esta fue quizás la

tarea con mayor valor en el transcurso de la pasantía, pues aquí se condensa de manera

íntegra la importancia de las otras labores necesarias para la consecución del objetivo

general y además, dispone un producto que busca optimizar los procesos de toma de

decisiones a través de una gestión de la información eficiente.

La estructura de la GDB fue diseñada por los líderes del proyecto de nivelación.

Consta, en resumen, de un Feature Dataset para cada línea de nivelación y uno adicional

donde se encuentran diferenciados por medio de Feature Classes de tipo punto, los

circuitos de la Red. Los Dataset de cada línea contienen dos Feature Classes diferentes,

el primero de tipo línea busca ilustrar el recorrido que se sigue en cada una, el segundo de

tipo punto muestra los puntos geodésicos que la conforman.

El desarrollo de esta parte se ejecutó dividiéndola en dos secciones, la primera fue

la creación de las líneas y la segunda la creación de los puntos.

Creación de los shapes de tipo línea. Debido a que la Red de Nivelación en

Colombia ha sido establecida por el IGAC a lo largo de las carreteras nacionales,

siguiendo estándares técnicos del Servicio Geodésico Inter Americano, esta toma la

10

forma de la red vial del país. De acuerdo con esto, la dirección que siga una línea de

nivelación será la de la carretera que se haya seleccionado para su creación.

Para crear las líneas de nivelación se siguió la rutina usual de creación de shapes

en ArcGIS: se crea el shape desde el Catálogo almacenándosele en la ruta preferente y se

inicia la edición de la nueva capa creada. A partir de un shape que contiene toda la red

vial del país, se copia y se pega en la capa que se está creando las vías que correspondan

a la línea.

Creación de los shapes de tipo punto. Este proceso resulto ser el más laborioso

no solo porque la creación de los shapes en sí fuera un tanto compleja, sino también

porque es este el producto de la GDB que en suma, más interesa a los usuarios de esta

información. Esto implicaba tener que operar con mayor pulcritud y establecer formas de

controlar la calidad del producto.

Para la realización de un shape de puntos geodésicos se contaba con cuatro

insumos base, siempre: El extracto de nivelación, el cual contiene, como ya se ha dicho,

información de desniveles entre los puntos de la línea o circuito y, tres shapes donde

estaban contenidos todos los puntos que el IGAC ha posicionado a lo largo de las

carreteras del país.

En esencia, lo que debía hacerse para construir un shape de estos era extraer de

los tres shapes base, solo las entidades que hicieran parte de la línea o circuito (los puntos

que estuvieran en el extracto) que se estaba construyendo. Para esto debía tenerse en

cuenta una jerarquía a la hora de extraer las entidades, pues en los shapes base se contaba

con un orden en términos de actualización y mayor precisión.

11

Así entonces, se buscaban y se extraían en el shape más preciso y actualizado los

puntos necesarios; si algunos puntos no se encontraban en este debían buscarse y

extraerse del siguiente más preciso y actualizado. Si nuevamente faltaban puntos se

acudía por ultimo al tercer shape. En caso de que hubiera puntos que no se encontraran en

los shapes se debía informar a los líderes del proyecto.

Para crear un shape entonces lo que se hacía era exportar de cada shape base las

entidades que sirvieran para cada caso, lo cual se hace seleccionando los elementos que

interesan de la capa y ejecutando la función Exportar. Con lo descrito se obtienen como

máximo tres shapes, para obtener el shape necesario debía entonces fusionárseles.

La forma en cómo se asumió esta tarea fue creando un programa en Python que

permitiera seleccionar casi que automáticamente las entidades de cada shape base.

Básicamente, lo que hacía el programa era comparar los nombres de los puntos del

extracto con los nombres de los puntos que hubiera en cada shape base y con esto, arrojar

en un bloc de notas el Query que debía escribirse en cada shape base para seleccionar

solo las entidades necesarias.

Para llevar a cabo el proceso de construcción de cada shape, se copiaba y pegaba

los nombres de los puntos del extracto en un bloc de notas que se guardaba en el

Escritorio con un nombre específico. Acto seguido se ejecutaba el programa desde el IDE

Entought Canopy. Del producto .txt resultante se copiaba cada Query y se pegaba en el

respectivo shape base. El resto del proceso se realizaba como se ha señalado, uniendo en

uno solo los tres shapes resultantes.

12

Las ventajas que ofrecía este método apuntan a mayor dinamismo en la ejecución

de la labor, pues seleccionar puntualmente cada entidad necesaria hubiera sido una tarea

muy dispendiosa. Además se estableció dentro del programa el parámetro de jerarquía de

búsqueda y elección en lo shapes base, lo que resulto muy eficiente si se tiene en cuenta

que cada shape base tiene más de 6000 puntos y las líneas y circuitos entre 100 y 1000

puntos. Un ejemplo del producto que arrojaba el programa puede verse en la Figura 3.

Figura 3. Ejemplo de producto obtenido tras la ejecución del script de Python

Debido a la extensión del programa creado se decidió incorporar el código en el

apéndice de este informe, donde se describe además, de manera muy breve, la tarea que

cumple cada función.

13

Capítulo 4

Resultados obtenidos

En el presente capítulo se mostrarán los productos que se obtuvieron a partir de

los procedimientos que se describieron en el capítulo anterior. Para esto se conservará el

mismo orden en el que se expuso anteriormente pero con arreglo a una mayor síntesis, ya

que varias de las labores descritas guardan estrecha relación entre sí, permitiendo dar

explicaciones más breves lo que se obtuvo en estas.

Recuperación de información

Para revisar esta parte vale la pena asumir un carácter pragmático. Con esto se

alude a que debe reconocerse la complejidad de la tarea como baja, con lo cual no se

insinúa en ningún caso falta de importancia o demás. Se plantea así esta parte con la

intención de manifestar que en aras de la eficiencia los resultados se expondrán acorde a

su complejidad, es decir, de forma sucinta.

Así pues, en lo que respecta a la recuperación de libros, debe decirse que se

obtuvo la digitalización de mucha información, lo cual implicó la creación de muchos

libros de Excel con varias hojas en su interior. Pero, por lo dicho anteriormente, solo se

dirá que se digitalizaron en total las cotas de los puntos de 19 líneas del plan de

nivelación 1951-1999.

Para el caso de la digitalización de extractos fue más factible la elaboración de

una tabla que mostrará resumidamente la información más relevante de cada una de las

10 líneas de las que se recuperó la información. Para ver esto refiérase a la Tabla 1.

14

Tabla 1

Detalle de información de los extractos recuperados

Línea Ubicación Número de puntos Kilómetros

BL-1 Sincelejo - Tolú 28 42,76

BL-13 Boca del Violo 26 20,22

BL-14 Yati 122 114,52

BL-15 Santa Rosa 37 30,37

BL-16 Bocas de Perico 65 99,95

BL-7 Coveñas - Tolú 17 21,45

BL-8 Cartagena - Gambote 78 70,89

BO-11 Puente Boyacá 25 22,56

Circuito Bogotá Bogotá 33 30,24

NA-2 Pasto - Popayán 233 257,22

No debe confundirse lo que se ve en esta tabla con los productos entregados para

esta parte, pues estos últimos son los archivos Excel que se describieron en el capítulo

anterior. La tabla solo busca expresar simbólicamente las cantidades de lo hecho por el

pasante.

Gestión de información de nivelación

Para la primera parte de esta fase se mostrarán los resultados de igual forma que

con la última parte de la fase anterior. Vale la pena recordar una vez más, que los

productos que se entregaron aquí fueron los archivos Excel que se muestran en el capítulo

3. La información más relevante de los circuitos cuyos extractos fueron estructurados

puede verse en la Tabla 2.

15

Tabla 2

Detalle de información de los extractos estructurados

Circuito Número de puntos kilómetros

La Ye - Planeta Rica 126 157,465

Bosconia - Riohacha 624 703,080

Caño Alegre - Hatillo 420 475,914

Honda - Floridablanca 790 938,721

Nota. Los datos de número de puntos se obtuvieron de cada extracto con ayuda de la función contara de

Excel. Los kilómetros se obtuvieron desde ArcGIS calculando la longitud en la tabla de atributos de las

líneas.

Para el caso de la estructuración de la GDB debe decirse que se participó

parcialmente, pues en esta actividad concurrieron, como sería lógico, varios funcionarios

del GIT, así como un colega pasante. Aun así, no está de más indicar que el grueso de la

labor, la alimentación de la GDB, ocurrió gracias al papel desempeñado por el

compañero en mención y quien escribe estas líneas. La estructura de la GDB puede

apreciarse en la Figura 4.

Figura 4. Estructura de la GDB

16

La participación específica que se tuvo en la alimentación de la GDB fue creando

primero, 6 shapes de tipo línea, los cuales pueden verse en el mapa que muestra la Figura

5.

Figura 5. Shapes de tipo línea construidos

17

Los segundos elementos que se crearon e incorporaron en la GDB fueron 6 shapes

de tipo punto que muestran los puntos geodésicos que conforman una línea o circuito.

Estos pueden apreciarse en la Figura 6.

Figura 6. Shapes de tipo punto construidos

18

La información más relevante de todos los shapes que se crearon se encuentra

registrada en la Tabla 3.

Tabla 3

Detalle de información de todos los shapes construidos

Shape Tipo Denominación en la Red

Número

de

puntos

creados

Conformado

por líneas Kilómetros

Línea 14 Línea Línea de nivelación No aplica No aplica 128,332

Línea 13 Línea Línea de nivelación No aplica No aplica 189,001

Línea 10 Línea Línea de nivelación No aplica No aplica 497,862

Línea 15 Línea Línea de nivelación No aplica No aplica 203,303

Línea 11 Línea Línea de nivelación No aplica No aplica 90,929

Línea 8 Línea Línea de nivelación No aplica No aplica 133,041

G-Línea 2 Punto Geodésicos de línea 520 No aplica 594,95

G-Línea 13 Punto Geodésicos de línea 164 No aplica 189,001

G-Línea 10 Punto Geodésicos de línea 466 No aplica 497,862

G-Honda-Floridablanca Punto Geodésicos de circuito 849 3, 9, 10 938,721

G-Caño Alegre-Hatillo Punto Geodésicos de circuito 423 4, 9, 12, 13 475,914

G-Bosconia-Riohacha Punto Geodésicos de circuito 680 6, 7, 8 703,080

Nota. Los datos de número de puntos y kilómetros se extrajeron de ArcGIS a partir de las tablas de

atributos de los shapes de tipo punto y de tipo línea respectivamente.

19

Capítulo 5

Análisis de resultados

El análisis de los resultados permite mostrar el impacto o alcance de la labor que

se ha realizado exponiendo detalles de los productos y derivando de estos, conclusiones

lógicas que hacen posible tener una mirada más profunda de la actividad.

La recuperación de información no sugiere ni en su ejecución per se, ni en los

productos entregados, ningún tipo de análisis que permita una descripción más allá de lo

que se expone en el capítulo 3 y 4. Es por esto que se ha obviado su exposición en este

capítulo.

Extractos estructurados

Para esta parte en particular se propone mostrar el impacto de la labor realizada en

función del porcentaje de contribución a la misma. Se muestra para esto, en la Tabla 4, un

resumen de las cantidades objetivo que se esperaban una vez culminada la estructuración

de todos los extractos, así como la cantidad con la que se contribuyó al cumplimiento de

la tarea.

Tabla 4

Resumen de estructuración de extractos

Cantidad total Cantidad contribuida

Número de extractos a

estructurar 12 4

Número de puntos a

estructurar. Aprox. 6051 1960

Número de kilómetros a

estructurar. Aprox. 6117 2275

Nota. La tabla se obtuvo a partir de información suministrada por los líderes del proyecto de nivelación.

20

En la Figura 7 se muestra más claramente el impacto o alcance de los resultados

por medio de gráficas de torta que denotan el porcentaje de contribución a la labor desde

las 3 perspectivas planteadas.

Figura 7. Porcentaje de contribución a la estructuración de extractos

32%

68%

Número de puntos a estructurar

Cantidad

contribuida

Cantidad

restante

37%

63%

Número de kilometros a estructurar

Cantidad

contribuida

Cantidad restante

33%

67%

Número de extractos a estructurar

Cantidad

contribuida

Cantidad

restante

21

De acuerdo con las gráficas es válido aseverar que se contribuyó en esta actividad

estructurando aproximadamente 1/3 de lo planteado. La construcción restante corrió por

cuenta de otro compañero pasante y algunos funcionarios del GIT.

Shapes de líneas construidos

El impacto o alcance de la labor realizada en este respecto se mide, al igual que en

la anterior fase, en función del porcentaje de contribución a la misma. La información

resumida, necesaria para mostrar este indicador, se muestra en la Tabla 5.

Tabla 5

Resumen de construcción de shapes de tipo línea

Cantidad total Cantidad contribuida

Número de líneas

construidas 16 6

Kilómetros de líneas

construidas 5135,610 1242,468

A partir de la tabla 5 se infieren las gráficas de torta de la Figura 8, las cuales

muestran el porcentaje de contribución a la labor desde las dos perspectivas planteadas.

Figura 8. Porcentaje de contribución a la construcción de shapes de tipo línea

37%

63%

Número de líneas construidas

Cantidad

contribuida

Cantidad

restante

24%

76%

Kilometros de líneas construidas

Cantidad

contribuida

Cantidad

restante

22

Las gráficas muestran un porcentaje de participación en esta actividad que varía

desde 1/4 a un poco más de 1/3 según el enfoque que se acoja.

Shapes de puntos construidos

Para analizar el impacto de esta parte tal como en las fases anteriores, debe

establecerse una diferenciación entre las variables que hacen parte del análisis y las que

no. Para este caso puntual solo se tendrá en cuenta el número de shapes de tipo punto que

estaban establecidos construirse de acuerdo a los lineamientos de los líderes del proyecto.

Esta cantidad es igual al número de extractos que debían estructurarse y su registro

aparece en la tabla 4. Debido a cuestiones de tiempo, dos de estos extractos no hicieron

parte de tales lineamientos, con lo cual se advierte que para este análisis, el total de

shapes esperados a construir son 10 y no 12.

Además, también es válido aclarar que los shapes de puntos geodésicos de la

mayoría de líneas se derivan luego de construido el shapes para el circuito. De aquí que

estén planteados únicamente la construcción de los puntos geodésicos de solo dos líneas;

las líneas 2 y 20 que no hacen parte aun de ningún circuito.

La información de resumen que permite visualizar posteriormente el porcentaje de

contribución se muestra en la Tabla 6.

Tabla 6

Resumen de construcción de shapes de tipo punto

Cantidad total Cantidad contribuida

Número de shapes geodésicos

construidos 10 4

Kilómetros de los shapes

geodésicos construidos 4909,000 2712,665

23

A partir de la tabla 6 se construyen las gráficas de torta que se muestran en la

Figura 9.

Figura 9. Porcentaje de contribución a la construcción de shapes de tipo punto

De las gráficas se infiere que aunque se construyeron menos de la mitad de los

shapes planteados, se contribuyó significativamente en esta labor por cuenta del número

de kilómetros. Es decir, los shapes que se construyeron integran más de la mitad del

resultado esperado, si se asimila la tarea con un enfoque que mida su complejidad o

importancia en función de la longitud a trabajar.

Base de datos geográfica

Para este caso se propone analizar los resultados, ya no desde una mirada que

mida el porcentaje de contribución a la labor, sino desde una que se centre en detallar

aspectos fundamentales de la base de datos. Se plantea así el análisis con la intención de

allanar el camino hacia una GDB de condiciones más óptimas, a partir de cambios

sustanciales en su estructura que se propondrían con base en los aspectos que aquí se

mencionen.

55%

45%

Kilómetros de los shapes geodésicos

construidos

Cantidad

contribuida

Cantidad

restante

40%

60%

Número de shapes geodésicos

construidos

Cantidad

contribuida

Cantidad

restante

24

Modelo conceptual. Del componente conceptual de la GDB no existe registro

alguno, debido a que el diseño de esta no se efectuó ciñéndose a la teoría de bases de

datos, sino más bien proponiendo el modelo físico de datos más obvio y simple. Aun así

vale la pena definir en primera instancia el modelo entidad-relación que serviría para este

caso puntual. Este se presenta en la Figura 10.

Figura 10. Modelo entidad-relación de la GDB

Se omite en este modelo la representación de los atributos de las entidades, debido

a que para el caso de los puntos, estos son muchos y sería contraproducente a esta

exposición ordenada la muestra de ellos.

Para resarcir esta situación se dedica una sección igual a la del modelo

conceptual, que muestra la documentación del esquema físico de la GDB y donde se

exponen por tanto, los atributos de cada entidad.

Esquema físico. El esquema físico de la GDB fue concebido sin ser antecedido,

como ya se ha dicho, por un diseño conceptual y un diseño lógico. Aunque esto implique

que se presenten en la GDB ciertos problemas que se exponen en la teoría de bases de

datos, el producto, aun así, resulta ser una fuente de mayor dinamismo en la gestión de la

información, por lo menos a nivel interno (en el GIT).

Línea Tiene Puntos

1: N

25

La concepción del esquema físico se da atendiendo a criterios de simplicidad y

asumiendo que el ejercicio es apenas una primera aproximación, a la consolidación de

una GDB más robusta que permita una gestión más eficiente de la información de

nivelación.

Como se ha expuesto en capítulos anteriores la estructura de la GDB (el esquema

físico) consta de Datasets para cada línea de la red y otro para los circuitos. Los Dataset

de las líneas están integrados por dos entidades: la línea que corresponde y sus

respectivos puntos. El Dataset de los circuitos solo está integrado por entidades de tipo

punto. En la Tabla 7 se documenta la tabla de atributos de la entidad línea.

Tabla 7

Documentación de los atributos de la entidad línea

Nombre de campo Tipo de dato

OBJECTID ID del objeto

Shape Geometría

Length Double

La entidad línea solo busca ser una referencia visual que permita una mejor

asimilación del trayecto que se sigue para cada línea de nivelación, es por esto que su

tabla de atributos resulta ser tan sencilla. Aun así el atributo adicional a los dos atributos

estándar, longitud de la línea, es fundamental para analizar la estructura de la red.

En lo que respecta a la entidad puntos, como ya se ha mencionado, esta es la más

importante dentro de la GDB gracias a la información que contiene, la cual es

trascendental para muchos procesos del GIT y así mismo lo será para muchos usuarios

externos. La información a la que se hace referencia puede verse en la Tabla 8 donde se

documenta la lista de atributos de la entidad puntos.

26

Tabla 8

Documentación de los atributos de la entidad punto

Nombre de campo Tipo de dato Tamaño

OBJECTID ID del objeto -

Shape Geometría -

Nomenclatura String 254

Nivelado String 254

Estado punto String 254

Latitud Double -

Longitud Double -

Altura elipsoidal Double -

Tipo punto String 254

ID Comision String 254

Año toma info Long integer -

Línea String 254

Nombre línea String 254

Tramo String 254

Altura geométrica Double -

Orden String 254

Fecha de cálculo Date -

Tipo coor String 254

Dpto ccdgo String 254

Dpto cnmbr String 254

Cod dptomp String 254

Nomb mpio String 254

Ruta alm String 254

ID Cálculo String 254

Código memoria String 254

Lat metadato N Double -

Long Metadato E Double -

Long Metadato W Double -

Lat metadato S Double -

Observaciones String 254

Puede verse que a causa de la omisión del diseño lógico se prescindió de la

normalización de la GDB y esto irrevocablemente conllevó, a no definir dominios para

27

cada campo y junto con esto a pasar por alto tamaños exagerados asignados a algunas

cadenas de caracteres.

De acuerdo con lo dicho en este análisis, puede concluirse que la forma en cómo

se concibió el diseño de la GDB, fue teniendo en mente que esta fuera apenas el inicio de

una labor más amplia y compleja, que requerirá de la colaboración de varios funcionarios

competentes para su consecución, en lo que sería una GDB normalizada y dispuesta para

optimizar los procesos de planificación y toma de decisiones en el GIT, a través de una

gestión de la información eficiente.

28

Capítulo 6

Evaluación de resultados

En este capítulo se expondrán los métodos que se utilizaron para la verificación

de las tareas y consecuentemente para la determinación del grado de validez de las

mismas. Así mismo se mostrarán los resultados obtenidos al aplicar estos métodos.

Recuperación de información

Para esta actividad no se siguió ningún método de verificación más que

desarrollarla adhiriéndose a criterios de honestidad y ética profesional, así como a

procedimientos de trabajo ordenados que redujeran al mínimo la posibilidad de incurrir

en errores. La validez de los resultados vendrá por parte, finalmente, de los líderes del

proyecto de nivelación, quienes tendrán que revisarlos y emitir un concepto que se refiera

además de a la validez, al cumplimiento o no de los tiempos de ejecución.

Gestión de información de nivelación

Para validar la información de esta tarea se ejecutaron diferentes controles de

calidad dependiendo de la labor en específico. En esta parte se expondrán por separado,

para mayor claridad, las labores de creación de shapes de tipo línea y la creación de

shapes de tipo punto. Esta última está conectada con la estructuración de extractos de

nivelación.

Creación de shapes de tipo línea. Para garantizar un producto válido en esta

actividad, se estableció desde un principio, que el criterio que regiría esta validez sería

simplemente que la línea no estuviera constituida en multipartes.

29

Ya que la construcción de este tipo de shapes se daba uniendo en una sola capa

varias partes de diferentes vías, la posibilidad de que el shape resultante fuera un

elemento multiparte era muy alta.

Para obedecer a la pauta señalada, se implementó en el procedimiento el

imperativo de unir con la función Merge las líneas que se fueran integrando al shape y,

como último paso para garantizar definitivamente el cumplimiento del criterio, el

imperativo de ejecutar la función Explode Multipart Feature y constatar que

efectivamente el objeto creado no era de tipo multiparte.

Siguiendo el procedimiento y atendiendo a los pasos imperativos descritos, se

obtuvo la creación de 6 shapes de tipo línea completamente válidos de acuerdo con lo

establecido.

Estructuración de extractos y creación de shapes de tipo punto. Debido a que

estas dos actividades guardan estrecha relación, pudo establecerse un procedimiento

común con el que fue posible garantizar la calidad de los productos finales. Este proceso

se describe de forma clara en el diagrama de flujo que se muestra en la Figura 11.

30

Figura 11. Diagrama de procesos para la gestión de la información

El diagrama de flujo muestra la relación que se ha señalado entre la estructuración

de extractos y la creación de shapes de tipo punto. Además especifica donde se cumple el

proceso para controlar la calidad de los shapes generados.

Para la estructuración de extractos se acudió a los mismos elementos expuestos en

la fase de recuperación de información: honestidad y ética laboral, y procedimientos de

Asignación de

extracto para

estructurar

Estructuración

de extracto

Creación de shape

de puntos

geodésicos

Ajuste y cálculo de

alturas geométricas

del circuito

Extracto

estructurado

Controlar calidad

del shape

¿Shape de

puntos

depurado?

Incorporar

a GDB

No

31

trabajo ordenados que redujeran al mínimo la posibilidad de incurrir en errores, esto

último complementado con el uso de programación algorítmica para la automatización de

la tarea. De acuerdo con esto se obtuvo la estructuración de 4 extractos y su calidad se

constató con el proceso de control de calidad del shape.

Tal proceso era llevado a cabo de manera muy simple pero resultaba suficiente

para garantizar la calidad del shape. Consistía en recorrer en el mismo orden del extracto,

el shape creado y verificar que cada punto que estuviera registrado en ese documento lo

estuviera también en la capa generada. Además de verificar lo que se ha descrito, el

procedimiento permitía incorporar al shape generado, puntos que no se hubieran nivelado

según el extracto y que estuvieran cerca la línea.

Siguiendo este proceso de control de calidad se constató la completa coherencia

del orden que se siguió para nivelar los puntos de los extractos que se estructuraron y

recíprocamente, la incorporación de todos los puntos del extracto en el shape.

Para esto último debe señalarse que se presentaron casos donde no todos los

puntos del extracto se incluyeron en el shape, debido a razones forzosas y cuya solución

estaba fuera del alcance, inclusive, de muchos funcionarios del GIT. Estas razones

correspondían principalmente a falta de información de toda índole sobre tales puntos,

tanto en GEOCARTO como en los otros medios donde se atesoran este tipo de datos.

El proceso de control de calidad entonces, permitió también encontrar fallos en la

organización de la información que ya se tiene almacenada en el IGAC (GEOCARTO),

un ejemplo es lo recién descrito y otros más tienen que ver con duplicidad en la

nomenclatura y malos cálculos de coordenadas.

32

Todos estos contratiempos fueron informados en su debido tiempo, tanto a los

líderes del proyecto de nivelación como al líder del proyecto de GNSS. Omitiendo estos

percances y considerando la calidad de los shapes y extractos, garantizada por medio del

control de calidad expuesto, puede decirse que la labor realizada pone a disposición del

GIT de geodesia unos productos listos para su uso a nivel interno y con miras a ser

ofrecidos a usuarios externos.

33

Capítulo 7

Conclusiones y recomendaciones

1. Las labores que se encomendaron en el marco de la pasantía se cumplieron

satisfactoriamente y acorde a parámetros de calidad establecidos por los líderes del

proyecto de nivelación. Su consecución favorable se atribuye en cierta medida a la

identificación y comprensión a cabalidad del objetivo general, que aunque amplio en su

noción, resulta ser el más acertado y diciente de conformidad con las necesidades del

proyecto. Dicho de otra forma, se comprendió desde el inicio de las labores que las

necesidades más apremiantes del proyecto tenían que ver con organización de la

información y que era en este aspecto en el que se colaboraría, a través de la ejecución

expedita de las tareas delegadas. Por otro lado, también debe atribuirse la obtención de

resultados satisfactorios a la buena comunicación establecida entre las partes, que en lo

que respecta a los líderes se manifestó con la impartición de mandatos claros y precisos.

2. Este informe da cuenta de todas las labores que se realizaron en la pasantía y

constata además, que en efecto, aunque se hayan desarrollado dos grandes tareas

mutuamente excluyentes, ambas se circunscribieron dentro del concepto de organización

de información. Esto demuestra la coherencia con la que fue concebida la pasantía desde

su inicio. A pesar de esto, es claro que de las dos tareas a las que se alude, la que

corresponde a gestión de la información de nivelación goza de mayor valor por cuenta de

su impacto en términos inmediatos y porque obtuvo mayor dedicación tanto en tiempo

como en recursos. Explícitamente, su mayor impacto en términos inmediatos se debe a

que entrega, una vez cumplida la tarea, un producto que apunta a optimizar los procesos

34

de planificación y toma de decisiones en el GIT, a través de una gestión de la

información eficiente. Este producto hace referencia, por supuesto, a la GDB construida.

3. El ejercicio desarrollado en la pasantía, referente a la construcción de la GDB,

es una primera aproximación que funcionará como estructura vertebral para obtener una

GDB mejor diseñada y que pueda servir, cada vez de forma más efectiva, a los propósitos

planteados de optimizar los procesos de planificación y toma de decisiones dentro del

GIT. Se habla en términos de primera aproximación porque como se expuso en el

contenido de este informe, en su construcción se ha omitido el paso fundamental de

normalización, lo que conlleva a que esta contenga ‘errores’ en su constitución, que

reducen su capacidad de servir como un insumo que fortalezca la eficiencia. Aun así,

debe tenerse claro que la labor desarrollada no es menos meritoria que la necesaria para

obtener una mejor GDB, pues su ejecución en sí no fue sencilla y además, lo que se ha

obtenido de esta conserva gran valor por servir ya, a una mejor gestión de la información

dentro del GIT.

Como puede notarse, tanto en el contenido del informe como en las conclusiones

expuestas se hace un especial énfasis en la actividad de construcción de la GDB. De

acuerdo con esto, se recomendarán ciertas pautas para complementar el trabajo realizado

refiriéndose únicamente a este aspecto.

La primera propuesta que se recomienda es efectuar todo el proceso que se

propone desde la teoría de bases de datos para el diseño de estas. Esto es, partir de un

modelo conceptual (puede revisarse el que se propone en este informe), continuar con el

diseño de un modelo lógico lo cual implica la normalización de las tablas obtenidas, y

35

culminar con la obtención de un esquema físico sin redundancia de datos, con pocas

dificultades para la actualización de los datos, y que proteja la integridad de los datos.

La puesta en marcha de esta tarea hará posible, por ejemplo, que no se presenten

dificultades en la actualización de los datos tan pronto sean resueltos los problemas que

se reportaron en el capítulo final, así como la eliminación de datos redundantes que a

simple vista, debido a la estructura de la GDB, se infiere que son muchos. Pero más

importante aún, es el hecho de que acoger esta recomendación significará una gestión de

la información mucho más eficiente.

Finalmente se recomienda que en el caso de que se efectuara lo recomendado

anteriormente, se replique inmediatamente el proceso de control de calidad expuesto en la

evaluación de resultados. Esto con el fin constatar una vez más la calidad del producto,

corroborando que en el proceso de mejora no haya habido perdida de datos.

36

Anexos

Anexo A. Programa para extracción de entidades de tipo punto.

El programa en su totalidad consta de 4 partes. La primera parte guarda en forma

de listas todos los nombres que conforman los shape base y el extracto, los cuales están

almacenados en bloc de notas independientes guardados en el escritorio. Tiene

establecidos diferentes métodos que van desde la estandarización de las listas eliminando

espacios, guiones, y algunas letras en específico, hasta el retorno de estas.

def load(ruta):

inFile = open(ruta)

lst=[]

for line in inFile:

if line=='\n':

pass

else:

line=line.strip('\n')

lst.append(line)

return lst

def limpiar(lst):

lstl=[]

for e in lst:

lstl.append(e.replace('

','').replace('-',''))

return lstl

g1=load('C:\Users\jessica\Des

ktop\geodeActu.txt')

g2=load('C:\Users\jessica\Des

ktop\geode06.txt')

g3=load('C:\Users\jessica\Des

ktop\geodeNivel.txt')

g1l=limpiar(g1)

g2l=limpiar(g2)

g3l=limpiar(g3)

class lista(object):

def __init__(self,ruta):

self.ruta = ruta

def getRuta (self):

return self.ruta

def load(self):

inFile = open(self.getRuta())

lst=[]

for line in inFile:

if line=='\n':

pass

else:

line=line.strip('\n')

lst.append(line)

return lst

def loadl(self):

lstl=[]

for e in self.load():

if e[0]=='O':

lstl.append(e.replace(e[0],'0

').replace(' ','').replace('-

','').replace('NP',''))

else:

lstl.append(e.replace('

','').replace('-

','').replace('NP',''))

return lstl

def tbm(self):

tbms=[]

for e in self.loadl():

if 'TBM' in e:

tbms.append(e)

return tbms

def exr(self):

extr=[]

for e in self.loadl():

if e in self.tbm():

pass

else:

extr.append(e)

return extr

def generarlista(self):

return

[[self.loadl(),self.exr()],[g

1,g1l],[g2,g2l],[g3,g3l],self

.tbm()]

La segunda parte se encarga de comparar las listas y generar las nuevas listas

con los puntos que se van a extraer. Estas últimas son necesarias para después generar el

Query.

import numpy as np

class compara(object):

def __init__(self,lista):

self.lista = lista

self.extracto=self.lista[0][0

]

self.extractoLimpio=self.list

a[0][1]

self.gAct=self.lista[1][0]

self.gActLimpio=self.lista[1]

[1]

self.g03=self.lista[2][0]

self.g03Limpio=self.lista[2][

1]

self.gNiv=self.lista[3][0]

self.gNivLimpio=self.lista[3]

[1]

self.tbm=self.lista[4]

def getExt(self):

return self.extracto

def getExtl(self):

return self.extractoLimpio

def getGA(self):

return self.gAct

def getGAl(self):

return self.gActLimpio

def getG03(self):

return self.g03

def getG03l(self):

return self.g03Limpio

def getGN(self):

return self.gNiv

def getGNl(self):

return self.gNivLimpio

def getTBM(self):

return self.tbm

def compara1(self):

son=[]

rmn=[]

for e in self.getExtl():

if e in self.getGAl():

son.append(self.getGA()[self.

getGAl().index(e)])

else:

rmn.append(e)

return [son,rmn]

def compara2(self):

esta=self.compara1()[1]

son=[]

rmn=[]

for e in esta:

if e in self.getG03l():

son.append(self.getG03()[self

.getG03l().index(e)])

else:

rmn.append(e)

return [son,rmn]

def compara3(self):

esta=self.compara2()[1]

son=[]

rmn=[]

for e in esta:

if e in self.getGNl():

son.append(self.getGN()[self.

getGNl().index(e)])

else:

rmn.append(e)

return [son,rmn]

def getTtl(self):

return

self.compara3()[0]+self.compa

ra2()[0]+self.compara1()[0]

def getTtlLimp(self):

lstl=[]

for e in self.getTtl():

lstl.append(e.replace('

','').replace('-

','').replace('NP',''))

return lstl

def getFlt(self):

return

list(np.setdiff1d(self.getExt

l(), self.getTtlLimp()))

def generarlista(self):

return

[self.getExt(),self.getTBM(),

self.getExtl(),self.getTtl(),

self.getFlt(),

self.compara1()[0],self.compa

ra2()[0],self.compara3()[0]]

La tercera parte se encarga transcribir a un bloc de notas los Querys que se

generan a partir de las listas y de dar un resumen con datos relevantes sobre la

información obtenida.

class resumen(object):

def __init__(self,lista):

self.lista = lista

self.extracto=self.lista[0]

self.tbm=self.lista[1]

self.exr=self.lista[2]

self.total=self.lista[3]

self.faltan=self.lista[4]

self.g1=self.lista[5]

self.g2=self.lista[6]

self.g3=self.lista[7]

def getExt(self):

return self.extracto

def getTBM(self):

return self.tbm

def getExtr(self):

return self.exr

def getTtl(self):

return self.total

def getFlt(self):

return self.faltan

def getG1(self):

return self.g1

def getG2(self):

return self.g2

def getG3(self):

return self.g3

def q1(self):

msj=''

for e in self.getG1():

if e==self.getG1()[0]:

msj= ' PUNTO ' + "=

'"+str(e)+"'"

else:

msj=msj+' or '+ ' PUNTO ' +

"= '"+str(e)+"'"

return msj

def q2(self):

msj=''

for e in self.getG2():

if e==self.getG2()[0]:

msj= ' PUNTO ' + "=

"+"'"+str(e)+"'"

else:

msj=msj+' or '+ 'PUNTO ' + "=

"+"'"+str(e)+"'"

return msj

def q3(self):

msj=''

for e in self.getG3():

if e==self.getG3()[0]:

msj= ' NOMENCLA ' + "=

"+"'"+str(e)+"'"

else:

msj=msj+' or '+ 'NOMENCLA ' +

"= "+"'"+str(e)+"'"

return msj

def rmn(self):

arc=open('C:\Users\jessica\De

sktop\datosObtnidos.txt',

'w')

arc.write("\n"+str(len(self.g

etExt()))+ " puntos en

extracto original,

"+str(len(self.getTBM()))+'

son TBM. Quedan

'+str(len(self.getExtr()))+'\

n'+str(len(self.getTtl()))+"

elementos encontrados. Faltan

"+str(len(self.getFlt()))+"."

)

arc.write("\n"+str(len(self.g

etG1()))+" en

geodésicos_actualizados")

arc.write("\n"+str(len(self.g

etG2()))+" en

geodésicos_06032017")

arc.write("\n"+str(len(self.g

etG3()))+" en

geodésicos_nivelación")

arc.write("\n\n\nQuery para

extraer de Geodésicos

Actualizados:\n\n"+self.q1())

arc.write("\n\n\nQuery para

extraer de Geodésicos

06032017:\n\n"+self.q2())

arc.write("\n\n\nQuery para

extraer de Geodésicos

Nivelación:\n\n"+self.q3())

arc.close()

print

str(len(self.getExt()))+ "

puntos en extracto original,

"+str(len(self.getTBM()))+'

son TBM. Quedan

'+str(len(self.getExtr()))+'\

n'+str(len(self.getTtl()))+"

elementos encontrados. Faltan

"+str(len(self.getFlt()))+"."

print

"\n"+str(len(self.getG1()))+"

en geodésicos_actualizados"

print

str(len(self.getG2()))+" en

geodésicos_06032017"

print

str(len(self.getG3()))+" en

geodésicos_nivelación."

Finalmente, la última parte, se encarga de llamar los programas para su

ejecución.

from listas import *

from comparacion import *

from resumen import *

def ejecutar(ruta):

ex=lista(ruta)

h=ex.generarlista()

comp=compara(h)

j=comp.generarlista()

ttl=resumen(j)

ttl.rmn()