Archivo del Autor: joseangelmt

Ya no es necesario ser administrador para almacenar la configuración de Digi3D.NET

CuadroDialogoConfigurarNuevoCuadroDialogoConfigurarNuevo.PNGPresentamos hoy un cambio que llevaban solicitado los usuarios empresariales desde hace tiempo: La posibilidad de poder almacenar la configuración para usuarios que no sean administrador.

Hasta hoy Digi3D.NET almacenaba la configuración en el registro de Windows. El registro de Windows tiene dos carpetas importantes:

  • Una (HKEY_CURRENT_USER) en la que se almacena la configuración del usuario activo. Esta es una carpeta propia por cada usuario de la máquina. Un usuario siempre tiene permisos de lectura/escritura sobre esta carpeta, pues es su propia carpeta. Un usuario no tiene permiso de visualizar o modificar datos en la carpeta de usuario del resto de usuarios de la máquina.
  • Otra (HKEY_LOCAL_MACHINE) en la que se almacena la configuración de la máquina. Habitualmente los usuarios normales no tienen permiso de escritura en esta carpeta y hace falta ser administrador para poder almacenar cosas aquí.

Digi3D.NET almacena configuraciones en ambas carpetas:

  • Las configuraciones específicas del usuario, como por ejemplo el color del índice a mostrar en la ventana fotogramétrica, se almacenan en la carpeta HKEY_CURRENT_USER, pues puede que comparta máquina con otro usuario que prefiera otro color de índice.
  • Las configuraciones específicas de la máquina, como por ejemplo el tipo de visualización estereoscópica se almacenan en la carpeta HKEY_LOCAL_MACHINE.

El problema de la carpeta HKEY_LOCAL_MACHINE es que requiere elevación, es decir, requiere ser administrador para poder almacenar información ahí. Eso en un usuario particular no suele ser un problema, pero los usuarios empresariales habitualmente se quejan de que sus usuarios no tienen permiso para almacenar HKEY_LOCAL_MACHINE y cada vez que quieren realizar un cambio en la configuración deben molestar a un administrador de la red.

Hoy presentamos una novedad que soluciona este problema. A partir de la versión 2018.14.0.0 hemos solucionado este problema pues ahora la información de la máquina no se almacena más en el registro de Windows, sino que se almacena en una base de datos sqlite ubicada en el directorio %ProgramData%\Digi3D.NET denominada Digi3DNET.db.

La carpeta %ProgramData% es una carpeta en la cual todos los usuarios tienen permiso de escritura y es la que se utiliza para almacenar datos de los programas.

¿Qué cambios voy a notar?

  • Hemos simplificado el cuadro de diálogo de Configuración, que hasta hoy no era nada intuitivo pues tenía dos botones para aceptar:
    CuadroDialogoConfigurarAntiguo
    Como puedes ver, había uno para almacenar la información de máquina y de usuario (que requería elevación) y otro para almacenar únicamente la información del usuario. Esto era completamente anti-intuitivo.Ahora el aspecto del cuadro de diálogo de configuración es este otro:
    CuadroDialogoConfigurarNuevo
    Puedes comprobar que ahora es mucho más intuitivo.
  • Ahora el programa nunca solicitará elevación en ningún cuadro de diálogo.
  • Se ha mejorado el rendimiento a la hora de leer datos de configuración pues las bases de datos sqlite son muy rápidas haciendo consultas.

¿Qué pasa con mis configuraciones existentes?

El programa a partir de hoy cada vez que intenta localizar una configuración de máquina, la intenta localizar primeto en la base de datos. Si no la localiza ahí, intenta localizarla en el registro (en HKEY_LOCAL_MACHINE). Si la encuentra en el registro la almacena en la base de datos de manera que la próxima vez que se intente localizar dicha configuración ya no sea necesaria localizarla en el registro.

Ahora el programa nunca almacena información en la carpeta HKEY_LOCAL_MACHINE del registro, sino que almacena siempre en la base de datos.

 

 

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.