cds.aladin
Class PlanBG
java.lang.Object
  
cds.aladin.Plan
      
cds.aladin.PlanImage
          
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]
 
 
 
| Methods inherited from class java.lang.Object | 
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
 
Copyright © 2009 UDS/CNRS