Archivo de la categoría: Digi3D

Mejoras en la comunicación de errores al cargar modelos satelitales y de cámara cónica

Hasta hoy, Digi3D.NET no tenía en cuenta la extensión de los archivos de proyecto de los cuales se extraían las orientaciones de los modelos satelitales o de cámara cónica, de manera que si por ejemplo renombrábamos un archivo .PRJ de Inpho a extensión .TXT y lo cargábamos, el programa lo cargaba correctamente.

Esto es así porque el programa intentaba cargar el archivo con todas las extensiones disponibles (Inpho Summit Evolution, LPS, etc.) , y si una de ellas conseguía cargar el archivo correctamente, se daba por válido. En caso de que no se consiguiera, como se había probado con todas las extensiones soportadas, el mensaje de error que se daba era un mensaje genérico, que no daba ninguna pista al usuario, siendo difícil localizar el error.

A partir de hoy el programa sí que tiene en cuenta la extensión del archivo, de manera que si las orientaciones del modelo satelital están almacenadas en formato .PRJ de Inpho, la extensión del archivo debe ser forzosamente .PRJ.

Gracias a esto el programa ya sí que puede mostrar mensajes de error específicos de una extensión en particular.

Puedes ver esta nueva funcionalidad en el siguiente vídeo:

 

 

Mejoras de interfaz de usuario para epipolares para el sensor cónico

Hemos mejorado el interfaz de usuario para seleccionar el cálculo de orientaciones epipolares al cargar un modelo de sensor cónico en Digi3D.NET.

Hasta ahora el programa mostraba tres opciones en el menú Ventana fotogramétrica/Transformación de las imágenes:

  • Solución que menos modifica la imagen izquierda.
  • Solución que menos modifica la imagen derecha.
  • Solución que busca la mayor verticalidad.

Además de existir tres opciones, el programa no mostraba ninguna marca visual para indicar si ya se estaba mostrando la epipolar en el modelo cargado.

A partir de hoy, el programa muestra una única opción en este menú: Rectificación epipolar. Si la seleccionamos, el programa calculará la orientación epipolar y si no modificamos las rotaciones de las imágenes, el programa mostrará dicha opción del menú marcada para indicarnos visualmente que las rotaciones actuales coinciden con la rectificación epipolar.

Puedes configurar el tipo de orientación que se calculará en la nueva opción del cuadro de diálogo Herramientas/Configuración/Sensor cónico/Rectificación epipolar donde nos encontraremos con las tres posibles opciones.

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

Añadido soporte para aproximar epipolares en las imágenes satelitales

Acabamos de añadir a Digi3D.NET la posibilidad de calcular una aproximación a la orientación epipolar de una imagen satelital.

Hasta ahora el programa mostraba las imágenes satelitales con una rotación de 90 grados. A partir de ahora el programa calcula la mejor aproximación a la orientación epipolar, de manera que a partir de ahora la sensación estereoscópica al cargar modelos satelitales será mucho mejor.

A partir de ahora al cargar un modelo satelital, el menú Ventana fotogramétrica/Transformación de las imágenes muestra la opción: Rectificación epipolar que nos permite activar la rectificación epipolar bajo demanda.

Además hemos añadido en el cuadro de diálogo de Configuración la opción Satélite RPC (estereoscópico)/Activar epipolar por defecto para indicar si queremos que se active la epipolar al cargar un modelo satelital estereoscópico.

Puedes aprender más acerca de la epipolar en imágenes satelitales en el documento: Epipolar resampling of linear pushbroom satellite imagery by a new epipolarity model.

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

 

Mejorado el soporte de Pix4D

Acabamos de añadir a Digi3D.NET la posibilidad de cargar de forma nativa archivos  _calibrated_external_parameters.txt de Pix4D.

Hasta ahora para cargar aerotriangulaciones de Pix4D teníamos que copiar el archivo  _calibrated_external_parameters.txt con extensión .EO, además de editarlo para quitar la extensión de los archivos en la primera columna de todas las líneas de este archivo y además de asegurarnos de que la configuración del importador de orientaciones de centros de proyección y giros se adaptase a Pix4D (unidades angulares = sexagesimal y orden a los giros = omega – phi – kappa).

Bien, pues a partir de ahora ya no es necesario realizar esta tarea, ya que Digi3D.NET carga de forma nativa estos archivos sin realizarles ninguna modificación.

Evitando que Digi3D.NET solicite el sistema de referencia de coordenadas vertical si la orientación del sensor no lo proporciona

Hemos comenzado a simplificar todo lo relacionado con sistemas de referencia de coordenadas en Digi3D.NET.

El primer paso ha sido permitir configurar que el programa no solicite el sistema de referencia de coordenadas vertical en caso de que carguemos una orientación que proporcione un sistema horizontal pero no uno vertical, como el caso que se explica en la entrada El mundo es en 3D, pero nadie se acuerda del sistema de referencia de coordenadas vertical (si, el de la coordenada Z)

Acabamos de añadir una nueva sección en el cuadro de diálogo de Configuración denominada Sistemas de Referencia de Coordenadas que por ahora tiene una única opción: Solicitar sistema vertical para sensores.

Si activamos esta opción y cargamos un modelo fotogramétrico cuya orientación proporciona un sistema de referencia de coordenadas horizontal pero no uno vertical, el programa asumirá que el vertical es Desconocido y no nos va a preguntar más.

Si desactivamos esta opción, el programa se comportará como hasta ahora, es decir, preguntará al usuario por el sistema vertical.

Añadido soporte para archivos .PYR

Acabamos a añadir a Digi3D.NET soporte para localizar las imágenes piramidales de archivos .TIFF en archivos externos con extensión .PYR.

Hasta ahora, si el archivo .TIFF no tenía niveles piramidales asociados, el programa intentaba cargar archivos que seguían el siguiente patrón: [nombre del archivo].tif_[nivel piramidal], como por ejemplo 107.tif_32 para el nivel piramidal 32 de la imagen 107.TIF.

Bien, pues ahora el programa también intenta localizar el archivo 107.PYR. El archivo .PYR es un archivo .TIFF (al que se le cambia la extensión por .PYR) que únicamente tiene niveles piramidales. La ventaja de este archivo con respecto al sistema antiguo es que únicamente es un archivo y no tantos como niveles piramidales.

Además hemos modificado el programa Generador de Niveles Piramidales para que cree por defecto archivos .PYR en vez de crear un archivo por cada nivel piramidal. Para ello hemos añadido un desplegable al programa que te permite seleccionar el tipo de archivo a crear. Puedes ver el desplegable en la siguiente captura de pantalla:

GeneradorNivelesPiramidalesConOpcionPyr

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

Plano de comparación oblicuo

Presentamos una novedad en Digi3D.NET que nos va a facilitar mucho el trabajo si trabajamos con modelos oblicuos o terrestres.

Hasta ahora, si trabajábamos con modelos terrestres, teníamos que cambiar el sistema de coordenadas (habitualmente intercambiar las coordenadas Y por la Z), para hacer que el movimiento en Z del dispositivo de entrada se correspondiera con el movimiento que el operador espera ver al cambiar la coordenada Z del dispositivo de entrada.

Esta operación no es nada trivial si trabajamos con tomas oblicuas obtenidas con drones.

Hemos realizado una modificación en Digi3D que permite cambiar el plano de comparación para hacer que éste sea tangente al plano definido por la imagen izquierda del modelo, de manera que si se activa solucionaremos este problema.

Podemos activar y desactivar esta opción mediante la opción del menú Ventana fotogramétrica/Plano de comparación/Oblicuo.

Si lo activamos, se queda almacenado en la configuración del ordenador, de manera que siempre estará activo hasta que lo desactivemos.

Al activarlo, comprobarás que mover la coordenada Z del dispositivo de entrada el programa también moverá las coordenadas X e Y, pues ahora al desplazarnos en Z nos estaremos desplazando por la línea que une el centro de proyección de la imagen izquierda con el centro de la imagen, de manera que ten cuidado de no mantenerlo activado con modelos de fotogrametría aérea. Actívalo únicamente en caso de trabajar con fotogrametría oblicua.

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

 

¡ADVERTENCIA! ¡NO ACTUALICES TU WINDOWS 10 A LA ACTUALIZACIÓN DE CREADORES!

Si eres usuario de Digi3D.NET (o de cualquiera de nuestros competidores) y tu sistema operativo es Windows 10, ¡NO ACTUALICES A LA ACTUALIZACIÓN DE CREADORES! (al menos hasta que lo solucionen) pues esta actualización elimina la capacidad de estereoscopía OpenGL que es la que utilizan los softwares profesionales como Digi3D.NET.

No es un problema del software, es un problema del sistema operativo. Puedes ver a continuación por ejemplo un ticket de soporte técnico creado por el soporte técnico de DAT/Em comunicando el problema a Microsoft: https://answers.microsoft.com/en-us/windows/forum/windows_10-update/windows-10-creators-update-disables-nvidia/a855a2bf-be59-4427-898e-ecaa215d012a

Nosotros por nuestro lado hemos creado una incidencia en NVidia y estamos a espera de que nos proporcionen más información, pero por ahora, la única solución es NO INSTALAR.

Si ya has instalado, ya has perdido la estereoscopía, de modo que tienes que volver a la compilación anterior. Puedes hacerlo siguiendo las instrucciones que aparecen en la siguiente entrada de Genbeta: https://www.genbeta.com/paso-a-paso/si-tienes-problemas-tras-instalar-la-creators-update-asi-puedes-regresar-a-la-version-anterior-de-windows

 

 

Configurando las versiones modernas de Google Earth para que sean compatibles con Digi3D.NET

El 31 de agosto de 2010 Google avisó en su blog de Google Maps que abandonaban el soporte de la API COM de Google Earth, y eso significa que en versiones próximas de su programa eliminarían el soporte de esa API, por lo tanto ya no se podría controlar por programas externos como Digi3D.NET.

Sin embargo hemos tenido que esperar 7 años a que suceda esto. Si instalas la última versión de Google Earth o de Google Earth Pro, Digi3D.NET te muestra un mensaje de error si ejecutas cualquiera de las órdenes que ordenan a Google Earth que se mueva a una determinada coordenada.

Sin embargo aún se puede haciendo dos cosas:

  • Después de investigar nos hemos dado cuenta de que han quitado el soporte pero parcialmente. Han quitado la compatibilidad COM del programa pero a medias pues aún permiten utilizar una técnica denominada Automatización COM, así que hemos cambiado el código del Proxy para controlar Google Earth (puedes ver el código fuente en nuestro repositorio de código fuente en GitHub) para utilizar Automatización COM.
  • Hay que forzar a Google Earth a que se registre para que aplicaciones de terceros como Digi3D.NET puedan acceder a su capacidad de automatización.

La primera tarea ya la hemos hecho nosotros en la última versión de Digi3D.NET. La segunda sin embargo no podemos hacerla nosotros por ti, de modo que si quieres activar Google Earth para que pueda ser controlado, tienes que realizar los siguientes pasos:

  1. Abre una consola de DOS como administrador.
  2. Ejecuta el siguiente comando si tienes instalada la versión normal de Google Earth:
    cd C:\Program Files (x86)\Google\Google Earth\client
  3. Ejecuta el siguiente comando si tienes instalada la versión Pro de Google Earth:
    cd C:\Program Files (x86)\Google\Google Earth Pro\client
  4. Ejecuta el siguiente comando para forzar a que Google Earth se registre:
    googleearth.exe /RegServer

Y ya está. A partir de este momento puedes controlar Google Earth con Digi3D.NET.

Puedes ver un vídeo en el que te mostramos los pasos a continuación:

 

 

Nuevo panel de Python interactivo en Digi3D.NET

Uno de los principales objetivos para este año 2017 era el de añadir a Digi3D.NET soporte para programación Python, y hoy hemos cumplido ese objetivo.

Teníamos pensado desarrollar esta funcionalidad en un futuro, pero un ticket de soporte técnico que nos llegó hace dos semanas ha provocado que cambiemos nuestra hoja de ruta.

Copio aquí el contenido del ticket de soporte técnico:

¿Es posible imprimir el listado de los códigos de un archivo .TAB para ver los códigos que tengo o sólo puedo hacerlo abriéndolo con un editor de textos y elegirlos a mano?

¿Se puede imprimir desde el editor de tablas de códigos?

Gracias.

La respuesta es que no, no hay manera de imprimir el listado de códigos de una tabla de códigos determinada. Se puede hacer un programa de consola que utilice los objetos proporcionados por Digi3D.NET, pero eso requiere tener conocimientos de programación por un lado y de disponer de un compilador como Visual Studio .NET por otro, lo que en la práctica no tiene casi ningún usuario de Digi3D.NET.

Sin embargo, esta pregunta era la candidata ideal para forzarnos a implementar soporte de Python dentro del propio programa.

Como resultado hemos añadido un nuevo panel, que se puede abrir mediante la opción del menú Ventana/Python interactivo. Este panel es una consola de Python y nos va a permitir crear programas sin salir de Digi3D.NET y en el lenguaje Python que es muy sencillo de programar.

A continuación te muestro lo que hay que teclear en el panel de Python interactivo para obtener el listado de códigos de nuestra tabla de códigos activa:

for codigo in diging.DigiTab.Codes:
    print codigo.Name + ' ' + codigo.Description

Tan sencillo como eso. Si lo tecleas, se mostrará un listado de códigos en la ventana de Python interactivo. Luego puedes utilizar el botón derecho del ratón para copiar los códigos al portapapeles.

A continuación un vídeo en el que se muestra en acción: