TU ANUNCIO / YOUR PUBLICITY

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

sábado, 14 de julio de 2012

The management of data captured by the laser scanner / La ordenación de los datos captados por el laser escaner


Tras escanear varias carreteras se ve que hace falta poner un poco de orden. Hay que clasificar los archivos y finales y facilitar las comparaciones, el análisis, las consultas, compatibilizar con servidores de mapas y anidar otros datos en la misma estructura. Además, deberá tener una estructura fácilmente ampliable o modificable.

En lugar de optar por una base de datos se optará por una pseudo-base de datos. Siempre y cuando los tiempos de consulta no sean excesivos.


After scanning several roads have to put some order. You have to sort files and final and facilitate comparisons, analysis, consultation, compatible with map servers and other data nested in the same structure. You must also have a structure easily expandable or changeable.

Instead of opting for a database will be chosen by a pseudo-database. Whenever the query times are not excessive.

¿Qué  es una pseudo-base de datos?
What is a pseudo-database?

Para explicar el concepto es mejor exponer primeramente un ejemplo. Supongamos que queremos tener una base de datos que nos permita acceder a una(s) fotografía(s) entre un conjunto de ellas. Cada foto estará ligada a la siguiente información: fecha, eje, punto kilométrico, capítulo (movimiento de tierras, drenaje, firmes, estructuras...), subcapítulo (estructura tal, OD cual...), parte (cimentación, alzados, explanada...), elemento (pila, aleta, capa nº...), y por supuesto un descripción del objeto final de la fotografía.
Desde el punto de vista informático se tendrá este enfoque de la base de datos:


To explain the concept better expose first an example. Suppose we have a database that allows us to access a picture (or several) from a set of them. Each photo is linked to the following information: date, route, kilometer, chapter (earthworks, drainage, roadbed, structures ...), subchapter (structure such that OD ...), part (foundation, elevations, esplanade ...), element (stack, fin, layer # ...), and of course a description of the final object of photography.

From the IT perspective so will the database:



Para la incorporación de datos se creará un formulario del tipo
For data entry will create a form like this:

Eje:

Pk:



Nombre archivo:
Capítulo:

Subcapítulo MT:

Subcapítulo Drenaje:

Subcapítulo Estructuras:

Subcapítulo Firmes:

...
Partes:

Mas listas desplegables

...
Elementos:

Mas listas desplegables

...







Consecuencias. 
Implications.

1ª La variación de cualquier tabla exige la renovación del formulario de entrada y, a veces, la modificación de los datos anteriores.
2ª No se considera importante el tiempo (y su coste) de la(s) personas que tengan que introducir esos datos.


1st; variation of any table requires the renewal of the input form, and sometimes, the modification of the above data.
2nd; is not considered important the time (and cost) of the (s) who have to enter data.

Volviendo atrás. Replanteando el problema.
Return. Reframing the problem.

El problema inicial. Se plantea el siguiente ejemplo. Sea una fotografía del armado de una aleta de la obra de drenaje OD-5.3 realizada el 5 de marzo de 2012 en el pk 5+300 de la vía de servicio 2. Ahora supongamos que en lugar de realizar todo el invento anterior simplemente la nombramos:
To solve the initial problem we consider a simple example. Be a picture of a fin assembly drainage OD-5.3 on March 5, 2012 in the pk 5+300 2nd service road. Now suppose that instead of doing all the above invention simply named:

120305_Drenaje_Vía de servicio 2_pk 5300_Alzado_Aleta 2_Detalle del armado.jpg
120305_Drainage_2nd service road_kp 5300_flap 2_assembly detail.jpg

Y que sea el programa del servidor el que se encargue de “pensar” cuando queramos hacer una consulta. As modificaciones serían simples y las actualizaciones se haría por lotes a través de la red o cualquier otro sistema (FTP, SSH, etc.)
The server program will be responsible for "thinking" when we want to make an inquiry. As changes would be simple and would batch updates through network or any other system (FTP, SSH, HTTP, etc..)

El punto débil es la rapidez. Después de realizar la misma táctica en la empresa, a partir de los 10.000 datos las demoras llegan al segundo (en vez de una décimas o centésimas de segundo respecto a la base de datos)
The weakness is speed. After performing the same approach in the company, from the 10,000 data arrive at the second delays (rather than a few tenths or hundredths of seconds compared to the database)

Pero todo debe ser observado en conjunto. Después de estas operaciones de consulta los archivos se sirven por internet y esas fotos tardan varios segundos en actualizarse en el ordenador del cliente. Entonces, ese segundo, relativizándose con el tiempo global ¿Es tan grande?
But everything should be observed together. After these files query operations serves those photos online and take several seconds to update on the client computer. Then, the second overall relativizándose over time, is it so great?

Finalizando. Alguno pensará que ésto no es una base de datos sino una forma coherente de guardar originariamente los ficheros y que para crear el HTML que le llegará al ordenador del cliente se incrementa el trabajo del servidor. Pues bién, esa es la idea. Una pseudo-base de datos no es una base de datos sino la negación de ésta, substituida por una programación inteligente, con la intención de reducir los tiempos de quien introducirá los datos e incluso, si es posible, eliminar el consumo de tiempo humano si se consigue que estos datos pasen a formar parte del conjunto sólo por el hecho de estar en su sitio.
Finishing. Some think that this is not a database but a consistent way originally save files and to create the HTML that will come to the client computer increases the server work. Well also, that's the idea. A pseudo-database is not a database, but the denial, replaced by intelligent programming, with the intention of reducing the times of who will enter the data and even, if possible, eliminate the use of human time if these data is achieved become part of the set just for the sake of being in place.

lunes, 2 de julio de 2012

How to measure distances and absolute positions / Medir distancias y posiciones absolutas

Punto de partida

Starting point


Como ya viéramos tenemos:
What we have so far?

Proyecciones en diédrica
Pero en realidad queremos medir como si fuera el propio espacio tridimensional:
In fact we want to measure like 3D space itself:
Posiciones de puntos relativas y distancias entre ellos

Pasos a dar para conseguir este objetivo:
Steps to take to achieve this goal:

1º.- Saber calcular la posición absoluta desde una posición relativa (x e y):
1.- Know how to calculate the absolute position from a relative position (x and y):


Datos que se deben conocer:
  • Punto O (Ox,Oy), Coordenadas absolutas del punto O.
  • O bien el punto R, Coordenadas absolutas del punto R.
  • Punto P, con coordenadas relativas al punto  R (origen de las coordenadas relativas
El problema consiste en pasar de P(Px,Py) a P'(P'x,P'y). el mismo punto en coordenadas absolutas. Se trata pues de un escalado, seguido de una rotación y una traslación:

En cálculo matricial P' = k · P · MR + MT, donde MR es la matriz de rotación y MT la matriz de tralación.



Data to be aware of:
  • Point O (Ox,Oy), Absolute coordinates of the point O.
  • Or point R, Absolute coordinates of the point R.
  • Point P, with relative coordinates to the point  R
The problem is to move from P(Px,Py) a P'(P'x,P'y). the same point in absolute coordinates. It is therefore scaling, followed by a rotation and a translation:

In matrix algebra P' = k · P · MR + MT, MR: rotation matrix and MT: translation matrix.


      |P'x|    |Px||sen(a)  cos(a)| |Traslación x|
      |   |= k |  ||              |+|            |
      |P'y|    |Py||cos(a) -sen(a)| |Traslación y|


2º.- Para el caso de z, simplemente se suma la cota absoluta a la cota relativa (y claro está, se realiza después del escalado previo.
2º.- For z, simply adds the absolute coordinate relative dimension (and of course, after scaling is performed previous).

3º.- Sólo falta conocer la posición relativa, es decir hay que conocer la posición en píxeles del punto P al O según los ejes (girados) definidos en R.
El programa que hagamos debería, pues, darnos estas posiciones relativas y hacer después los cálculos.
Nuestro programa incorpora las imágenes de la forma:


3º.- Just need to know the relative position. You have to know the position in pixels from point P to O along the axes (rotated) defined in R.
The program should give us to do these relative positions and do after the calculations.
Our program incorporates the images of the form:


      <img ...> y debemos cambiarla a/change to <img id="a" onclick="subrutina_de_posicion()"...>
      ( o también / or <img id="a" onmousedown="subrutina_de_posicion()"...>

y dentro de la sección de scripts:
and within the scripts section:

<script>
...
function subrutina_de_posicion(){
function Position_subroutine(){
      var offset = $("#a").offset();
      Px=offset.left;
      Py=offset.top;

... poner aquí los cálculos que debe hacer
...put here the calculations.
}
...
</script>



NOTA: He utilizado a jQuery. Se incluye de la forma:
NOTE: I used to jQuery. Form includes:

<script language="javascript" src="...jquery.js">

4º.- Ejemplo real: pincha aquí
4º.- Real example: click here

Después de seleccionar puntos en las proyecciones se obtienen sus coordenadas
La idea es ir pinchando en cualquier proyección para obtener sus coordenadas relativas. Después el código de javascript hará los cálculos de homotecia, giro y traslación para conocer las coordenadas absolutas. En la figura se hace en dos puntos y además tendremos distancias (tanto en planta como en 3D). Claro está que para este último cálculo no hace falta ni el giro ni la traslación ya que en coordenadas relativas también se pueden evaluar distancias.

A partir del día 31 de enero de 2013 se añade otra utilidad previa al dimensionamiento por perfiles típico. Para ello se ha modificado la función "laplace" para ajustar el borde:

Inicialmente teníamos:

The idea is to go clicking on any projection to obtain their relative coordinates. After javascript code calculations will dilation, rotation and translation for absolute coordinates. The figure makes two points and you'll have distances (both in plan and 3D). It is clear that for this last calculation goes without rotation or translation as relative coordinates can also be evaluated distances.

Starting on January 31, 2013 will add another useful pre-dimensioning of typical profiles. This function has been modified "laplace" to set the border:

Initially we had:



Ahora, además tenemos:
Now, we also have:


Se observa que, en la proyección frontal, si dejáramos la línea inferior y hubiéramos tomado proyecciones cada menos intervalo (1 metro, en vez de 10) tendríamos definido el perfil transversal.
(cuando haya tiempo programaremos la salida a dxf o dwg)

It notes that in the frontal projection, if we let the bottom line and would have taken less projections each interval (1 meter instead of 10) would have defined the transverse profile.
(when you schedule the departure time to dxf or dwg)