Archivo del Autor: joseangelmt

Controlando la ventana fotogramétrica con el mando de la XBox One

Recientemente Microsoft ha publicado controladores para poder conectar el mando de juegos de la consola XBox One en el PC.
Este mando de juegos es a día de hoy el mejor mando de juegos que existe en el mercado. Tiene dos JoySticks de alta precisión y dispone de múltiples botones programables.

Este mando de juegos es muy económico. A día de hoy lo puedes adquirir por 41€ en Amazon.

Digi3D.NET permite que controles la ventana fotogramétrica con dispositivos de juego, y no es necesaria ninguna configuración (a parte de programar botones) para poder trabajar con este dispositivo.

Tan solo tienes que seguir los siguientes pasos para configurar este mando en Digi3D:

  1. Conecta el mando a un puerto USB del ordenador.
  2. Espera a que Windows configure el dispositivo.
  3. Ejecuta Digi3D.NET
  4. Carga un modelo fotogramétrico.
  5. Comprueba que puedes moverte por el modelo. El JoyStick izquierdo te permite desplazar la ventana fotogramétrica en X,Y, el derecho en Z (subiendo y bajando el JoyStick).

Los JoySticks de este dispositivo tienen mucha resolución (32767 pulsos de desplazamiento) y eso puede hacer que la ventana se desplace muy rápido. Además es posible que te interese cambiar el sentido del eje de la Z. Puedes cambiar los tensores del dispositivo para que le ventana se desplace menos rápido además de cambiar el eje de la Z mediante el cuadro de diálogo Configuración de ratones, joysticks, mandos… siguiendo las siguientes instrucciones:

  1. Cierra la ventana fotogramétrica
  2. Selecciona la opción del menú Herramientas/Configuración de ratones, joysticks, mandos…. Aparecerá el cuadro de diálogo Configuración de ratones, joysticks, mandos,….
  3. Selecciona la opción Controller (XBOX One For Windows).
  4. Pulsa el botón Configurar…. Aparecerá el cuadro de diálogo Parámetros del dispositivo.
  5. Cambia los valores de los campos X, Y y Z a tu gusto.
  6. Pulsa el botón Aceptar.
  7. Pulsa el botón Salir.
  8. Abre una ventana fotogramétrica y comprueba que ahora la ventana fotogramétrica se mueve como te interesa.

Puedes programar las órdenes que se ejecutan en los botones digitales del mando de juegos. Para ello sigue las siguientes instrucciones:

  1. Cierra la ventana fotogramétrica.
  2. Selecciona la opción del menu Herramientas/Programar botones…. Aparecerá el cuadro de diálogo Asignación de botones.
  3. Pulsa alguno de los botones del mando de juegos.
  4. Aparecerá el cuadro de diálogo Orden asignada a botón.
  5. Introduce la orden a ejecutar. Puedes desplegar el listado para ver los botones estándar o pulsar el botón Buscar… para ver un listado de órdenes aceptadas por Digi3D.NET.
  6. Pulsa el botón Aceptar.
  7. Pulsa la tecla Esc.
  8. Abre una ventana fotogramétrica y comprueba que al pulsar botones se ejecutan las órdenes que has asignado.
[youtube:http://youtu.be/C71Ypv76lp8%5D

Mejoras de usabilidad al detectar imágenes no compatibles con la ventana fotogramétrica

Hasta ahora, si se detectaba que una imagen no era compatible con Digi3D.NET (no estaba teselada o carecía de niveles piramidales) el programa mostraba un cuadro de dialogo solicitando si queríamos transformarla para hacerla compatible.

Cuadro de dialogo antiguo solicitando si hacer imagen compatible con Digi3D

El inconveniente de este cuadro de dialogo es que la respuesta que seleccionábamos era válida únicamente para la imagen en cuestión, de modo que si se localizaba otra imagen no compatible volvía a aparecer el mismo cuadro de diálogo. Imagínate si tienes un proyecto con 1000 imágenes y ninguna de ellas estaba preparada…

Hemos cambiado ese cuadro de diálogo por otro que aporta mucha más información y que además tiene la característica de que incluye un casilaque podemos marcar para indicar que se memorice la acción que realicemos durante la sesión de trabajo (es decir, hasta que cerremos el programa), de modo que si activamos la casilla e indicamos que se transformen las imágenes, este cuadro de diálogo no volverá a aparecer y siempre que sea necesario transformar una imagen se transformará automáticamente.

Nuevo cuadro de diálogo imagen no preparada para Digi3D.NET

Esquemas de orientación relativa y de medida de aerotriangulación universales

Hemos añadido la posibilidad de poder indicar porcentajes en los esquemas de orientación relativa y de medida de aerotriangulación en vez de fotocoordenadas, de manera que ahora podemos utilizar un único esquema independientemente del tamaño de las imágenes.

Hasta ahora Digi3D.NET permitía indicar a la hora de realizar una orientación relativa un esquema de Von Gruber con porcentajes, pero dicho esquema venía fijado de fábrica dentro del programa. Ahora esta funcionalidad ha desaparecido y el archivo de esquemas de relativa que se proporciona con el programa permite que indiquemos porcentajes.

Si decides crear un esquema con porcentajes, todas las coordenadas deberán estar expresadas en porcentajes. Los porcentajes se miden como porcentajes en el cuadrante superior derecho de la imagen, con origen en el centro de la imagen, de modo que para la coordenada X un porcentaje de 0% coincide en el centro de la imagen y de 100% coincide con el extremo derecho de la imagen. Para la coordenada Y un porcentaje de

En el siguiente recorte puedes comprobar el nuevo esquema que hemos añadido al archivo de esquemas de orientación relativa:

  <scheme title="Von gruber calculado con porcentajes">
    <point x="0%" y="0%"/>
    <point x="90%" y="0%"/>
    <point x="90%" y="90%"/>
    <point x="0%" y="90%"/>
    <point x="0%" y="-90%"/>
    <point x="90%" y="-90%"/>
  </scheme>

..y a continuación los esquemas que hemos añadido para la medida de aerotriangulación manual:

  <scheme title="Varias pasadas con porcentajes">
    <point prefix="" x="0%" y="0%" postfix="0"/>
    <point prefix="" x="0%" y="90%" postfix="1"/>
    <point prefix="" x="0%" y="-90%" postfix="2"/>
  </scheme>

  <scheme title="Una pasada con porcentajes">
    <point prefix="" x="0%" y="0%" postfix="0"/>
    <point prefix="" x="0%" y="90%" postfix="1"/>
    <point prefix="" x="0%" y="78%" postfix="2"/>
    <point prefix="" x="0%" y="-78%" postfix="3"/>
    <point prefix="" x="0%" y="-90%" postfix="4"/>
  </scheme>

Mejoras al medir automáticamente múltiples orientaciones relativas

Podemos indicar (mediante la opción del menú Herramientas/Configuración/Cambio rápido de modelos/Correlar relativas) que Digi3D.NET calcule automáticamente las orientaciones relativas de los modelos enumerados en un archivo de cambio rápido de modelos que no tengan una orientación relativa asociada.

Hemos realizado dos cambios en esta funcionalidad:

  1. Ahora el cuadro de diálogo Orientación Relativa Automática por Correlación permite indicar en el desplegable Esquema la opción Von gruber calculado con porcentajes.
  2. Ahora se muestra en el panel de resultados la desviación típica resultante de todos los modelos calculados. De esta manera podemos comprobar los modelos que no se han calculado correctamente.

En el siguiente vídeo puedes ver esta nueva funcionalidad en acción:

[youtube:http://youtu.be/88Rj3qPNqXQ%5D

Transformador Universal de Coordenadas

Transformador Universal de Coordenadas

Presentamos el programa Transformador Universal de Coordenadas.

Este programa nos va a permitir transformar coordenadas de cualquier sistema de referencia de coordenadas origen a cualquier sistema de referencia de coordenadas destino. Tan solo tendremos que indicar los sistemas de referencia de coordenadas origen, destino y pegar las coordenadas a transformar en la parte inferior izquierda del programa. El resultado aparecerá inmediatamente en la parte inferior derecha para que lo copies y pegues donde te interese.

Puedes ver la ayuda del programa en su página de la ayuda online de Digi3D.NET.
Puedes aprender a transformar coordenadas elipsoidales a ortométricas utilizando el programa Transformador Universal de Coordenadas en la sección de preguntas frecuentes en la ayuda online de Digi3D.NET, en Transformando coordenadas Z de elipsoidales a ortométricas.

Puedes ver el programa en acción en el siguiente vídeo:

[youtube:http://youtu.be/6CAMbGvBMCc%5D

Mejoras de usabilidad al especificar el SRC asociado a un archivo de dibujo

Hasta ahora, Digi3D.NET solicitaba el sistema de referencia de coordenadas asociado a un archivo de dibujo independientemente de que el archivo ya tuviera asignado uno o no.

Digi3D.NET solicitando el SRC del archivo de dibujo independientemente de si éste tiene o no uno ya asignado

Digi3D.NET solicitando el SRC del archivo de dibujo independientemente de si éste tiene o no uno ya asignado

En la captura de pantalla anterior puedes comprobar que el programa siempre solicitaba el sistema de referencia de coordenadas del archivo. Si te fijas en la descripción que aparece abajo, se indica que este parámetro se utilizará únicamente en caso de que Digi3D.NET tenga que crear el archivo de dibujo, pues si éste ya existía, se hace caso omiso de lo que ponga el usuario aquí y prevalece el SRC asignado al archivo de dibujo ya creado.

Eso podía llevar a confusión, de modo que hemos decidido cambiar esta funcionalidad.
Ahora el programa pregunta por el SRC únicamente si el archivo no tiene ya uno asignado tal y como puedes ver en el vídeo de a continuación.

[youtube:http://youtu.be/8aMUyDMOJic%5D

Memorizando la transformación de coordenadas a utilizar entre dos sistemas de referencia de coordenadas

En ocasiones Digi3D.NET localiza más de una transformación de coordenadas cuando está buscando transformaciones entre dos sistemas de referencia de coordenadas.
Si sucede esto, Digi3D.NET mostrará un cuadro de diálogo invitándonos a seleccionar la operación que queremos utilizar de entre la lista de operaciones localizadas.

Esta operación se repetirá cada vez que se intente localizar la transformación entre esos dos sistemas de referencia de coordenadas.
Si no queremos que Digi3D.NET nos pregunte constantemente la operación a realizar, podemos indicarle a éste que memorice la opción que hemos seleccionado. Para ello tendremos que activar la casilla «Memorizar esta transformación» que aparece al final del cuadro de diálogo.

En el siguiente vídeo puedes ver en acción esta funcionalidad.

[youtube:http://youtu.be/5muAeIc6zME%5D

Agrupando y desagrupando automáticamente entidades por multi-codificación

Digi3D.NET incorpora herramientas que van a permitirnos agrupar múltiples geometrías duplicadas en una única geometría con multi-codificación y viceversa, convertir todas las geometrías localizadas con múltiples códigos en geometrías con un único código.

Para agrupar geometrías duplicadas en una única geometría con multi-codificación tenemos que seleccionar la opción del menú Análisis geométricos/Agrupar entidades duplicadas/Entidades visibles.
Para desagrupar geometrías con múltiple codificación en múltiples geometrías con un único código tenemos que seleccionar la opción del menú Análisis geométricos/Desagrupar entidades

En el siguiente vídeo puedes ver esta funcionalidad en acción:

[youtube:http://youtu.be/vDXgEgufY8I%5D

Cambios en la orden FIJAZ para permitir bloquear la Z en sensores con Z elipsoidal

Los sensores ADS 40/80, VM Quasi-panoramic (cámara A3) y satelitales trabajan en el sistema de coordenadas de referencia WGS 84 3D (código EPSG:4979). La coordenada Z para estos sensores es siempre elipsoidal, de modo que si no utilizamos una orientación absoluta que tenga asignado un sistema de coordenadas de referencia con un sistema vertical ortométrico, al bloquear la coordenada Z estaremos bloqueando ésta en el sistema elipsoidal.

Cuando el operador bloquea la coordenada Z, habitualmente quiere que se bloquee en una coordenada Z ortométrica. Como estos sensores en particular trabajan con coordenada Z elipsoidal, en realidad la coordenada Z sí que se debe mover, ya que se debe transformar de esa coordenada Z ortométrica bloqueada por el usuario en su correspondiente coordenada Z elipsoidal, así que el comportamiento esperado al bloquear la coordenada Z al cargar un modelo de los sensores indicados anteriormente es que ésta se mueva en función del modelo de geoide seleccionado para la transformación.

¿Cómo podemos hacer para que la coordenada Z de estos sensores sea ortométrica y no elipsoidal?

Una opción es realizar una orientación absoluta cuyos puntos de apoyo estén en un sistema de coordenadas virtual ortométrico, como por ejemplo: ETRS89 / UTM Zone 30N + REDNAP Península.

Si no tenemos puntos de apoyo la cosa no es tan sencilla, pues no tenemos puntos que medir.

Hemos realizado una modificación a la orden de FIJA_Z. Hasta ahora esta orden bloqueaba la coordenada Z en la coordenada que tuviera la ventana fotogramétrica cuando se activaba. Ahora no es así, ahora ésta se va a bloquear en la coordenada Z que tenga la ventana de dibujo. Si la ventana de dibujo tiene asociado un sistema de coordenadas vertical ortométrico (digamos por ejemplo que la ventana de dibujo está en el sistema ETRS89 / UTM Zone 30N + REDNAP Península), al activar el bloqueo de Z, Digi3D.NET realizará el siguiente algoritmo:

  1. La ventana fotogramétrica recibe un movimiento por parte del usuario. Digamos Latitud,Longitud,h
  2. Como está activado el bloqueo de Z, se transforma esa coordenada al sistema de coordenadas de la ventana de dibujo, dando como resultado X,Y,Z.
  3. Se sustituye la coordenada Z por la de la Z bloqueada dando como resultado X,Y,Zbloqueo.
  4. Se vuelve a transformar al sistema de coordenadas de la ventana fotogramétrica, dando como resultado Latitud,Longitud,Zelipsoidal para la Z de bloqueo.
  5. Se muestran las imágenes de esas coordenadas en la ventana fotogramétrica.

De esta manera el sistema de coordenadas vertical en el que se bloquea la ventana fotogramétrica está definido por la ventana de dibujo y no por la ventana fotogramétrica. Si en la ventana de dibujo estamos trabajando en coordenadas geográficas 3D (con Z elipsoidal) significa que queremos hacer curvas de nivel con coordenadas Z elipsoidales, por lo tanto el punto transformado final no variará la coordenada Z. Si por el contrario en la ventana de dibujo indicamos un sistema de coordenadas vertical ortométrico, el bloqueo se realizará en coordenadas ortométricas.

[youtube:http://youtu.be/1wEuFCUCKDs%5D

Novedades en el cálculo de orientaciones absolutas

Gráfico mostrando los sistemas geocéntrico y topocéntrico

Gráfico mostrando los sistemas geocéntrico y topocéntrico

El cálculo de orientaciones absolutas en Digi3D.NET se puede realizar en tres sistemas de coordenadas distintos:

  1. En un sistema local.
  2. En un sistema topocéntrico.
  3. En un sistema geocéntrico.

La orientación absoluta es una transformación matemática bidireccional que transforma una coordenada A (o coordenada Terreno) en una coordenada B (o coordenada Modelo) mediante un Helmert de 7 parámetros (consiste en aplicar un factor de escala único en los tres ejes, una rotación y una traslación). Cuando hacemos una orientación absoluta en Digi3D.NET en un modelo fotogramétrico, consideramos A una coordenada de los puntos de apoyo y B una coordenada medida en la ventana fotogramétrica. Si la ventana fotogramétrica tiene cargado un modelo de cámara cónica al que le acabamos de hacer una orientación relativa, estas coordenadas serán del tipo (X foto, Y foto, -focal) y si la ventana tiene cargado un modelo satelital por ejemplo estas coordenadas serán del tipo (Latitud, Longitud, Altitud (elipsoidal)).

Esta transformación es únicamente un escalado, giro y traslación, por lo que no se realiza ninguna transformación de sistema de coordenadas, lo que significa que las coordenadas A (o terreno) medidas deben estar en el mismo sistema de coordenadas que las coordenadas B (o modelo) medidas a la hora de realizar el cálculo de la orientación absoluta.

El problema es que en ocasiones no coinciden los sistemas de coordenadas de las coordenadas de los puntos de apoyo y el de la ventana fotogramétrica sobre la que estamos midiendo.

El nuevo cuadro de diálogo de selección de archivo de puntos de apoyo solicita al usuario el sistema de coordenadas de referencia de los puntos de apoyo.

El nuevo cuadro de diálogo de selección de archivo de puntos de apoyo solicita al usuario el sistema de coordenadas de referencia de los puntos de apoyo.

Si hacemos una orientación absoluta en una imagen satelital, las coordenadas A (o terreno) del punto de apoyo que estamos midiendo estarán en el sistema de coordenadas de referencia que indiquemos al cargar el archivo de puntos de apoyo, sin embargo las coordenadas B (o modelo) que generamos al digitalizar el punto estarán en el sistema de coordenadas de la imagen satelital, que son coordenadas geográficas en WGS 84.

Por lo tanto Digi3D.NET tiene que localizar un sistema de coordenadas de referencia común para realizar la transformación Helmert de 7 parámetros. A este sistema vamos a denominarlo sistema intermedio.

Veamos los pasos que sigue Digi3D.NET para transformar una coordenada Terreno a Modelo con una determinada orientación absoluta:

Terreno -> Sistema intermedio -> Helmert de 7 parámetros -> Modelo

y al revés:

Modelo -> Sistema intermedio -> Helmert de 7 parámetros -> Terreno

Como puedes comprobar el Helmert de 7 parámetros siempre se realiza en el sistema intermedio.

Selección del sistema Intermedio

Vamos a ver ahora el criterio que sigue Digi3D.NET para decidir y crear el sistema intermedio. Esta decisión se toma en función de los sistemas de coordenadas de la ventana fotogramétrica y de los puntos de apoyo:

Sistema de coordenadas de la ventana fotogramétrica Sistema de coordenadas de los puntos de apoyo Sistema intermedio resultante
Desconocido Desconocido El sistema intermedio es un sistema desconocido. Las operaciones Terreno<->Sistema intermedio y Sistema intermedio<->Modelo no realizan ninguna transformación.

Al hacer una orientación absoluta en estas condiciones, se considera que la tierra es plana y por lo tanto los cálculos no se ven afectados por proyección, curvatura ni factor de escala.

Este es el caso en el que se calculaban las orientaciones absolutas con las versiones Digi3D 2000, Digi3D 2002, Digi3D 2005 y Digi3D 2007 (en este caso, si se seleccionaba como sistema de coordenadas rectangular a la hora de medir la orientación absoluta).

Desconocido Sistema de coordenadas conocido, como por ejemplo WGS 84 o ETRS89 / UTM Zone 30N Este es el típico caso del modelo de cámara cónica en el que hemos realizado una orientación relativa (por lo tanto las coordenadas modelo en el fotocentro de la cámara izquierda serán (0,0,-focal) y en el que realizamos una orientación absoluta con puntos de apoyo en un determinado sistema de coordenadas de referencia.

En este caso Digi3D.NET crea un sistema de coordenadas topocéntrico, que es un sistema cartesiano 3D que tiene tres ejes perpendiculares (U, V y W) cuyo origen es tangente a la tierra en un determinado punto. El eje U está orientado con el este, el V con el norte y el W crece según la regla de la mano derecha. Es el sistema de color azul en la imagen que aparece al comienzo de este post.

Se considera como origen del sistema topocéntrico las coordenadas geocéntricas del primer punto medido (Digi3D.NET transforma las coordenadas del punto de apoyo del primer punto medido a geocéntricas para poder realizar esta operación).

Sistema de coordenadas conocido, como por ejemplo WGS 84 o ETRS89 / UTM Zone 30N Desconocido Esta situación se da por ejemplo si en la ventana fotogramétrica tenemos una imagen satelital y queremos hacer una orientación con puntos de apoyo locales o desconocidos.

En este caso Digi3D.NET crea un sistema de coordenadas topocéntrico, que es un sistema cartesiano 3D que tiene tres ejes perpendiculares (U, V y W) cuyo origen es tangente a la tierra en un determinado punto. El eje U está orientado con el este, el V con el norte y el W crece según la regla de la mano derecha. Es el sistema de color azul en la imagen que aparece al comienzo de este post.

Se considera como origen del sistema topocéntrico las coordenadas geocéntricas del primer punto medido (Digi3D.NET transforma las coordenadas del punto medido en la ventana fotogramétrica a geocéntricas para poder realizar esta operación).

Sistema de coordenadas conocido, como por ejemplo WGS 84 o ETRS89 / UTM Zone 30N Sistema de coordenadas conocido, como por ejemplo WGS 84 o ETRS89 / UTM Zone 30N En este caso podrías pensar que no es necesario realizar ninguna transformación, pero si, pues los sistemas podrían no ser ortogonales. Si en ambas ventanas tenemos WGS 84 por ejemplo, las unidades medidas son ángulos y no coordenadas. No podemos realizar una orientación absoluta para ajustar ángulos. Por lo tanto la orientación absoluta se calcula en coordenadas geocéntricas. Es el sistema de color rojo en la imagen que aparece antes de esta tabla.

Para realizar el cálculo se transforman las coordenadas de los puntos de apoyo a coordenadas geocéntricas (por lo tanto se tiene en cuenta la proyección si el sistema de coordenadas de los puntos de apoyo es proyectado, como ETRS89 / UTM Zone 30N, la curvatura de la tierra y el factor de escala. Lo mismo se hace para las coordenadas medidas en la ventana fotogramétrica y por último se realiza el Helmert de 7 parámetros en el sistema geocéntrico.

Este es el sistema ideal, pues se tiene en consideración las distintas proyecciones tanto de los puntos de apoyo por un lado como la del sistema de la ventana fotogramétrica por otro.

¿Cómo seleccionamos el sistema de coordenadas de referencia en la ventana fotogramétrica?

Léete la entrada Cambios en los sistemas de coordenadas de referencia de los sensores.

¿Dónde y cuándo se tienen en cuenta estas transformaciones?

Supongamos que la ventana de dibujo está mostrando los vectores en un sistema de coordenadas A, y que la ventana fotogramétrica tiene asignado un sistema de coordenadas B.

Si no hay ninguna orientación absoluta de por medio, Digi3D.NET a la hora de proyectar vectores en la ventana fotogramétrica, tan solo tiene que transformar las coordenadas de los vectores del sistema de coordenadas A al sistema de coordenadas B. Cuando el usuario desplaza la ventana fotogramétrica (mediante el ratón o topomouse o manivelas), ésta le envía las coordenadas a la ventana de dibujo transformándolas previamente del sistema B al sistema A.

Si hay una orientación absoluta de por medio, la orientación absoluta tiene su propio sistema de coordenadas de referencia, que podría ser C,
de modo que la transformación Ventana de dibujo -> Ventana fotogramétrica sigue los siguientes pasos:

Sistema A -> Sistema C -> Sistema B.

Y al revés, cuando la ventana fotogramétrica tiene que informarle a la ventana de dibujo de una coordenada, transforma la coordenada siguiendo los siguientes pasos:

Sistema B -> Sistema C -> Sistema A.

¿Cómo puedo saber el sistema de coordenadas que tiene asignada la orientación absoluta?

Puedes utilizar la opción del menú Ventana fotogramétrica/Ver información. Esto hará que aparezca en el panel de resultados el sistema de coordenadas de referencia asignado a la orientación y a la ventana fotogramétrica.