TU ANUNCIO / YOUR PUBLICITY

AQUÍ PODRÍA ESTAR TU ANUNCIO: / HERE COULD BE YOUR AD E-mail

martes, 31 de diciembre de 2013

Acknowledgements and end the project / Agradecimientos y fin del proyecto

"Es de buen nacido ser agradecido"

El proyecto toca a su fin y lo primero es agradecer a instituciones como el CDTI el apoyo moral y, sobre todo en estos tiempos, económico que nos han prestado a varias empresas para poder investigar y crear nuevos productos dentro del control de calidad de las infraestructuras.

Hace algo más de tres años cinco empresas, Enmacosa, Extraco, InSitu, Lógica y Misturas, se unieron en un proyecto que denominaríamos Sitegi. Para ayudarnos en nuestra labor investigadora contratamos a la Universidad de Vigo. El programa de ordenador que la Universidad creó está disponible aquí (descarga). Y el tutorial (descarga).

Una buena parte del dinero recopilado para el proyecto (tanto de cada empresa como por el portado por el CDTI) se entregó a la Universidad y ésta compró los equipos que se detallan en http://carreteras-laser-escaner.blogspot.com.es/p/equipos-utilizados.html.

El equipo de investigación de la Universidad gestionó la compra de los equipos y la sincronización de éstos en un sólo vehículo prototipo. También esbozó la aplicación de tratamiento de datos.

Un subgrupo de este equipo formado por  Enmacosa, Extraco, Lógica y Misturas, se ha unido para el diseño de los programas referidos en este blog. Desde aquí mi agradecimiento. Esta unión ha enriquecido el proyecto de las aplicaciones web:

The project draws to a close and the first is to thank institutions like the CDTI, their moral support, and especially in these times, their financial support they have given us several companies to research and develop new products within the control of quality of infrastructure.

Just over than three years ago five companies, Enmacosa, Extraco, InSitu, Lógica y Misturas, joined in a project that denominate Sitegi. To help us in our research work we hired the University of Vigo. The program that Vigo University make is here (download). And the tutorial (download).

The money for the project (both of each company and by the carried by the CDTI) was delivered to the University and it bought the equipment listed in http://carreteras-laser-escaner.blogspot.com.es/p/equipos-utilizados.html.

The research team from the University arranged the purchase of equipment and synchronizing these in a single vehicle prototype. He also outlined the application of data processing.

A subset of this team made up  Enmacosa, Extraco, Lógica y Misturas, has joined the design of the programs referred to in this blog. From here my thanks. This union has enriched the project web applications:

Y, mezclando la información termográfica con el láser escáner terrestre:
And, if we mix the thermographic with terrestrial laser scanner information:


Y también en la aplicación final de escritorio:
  • Al inicio del programa se verá:

And also in the desktop application:
  • At the start of the program you will see:


  • Por motivos de espacio los logotipos quedan un poco cortados mientras se usa ésta:
  • For reasons of space, the logos are a little cut while it is used:



Sirva también esta entrada para transmitir la "mea culpa" de no incluir los logotipos de las empresas que intervinieron en la creación de estos programas hasta el final y así, de esta manera, quedarán incluidos al principio (del blog).

Serve this entry also to transmit the "mea culpa" (my fault) to not include the logos of the companies that participated in the creation of these programs to the end and so, thereby, they will be included at the beginning (of the blog).

jueves, 19 de diciembre de 2013

The laser scanner and the retroreflectivity / El láser escáner y la retrorreflexión

¿Se puede medir la reflexión de las señales viales con un láser escáner? ¿Y la retrorreflexión?

La primero es entender la diferencia entre reflexión y retrorreflexión. Un buen artículo lo encontramos en la wikipedia: http://es.wikipedia.org/wiki/Reflexión_(física)

Diferencia la simple reflexión (espejo típico) con la retrorreflexión (captadióptrico). Estos últimos, típicos en una carretera. 

Con los ejemplos que estamos viendo tenemos proyecciones típicas del láser escáner como la que sigue.

Can you measure the reflection of road signs with laser scannerAnd the retroreflectivity?

The first is to understand the difference between reflection and retroreflectivity. A good article I found on wikipedia: http://en.wikipedia.org/wiki/Retroreflector

The simple reflection (typical mirror) is different from the retroreflection (retroreflectors). The latter is typical for a road.

With the above examples we have the laser scanner projections:


En 3D:


Podemos cambiar el color real por color en blanco y negro por intensidad:
We can change the actual color by color into black and white intensity:




También podemos podemos decirle al programa que si el gris va desde el color 0 (negro) al 255 (blanco) que me los dibuje si sobrepasan el mínimo y a partir de un máximo que sean del valor 255.

We also can tell the program that if the gray color goes from 0 (black) to 255 (white) if I draw them and surpass the minimum from the maximum value to be 255.


Luego tendremos que crear un herramienta que pueda visualizar y promediar el valor sobre el que estemos.
Then we have to create a tool that can visualize and average the value on which we are.

¿Qué hemos calculado? / What we have calculated?

En realidad aún no lo sabemos pero para solucionar ésto tenemos los ensayos. Hemos realizado ensayos tipificados de retrorreflexión y reflexión y hemos obtenido las siguientes tablas.

El primer paso es tener un reflectómetro. En nuestro caso hemos partido del siguiente:

Actually we do not know yet but to solve this, we have the testsWe have performed retroreflection and reflection essays, and we have obtained the following tables.

The first step is to have a reflectometer. In our case we have this:


El segundo paso es tener una carretera para medir la reflexión y la retrorreflexión. En nuestro caso, la PO-299:

The second step is to have a road to measure the reflection and retroreflection. In our case we have the PO-299 road:



Ensayos de laboratorio. Siguiendo la norma UNE-EN- 1436:
Laboratory tests. (UNE-EN-1436)


Ahora sólo queda comparar estos datos con los de nuestro programa reformado.
Now we just have to compare these data with the results of our refurbished

Aparentemente parece que hay una homotecia entre la retrorreflexión (en azul oscuro) y la lectura de la intensidad  (en azul claro) en el láser escáner. No ocurre lo mismo entre de la reflexión (rojo) y el láser escáner.

Nota: Hay tres gráficas porque se han separado los valores del la línea de la derecha, el eje y la izquierda (en ese orden).

Se puede ver que hay un tipo de relación entre retrorreflectancia y respuesta del láser escáner terrestre. La buscamos:

Apparently there seems to be a homothety between retroreflection (dark blueand the reading of the intensity (light bluein the laser scanner. Not so between reflection (red) and the laser scanner.

Note: There are three graphs because it have separated the values ​​of the right linethe axis and the left (in this order).

You can see that there is a relationship between retroreflectivity and response of terrestrial laser scanner. we seek it:

Y la encontramos:
We found it:
                                 Rprograma = 0.4924 · Rreal - 21.8396
O, si se prefiere:
Or:
                                 Rreal = (Rprograma + 21.8396) / 0.4924 

NOTA MUY IMPORTANTE: CUANDO HEMOS CAMBIADO DE CARRETERA ESTA RELACIÓN CAMBIA.

VERY IMPORTANT NOTEIF WE CHANGE THE ROAD THIS RELATIONSHIP CHANGE.

Conclusiones: / Conclusions:

Podemos tomar unos pocos puntos, el paseo con el láser escáner terrestre, y extrapolar los datos que nos faltan sin tener que realizar el ensayo completo de la retrorreflectancia. No así para la reflectancia. Y, en el caso de cambiar de día con condiciones ambientales diferentes y/o de carretera dicha extrapolación no es transferible.

En resumen podemos librarnos de algo de trabajo si tenemos hecho un escaneo de una carretera, pero no de todo el trabajo y si las condiciones cambian las correlaciones de datos también.

We can take a few points, taking data with terrestrial laser scanner data and extrapolate missing us without having to make the full test of retroreflectivity. Not so for the reflectanceIf climatic conditions and / or the road changes the relationship is not transferable.

In short we can rid ourselves of some work if we have a scan of a road.







miércoles, 20 de noviembre de 2013

Equipos utilizados

La parte económica

"Es de buen nacido ser agradecido"

El proyecto toca a su fin y lo primero es agradecer a instituciones como el CDTI el apoyo moral y, sobre todo en estos tiempos, económico que nos han prestado a varias empresas para poder investigar y crear nuevos productos dentro del control de calidad de las infraestructuras.

Hace algo más de tres años cinco empresas, Enmacosa, Extraco, InSitu, Lógica y Misturas, se unieron en un proyecto que denominaríamos Sitegi. Para ayudarnos en nuestra labor investigadora contratamos a la Universidad de Vigo.

El dinero recaudado para el proyecto (tanto de cada empresa como por el portado por el CDTI) se entregó a la Universidad y ésta compró los equipos que se detallan a continuación.

Por cierto, por este proyecto nos han dado un premio:



La parte técnica

Hemos comprado varios equipos:

  • Un láser escáner terrestre:

Dotado de dos sensores Optech:

Lógicamente también tiene GPS y el resto de instrumentación que permite posicionar los puntos que recopila con el mínimo error posible. Este error, que no es pequeño, ya fue tratado en: http://carreteras-laser-escaner.blogspot.com.es/p/cuantificacion-de-errores-en-el-laser.html

También incorpora 4 cámaras. Aquí nos equivocamos ya que las cuatro cámaras que incorpora no solapan la imagen:


Y claro, cuando se busca el color hay zonas que o no lo tienen o no está bien compensado. Ejemplo en planta (véanse los cortes en la calzada):



Aún así, Pudimos probar la potencia de toma de datos en algunos de nuestros ejemplos accesibles al público (-> ver). En una de las carreteras pudimos obtener 4.500.000.000 puntos en un recorrido de 3km de ida y vuelta.

  • También compramos una cámara térmica y un IRI:



La cámara térmica de la marca GOBI 384 de Xenics:

La calidad de ésta es bastante buena. El software deja un poco que desear. Por ejemplo, una imágen típica sería esta:
Imagen original
Y auque permite aumentar el contraste y/o el falso color en el programa no permite exportarlos. Por supuesto tampoco permite la exportación en bloque. No es difícil de programar. Nosotros lo hemos hecho. Pero... por un poquito mas... no tiene un software perfecto. Tan sólo se pide que haga esto:


El Perfilómetro es el Digital LaserProf de la compañía danesa Greenwood. Si se desean ver las especificaciones pinche aquí.
  • Y también un GPR:


En un futuro (¿un año? ¿10? ¿más?) estamos seguros que nos radiografiarán el subsuelo de tal forma que parecerá magia. Pero ahora, esta tecnología sigue estando muy verde. Después de tres años lidiando con ello la diferencia entre sacar testigos del firme:


Y querer saber el espesor de la capa:

Hace que en algunos casos, creamos que es factible, en otros podremos creer ver donde no hay, y hay un tercer grupo en donde directamente es imposible. 

Conclusiones

La técnica del láser escáner terrestre, o mapping, o como se quisiera llamar es espléndida para recrear un mundo virtual desde donde poder obtener los mismos resultados que en el mundo real con la topografía clásica. Pero, Optech no es la marca de referencia. Sabiendo lo que sabemos ahora, varios años después no habría sido el equipo a comprar.

El perfilómetro y su forma de anclarse al vehículo no nos han permitido hasta la fecha obtener datos fiables. Han sido mejores los datos que hemos llegado a deducir con un Arduino y un par de cables (véase: http://carreteras-laser-escaner.blogspot.com.es/2013/10/noveno-paso-el-iri.html). Y, estamos hablando de 60€ frente a 50.000€.

La cámara termográfica que elegimos es muy buena y las deficiencias del software del fabricante es mejorable. La mejora, no nos ha costado mucho trabajo y hemos aprendido. Le damos un OK.

El georradar sigue siendo una máquina que permite soñar pero que aún no está desarrollada para la obtención de datos fiables. En la práctica sigue siendo muy difícil dilucidar simplemente donde está la transición entre capas como aglomerado y zahorra (o suelo-cemento). Se sigue necesitando volver a la toma de datos tradicional con extracciones de testigos y/o sondeos tradicionales.

La toma de fotografías también está suspendida por Optech dado que las imágenes no sólo no solapan sino que además están dispuestas diametralmente no en el sentido de marcha ni en el perpendicular a ésta. En nuestras aplicaciones hemos optado por la toma de imágenes geoposicionadas tradicionales y/o la API de Google maps en la versión web del programa.



lunes, 18 de noviembre de 2013

Improving frame / Mejora en el encuadre

Introducción / Introduction

Me escribió Dolores desde Madrid preguntándome si no sería posible insertar alguna herramienta que pudiera realizar un cambio de Datum. En particular de coordenadas UTM WGS 84 a ED 50.

La siguiente mejora se la dedicamos

Dolores wrote from Madrid asking me if it would be possible to insert any tool that could make a change of Datum. In particular UTM WGS 84 to ED 50.

The next improvement was devoted to her

Cambio de Datum / Changing Datum

Como vemos en el siguiente pantallazo:
As we saw in following screenshot:


Hemos incluido la posibilidad de cambiar de Datum

1º Hemos de colocar el huso en el que estamos
2ª Hemos de decirle al programa en que sistema estamos
3º Tenemos que decirle al programa cual será la transformación

We have included the possibility of changing Datum

1 We have to place the zone in which we are
2nd We have to tell the program on which the system we are
3rd We have to tell the program which will be the transformation

¿Cómo funciona? / How do it works?

Supongamos que tenemos una toma de datos en Pontevedra. En huso pondremos 29, después de De: seleccionaremos WGS-80 y en "a:" colocamos ED-50. Al ejecutar la función partir en cuadrados hará las operaciones ya descritas con anterioridad y además hará el cambio de Datum.

Di los datum "De:" y "a:" son el mismo, no hará ningún cambio en las coordenadas sólo el troceado en cuadrados. 
Nota: Recordad que el diezmado seguirá actuando.

Gracias Dolores. Esta funcionalidad nos vendrá muy bien. No porque no la hagan otros programas sino porque no habrá que salirse de éste para hacerlo. Un saludo.

Suppose we have a collection of data in Pontevedra. In zone, we will put 29. After "From": select WGS-80 and "to" put ED-50. When executing the function will square off on the operations already described above and will also change Datum.

If the datum "From" and "to" are the same, will not make any change in the coordinates only cutting into squares.
Note: Remember the decimated continue acting.

Thanks Dolores. This functionality will be very useful. Not because the other programs do not have to but because they get out of it to do so. A greeting.

lunes, 4 de noviembre de 2013

Step thirteen: Incorporating documentation. / Paso decimotercero: Incorporando documentación.

Javier Vallejo me comentó en un e-mail que notaba en falta que en nuestra aplicación de escritorio no se pudiera vincular documentación (cualquier archivo) a una localización, si ésto ya lo hacía la aplicación web. No sólo nos pareció una buena idea sino que además podríamos idear un sistema que nos ayudara a alimentar ésta fácilmente. Nos pusimos a ello:

Javier Vallejo told me in an e-mail that he felt missing in our desktop application, could not link documents (any file) to a location. This was done in web application. This seemed like a good idea. In addition we could devise a system that will help us feed it easily. We got to this:

Introducción / Introduction

En la edición web de la aplicación ya habíamos pensado en la inclusión de este tipo de datos. En realidad son archivos ligados a un punto kilométrico de una carretera o a unas coordenadas.

En esta aplicación web podíamos tener documentación variada:

In the web edition of the application we had thought of including this type of data. They are actually linked to a kilometer of a road or a coordinate files.

This web application we could have varied documentation:




Documentación gráfica:
Photographic documentation:


O, si preferimos, tomarla desde el plano ya que está geolocalizable:
Or, if you prefer, take it from the plane as it is geolocalizable:


Lo nuevo, en la aplicación de escritorio. / New in the desktop application.

Ya que queremos que todo esté junto y sea compatible, hemos ideado un sistema de captación de la documentación y procesado de ésta para que sea geolocalizable. Para ello optaremos por dos vías:
  • Añadiendo la información del PK
  • Añadiendo la información de sus coordenadas
La primera idea era ligar el archivo a georreferenciar con el pk, de tal manera que si la geolocalización no era exacta si estaría en las inmediaciones de este con un error menor de 5 metros (media distancia entre pks). Además es un sistema muy sencillo de hacer a mano. Basta con incluir el prefijo 170_ArchivoEjemplo para saber que el ArchivoEjemplo está en el pk 170.

Como con nuestra aplicación tenemos fácil ligar una coordenadas, por ejemplo, [517623.123, 4567889.567] podríamos colocar el prefijo de las coordenadas y quedaría: 517623-123_4567889-567_Archivo ejemplo.

Al final como la solución más simple siempre es la mejor. Unimos ambas teorías en el siguiente formato: 170_517623-123_4567889-567_Archivo ejemplo. De esta manera está dicho que el Archivo ejemplo está situado en las cercanías del pk 0+170 y exactamente en [517623.123,4567889.567]

Esto lo podemos hacer porque ya teníamos desarrollada la función de búsqueda del pk más cercano al pinchar sobre el dibujo del eje.

Tras dar en Documentación se nos abren las ventanas de funciones de eje con el cuadro de documentación:

Because we want everything to be together and be compatible, we have devised a system for capturing and processing documentation to be geolocalizable this. To do this we will choose two ways:
  • Adding KP information
  • Adding coordinates information

The first idea was to link the file to be georeferenced with pk, such that if the geolocation was not accurate if it would be in the vicinity of this with an error less than 5 meters ( average distance between pks ) . It is also a very simple crafting system . Simply include the prefix " 170_ExampleFile " to know that " ExampleFile " is in the 170 pk .

As with our easy application we bind a coordinate , eg [ 517623.123 , 4567889.567 ] we could put the prefix and the coordinates would be : 517623 - 123_4567889 - 567_ExampleFile .

At the end as the simplest solution is always the best . We connect both theories in the following format : 170_517623 - 123_4567889 - 567_ExampleFile . Thus it is said that the example file is located in the vicinity of KP 0 +170 and exactly [ 517623.123,4567889.567 ]

This we can do because we had developed the search function closest to click on the drawing axis pk 

Documentation After giving us open windows functions shaft with the box documentation:


Podemos ayudarnos de las funciones de Zoom para atinar mejor en el punto. Una vez decidido donde va el documento se pincha en "Añade otro más" Y se abrirá la ventana típica de apertura:

We can help with the Zoom for scoring best in point. Once you have decided where you will click on the document "Add another" And the typical opening window will open:


Después de dar a "Abrir" se añadirá este documento a la lista con los datos de posicionamiento y ya está hecho:
After giving "Open" this document will be added to the list with the positioning data is done:


Además dada la compatibilidad entre aplicaciones se irá la documentación geoposicionada en un directorio. Sólo con copiar el directorio ya tendremos la documentación geolocaliable en nuestra aplicación web.

Also given application compatibility geopositioning documentation will go into a directory. Only copy the directory and have the geolocated documentation in our web application.

Diagrama de flujo: / Flowchart:


jueves, 31 de octubre de 2013

Twelfth Step: Preferences / Duodécimo paso: Las preferencias

Introducción / Introduction

Hay algunos valores generales en toda la aplicación que es mejor agruparlos dentro de una nueva pantalla de preferencias a tener que irlos repitiendo una y otra vez en cada sección. A estos grupos de características les hemos denominado preferencias

There are some general values ​​throughout the application that it is better to group them into a new preference screen. These groups of features we will have called preferences

Preferencias en la visualización / Display Preferences

Se establecen las siguientes preferencias:
  • Color
  • Intensidad
  • Por cota (respecto al "Encuadre")
  • Por cota (respecto al "Detalle")
Cuando se activa alguna de estas opciones aparecen las siguientes posibilidades

It set the following preferences:
  • Color
  • Intensity
  • Dimensional (with respect to "Frame")
  • Dimensional (with respect to "Detail")

Preferencias en la lectura de datos / Preferences for reading data

Como hemos podido tridimensionalizar el georradar, la geología y cualquier otro concepto podemos optar por:
  • Incluir GPR
  • Incluir Geología
  • Incluir Extras
Según la opción que hayamos elegido podremos leer no sólo los archivos de formato LAS del directorio principal sino que también podremos leer los que estén en los directorios \b, \a y \x respectivamente,

As we can provide a third dimendión to GPR data, geology and any other concept can choose to:
  • Include GPR
  • Include Geology
  • Include Extras
Depending on the option you have chosen we can read not only LAS format files in the main folder but we can also read those in the folders  \ b, \ ay \ x respectively,

Preferencias en el idioma / Preferences in the language

Debido a algunas peticiones que me han llegado también estamos en proceso de traducción del programa al inglés, francés y alemán. (esperemos que las traducciones nos salgan legibles ya que no somos nada buenos traduciendo). Esta parte está en desarrollo. Aún tardará un tiempo en ser realidad.

Because of some requests that I have received are also in process of translating the program into English, French and German. (hopefully readable translations leave us, because we are not any good translating). This part is under development. Still take time to be realized.

Preferencias en los colores / Preferences in the colors

Se dice: "Para gustos, los colores" y es que, a nadie le gusta los colores que hemos puesto en la aplicación. Ni tan siquiera entre nosotros nos ponemos de acuerdo. Por ese motivo también incluimos en preferencias los ajustes de color de fondo del "Encuadre", "Detalle", "3D" y "Funciones de eje". De esta manera, no estará a gusto de todos pero sí de cada uno.

En el siguiente pantallazo se observan todas ellas:

It says: "service that matters, are the colors" and that is, no one likes the colors that we have in the application. Not even between us we agree. For this reason we also include in Preferences settings background color of the "Frame", "detail", "3D" and "axis functions." In this way, it will not be to everyone's taste but each.

In the next screenshot seen all these preferences:



lunes, 28 de octubre de 2013

Resumen de tareas y funciones que puede realizar nuestra aplicación de escritorio y nuestra aplicación web

Objetivos

En un principio elaboramos una lista de objetivos (que fue incrementándose). Este es el listado de objetivos:
  • 1.- Tiene que poder leer todos los puntos de un conjunto de ficheros de nubes de puntos.
  • 2.- El formato del/de los ficheros debe ser .las, ya que este formato puede contener toda la información y es bastante compacto.
  • 3.- El tamaño no debe importar, podría ser enorme, incluso de varios GBytes.
  • 4.- Tiene que admitir la posibilidad de diezmado tanto en la lectura como en transformaciones sucesivas.
  • 5.- Debe poder dividir todos los puntos (o tras un diezmado) en archivos rectangulares (X, Y) de dimensiones "humanas", por ejemplo en 10x10 metros.
  • 6.- Debe permitir transformaciones de cambio de Datum
  • 7.- Se deben poder eliminar zonas de puntos de forma gráfica.
  • 8.- Que estas dos últimas operaciones incluyeran labores de diezmado
  • 9.- Debe constar de visión rápida ampliada de pequeñas zonas (zoom).
  • 10.- Se debe poder crear un esquema inicial de las zonas escaneadas sin más datos que la propia nube de puntos.
  • 11.- Tiene que poderse ampliar una pequeña zona en detalle.
  • 12.- Tiene que permitir seccionar rectangularmante (X, Y) en cualquier orientación
  • 13.- Debe permitir la exportación de las áreas del punto anterior.
  • 14.- La exportación del punto anterior puede ser una simple planta en formato de dibujo (PNG, BMP, PNG y/o GIF)
  • 15.- Debe saber realizar proyecciones en diédrica.
  • 16.- La imágenes de diédrica realizadas deben ser exportables (BMP, JPG, PNG y/o GIF) y escalables.
  • 17.- Se deben poder extaer perfiles tranversales y exportables a formatos de MDT, TER, 3D-Studio y AutoCAD.
  • 18.- Se tiene que poder crear un eje.
  • 19.- Se deben poder realizar las seis operaciones anteriormente mencionadas siguiendo el curso del eje.
  • 20.- Debe ser factible la visión en 3D y permitir su exportación tanto de grandes áreas como de detalles.
  • 21.- Todas las visualizaciones anteriores debían poderse realizar con color real, intensidad o falso color por cota.
  • 22.- Con el eje se deberían incluir funciones de relleno de huecos de pks y/o de redimensionamiento del espacio entre pks.
  • 23.- El conjunto debería poder interactuar con la geología y el geo-rádar. Dada la dimensión 2D de éstos debería poderse transformar en 3D con los datos del eje. Ser exportables a nubes de puntos e incluso ser posteriormente integrados en ésta.
  • 24.- Debería poder visualizarse termografías y fotografías vinculadas a sus coordenadas y/o al pk.
  • 25.- Debería incorporarse el IRI y que éste formara parte del conjunto de datos,
  • 26.- También debería incorporarse el inventario y la documentación.
  • 27.- Todo lo anterior debería formar parte de un sistema de información geográfica conjunto.
  • 28.- Se incluyó también un sistema de cálculo de retroreflexión partiendo de los datos de intensidad del láser escáner (y un previo estudio comparativo con ensayos de retroreflexión reales) . Publicado el 19/12/2013.


Respecto a estos objetivos hemos realizado dos programas que realizan estas operaciones. En la versión web: http://sitegi.enmacosa.com  las realiza a la vista (depende del tamaño de tu pantalla que lo veas todo) o, en la versión de escritorio (no está descargable, pero si me mandas un correo te lo envío) que se realiza a través de varios formularios que se superponen, o simultanean o solapan.

En las entradas del año 2012 explicamos nuestra versión web.
En las entradas de este blog de éste año, 2013, hemos explicado la versión de escritorio. En este resumen publicamos todas las operaciones, funciones y tareas que hemos logrado hacer con nuestra aplicación.

En el siguiente vídeo se muestran todas las funcionalidades de la aplicación:



  • Lectura de todos los archivos de formato LAS en un directorio
  • Establecimiento de los límites espaciales.
  • División en secciones cuadradas. Ésto, además, alimenta el gestor web
  • Establecimiento de zonas que permitirán la eliminación de los puntos interiores o exteriores a la zona definida.
  • Efectos de zoom: Prepara la ampliación al proceso de detalle.
  • Creación de un dibujo esquemático
  • Previsualización de la zona
  • Cambio de geoide de referencia
  • Inclusión de los datos de geología, GPR y extras.
  • Visualización en color real, B/N (intensidad) o falso color por cota)

Desde el DETALLE

  • Ampliación de la zona desde un centro predefinido.
  • Establecimiento de límites exteriores
  • Creación y conexión de datos con el eje
  • Determinación de ventanas interiores orientables
  • Compatibilización entre las ventanas orientables, el eje y su rumbo
  • Exportación del recuadro exterior a ASCII y LAS
  • Exportación del recuadro interior a ASCII y LAS: Ésto alimenta a la aplicación WEB
  • Exportación de recuadro interior a ASCII y LAS en coordenadas relativas. Además prepara el paso a la gestión de la diédrica.
  • Exportación de la planta en formato JPG, PGN, GIF y/o BMP. Ésto ayuda al gestor web
  • Inclusión de los datos de geología, GPR y extras.
  • Visualización en color real, B/N (intensidad) o falso color por cota)
  • Cálculo de retroreflexión de la pintura de señalización.

Desde las FUNCIONES DE EJE

  • Creación de PKs que no hayamos previamente definido por interpolación usando polinomios deducidos por el método de elementos finitos.
  • Creación de nuevos PKs cambiando la distancia predefinida entre ellos.
  • Exportación del eje en formatos compatibles con otros programas (CLIP y/o ISTRAM)
  • Creación de eje compatible con la aplicación web

Desde la DIÉDRICA

  • Creación de las proyecciones frontales, laterales y planta. Ésta será necesaria en nuestra aplicación web.
  • Desde la aplicación web es más fácil la creación de un ráster-TIFF. Esta función queda en la plataforma web
  • Elaboración de perfiles transversales tanto en coordenadas relativas como absolutas.
  • Exportación de perfiles transversales a formato TER, OBJ y DXF, es decir compatibles con ISTRAM/CLIP, 3D STUDIO y AUTOCAD.

Desde la VISUALIZACIÓN EN 3D

  • Elaboración de vistas en 3D del recuadro externo definido previamente en detalle
  • Elaboración de vistas en 3D del recuadro interno definido previamente en detalle
  • Posibilidad de dotar la vista de giros, traslaciones y movimientos desde el punto de mira en todos los ejes
  • Exportación de las vistas en JPG, PNG, GIF y/o BMP.
  • Establecimiento de equivalencia entre las programaciones de escritorio y web
  • Visualización en color real, B/N (intensidad) o falso color por cota)

Desde el GEO-RÁDAR

  • Acceso a datos de georradar. Programación equivalente del GPR en la aplicación web.
  • Transformación de estos datos 2D a 3D compatible y así, incluirse conjuntamente con los datos iniciales
  • Exportación a formato LAS (punto final del paso anterior). Esta parte alimenta el gestor WEB
  • Transformación de datos según cotas relativas al eje.

Desde la GEOLOGÍA Y EXTRAS

  • Acceso a datos de geología. Programación equivalente de la geología en la aplicación web.
  • Transformación de estos datos 2D a 3D compatible y así, incluirse conjuntamente con los datos iniciales
  • Exportación a formato LAS (punto final del paso anterior). Esta parte alimenta el gestor WEB
  • Transformación de datos según cotas absolutas al eje.

Desde la TERMOGRAFÍA

  • Acceso a los datos termográficos.  Programación equivalente en la aplicación web. 
  • Conexión con los datos del eje.
  • Mejora fotográfica, Contraste y falso color

Desde la FOTOGRAFÍA

  • Acceso a los datos fotográficos. 
  • Conexión con los datos del eje

Desde el IRI

  • Conexión con los datos del eje
  • Compatibilidad con datos de perfilógrafo
  • Compatibilidad con el programa y sistema de ENMACOSA

Desde el INVENTARIO

  • Conexión con los datos del eje
  • Creación de la base de datos compatible con la aplicación web.
  • Incluye un sencillo editor (tanto en la aplicación web como en la de escritorio)
  • Creación de presupuestos por pk o en un entorno de PKs.
  • Exportación a XLS (en la versión web)

Desde la DOCUMENTACIÓN

  • Implanta los datos de localización geográfica a cualquier archivo.
  • Prepara la documentación para ser geolocalizable tanto en la aplicación web como en la de escritorio.

COEXISTENCIA

  • Pueden coexistir datos de termografía, fotografía y fotografía 2ª con todo el resto.
  • Las funciones de eje coexisten con GPR, Geología, IRI, Inventario y Documentación.
  • Las funciones que no pueden coexistir conjuntamente en la aplicación de escritorio si pueden visualizarse por separado pero el tamaño del escritorio impide la posibilidad espacial. Sí se puede en la aplicación web.

Tareas PROGRAMABLES

  • Todos los trabajos anteriormente expuestos que tengan alguna vinculación con el PK pueden programarse para que iterativamente sean realizados uno tras otro.

Además, pueden modificarse colores, idioma, incluye ayuda... ¡Qué más se puede pedir!

jueves, 24 de octubre de 2013

Eleventh Step: The invaluable help / Undécimo paso: La inestimable ayuda

Introducción / Introduction

Todos los programas tienen algún sistema de ayuda. En nuestro caso éste es bastante simple ya que todo está en sitio específico y se guarda igualmente en otro sitio específico. El problema viene  cuando no se recuerda cual es el sitio. En este programa hemos incorporado una chuleta que nos recuerda donde está cada cosa según el programa de escritorio y dónde está su equivalente web.

Por otra parte hemos incorporado en esta sección las tareas programadas. 

All programs have a help system. In our case this is quite simple because everything is at a specific site and saved on another site equally specific. The problem comes when you do not remember where this place is. In this program we have incorporated a reminder to tell us where everything in the desktop and web program.

On the other hand we have incorporated in this section scheduled tasks.

Formulario y "chuleta" / Form and reminder

El aspecto del formulario de ayuda es el siguiente:
The appearance of the assistance form is as follows:


La definición de las funciones de directorio son las siguientes:
The definition of folder functions are:

  • a: Perfil geológico
  • b: Perfiles de georradar (lectura)
  • c: Partición en cuadrados.
  • d: Proyección derecha.
  • e: Datos del eje (aconsejable).
  • f: Proyección frontal.
  • g: Eje global compatible
  • h: Perfiles del georradas (escritura) 
  • i: Proyección Izquierda.
  • j: Inventario (subdirectorios = capítulos)
  • k: Base de datos de inventario
  • l: Documentación georreferenciada
  • m: 
  • n: 
  • o: Planta cuadrada (dibujo)
  • p: Proyección en planta
  • q: Perfil del terreno (.ter)
  • r: Recuadro interno relativo. ¿txt/las?
  • s: IRI
  • t: Termografías
  • u: Fotografías
  • v: Fotografías 2
  • w: 
  • x: Extras LIDAR
  • y: 
  • z: Plantas discretas de cuadrados 
  • 1: Recuadro externo. ¿txt/las?
  • 2: Recuadro interno. ¿txt/las?
  • 3: Proyección cónica.
  • 4: 
  • 5: 
  • 6: 
  • 7: 
  • 8: 
  • 9: 
  • 0: 
  • a: Geological profile
  • b: GPR profiles (read)
  • c: Partition into squares.
  • d: Projection right.
  • e: Shaft Data (advisable).
  • f: Front Projection.
  • g: Global axis support
  • h: GPR profiles (write)
  • i: Projection Left.
  • j: Inventory (subdirectories = chapters)
  • k: Inventory Data Base
  • l: Documentation georeferenced
  • m:
  • n:
  • or: Ground square (drawing)
  • p: Screening plant
  • q: Terrain profile (. ter)
  • r: relative internal Box. Txt? / The?
  • s: IRI
  • t: Thermography
  • u: Photographs
  • v: Photographs 2
  • w:
  • x: Extras LIDAR
  • y:
  • z: Plants discrete square
  • 1: External Box. Txt? / The?
  • 2: Internal Box. Txt? / The?
  • 3: Conic projection.
  • 4:
  • 5:
  • 6:
  • 7:
  • 8:
  • 9:
  • 0:

Se ha intentado ser coherente con la letra inicial y el concepto, pero no siempre ha sido posible. ALgunos de los directorios son de archivos que van a ser leidos. otros son carpetas donde se guardarán resultados y algunos ambas cosas.

En el anterior listado está todo lo que el programa lee, edita, modifica y guarda.

It has been attempted to be consistent with the initial letter and the concept, but not always possible. Some of the folders are the files that will be read. Others are folders in which to save results and some both.

In the above list is all that the program reads, edit, modify and save.

Tareas programadas / Scheduled tasks

Esta es una de las partes más potentes del programa. En el caso en que tengamos definido un eje podemos decirle al programa que, uno a uno cada pk haga las siguientes operaciones, si están marcadas:

This is one of the more powerful parts of the program. In the case where we have defined an axis, we can tell the program one by one each pk do the following, if marked:


  • Leerá e irá dibujando el entorno del pk (exterior o interior)
  • Guardará el recuadro externo y/o interno en ASCII y/o LIDAR, en coordenadas absolutas o relativas
  • Guardará planta y/o proyecciones de diédrica y/o proyecciones cónica  y/o ortogonal
  • Y en elcaso de que guardara la diédrica, podrá guardar el perfil en coordenada relativos  y/o absolutas en formato .ter, .obj  y/o .dxf
  • Read and go pk drawing the environment (outside or inside)
  • Keep external box and / or internal in ASCII and / or LIDAR, in absolute or relative coordinates
  • Keep plant and / or projections of dihedral and / or conical projections and / or orthogonal
  • And in case you keep the dihedral, you can save the profile coordinate relative and / or absolute format. Ter. Obj and / or. Dxf (ISTRAM, 3DStudio, and AutoCAD)

Al pinchar en "Ejecuta e RECORRIDO"  hará estas operaciones desde el punto marcad en la pantalla de "Encuadre" hasta el final (Si no le damos antes al STOP de la barra de progreso). Las modificaciones que hallamos hecho en los diferentes preferencias se mantendrán en todo el proceso.

Estos trucos son los que hemos utilizado para la creación de imágenes que han formado parte de varios vídeos:

By clicking on "Run and RUN" will these operations from the point marked on the screen of "Frame" to the end (If we do not STOP before the progress bar). The modifications that we have done in the different preferences will be maintained throughout the process.

These tricks are what we used to create images that have been part of several videos:







En otro momento contaremos otra parte necesaria en todo programa. Las preferencias.
At another time we will have another necessary part of any program. The preferences.

martes, 22 de octubre de 2013

Tenth step: Inventory and Budget / Décimo paso: Inventario. Presupuesto

Introducción /Introduction

Empezamos a pensar como incluir el inventario de los elemetos que componen una carretera cuando, al echar la vista atrás y ver que todo ello llevaba consigo un segundo trabajo de presupuestación, decidimos cambiar todo para que el objetivo final fuera la realización de presupuestos.

Al contemplar todo lo que habíamos hecho en la versión de escritorio y web empezamos a pensar cual sería más fácil de programar. Esta vez ganó PHP frente a Visual Basic. Por ese motivo empezaremos a explicar como funciona la edición de presupuesto/inventario.

Otro punto fue la discusión de cual sería la mejor base de datos a utilizar. Ésta tenía que ser compatible con la versión web y de escritorio. Finalmente nos decantamos por una pseudo-base de datos (más detalles en: PSBD.pdf). La razón que más motiva esta decisión es la facilidad de su funcionamiento y el hecho de que sólo cuando el número de elementos se dispara más allá de los 10.000 ésta empieza a ser desaconsejable y éste no es el caso. El otro objetivo más mundano es la incompatibilidad entre sistemas. Una base de datos en Access sería adecuada para la aplicación de escritorio pero un tormento en la aplicación del servidor. Una base de datos de tipo MySQL o PostgreSQL sería un bendición en PHP pero el suplicio se volvería en aplicación de escritorio. La pseudo-base de datos es compatible con ambos, requiere sólo un poco más de esfuerzo en la programación pero los datos está a la vista, en un directorio en concreto y se puede utilizar el clásico copia-pega. Además, los datos se puede ver y editar, si se desea, directamente con un simple editor de texto.

We started thinking about how to include the inventory of the elements of a road when, look back and see that all carried a second job of budgeting, we decided to change everything so that the ultimate goal was the realization of budgets.

Looking at all that we had done in the desktop version and web start thinking that would be easier to program. This time, PHP gained versus Visual Basic. For this reason we will begin to explain how it works budget editing / inventory.

Another point was to discuss what would be the best database to use. This had to be compatible with desktop and web version. Finally we opted for a pseudo-database (more details at: PSBD.pdf). The reason for this decision is the operational capacity and the fact that only when the number of elements is greater than 10,000 it begins to be undesirable and that is not the case. The other more mundane goal is the incompatibility between systems. An Access database would be suitable for the desktop application but a torture in the server application. A type database MySQL or PostgreSQL would be a blessing in PHP but the torture would turn desktop application. The pseudo-database is compatible with both, requires only a little more effort in programming but the data is visible in a particular directory and you can use the classic copy-paste. Additionally, data can be viewed and edited, if desired, directly with a simple text editor.

La aplicación web / The web application

Lo primero, es añadir una nueva opción a nuestra aplicación que nos permite ir al futuro editor:
The first thing is to add a new option to our application allows us to go to the future editor:


¿Como funciona? / How does it work?

1º.- Creación de capítulos
En el ejemplo que se muestra se han ido creando los capítulos de Balizamiento y señalización. Se irán creando según sean necesarios, dinámicamente. Si la selección de capítulos nos parece buena para aplicar a otra carretera simplemente se copiará el directorio ../bd en cualquier otra carretera. De esta manera se copiarán no sólo los capítulos sino también las unidades. La creación de un capítulo implica la creación de un directorio. En nuestro ejemplo:

1º.- Creating chapters
The example shows how the chapters have been created for Beaconing and signposting. It will be created as needed, dynamically. If the chapter selection seems good to apply for another road simply copy the folder .. / bd on any other road. In this way not only be copied but also chapters units. Creating a chapter involves creating a directory. In our example:




2º.- Creación de unidades
Igualmente que en el caso anterior se irán creando las unidades. Éstas tendrán dos datos, a saber, la unidad de medida (m3, ml, Kg, ...) y el precio. El aspecto será el siguiente:

2º.- Creating units
Similarly as in the previous case they will be created units. They have two data, namely, the unit of measurement (m3, oz, kg, ...) and price. The appearance is as follows:



3º.- Añadir la medición y en conclusión el presupuesto
Según vamos pasando de pk se irán incorporando mediciones de cada unidad que nos interese. Ésta se unirán en bloque y realizará el presupuesto del entorno del pk afectado.

3º.- Add the measurement and budget
As we are going to KP measurements will be added for each unit that interests us. This will join the block and make KP budget affected.

4º.- Funciones de ayuda a la edición
Después de realizar muchas pruebas y discutir sobre el tema encontramos que la forma más sencilla era la incorporación de 3 funciones simples, necesarias y potentes:

  • Función de Validación: "Guardar datos de este pk." En algún momento hay que dar por buenos los cambios
  • Función de validación y copia al siguiente. "Guarda datos de éste y cópialos al siguiente pk". Idem función al anterior. Además hace lo mismo en el siguiente. Este punto es importante ya que muchas mediciones son constantes, como por ejemplo la pintura blanca de señalización. Ésta función es adecuada para funciones repetitivas.
  • Función de no hacer nada: "Pasa y ve al siguiente". No hace nada pero a un golpe de click pasa al siguiente pk. Es útil en tareas de reedición y repaso.
4º.- Help functions for editing

After extensive testing and discuss the issue, we find that the easiest way was to incorporate three simple functions, necessary and powerful:


  • Validation Function "Save data from this KP." At some point you have to make changes for good
  • Validation and copy function to the next. "Save it and copy data to the next KP". Same as the previous function. Also does the same in the next. This point is important as many measurements are constant, such as white paint. This function is suitable for repetitive functions.
  • Function of doing nothing, "Come and see the next." It does nothing but stroke goes to the next KP click. It is useful in tasks reissue and review.


5º.- Funciones de visualización de imagen
Al contemplar la foto nos permite saber que unidades hay en cada pk.

5º.- Image display functions
Looking at the photo lets us know that units in each KP.

6º.- Funciones de visualización de presupuesto
Nos permite ver el presupuesto del pk. Permite ver fallos gordos que se nos pudieran ir "colando".

6º.- Budget display functions
We can see the KP budget. Lets see fat failures that we might have.



Esta última función se incorporará a la aplicación principal. Con algunas variantes:
This latter function is incorporated into the main application with some variations:

7º.- Incorporación de tramos al presupuesto
Nos puede interesar saber cual es el presupuesto del inventario no sólo en este pk sino el sumatorio de los 100 metros siguientes. El programa nos hará una pregunta "¿Dame una distancia? Le respondemos 100 y...

7º.- Adding tranches to the budget.
We may want to know what the inventory budget not only in this KP but the sum of 100 meters below. The program will give a question "Give me a distance? ... We respond 100 and ...





 ... nos lanza el presupuesto:
 ... it throws us the budget:



7º.- Funciones de exportación
Para rematar le incorporamos la funcionalidad de exportación en formato XLS. También se puede seleccionar la tabla en su conjunto y realizar el clásico copia-pega.

7º.- Export functions
To finish we add the functionality to export in XLS format. You can also select the table as a whole and make the classic copy-paste.



La aplicación de escritorio /The desktop application

Después del trabajo realizado en el editor web, repetimos los mismos pasos en nuestra aplicación de escritorio. Para ello la enlazamos con la parte de funciones de eje (ver: http://carreteras-laser-escaner.blogspot.com.es/2013/10/jugando-con-el-eje.html

After work in the web editor, repeat the same steps in our desktop application. To do this, we will connect with the axis functions (see:http://carreteras-laser-escaner.blogspot.com.es/2013/10/jugando-con-el-eje.html



Ahora incorporamos una tabla del tipo Flexgrid. De una manera más acorde con el espacio más reducido que el de una aplicación web fuimos incorporando lo elemento de nuevo capítulo, nueva unidad, mediciones y un botón "Cada X metros" que nos permite hacer sumas parciales más amplias del presupuesto. Como la aplicación ya dispone de funcionalidades de edición fotográfica, éstas, se incorporan sin ningún esfuerzo.

Las bases de datos de la aplicación web y de escritorio no son sólo compatibles, en realidad, son la misma.

Now we incorporate a rate table Flexgrid. In a manner more consistent with the smaller space than a web application what element we incorporated new chapter, new unit, measurements and a button "Every X meters" that allows us to partial sums most extensive in the budget. As the application already has photo editing features, they are incorporated without any effort.

The databases of Web and desktop application are more than compatible, in fact, are the same.

Diagrama de flujo del proyecto completo / Flowchart complete project:



Agradecimientos

Ha sido la inestimable ayuda del equipo humano y material de las empresas Enmacosa S.A,  Extraco, S.A. y Mixturas, S.A. para la conclusión éste y otros apartados comentados en este blog.

Acknowledgements

It has been the invaluable help of the team and equipment from companies: Enmacosa S.A,  Extraco, S.A. y Mixturas, S.A. for the conclusion of this, and other sections discussed in this blog.