cds.aladin
Class PlanBG

java.lang.Object
  extended by cds.aladin.Plan
      extended by cds.aladin.PlanImage
          extended by cds.aladin.PlanBG
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
PlanHealpix

public class PlanBG
extends PlanImage

Gestion d'un plan image pour l'affichage du ciel de fond Nota : Cet objet dérive de PlanImage parce qu'il pourrait être envisageable de l'insérer dans la pile Aladin (voir tests dans ViewSimple.paintBackground() commenté). Pour le moment, un seul objet PlanBG est géré dans Calque. Les classes concernées sont: - PlanBG : cette classe - HealpixKey : gère un losange Healpix - HealpixLoader (classe interne) : gestion asynchrone de la liste des HealpixKeys - Loader (classe interne) : chargement asynchrone des données METHODE : Le fond du ciel est subdivisé dans des losanges HEALPIX accessibles directement via des URLs du type http://serveur/SURVEY.NorderNNN.NpixXXX.hpx (ou .jpg). Les losanges les plus appropriés sont chargées du réseau ou d'un cache disque en commençant par les plus mauvaises résolutions. Le tracé des losanges est effectué à chaque repaint() de chaque vue d'Aladin (=> doit être au max de qq ms) par transformée affine approchant les coordonnées célestes des 4 coins dans la solution astrométrique de la vue. Les losanges sont gardés en mémoire tant qu'ils sont tracés. Nota : Les coordonnées des 4 coins peuvent être immédiatement connues à partir de l'ordre et du numéro HEALPIX du losange. les losanges ont 1024x1024 pixels utilisant eux-mêmes la subdivision HEALPIX d'ordre +10 par rapport à l'ordre du numéro npix du fichier. Ces pixels sont ordonnées en lignes et colonnes "image", et non pas dans l'ordre de numérotation HEALPIX nested (ça afficherait n'importe quoi) Par nécessité de performances, le pixels sont en 8bits. Les losanges sont stockés en JPEG sur le serveur (optimiser le volume), en FITS sur le cache disque (optimiser le temps de rechargement) La liste des serveurs est fournie par des enregistrements GLU => classe GluSky, liste dans Glu.vGluSky Exemple : %A 2MASSK.hpx %D 2MASS K survey in HEALPIX access %O CDS'aladin %Z ALADIN %U http://alinda.u-strasbg.fr/~oberto %Aladin.Profile >=5.9 beta hpx %Aladin.Label InfraRed (2MASS K) %Aladin.Survey K L'algorithme de tracage fonctionne de la manière suivante (voir draw(...)) : 1) Boucle depuis la plus mauvaise résolution HEALPIX (ordre 2 ou 3) jusqu'à la résolution courante de la vue 1.1) Détermination de tous les losanges HEALPIX candidats (qui couvrent la vue) => voir classe HealpixKey 1.2) Affichage (ou demande d'affichage => pixList) des losanges concernées ssi leurs fils ne vont pas être tous affichés 1.3) Réveil du Thread de gestion des losanges (class HealpixLoader) L'algorithme du HealpixLoader fonctionne de la manière suivante : 1) Sommeil 2) Réveil (par timeout ou par wakeUp()) 2.1) Gestion du cache disque (suppression des plus vieux fichiers accédés si nécessaire) 2.2) Purge des losanges en mémoire inutilisée (temps de vie>dernier affichage forcé) 2.3) Changement des états des losanges (ASKING=>TOBELOAD...) en vue de leur chargement par les threads de gestion du cache et de gestion du net 2 threads, les loaders, gèrent les chargements (cache et réseau) L'algorithme des Loader fonctionne de la manière suivante: 1) Sommeil 2) Réveil (par timeout ou wakeUp()) 2.1) Chargement du "meilleur" losange à être TOBELOAD..

Author:
Pierre Fernique + Anaïs Oberto [CDS]

Method Summary
 
Methods inherited from class cds.aladin.Plan
getOpacityLevel, run, setOpacityLevel, stop, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 



Copyright © 2009 UDS/CNRS