TU ANUNCIO / YOUR PUBLICITY

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

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.

lunes, 21 de octubre de 2013

Ninth step: IRI / Noveno paso: El IRI

Introducción: / Introduction:

Tenemos muchas opciones para insertar el IRI. Hace tiempo ya explicamos una de ellas. Estamos hablando de la posibilidad de obtener el IRI partiendo de los datos del láser escáner. En el texto publicado en http://carreteras-laser-escaner.blogspot.com.es/2012/12/anadiendo-el-iri-las-pendientes-y-los.html el 18 de agosto del 2012 y extendido en http://carreteras-laser-escaner.blogspot.com.es/p/iri-un-estudio-mas-profundo.html detallábamos como llevar a cabo esta operación.

Otra posibilidad era la utilización de los datos obtenido con un perfilómetro láser. y una tercera sería crearnos nuestro propio sistema de toma de datos y registro.

We have many options to insert the IRI. Long ago, we explained one of them. We are talking about the possibility of IRI based on laser scanner data. The text is published in  http://carreteras-laser-escaner.blogspot.com.es/2012/12/anadiendo-el-iri-las-pendientes-y-los.html and more widespread in http://carreteras-laser-escaner.blogspot.com.es/p/iri-un-estudio-mas-profundo.html.

Another possibility was to use the data obtained with a laser profilometer, and a third it would be create us our own system of data collection and recording.


Primer sistema: Deduciendo el IRI de la nube de puntos:

First system: Deducing the IRI of the point cloud:

En los enlaces anteriores explicamos como se toma un trozo virtual de la carretera y se realiza la geometría:

In the above links explain how to take a virtual piece of the road, and virtually make the measurement geometry:


Lo bueno de este sistema es que podemos tomar la carretera virtual como real y hacer cualquier tipo de medición (siempre que la nube de puntos sea lo suficientemente densa). Esta posibilidad nos permite tomar un valor real para evaluar nuestro sistema.

Este sistema para obtener el IRI es, evidentemente, caro. De no ser que por algún motivo hayamos tenido que hacer un escaneo de una carretera y ya tengamos los datos. Sólo tendría el coste del Tiempo de cómputo.

Para nuestras necesidades es un dato importante porque para poder juzgar la bondad de los dos pasos siguientes necesitamos un patrón al que dar por bueno.

Good thing about this system is that we can take the virtual road as real and do any type of measurement (if the point cloud is dense enough). This possibility allows us to take a real value to evaluate our system.

This system for the IRI is obviously expensive. Were it not for some reason we had to do a scan of a road and already have the data. Only would the cost of computation time.

For our needs, it is an important fact because in order to judge the goodness of the next two steps we need a pattern to be taken for good.


Segundo sistema: Obteniendo el IRI con un perfilógrafo:

Second system: by IRI Getting with a profilograph:

Para ello teníamos a nuestra disposición un perfilógrafo.
To do this, we had at our disposal a profilograph.

Property Profilograph Vigo University. Donated by companies Enmacosa, Extraco, Mixtures, Logic and Insitu with CDTI contribution and FEDER funds


Se trata de un perfilógrafo Digital LaserProf de la compañía danesa Greenwood.
This is a Digital profilograph LaserProf Greenwood.

Perfilógrafo en su maletín
Profilograph in his briefcase
Dibujo del perfilógrafo desplegado
Picture of the deployed profilograph

Salida gráfica con el software de Greenwood
Graphical output with software Greenwood
Aclaración: Este equipo fue adquirido por la Universidad de Vigo gracias a sus patrocinadores (InSitu, Lógica, Extraco, Mixturas y Enmacosa) y a la ayuda del CDTI dentro del proyecto SITEGI.

Note: This equipment has been acquired by the University of Vigo thanks to their sponsors (insitu, Logic, Extraco, Mixtures and Enmacosa) and support from within the project CDTI SITEGI.

Los resultados, hasta la fecha han sido bastante desastrosos. No se ha podido comprobar la repetitividad del ensayo. Es decir, una vez realizado el ensayo en una carretera, si se repetía no volvía a dar el mismo resultado. Ni que decir tiene, que tampoco podía ser comparable al patrón del LST anteriormente mencionado.

A continuación se muestran los resultados del mismo IRI repetido en la carretera de A Lama:

The results so far have been pretty disastrous. We could not check the repeatability of the test. That is, after completing the trial on a highway, if you repeated it, this, again not giving the same result. Needless to say, it could not be comparable to LST pattern mentioned above.

The following are shown results of the repeated IRI road A Lama:



Como se puede observar la disparidad entre resultados de un mismo tramo es bastante grande. La diferencia entre varios resultados ha sido del 14%. Con respecto al patrón la media está en el 17%.

As you can see the disparity between the results of the same section is quite large. The difference between various outcomes has been 14%. With respect to the standard average is at 17%.

Tercer sistema: Obteniendo el IRI con los datos del sensor del propio vehículo y un Arduino:

Third System: Getting the IRI with sensor data of the vehicle itself and an Arduino:

A priori, parece disparatado que con un par de cables y un Arduino se puedan tener no sólo los mismos sino mejores resultados que con un equipo de 50.000€ (un Arduino cuesta unos 20€).

Lo primero es saber como funciona la toma de datos de nuestro vehículo para el ABS, cuentakilómetros etc. simplemente es un sensor  unido a la rueda de la siguiente manera:

It seems crazy that with a couple of cables and a Arduino we can get better results than a system of 50.000€ (an Arduino costs about 20 €).

The first thing is to know how the sistem works about data acquisition with our vehicle for ABS, speed ..Simply a sensor attached to the wheel in the following manner:



El cable es éste:
The wire is:


Tan "sólo" hay que pinchar en éste y de ahí al Arduino
So "only" is necessary to puncture on it and then to Arduino



Claro está que tuvimos que crear también un programa que tomara los datos y transformara estós en entidades IRI: Su aspecto fue el siguiente:

Course, also we had to create a program to take the data, and transform entities thereof at IRI: His appearance was as follows:

Pantallazo del programa en el momento de lectura de datos
Image program at the time of reading data
Pantallazo con la salida de datos.
Program image data output.

Al igual que hicimos en el caso anterior, realizamos las gráficas comparativas:
As we did in the previous case, we make comparative graphs:


No nos hemos complicado la vida. Hemos pensado en la salida del programa de forma que al copiar-pegar en una hoja de LibreOffice (FreeOffice) la creación de una gráfica fuera inmediato. De esta misma forma se buscaba también la compatibilidad con el programa que estábamos creando.

Si el perfilógrafo diera un resultado decente, tampoco sería muy difícil la exportación de estos a nuestra aplicación. Quizás hiciera falta un paso previo en hoja de cálculo, pero éste sería muy sencillo.

We have thought about the output of the program in a simple way. Copy-paste on a sheet of LibreOffice (FreeOffice) creating a graph out immediately. In the same way also sought support for the program that we were creating.

If the profilograph give a decent result, it would not be very difficult to export these to our application. Maybe do lack a preliminary step in spreadsheet, but this would be easy.


La hora de la verdad, La inclusión en nuestro programa:

The moment of truth, the inclusion in our program:

La función más simple en informática es el doblete copias-pegar (Contrl-C + Control-V) y como nos gustan las soluciones simples esa fue la idea:

Copy-paste (Contrl-C + Ctrl-V) and as we like simple solutions that was the idea:


El sistema es sencillo. Tenemos dos cajas de texto en donde colocaremos los datos de salida del programa del IRI. Un simple copia-pega. después le decimos al programa desde donde y hasta donde van los datos. Por último, le damos a uno de los botones de interpretar IRI. La diferencia entre ambos es que el primero lee la vuelta en sentido inverso y el segundo en sentido directo.

Como cualquier IRI da los resultados como un listado siempre se puede hacer el copia-pega. Después de hacer esto el programa guarda los datos como d.iri e i.iri en el directorio ...\s. Si queremos guardar varios IRI's, sólo tenemos que acceder al directorio y colocar algún texto delante del archivo d.iri (o i.iri). En este ejemplo se colocaros los sufijos 1, 2 y 3. Debemos dejar la terminación d.iri (e i.iri) para que el programa sepa cual es el derecho (ida) e izquierdo (vuelta).

No puede ser más sencillo.
Para la redacción de informes se realiza el mismo sistema con cualquier programa de hoja de cálculo. En nuestro caso he utilizado LibreOffice:

The system is simple. We have two text boxes where you post the output of the IRI program. A simple copy-paste. Then we say to the program from where and to where the data goes. Finally, we give one of the buttons to interpret IRI. The difference between them is that the first read back in reverse and the second in the forward direction.

Like any IRI, it presents the results as a list you can always copy-paste. After doing this the program saves the data as d.iri and i.iri in the folder ...\s. If we want to save multiple IRI's, just have to access the directory and place a text file before d.iri (or i.iri). This example place you suffixes 1, 2 and 3. We must stop d.iri termination (e i.iri) so the program knows what the right (way) and left (back).

It can not be easier.
To report writing was done on the system with any spreadsheet program. In our case I used FreeOffice:



La salida puede decorarse al gusto de uno.
En nuestro programa también se dará una salida gráfica:

The output can be decorated to the pleasure from one.
In our program will also give you a graphical output:


Aquí es importante dar un valor a la escala. Por defecto está en 50.
Here it is important to put a value on the scale. Default is 50.

¿Se le puede añadir algo más?:

Can it be include something else?:

Como ya habíamos hecho las fotos, le podemos incluir éstas.
As we had done the photos, we can include them.

IRI + Foto térmica + Fotografía + Perspectiva
IRI + termpgraphy + photography + perspective

Diagrama de flujo: Flowchart:


Próximas tendencias:

Upcoming trends:

En un correo, Martín Bach me indicó que sería buena idea unir los datos de IRI y GPR (y/o geología). Cuando lo tengamos hecho alargaremos esta publicación con su solución.

El siguiente paso será el inventario. Pero como aperitivo diremos que nos ha resultado más fácil la edición de este a través de nuestra aplicación web que con la de escritorio. Por ese motivo, el lugar de que sea nuestra aplicación de escritorio la que alimente a nuestra aplicación web. Esta vez será al reves. Ésto se verá en la próxima entrega.

In an email, Martin Bach told me it would be good idea to link data from IRI and GPR (and / or Geology). When it made ​​this publication lengthen your solution.

The next step is the inventory. But as an appetizer we say that we have found it easier to edit this through our web application with desktop. For this reason, the place that is our desktop application which feed our web application. This time it's the other way around. This will be in the next issue.







miércoles, 16 de octubre de 2013

Eighth step: Thermal imaging and photography, and inclusion in LIDAR systems.. / Octavo paso: La termografía y su inclusión en los sistemas LIDAR. Y fotografías

Hay varias formas de incluir la termografía. Como tenemos la parte de programación dedicada al eje la incluiremos de forma "flotante" y de esa manera estará incluida en todas las secciones.

There are several ways to include thermography. Since we have a part of the program dedicated to the axis, we will include it in a "floating" and so is this included in all sections.


El primer paso es la toma de imágenes. Ésta podemos hacerla de forma manual o automática. 
Más abajo explicaremos como unir termografía y láser escaner.

The first step is taking pictures. This, we can do it manually or automatically.

Recopilación de termografía de forma manual:

Thermography collection manually:

Para ello hemos utilizado una cámara térmica de la marca Testo:
We have used a thermal imager Testo brand:

Para ello nada más fácil que situarse en cada pk y hacer un termografía. Posteriormente las iremos dando los nombres 0.jpg, 10.jpg, ... n.jpg. Como nuestra aplicación sabe donde está cada pk las situará correctamente. Lógicamente añadiremos la información adquirida en la sección de funciones de eje.

Así podremos hasta crear un película:

You have to be at each station and make a thermography. Later we will be giving the names 0.jpg, 10.jpg, ... n.jpg. Our application knows where each pk is correctly located. Logically add the information acquired in the functions section of the axis.

So we can even create a movie:


Como se observa, va a saltos.
As noted, is jerky.

Recopilación de termografía de forma continua desde un vehículo:

Thermography Collection continuous from a vehicle:

Furgoneta de la Universidad de Vigo comprada gracias a la colaboración de las empresas Extraco, Lógica, Mixturas, In Situ y Enmacosa, cofinanciada por el CDTI en exclusiva para del proyecto Sitegi. En este caso sólo dotada de termografía e IRI
Vehicle of the University of Vigo bought through collaboration of companies Extraco, Logic, Mixtures, In Situ and Enmacosa, financed by the CDTI exclusively for SITEGI project. In this case only equipped with thermography and IRI

Se trata de una cámara termográfica GOBI 384 de xenics:
This is a 384 GOBI imager Xenics:

Cámara térmica de la Universidad de Vigo comprada gracias a la colaboración de las empresas Extraco, Lógica, Mixturas, In Situ y Enmacosa, cofinanciada por el CDTI en exclusiva para del proyecto Sitegi.
Thermal imaging camera Vigo University bought through collaboration of companies Extraco, Logic, Mixtures, In Situ and Enmacosa, financed by the CDTI xclusively for SITEGI project.

En este caso el software de la cámara nos da un nombre de foto ligado a un tiempo. Con cualquier dispositivo GPS se puete tener un tiempo ligado a una posición y como nosotros tenemos una colección de pks ligados a un posición resulta fácil programar un renombrado de las fotos al pk tras buscar el tiempo del punto más cercana a una posición de  punto kilométrico. 

In this case the camera software gives us photo name linked to a time. With any GPS device, one can have a time attached to a position, and as we have a collection of pks linked to a position is easy to program a renowned photo to pk after searching the closest point time position to a point kilometer.

Si más tarde unimos todas las fotos en una película tenemos:

If later joined all the photos in a film, we are:



Como se puede ver, va sin sobresaltos. 
As you can see, goes smoothly.

Pero no todo es tan sencillo. En el caso de la cámara GOBI la imagen inicial tiene que tratarse un poco. Inicialmente tiene esta calidad:
But not everything is so simple. In the case of the initial image GOBI camera has to be treated a little. Initially has this quality:


Lo primero será alterar los máximo y mínimos. Para ello se leen todos los píxeles y se les redefinen con una aplicación biunívoca de 0 a 255: Nos quedará:
The first thing you have to do is manipulate the contrast. This will read all pixels and redefine them with a univocal application of 0-255: We will:



Si repetimos la misma operación con una escala de color, tendremos:
If we repeat the same operation with a false color scale, we have:


Uniendo el programa:

Join the program:

Unión Detalle + Termografía
Union Detail + Termography
Funciones de eje y termografía
Funtion of axis and termography


Uniendo funciones de eje, georradar y termografía
Joining fucntions of axis, GPR and termography

Como nos podemos imaginar la inclusión de las fotografía es igual pero cambiando el directorio de los datos. La termografía la almacenamos en el directorio \t y las fotografías las almacenaremos en el directorio \u

As we can imagine the inclusion of the photograph is the same but changing the data directory. Thermography store it in the \t folder and the photographs will store in the \u folder.

¿Cómo quedaría el programa con la inclusión de fotografías?

How would the program with the inclusion of photographs?

Así:
So:

Uniendo funciones de eje, termografía y fotografía
joining functions of axis, Termography and photography
No damos más explicaciones que a la termografía dado que la fotografía es incluso más sencilla que la termografía dado que no hay que tratar las fotografías. Sólo se trata de realizar una programación casi igual que la realizada anteriormente.

¿Como mejora esto la aplicación web?

How we have improved web application?

La mejora es debido a la compatibilidad. Nuestra apicación web ahora puede integrar fácilmente la termografía y la fotografía.
The improvement is due to the compatibility. Our web apicación can now easily integrate thermal imaging and photography.


En este caso hemos preferido que la imagen nos la dé Google Maps dada su alta calidad. Pero si prefiriéramos partir de nuestro datos este sería el resultado:
In this other case we preferred the image gives us Google Maps because of its high quality. But if we prefer our data this would look like:


Claro está, se pueden añadir al unísono todas las magnitudes:
Of course, you can add together all the concepts:


Unión entre termografía y puntos de láser escáner

Si se prefiere, se puede incorporar estos datos a la propia nube de puntos proyectada:
Or, if you prefer, you can incorporate these data into the cloud projected points:


¿Como se hace?

How is it done? 


Es más simple de lo que parece. Cada foto se toma desde una posición (y ésta es conocida). Desde ella se obtiene una imagen:
It's simpler than it seems. Each picture is taken from a position (and this is known). From it is obtained an image:



Desde nuestro programa se provoca la misma proyección partiendo de los datos del láser escáner.
With our program the same projection based on laser scanner data is created.


Posteriormente de cada punto proyectado se obtiene el dato de su temperatura. Si se desea después añadirle el falso color típico de la termografía se obtiene:
Then each data point, the projected temperature is deduced. If you then want to add the typical false color thermography is obtained:



Y si este falso color se guarda, se puede después disponer de él en nuestra aplicación web. Aunque no vamos a desvelar la solución completa de como se hace, daremos una pista. Siempre hemos separados los conceptos eje y trayectoria. Eje denominábamos a la linea geométrica que define la carretera (por ejemplo la línea centra de ésta) y trayectoria sería la línea descrita por el vehículo de auscultación. En este único caso hemos necesitado de la trayectoria, ya que teníamos que saber exactamente donde estábamos.

And if this false color is saved, you can then dispose of it in our web application. While we will not reveal the complete solution as is done, give you a hint. We have always separated the axis and trajectory concepts. The axis is the geometric line that defines the road (for example the center line thereof) and the path line would be described by auscultation vehicle. In this case we only need the path, as we had to know exactly where we were.

Diagrama de flujo: / Flowchart:



Y eso es todo. Con las fotos y termos. En el siguiente paso integraremos el IRI. Y no está exento de sorpresas.

And that is all. With photos and thermography. In the next step we integrate the IRI. And there are plenty of surprises.