Archivo de la categoría: Digi3D

¡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:

https://youtu.be/RsiTBByL6G8

 

 

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:

https://youtu.be/utdJB6_a8kY

Paquetes de tablas de códigos y células y simplificación de la carátula de entrada de Digi3D.NET

Desde hace tiempo estamos intentando disminuir la cantidad de archivos necesarios para poder trabajar con Digi3D.NET así como los parámetros que se solicitan en la pestaña Archivo de dibujo del cuadro de diálogo de Nuevo proyecto. Está claro que el programa requiere de demasiados archivos y pregunta demasiadas cosas para poder ponernos a trabajar y, y eso asusta a los usuarios nuevos.

Antes de la versión 2007 necesitábamos los siguientes archivos para poder trabajar:

  1. Tabla de códigos.
  2. Tablas para programas como Bintram y Bintop, etc.
  3. Tabla de paleta de colores.
  4. Tablas de traducción (para BINDXF por ejemplo).
  5. Carpeta de macroinstrucciones (o de arrobas).
  6. Carpeta de símbolos.
  7. Archivo de configuración de teclas.

Una de las principales novedades de Digi3D 2007 fue la incorporación de la tabla de códigos en formato .XML que nos permitió añadir toda la información que quisiéramos en la tabla, de manera que unificamos la tabla de códigos, la paleta de colores y las tablas de traducción en un único archivo, de manera que con la versión 2007 los archivos necesarios para trabajar eran:

  1. Tabla de códigos.
  2. Tablas para programas como Bintram y Bintop.
  3. Carpeta de macroinstrucciones (o de arrobas).
  4. Carpeta de símbolos.
  5. Archivo de configuración de teclas.

La versión .NET nació con la posibilidad de asignar etiquetas a los códigos, de manera que ya no eran necesarios los archivos de tablas para programas como Bintram y Bintop, y hace poco tiempo añadimos también en la versión .NET la posibilidad de añadir los archivos de macroinstrucciones dentro de la propia tabla de códigos, de manera que hasta hoy en la versión .NET podemos hacer lo mismo con:

  1. Tabla de códigos.
  2. Carpeta de símbolos.
  3. Archivo de configuración de teclas.

Hoy presentamos una vuelta de tuerca más: La posibilidad de crear un paquete que incluya la tabla de códigos y la carpeta de símbolos, de manera que si le damos a un usuario un trabajo, únicamente tendremos que proporcionarle:

  1. Paquete de tabla de códigos.
  2. Archivo de configuración de teclas.

A partir de hoy, podemos crear un archivo de paquete de tabla de códigos mediante la opción del menú: Archivo/Crear paquete de tabla de códigos.

Esto creará un archivo con extensión .dt que incluirá por un lado la tabla de códigos y por otro lado todos los símbolos localizados en el directorio de símbolos configurado en el programa Editor de tablas de códigos en el momento de guardar.

Este archivo con extensión .dt no es más que un archivo .zip al que le hemos cambiado la extensión por .dt, de manera que si lo renombras a .zip podrás ver el contenido y extraer el archivo de tabla y los símbolos sin ningún problema.

Se pueden añadir muchas más cosas dentro del archivo .dt, en las próximas entradas en el blog te mostraremos novedades acerca de ello.

PEstañaArchivoDibujoAntes

Esta modificación nos ha permitido simplificar aún más la carátula de entrada (o pestaña Archivo de dibujo del cuadro de diálogo de Nuevo proyecto) de Digi3D.NET:

  1. Hemos eliminado la propiedad «Altura de textos». Si quieres tener una altura de textos determinada al entrar, lo normal es ponerlo en las órdenes de inicio (más sobre esto en el punto 3).
  2. Hemos eliminado la propiedad «Archivo de puntos». Las órdenes que utilizaban eso, muestran un cuadro de diálogo solicitando el archivo, así que en la práctica no servía para nada preguntar por este archivo.
  3. Hemos eliminado la propiedad «Archivo de órdenes de inicio», pues podemos especificar las órdenes a ejecutar al crear una ventana en la propia tabla de códigos, en la pestaña «Órdenes».
  4. Hemos movido la propiedad «Directorio de macroinstrucciones» del cuadro de diálogo de Nuevo proyecto al cuadro de diálogo de Configuración (en la sección DigiNG), de esta manera queda claro que es un ciudadano de segunda categoría, pues las arrobas deberían estar en la propia tabla de códigos (en la pestaña acciones).
  5. Lo mismo para la propiedad Menú. La hemos movido al cuadro de diálogo Configuración (en la sección de DigiNG).
  6. Lo mismo para la propiedad Directorio de símbolos, que hemos movido al cuadro de diálogo de Configuración (en la sección de DigiNG)

A continuación tienes una captura de pantalla de cómo ha quedado el cuadro de diálogo de Nuevo proyecto (pestaña Archivo de dibujo):

PestañaArchivoDibujoDespues.png

Como puedes comprobar se ha simplificado mucho.

A partir de ahora podemos seleccionar en el campo Tabla de códigos de la pestaña Archivo de dibujo del cuadro de diálogo Nuevo proyecto o un archivo de tabla de códigos .tab.xml o un archivo de paquete de tabla de códigos .dt.

Si seleccionas un archivo .tab.xml, el programa se comportará como hasta ahora.

Si por el contrario seleccionas un archivo .dt, el programa hará caso omiso del directorio de símbolos que tengas configurado en el campo Directorio de símbolos de la sección DigiNG del cuadro de diálogo de Configuración, puesto que los símbolos están incluidos dentro del propio paquete .dt.

Además si el programa detecta que has abierto un archivo .tab.xml te mostrará un cuadro de diálogo invitándote a leer esta entrada que estás leyendo ahora mismo para que entiendas los cambios realizados a la pestaña archivo de dibujo.

Puedes ver un vídeo en el que se demuestran todos estos cambios a continuación:

https://youtu.be/B0NSet-geys

Nuevo modo de visualización estereoscópica

CoAcabamos de añadir un nuevo modo de visualización estereoscópica en Digi3D.NET que va a permitir trabajar con monitores o televisores 3D que implementen el modo Side-by-Side 3D.

Este modo no requiere tener una tarjeta gráfica estereoscópica (es decir, de la familia Quadro) y es útil para poder visualizar estereoscopía con un ordenador portátil.

Básicamente al activar el modo en el monitor, éste expande la mitad izquierda del monitor en toda su superficie y se lo muestra al ojo izquierdo e inmediatamente después expande la parte derecha del monitor en toda la superficie de éste y se lo muestra al ojo derecho y así sucesivamente. Puedes hacerte a la idea con la imagen que encabeza este post del blog.

Como el monitor expande horizontalmente las imágenes los píxeles se muestran el doble de anchos que de altos, de modo que para evitar esta deformación, Digi3D.NET muestra los píxeles el doble de altos que de anchos, para que cuando el monitor expanda en ancho la relación de aspecto de los píxeles sea la correcta.

A continuación te muestro una captura de pantalla de un modelo con un zoom grande y con la opción de interpolación bilineal desactivada para que puedas ver cómo se muestran los píxeles en este modo sin activar la estereoscopía en el monitor:

No

Puedes observar que los píxeles tienen el doble de alto que de ancho.

Un problema que tiene esto es que el monitor realiza la operación con toda la pantalla, de modo que si tienes visible la barra de tareas de Windows, también se expandirá (verás la mitad izquierda con el ojo izquierdo y la parte derecha con el ojo derecho), y las barras de herramientas y barra de menús de Digi3D.NET, así que mi recomendación es que si no te queda más remedio que visualizar estereoscopía con un ordenador que no tenga una tarjeta gráfica Quadro y la única opción es utilizar un monitor como este, que maximices la ventana fotogramétrica pulsando la combinación de teclas Ctrl + Alt + Enter en Digi3D.NET.

De modo que ahora el programa soporta los siguientes modos de estereoscopía:

Modo Requiere una tarjeta Quadro Tipo de monitor o televisor Uso
 Controlado por el driver  Si  Monitor compatible con NVidia 3D Vision Profesinal
 Estereóscopo  No  Cualquier monitor Profesinal
 3D-Arriba-Abajo  No  Monitor o televisor 3D que implemente este modo de estereoscopía. Para hacer una demostración y poco más. Todo el monitor se muestra en estéreo y en las partes que no hay imagen se muestran partes de ventanas que pueden confundir o marear
 3D-Lado-a-lado  No  Monitor o televisor 3D que implemente este modo de estereoscopía. Para hacer una demostración y poco más. Todo el monitor se muestra en estéreo y en las partes que no hay imagen se muestran partes de ventanas que pueden confundir o marear
 Entrelazado horizontal  No  Monitores 3D pasivos Podría utilizarse para uso profesional pero yo personalmente no lo haría. Este sistema tiene el problema de que con el ojo izquierdo las líneas pares del monitor se ven negras y con el ojo derecho las líneas impares. Los textos aparecen como cortados con este sistema.
 Entrelazado vertical  No  Monitores auto-estereoscópicos Podría utilizarse para uso profesional pero yo personalmente no lo haría. Este sistema tiene el problema de que con el ojo izquierdo las columnas pares del monitor se ven negras y con el ojo derecho las columnas impares. Los textos aparecen como cortados con este sistema.
 Anaglifo  No  Cualquier monitor Para hacer una demostración y poco más. Tener filtros de colores en los ojos mucho tiempo puede provocar fatiga visual

Puedes ver un vídeo de esta nueva funcionalidad a continuación:

https://youtu.be/K89V2yL8lvk

 

 

Mejora impresionante en la velocidad de carga de imágenes JPEG

Hemos rediseñado la extensión de Digi3D.NET  que se encarga de cargar imágenes en formato JPEG para hacer que la carga de este tipo de imágenes se realice mucho más rápido.

Ahora la extensión utiliza el modo buffered que permite recargar la misma imagen varias veces y además nos hemos pasado a libjpeg-turbo, de manera que la decompresión utiliza las instrucciones SIMD (MMX, SSE2, AVX2, NEON, AltiVec) del procesador.

El resultado es impresionante tal y como puedes ver a continuación:

Mejoras en el sensor ADS

El sensor ADS (40, 80, 100…) siempre ha sido el más complicado de configurar de entre todos los que tiene Digi3D.NET, pues hay un campo a configurar DataPath que no es lo suficientemente intuitivo.

Cuando seleccionamos como sensor activo el sensor ADS, el programa solicita tres archivos de soporte (con extensión .SUP): uno para la imagen trasera, otro para la cenital y por último uno para la frontal.

Estos archivos .SUP almacenan mucha información, y entre la información que almacenan están las rutas a los archivos de imagen por un lado y a los archivos de calibración del sensor (orientaciones externas e internas) por el otro. El inconveniente es que la ruta que se almacena para estos archivos es absoluta, y no relativa, de modo que es posible que te encuentres con un archivo de soporte con la siguiente información:

ORIGINAL_ORIENTATION   D:/decea.xpro/session/20110206112930/ica-sp1/output/fx10-1302_110206_135030_PANF27AL1.odf
ADJUSTED_ORIENTATION   D:/decea.xpro/session/20110206112930/ica-sp1/output/fx10-1302_110206_135030_PANF27AL1.odf.adj
ORIGINAL_CALIBRATION   D:/ADSCAM/cam/SH81_1302/v001/PANF27A.cam

Como poder ver, se está indicando que las imágenes están en D:/decea.xpro/session/… Esa es la ruta en la que se realizó el post-proceso de las imágenes de ADS, pero esa estructura no es la que te suelen entregar, e incluso es posible que mi ordenador no tenga unidad D:

Para solucionar este problema, al diseñar el sensor ADS hace ya muchos años añadimos el campo DataPath, que básicamente lo que hace es sustituir de las rutas el valor almacenado en DataPath por el directorio donde se almacena el archivo de proyecto .D3D de Digi3D.NET, de modo que si en el caso anterior indicamos que el DataPath es D:/decea.xpro/session y creamos el archivo de proyecto en  Z:\, Digi3D.NET intentará cargar la imagen de Z:\session\20110206112930/ica-sp1/output/fx02-1302_110206_111037_PANF27AL1_4.ads

La verdad es que no es muy intuitivo, y además no sirve para los casos como el que he indicado anteriormente, ya que el archivo PANF27A.cam no tiene un directorio raíz común con el resto de archivos y a que únicamente podemos especificar un único valor en el  DataPath, de modo que no tendríamos manera de sustituir nada en este segundo archivo, de manera que Digi3D.NET no sería capaz de localizar el archivo de cámara.

Para solucionar este problema hemos realizado una serie de cambios:

  1. Hemos cambiado el nombre de DataPath a Rutas a sustituir, que es mucho más intuitivo.
  2. Si pulsamos el botón de los tres puntos en el campo Rutas a sustituir aparecerá el cuadro de diálogo Sustituidores que nos permite añadir tantas rutas como queramos como en la siguiente captura de pantalla:sustituidores-en-ads40
    En esta pantalla comprobamos que Digi3D.NET sustituirá D:\decea.xpro por Z:\ y D:\ADSCAM por E:\.
    Podemos añadir tantas rutas como queramos pulsando el botón Nuevo. Si queremos modificar alguna, tan solo tenemos que seleccionarla de la lista y pulsar el botón Editar, y por último podemos eliminar la entrada que tengamos seleccionada pulsando el botón Eliminar.

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

Digi3D.NET 2017

Digi3DNET 2017

Tal y como anunciamos hace unos meses, el día 1 de septiembre publicaríamos como versión estable la versión de Digi3DNET que nos ha acompañado como versión BETA desde el día 25 de febrero de 2016. Nos hemos retrasado un mes y medio aproximadamente por unos últimos retoques, pero no te preocupes, que la hemos compilado con fecha 31 de agosto de 2016, de manera que si tenías una suscripción activa ese día, la puedes descargar y utilizar sin ningún problema.

Hemos hecho muchísimos cambios al programa: desde el interfaz de usuario (temas oscuro, claro y azul) a nuevas e impresionantes funcionalidades como control de calidad mediante guiones en cualquier lenguaje .NET, hacer que el programa reconozca comandos de voz, implementación de un nuevo modelo de cámaras cónicas en el programa que soporta todos los tipos de cámaras que han llegado a nuestros laboratorios, carga nativa de proyectos de PhotoScan, Pix4D, nuevo instalador que instala tanto la versión de 32 bits como la de 64 bits, etc. Tienes todas las novedades en nuestro blog o en nuestra página de Facebook o en nuestro Twitter.

La versión BETA se podía instalar junto con la versión estable, pues almacenaba los archivos y la configuración en carpetas diferentes (tanto en el sistema de archivos como en el registro del sistema). Ha llegado el momento de publicar la versión como estable, lo que significa que tanto los archivos como las configuraciones se almacenarán en el mismo directorio que la versión estable, por lo tanto, el instalador des-instalará previamente la versión estable (si es que la tenías instalada), y las configuraciones que aparecerán cuando la instales (archivos de configuración de teclas, tablas de códigos, etc, serán las de la versión estable y no la de la versión BETA si es que la tenías instalada)

Instálala (si tenías una subscripción de soporte técnico activa a día 31 de agosto de 2016 (aunque la publiquemos hoy, la vamos a publicar con esa fecha) siguiendo el siguiente enlace, o espera al día 5 de octubre de 2016 a que se publique automáticamente en nuestros servidores.

Y recuerda que este año tendremos en Digi3DNET: Programación en Python, tienda de aplicaciones, cifrado de tablas de códigos que te permitirá alquilar a una empresa una tabla de códigos determinada para que puedan presentarse a concursos como B.T.A., etc.

Digitaliza en una Ortofoto + DSM en 3D estereoscópico mediante el sensor Ortofoto Estereoscópica

Cada vez se recurre más a la opción de digitalizar cartografía 3D a partir de una ortofoto y de un DEM obtenido mediante Lídar.
La digitalización es 3D, pero el operador no ve lo que está haciendo en 3D, porque lo que visualiza es una ortofoto.
Digi3D.NET soluciona este problema mediante su sensor Ortofoto Estereoscópica que crea un modelo estereoscópico virtual al vuelo permitiendo al operador digitalizar en 3D estereoscópico objetos que serían muy difíciles de digitalizar visualizando una ortofoto.
Este es un modelo sintético y el operador puede indicar el factor de exageración vertical que quiere para incrementar o disminuir la sensación estereoscópica. La ortofoto puede haber sido obtenida por cualquier sensor: da igual que sea una ortofoto de una imagen satelital o una imagen cónica, etc. Y el DSM puede estar en cualquier formato: .LAS, .TIF, etc…
Esta solución añade «libertad estereoscópica» a la hora de digitalizar sobre una ortofoto imitando un modelo estereoscópico, pero obviamente siempre tendrás más precisión si dispones de un modelo estereoscópico real de la zona.
En el siguiente vídeo puedes ver este sensor en acción:

https://youtu.be/mHWjKjkZKtI

No pierdas el norte

El otro día un operador nos contó que cuando crean un proyecto fotogramétrico con la intención de utilizar la funcionalidad de cambio automático de modelos, rotan 180 grados las imágenes de pasadas impares, modifican el giro de kappa esas fotos en el archivo de aerotriangulación y luego crean los modelos de esas pasadas al revés, es decir, en vez de cargar el modelo 1-2, cargan el 2-1.

De esta manera evitan que se cambie el sentido del modelo si el cambio automático de modelos cambia a un modelo de otra pasada.

La verdad es que no habíamos pensado en este inconveniente, así que hoy hemos añadido una nueva funcionalidad a Digi3D.NET que realiza esta tarea de forma automática por nosotros.

Básicamente calcula la diferencia en grados entre el norte del modelo que tenemos cargado y el norte del modelo que se va a cargar. Si la diferencia es superior a un valor (que se puede configurar en Herramientas/Configuración/Proyecto fotogramétrico/Umbral para invertir modelo), el programa rotará automáticamente 180 grados ambas imágenes y además intercambiará los ojos izquierdo y derecho, de manera que veremos el modelo como si estuviera volado al revés y así no perderemos el norte.

Puedes deshabilitar esta nueva característica mediante la opción Herramientas/Configuración/Proyecto fotogramétrico/Invertir modelos para mantener norte.

A continuación un vídeo en el que te mostramos esta nueva funcionalidad: