domingo, mayo 04, 2008

Enlace dinámico

Ya estoy mas o menos recuperado de mi baja y mañana debería empezar a trabajar...aunque realmente ya llevo unos días haciendo cosas por aquí. Entre ellas, terminar una curiosa funcionalidad que aquí os presento y que ya podeis encontrar en la actualización que acabo de hacer (v0.52, que ya se descarga de googlecode al igual que los restantes materiales, para así evitar temporalmente la caida del servidor de la UNEX. Es probable, no obstante que esto sea ya siempre así, y de esta forma aprovechamos, como dije en una entrada anterior, todas las posibilidades que googlecode ofrece)

Esta entrada se la dedico a Jorge, que se que le va a gustar, ya que todo esto viene de un comentario suyo que me hizo hace tiempo (y al que he estado dándole vueltas sin parar hasta que he implementado algo similar a lo que él me dijo...)

Como acabo de actualizar la ayuda del programa y el manual para añadir la descripción de esta nueva funcionalidad, en lugar de redactarlo de nuevo, pego a continuación dicha descripción para que os hagais una idea.

-------------------

A partir de la version 0.52, SEXTANTE incorpora una nueva funcionalidad que permite ahorrar esfuerzo a la hora de elaborar nuevas capas a partir de una o varias capas de partida, en caso de que estas capas base sean modificadas.

Por ejemplo, si se parte de una capa de carreteras, pueden efectuarse operaciones tales como calcular un área de influencia, calcular parámetros geométricos de ésta, hacer algun análisis estadístico de los valores contenidos en dicho area y cortar otra capa vectorial segun esa misma area de influencia. Si el trazado de alguna de las carreteras se modifica en la capa original, deben volver a realizarse todas las operaciones de cálculo de las capas derivadas, ya que éstas habrán dejado de tener sentido, pues la entidad original a partir de la cual fueron calculadas ya no presenta las mismas características.

Cada vez que se ejecuta una extensión de SEXTANTE, ésta almacena en las capas de partida la información relativa a dicha extensión, de forma que posteriormente puede ejecutarse de nuevo de forma automática. Esto crea un árbol de conexiones entre las distintas capas que se emplean para el cálculo y sus resultados, que puede emplearse para simplificar el trabajo en situaciones como las descrita anteriormente, creándose un enlace dinámico entre las capas.

Así, cuando se edita una capa vectorial, SEXTANTE actualiza (siempre que así esté configurado, como veremos más adelante) todas aquellas capas que dependan de ésta, es decir, todas aquellas que sean resultado de alguna extensión que haya tomado como capa de partida la capa editada. Si estas capas derivadas son a su vez entradas de otro proceso, las capas obtenidas a partir de ellas también serán actualizadas, y así sucesivamente.

Esta funcionalidad únicamente está activa por el momento para capas vectoriales, y en aquellas extensiones que a su vez generan tan sólo capas vectoriales como resultados. Esto es así debido a la arquitectura actual de gvSIG, así como al hecho de que las únicas capas que se pueden modificar actualmente en gvSIG son las de tipo vectorial.

En la configuración del gestor de extensiones, vimos que hay tres opciones para ajustar el comportamiento de esta funcionalidad en gvSIG:

  • Actualizar sin preguntar. Al editar una capa se lanza automaticamente la actualización. Si la capa A ha sido empleada para calcular una nueva capa B, al cerrar la edición de la capa A la capa B se recalculará de forma automática.
  • Preguntar antes de actualizar. Al cerrar la edición de una capa se mostrará una ventana como la de la siguiente figura, donde se esquematiza el proceso de actualización, y las capas que se verán actualizadas.Haciendo clic en Aceptar, se procederá a la actualización. Si se hace clic en Cancelar, las capas derivadas no cambiarán.
  • No actualizar. Al cerrar la edición de una capa no se realiza actualización alguna.
Tanto en este último caso como en el caso de seleccionar Cancelar en la ventana del esquema de actualización, puede ser que en un momento dado el usuario sí desee recalcular todas las capas derivadas de una dada. Para ello, puede siempre hacer clic con el botón derecho sobre la capa en cuestión y seleccionar Actualizar enlace dinámico. De este modo se accede a la ventana del esquema de actualización de la capa seleccionada.


Es importante reseñar que ésta es una funcionalidad en desarrollo, y que aún no posee algunos elementos necesarios para ser aprovechada al máximo, tales como la persistencia de los enlaces al cerrar gvSIG. Actualmente, si se abandona la sesión estos datos se pierden, ya que no se almacenan en el proyecto gvSIG. En un futuro esperamos que estas capacidades se integren dentro del núcleo gvSIG en la medida de lo posible, logrando una funcionalidad más práctica y potente.

----------

Pues eso, una funcionalidad nueva que puede probarse, aunque esta lejos de ser realmente potente, pero que como idea creo que puede dar mucho juego y ser algo muy interesante.

5 comentarios:

Galmaran dijo...
Este comentario ha sido eliminado por un administrador del blog.
XuRxO dijo...

Pero qué máquina que eres, en cuanto pueda lo pruebo, por lo pronto esta tarde lo cuento en el IGSM.

Gracias por la dedicatoria, un saludo!! :D

Agustin dijo...
Este comentario ha sido eliminado por el autor.
Agustin dijo...
Este comentario ha sido eliminado por el autor.
Agustin dijo...

Victor,
Funciona !!!
Es una maravilla maravillosa.