PhotogrammetricView

Módulo: digi3d

Representa la ventana fotogramétrica. Permite mover el cursor, cambiar el zoom, cambiar de modelo y, en los modelos de nube de puntos y de ortofoto estereoscópica, situar la cámara 3D.

Se obtiene con photogrammetric_view(), que devuelve None si no hay ninguna ventana fotogramétrica abierta:

import digi3d

p = digi3d.photogrammetric_view()
if p is not None:
    print(p.model_name, p.ground_coordinates)

El objeto no queda ligado a una ventana concreta: cada propiedad y cada método actúan sobre la ventana fotogramétrica activa en el momento de la llamada. Si el usuario cierra todas las ventanas fotogramétricas, la llamada lanza RuntimeError.

Posición del cursor y zoom

Propiedad Tipo Descripción
ground_coordinates (x, y, z) Lee o asigna la posición del cursor en coordenadas terreno, en el sistema de coordenadas del sensor.
model_coordinates (x, y, z) Lee o asigna la posición del cursor en coordenadas modelo.
zoom float Lee o asigna el factor de zoom: 1 muestra un píxel de la imagen por cada píxel de la pantalla, 2 acerca y 0.5 aleja.

El sensor y el modelo digital del terreno pueden ajustar la posición que se asigna, y Digi3D.AI redondea los factores de zoom menores que 1 al nivel piramidal más cercano, con un máximo de 128. Después de asignar una posición o un zoom, vuelve a leer la propiedad para conocer el valor aplicado.

Método Descripción
go_to_origin() Mueve el cursor al punto de origen del modelo.
close() Cierra la ventana fotogramétrica activa, igual que cuando la cierra el usuario. Devuelve False si la ventana sigue abierta.
p = digi3d.photogrammetric_view()
p.ground_coordinates = (448210.0, 4479360.0, 650.0)
p.zoom = 2
print(p.ground_coordinates, p.zoom)

Modelo cargado

Propiedad Tipo Descripción
model_name str Nombre del modelo cargado.
sensor_name str Nombre del sensor del modelo cargado.
loading_model bool True mientras se carga en segundo plano un modelo pedido con load_model o con los métodos de esta tabla.
Método Devuelve Descripción
next_model() bool Carga el modelo siguiente del proyecto.
previous_model() bool Carga el modelo anterior del proyecto.
next_strip() bool Carga el modelo de la pasada siguiente.
previous_strip() bool Carga el modelo de la pasada anterior.

Estos métodos devuelven False si está activado el cambio automático de modelos o si ya se está cargando un modelo. Digi3D.AI carga el modelo después de que termine el guion: dentro del mismo guion, model_name sigue devolviendo el modelo anterior. Comprueba model_name o loading_model en un guion posterior.

Cámara 3D

Los modelos de nube de puntos y de ortofoto estereoscópica tienen una cámara 3D con posición y orientación propias. Los demás sensores no tienen cámara.

Miembro Descripción
camera Devuelve un diccionario con position (x, y, z) en coordenadas terreno, omega (inclinación) y kappa (rumbo) en grados sexagesimales y fov (campo de visión) en grados. Devuelve None si el sensor no tiene cámara.
set_camera(position, omega, kappa) Sitúa la cámara en position (x, y, z) y la orienta con omega y kappa, en grados sexagesimales. Lanza RuntimeError si el sensor no tiene cámara.
p = digi3d.photogrammetric_view()
if p.camera is not None:
    x, y, z = p.camera["position"]
    p.set_camera((x, y, z + 50), omega=-30, kappa=p.camera["kappa"])

Órdenes

Método Devuelve Descripción
run_command(command) bool Ejecuta una orden de la ventana fotogramétrica, con parámetros opcionales detrás de =, por ejemplo run_command("PLOT_ZOOMIN"). Busca el nombre en el idioma configurado y, si no lo encuentra, en todos los idiomas. Devuelve False si no se ha podido crear la orden y lanza ValueError si la orden no existe.

Véase también