Archivo del Autor: joseangelmt

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:

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.

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.

Cambios en los sistemas de coordenadas de referencia de los sensores

Hemos realizado una serie de modificaciones a los sensores de Digi3D.NET en lo referente a sistemas de coordenadas de referencia.

Ahora el programa no solicita el sistema de coordenadas de referencia al configurar los parámetros de los distintos sensores, de modo que en función del sensor se seleccionará de forma automática el sistema de coordenadas de referencia.

En la siguiente tabla puedes comprobar los sistemas de coordenadas de referencia asignados a la ventana fotogramétrica en función del tipo de sensor:

Sensor Sistemas de coordenadas de referencia permitidos
Satélite RPC Este sensor trabaja siempre en el sistema de coordenadas de referencia: EPSG:4979. Este es un sistema de coordenadas de referencia es idéntico al EPSG:4326 pero en vez de ser geográfico 2D, es geográfico 3D (con coordenadas Z elipsoidales).
VM Quasi-Panoramic Este sensor trabaja siempre en el sistema de coordenadas de referencia: EPSG:4979. Este es un sistema de coordenadas de referencia es idéntico al EPSG:4326 pero en vez de ser geográfico 2D, es geográfico 3D (con coordenadas Z elipsoidales).
ADS 40/80 Este sensor trabaja siempre en el sistema de coordenadas de referencia: EPSG:4979. Este es un sistema de coordenadas de referencia es idéntico al EPSG:4326 pero en vez de ser geográfico 2D, es geográfico 3D (con coordenadas Z elipsoidales).
Ortofoto Se obtiene el sistema de coordenadas de referencia de la orientación de la ortofoto. Si es un GeoTiff y éste (que no siempre es así) aporta información del sistema de coordenadas de referencia, el sensor tendrá ese sistema, si no es así y existe un archivo .prj, se asignará el sistema indicado en ese archivo, si no, el sistema de coordenadas de referencia será desconocido, tanto para el vertical como para el horizontal.
Ortofoto estereoscópica Se obtiene el sistema de coordenadas de referencia de la orientación de la ortofoto. Si es un GeoTiff y éste (que no siempre es así) aporta información del sistema de coordenadas de referencia, el sensor tendrá ese sistema, si no es así y existe un archivo .prj, se asignará el sistema indicado en ese archivo, si no, el sistema de coordenadas de referencia será desconocido, tanto para el vertical como para el horizontal.
Web Map Service Libre. Lo define la propia cadena de conexión al servidor WMS
Web Map Tile Service Libre. Lo define la propia cadena de conexión al servidor WMTS
Cónico
  • Si cargamos un modelo sin orientación absoluta ni aerotriangulación asociada, el sistema de coordenadas de referencia será Horizontal local + Vertical local.
  • Si el modelo tiene una aerotriangulación:
    • Si el archivo de aerotriangulación informa internamente de un sistema de coordenadas de referencia, se seleccionará este sistema de coordenadas de referencia. A día de hoy, únicamente los archivos .prj de Inpho son los únicos que informan de su sistema de coordenadas de referencia internamente
    • Si el archivo de aerotriangulación no informa internamente de un sistema de coordenadas de referencia, pero se localiza un archivo .prj en el mismo directorio que el archivo de aerotriangulación con un sistema de coordenadas de referencia, se seleccionará el sistema de coordenadas de referencia de ese archivo .prj
    • Si el archivo de aerotriangulación no informa de sistema de coordenadas de referencia ni se localiza un archivo .prj, se seleccionará como sistema de coordenadas de referencia Horizontal local + Vertical local.
  • Si se localiza un archivo de orientación absoluta, y éste proporciona información de sistema de coordenadas de referencia, se seleccionará éste sistema de coordenadas que sustituirá al proporcionado por el archivo de aerotriangulación.

En el siguiente vídeo vamos a aprender a asignar a un archivo de aerotriangulación .eo un sistema de coordenadas de referencia para que Digi3D.NET sepa la ubicación de dicho archivo en el espacio.

Recuperación de archivos corruptos

Digi3D.NET incorpora en su importador de archivos binarios de doble precisión una herramienta de recuperación silenciosa de archivos de dibujo corruptos.

Gracias a esta herramienta, el programa recuperará el mayor número de entidades posibles en caso de cargar un archivo corrupto y a la vez avisará al usuario del número de secciones corruptas dentro del archivo así como su ubicación (marcada como un offset desde el origen del archivo y su tamaño).

En el siguiente vídeo puedes ver cómo corrompemos un archivo de dibujo y cómo Digi3D.NET es capaz de cargar el resto de entidades sin problemas.

Comparte tu escritorio con el equipo de soporte de Digi21 de una manera más sencilla

Team Viewer Quick support

Hemos incorporado en el menú ayuda de Digi3D.NET una opción para compartir tu escritorio con el equipo de soporte de Digi21.

Si el técnico de soporte solicita que compartas tu escritorio para poder ver en tiempo real tu problema o para enseñarte a manejar una nueva funcionalidad, tan solo tienes que seleccionar la opción del menú Ayuda/Compartir escritorio con el equipo de soporte de Digi21…

Aparecerá el programa TeamViewer Quick Support con dos números (número ID y contraseña) que tendrás que comunicar al técnico de soporte para que éste se pueda conectar a tu ordenador. El número ID se genera la primera vez que se ejecuta el programa y no varía, el segundo varía cada vez que ejecutes el programa.

Si tu versión de Digi3D.NET no incorpora esa funcionalidad, puedes descargar el programa en http://www.digi21.net, en el menú Soporte técnico/Descargar TeamViewer Quick Support.

Novedades en el cuadro de diálogo de selección de Sistemas de Coordenadas de Referencia

Existen distintos sistemas de coordenadas de referencia:

  • Horizontales 2D (para coordenadas X,Y o Latitud,Longitud)
  • Horizontales 3D (que son siempre coordenadas geográficas Latitud,Longitud,H (siendo H altitud elipsoidal)
  • Verticales (para coordenadas Z)
  • Geocéntricos (para coordenadas ortogonales con origen del sistema en el centro de la tierra)
  • Compuestos (formados por un sistema horizontal 2D y un sistema vertical)

Hasta hoy siempre que Digi3D.NET necesitaba saber acerca del sistema de coordenadas de referencia de un determinado objeto como la ventana de dibujo, o un modelo fotogramétrico, solicitaba al usuario por un lado el sistema de coordenadas de referencia horizontal y por otro lado el sistema de coordenadas vertical.

Esto imposibilitaba la posibilidad de trabajar en sistemas horizontales 3D, de modo que si queríamos restituir un modelo satelital con coordenadas (Latitud, Longitud, H elipsoidal), teníamos que seleccionar como sistema de coordenadas de referencia WGS 84 por ejemplo y como vertical seleccionar desconocido ya que no existe ningún sistema de coordenadas de referencia elipsoidal.

Hemos modificado el programa en varios aspectos:

  • Ahora todos los sistemas de coordenadas que seleccionemos van a ser 3D, de modo que donde antes se preguntaba por el horizontal y el vertical, ahora se pregunta por un único sistema de coordenadas de referencia.

    Las ventanas que muestran el título del sistema de coordenadas de referencia muestran en una única línea el nombre del sistema. Si éste es compuesto se muestra el nombre de la siguiente manera: horizontal + vertical como por ejemplo WGS 84 / UTM Zone 30N + EGM08 REDNAP.

  • Hemos remodelado completamente el cuadro de diálogo de selección de sistemas de coordenadas de referencia.

Nuevo cuadro de diálogo selección SCR

El nuevo cuadro de diálogo tiene las siguientes novedades:

  • Únicamente permite formar sistemas 3D, que pueden ser o un sistema horizontal 3D o un sistema compuesto formado por un geográfico para el horizontal + uno vertical o uno proyectado para el horizontal + uno vertical
  • Permite indicar el sentido de los ejes en los sistemas geográficos (tanto en los 2D como en los 3D).

    Podemos seleccionar una de las siguientes opciones:

    • Estándar, lo que significa que el sistema de coordenadas de referencia que se va a crear tiene los ejes tal y como los definió su creador.
    • Latitud, Longitud.
    • Longitud, Latitud.

    Esto es importante pues en ocasiones gracias a estas opciones podemos especificar el orden de las coordenadas al exportar a un Shapefile por ejemplo. Otros programas no cumplen bien el estándar de OpenGis y esperan recibir Longitud,Latitud aunque el sistema de coordenadas de referencia asociado a los shapefiles indique claramente que las coordenadas deben ser Latitud, Longitud.

Modelo de geoide EGM2008

Modelo de geoide EGM08
Digi3D.NET puede transformar altitudes de coordenadas elipsoidales a coordenadas ortométricas mediante los modelos de geoide EGM96 que es global, EGM2008 que es también global y mediante el modelo de geoide EGM08-REDNAP particularizado para España.

El instalador de Digi3D.NET incorpora los modelos de geoide EGM96 y EGM08-REDNAP pues estos archivos pesan poco y no incrementan mucho el tamaño del instalador.

El modelo de geoide global EGM2008 no se incluye en el instalador pues son en realidad dos rejillas, una con un peso de 1Gb aproximadamente (que proporciona datos cada segundo) y otra con un peso aproximado de 100Mb (que proporciona información cada 2.5 segundos).

Estos archivos son fundamentales para poder utilizar el modelo de geoide EGM2008, así que hemos creado un instalador que instala los archivos de rejilla en su ubicación correspondiente.

Puedes acceder al instalador en nuestra página mediante http://www.digi21.net mediante la opción del menú Descargas/Digi3D.NET/Modelo de geoide EGM2008.

El instalador básicamente copia los dos archivos (que puedes descargar manualmente del sitio oficial) en la carpeta %ProgramData%\Digi3D.NET\OpenGis. Si copias manualmente estos archivos, tienes que descomprimirlos, pues se proporcionan con extensión .gz y Digi3D.NET requiere que estén descomprimidos.

Ecualización de histograma en tiempo real

Digi3D.NET dispone de una herramienta que nos va a ayudar a visualizar las imágenes con la mejor calidad posible.

Esta herramienta se activa al marcar la casilla Niveles automáticos en el panel Propiedades de visualización que podemos mostrar mediante la opción del menú Ventana fotogramétrica/Propiedades de visualización….

Si marcamos esta casilla el programa realizará un análisis del histograma de la imagen y calculará el mejor histograma posible y mejorará mucho la visualización de las imágenes.
Al marcar esa casilla se deshabilitarán los controles de Brillo, Constraste y Gamma pues se controlarán automáticamente por el programa.

En el siguiente vídeo puedes comprobar la diferencia entre visualizar un modelo satelital de 12 bits sin ecualizar el histograma y ecualizando el histograma.

Memorizando los parámetros de la ventana fotogramétrica

Digi3D.NET almacena la coordenadas en la que estabas cuando cerraste un determinado modelo fotogramétrico así como el factor de zoom que tenías activo en ese momento. De esa manera, cuando vuelves a cargar un modelo, éste aparece en las coordenadas en las que lo cerraste y con el mismo factor de zoom.

Cuando instalas el programa se activa esa configuración por defecto. Si por algún motivo la tienes desactivada y la quieres activar, sigue los siguientes pasos:

  1. Selecciona la opción del menú Herramientas/Configuración. Aparecerá el cuadro de diálogo Configuración.
  2. Localiza y despliega la sección Estereoscopía.
  3. Cambia el valor de la variable Memorizar parámetros a Si.

A partir de ese momento el programa memorizará los parámetros de visualización de la ventana fotogramétrica.
Esta opción se tiene en cuenta únicamente para modelos cargados manualmente mediante el cuadro de diálogo Nuevo proyecto, y no se tiene en cuenta para modelos cargados con un proyecto que permita cambio automático de modelos. La información se almacena en el archivo .d3d asociado a cada modelo.