
Table des matières
Jean Zay, pré et post traitement : documentation NCL
Présentation
NCL est un ensemble de sous-programmes graphiques écrits en Fortran et interfacés avec le logiciel de base GKS. Il est distribué par le National Center for Atmospheric Research (Boulder Colorado). NCL permet la réalisation de tracés (courbes, histogrammes, courbes de niveaux, visualisation 3D, contours cartographiques etc.) par l'appel de quelques sous-programmes.
NCL est composé de sous programmes appelés utilitaires qui peuvent se répartir en grandes classes de fonctions graphiques.
- AREAS Définition de zones polygonales
- AUTOGRAPH Tracé de courbe du type y=f(x)
- COLCONV gestion des couleurs (conversion RGB,HLS,HSV)
- CONPACK Tracé d'isocontours
- EZMAP Tracé cartographique en mode ligne
- EZMAPA Tracé cartographique en mode surface
- GRIDAL Tracé de grilles, d'axes, de cadres
- HISTGR Tracé d'histogrammes
- ISOSRF Visualisation 3D
- LABELBAR Cartouches donnant la correspondance entre couleur et valeurs
- SOFTFILL Remplissage de surface par des couleurs ou des motifs
- SRFACE Tracé de surface de type y=f(x,y)
- PLOTCHAR Tracé de caractères spéciaux
- STRMLM Tracé de lignes de courants
- THREED Tracé de courbes 3D
- VELVCT Tracé de champs de vecteurs
GKS
NCL peut être utilisé avec le logiciel GKS d'origine NCAR qui permet des sorties metafichier CGM (niveau 0A). GKS Graphical Kernel System est un ensemble de fonctions graphiques de bas niveaux. GKS est une norme AFNOR depuis 1984 et une norme ISO depuis 1985.
Principales primitives GKS
GKS comprend un certain nombre de fonctions de bases (primitives) qui peuvent être reparties en classes .
- Polyline
- GPL - Polyline
- GSLN - Set line type
- GSLWSC - Set linewidth scale factor
- GSPLCI - Polyline color index
- Polymarker
- GPM - Polymarker.
- GSMK - Set marker type.
- GSMKSC - Set marker size scale factor.
- GSPMCI - Polymarker color index.
- Text
- GTX - Text
- GSTXAL - Set text alignment.
- GSTXCI - Set text color index.
- GSTXFP - Set text font and precision.
- GSTXP - Set text path
- GSCHH - Set character height.
- GSCHSP - Set character spacing.
- GSCHUP - Set character up vector.
- GSCHXP - Set character expansion factor.
- Fill area
- GCA - Cell array.
- GFA - Set marker type.
- GSFACI - Set fill area color index.
- GSFAIS - Set fill area interior style.
- Gestion du poste de travail
- GACWK - Activate workstation
- GCLKS - Close GKS
- GCLRWK - Clear workstation
- GCLWK - Close workstation
- GDAWK - Deactivate workstation
- GESC - Escape.
- GOPKS - Open GKS.
- GOPWK - Open workstation.
- GSELNT - Select normalization transformation.
- GSCLIP - Set clipping indicator.
- GSCR - Set color representation.
- GSVP - Set viewport.
- GSWN - Set window.
- Fonctions d'interrogations
- GQCHH - Inquire character height.
- GQCHSP - Inquire character spacing.
- GQCHUP - Inquire character up vector.
- GQCHXP - Inquire character expansion factor.
- GQCLIP - Inquire clipping indicator.
- GQCNTN - Inquire current transformation number.
- GQCR - Inquire color representation.
- GQFACI - Inquire fill area color index.
- GQFAIS - Inquire fill area interior style.
- GQFASI - Inquire fill area style index.
- GQLN - Inquire line type.
- GQLWSC - Inquire linewidth scale factor.
- GQMK - Inquire marker type.
- GQMKSC - Inquire marker size scale factor.
- GQMNTN - Inquire maximum transformation number.
- GQNT - Inquire normalization transformation.
- GQOPS - Inquire operating state value.
- GQOPSG - Inquire name of open segment.
- GQPLCI - Inquire polyline color index.
- GQPMCI - Inquire polymarker color index.
- GQSGUS - Inquire set of segment names in use.
- GQTXAL - Inquire text alignment.
- GQTXCI - Inquire text color index.
- GQTXFP - Inquire text font and precision.
- GQTXP - Inquire text path.
Niveaux
GKS peut être utilisé dans différents modes de fonctionnalités selon les possibilités des dispositifs d'entrée (locator, stroke, valuator, choice, pick, string)
- mode requête (request mode) : le mode requête correspond à peu près au type d'entrée utilisé en FORTRAN.
- mode échantillonnage (sample mode) : le programme d'application et le processus d'entrée sont actifs simultanément. Le processus d'entrée fournit des données au programme GKS qui
les prend au vol
. Selon la quantité de données et la vitesse d'acquisition, des données peuvent être perdues.
- mode événement (event mode) : le programme GKS et le processus d'entrée sont actifs simultanément, les valeurs saisies sont placées dans une file d'attente que le programme doit lire dans l'ordre chronologique.
- Niveau d'entrée
- a - Aucune fonction d'entrée disponible
- b - Mode requête uniquement
- c - Mode requête, échantillonnage et événement
- Niveau de sortie
- 0 - Sortie minimale, un seul poste de travail en sortie à la fois.
- 1 - Plusieurs postes de travail en sortie disponibles en même temps. Utilisation de segments et de plusieurs transformations de normalisation.
- 2 - Utilisation du poste de stockage de segments indépendant WISS.
Structure d'un programme GKS
- pgm.f90
integer ecran,pilote ecran = 1 pilote = 8 call gopks(6,10000) ! ouverture de GKS call gopwk(ecran,1,pilote) ! ouverture X-window call gacwk(ecran) ! activation du poste de travail ... Programme GKS ... call gclrwk(ecran,1) ! effacement de l'ecran/avance papier call gdawk(ecran) ! desactivation poste de travai call gclwk(ecran) ! fermeture du poste de travail call gclks ! fermeture de GKS
On peut remplacer les trois premiers appels (gopks, gopwk, gacwk) par opngks pour une sortie fichier CGM et les trois derniers (gdawk, gclwk, gclks) par clsgks.
Les noms des exemples en légende des tracés font réference au programme NCAR qui peuvent être obtenus par la procédure ncargex.
Courbes : Autograph
Tracé de courbes ou de familles de courbes avec ou sans annotations.
- EZY Dessin d'une courbe définie par les points (i,y(i), i=1,npoints)
- EZXY Dessin d'une courbe définie par les points (x(i), y(i), i=1,npoints)
- EZMXY Ensemble de courbes définies par les points (x(i), y(i,j), i=1,npoints), j=1,nbcourbe)
- AGSETx Définition des paramètres autograph_params
- pgm.f90
real x(20),Y(20) call opngks do i=1,20 x(i) = float(i-1)*.314 y(i) = x(i) + cos(x(i))*2.0 enddo call ezxy (x,y,20,'Example (EZXY)$') call clsgks end
Grilles et axes: Gridal
Tracé de grilles d'axes et de cadres.
- GRID Tracé d'une grille sans labels.
- GRIDL Tracé d'une grille avec labels.
- HALFAX Tracé d'une paire d'axes.
- PERIM Tracé d'un périmètre sans labels.
- PERIML Tracé d'un ensemble de grilles, périmètre.
- GRIDAL Tracé de l'ensemble des fonctions ci-dessus .
- GASETx Définition des paramètres gridall_params
Isocontours : Conpack
Tracé d'isocontours et d'isosurfaces à partir de données régulièrement espacées sur une grille rectangulaire.
- CPRECT Initialisation de la fonction d'isocontours associée à un tableau rectangulaire.
- CPSPS1 Interpolation d'un tableau non dense sur une grille rectangulaire régulière dense.
- CPCLDR Tracé de ligne de contour
- CPCLAM Tracé de ligne de contour sur une surface.
- CPLBDR Tracé des labels sur une ligne de contour.
- CPSETx Définition des paramètres conpack_params
- CPGETx Récupération des paramètres
- CPSETC Affectation d'un paramètre de type caractère
- CPSETI Affectation d'un paramètre de type entier
- CPSETR Affectation d'un paramètre de type réel
Quelques paramètres Conpack
Les paramètres sont des variables caractère de longueur 3 auxquelles on affecte au choix une valeur .
- `AIA' - Area Identifier Above - Integer Array
- `AIB' - Area Identifier Below - Integer Array
- `CIS' - Contour Interval Specifier - Real
- `CLS' - Contour Level Selection Flag- Integer
- `CLU' - Contour Level Use Flags - Integer Array
- `CLV' - Contour Level Values - Real Array
- `NCL' - Number of Contour Levels - Integer
- `CMN' - Contour Minimum - Real
- `CMX' - Contour Maximum - Real
- `ORV' - Out-of-Range Value
- `PAI' - Parameter Array Index - Integer
- `T2D' - Tension on 2-Dimensional Splines - Real
- `VPB' - Viewport Bottom - Real
- `VPL' - Viewport Left - Real
- `VPR' - Viewport Right - Real
- `VPT' - Viewport Top - Real
- `XC1' - X Coordinate at Index 1 - Real
- `XCM' - X Coordinate at Index M - Real
- `YC1' - Y Coordinate at Index 1 - Real
- `YCM' - Y Coordinate at Index M - Real
Choix du nombre de contours égal à 13 :
CALL CPSETI('NCL --- NUMBER OF CONTOURS',13)
Exemple - Conpack1
- Conpack1.f90
parameter (nb_niveaux=14,nb_labels=nb_niveaux+1) parameter (m=23,n=14) dimension z(m,n),rwrk(1000),iwrk(1000),map(20000) dimension xca(1000),yca(1000),aia(10),gia(10) dimension index_col(nb_niveaux) ! indices de couleurs data index_col / 2,3,4,5,6,7,8,9,10,11,12,13,14,15 / character*10 labels(nb_labels) ! liste des labels integer orient_barre,orient_texte character*10 labels(nb_labels) ! liste des labels external COLOR ! sp externe pour colorer les surfaces call OPNGKS ! Ouverture de GKS call GSFAIS(1) ! Remplissage en mode plein call DEFCOL ! Definition des couleurs ! ! Generation du fichier des donnees 23x14 de -136. a 451. ! call GENDAT (z,m,m,n,20,20,-136.,451.) ! ! Definition du cadre du trace dans la partie superieure ! call CPSETR ('VPB - viewport bottom',.25) ! ! Definition de 13 niveaux repartis en 14 intervals ! call CPSETI ('CLS - contour level selector',-13) ! ! Initialisation de conpack ! call CPRECT (z,m,m,n,rwrk,1000,iwrk,1000) ! ! Initialisation area map et lignes de contour lines au-dessus ! call ARINAM (map,20000) call CPCLAM (z,rwrk,iwrk,map) ! ! Coloration par appel du sous-programme COLOR ! call ARSCAM (map,xca,yca,1000,ai,ag,10,color) ! ! Trace des lignes de contours ! call GSPLCI (0) call CPCLDR (zt,rwrk,iwrk) call GSPLCI (1) ! ! Ecriture labels apres recuperation des valeurs min et max ! orient_barre = 0 orient_texte = 1 xorlab=.05 xfinlab=.95 yorlab=.15 yfinlab=.25 call CPGETR ('ZMN',zmin) call CPGETR ('ZMX',zmax) do i=1,nb_labels call CPSETR ('ZDV - z data value', + zmin+real(i-1)*(zmax-zmin)/nb_niveaux) call CPGETC ('ZDV - z data value',labels(i)) enddo call LBSETI ('CBL - color of box lines',0) call LBLBAR (orient_barre,xorlab,xfinlab,yorlab,yfinlab, + nb_niveaux,1.,.5,index_col,0,labels,nb_labels,orient_texte) call CLSGKS ! Fermeture de GKS end subroutine COLOR(xca,yca,nca,ai,ag,nai) implicit none real xca(nca),yca(nca) integer ai(nai),ag(nai) integer fill ! ! Les tableaux xca et yca contiennent les coordonnees de ! polygones de nca points ! ! Les tableaux ai et ag sont de longueur 2 ! ai : identificateur d'aire ! ai(1) = 1 a nb_niveau representant un identificateur d'aire ! ai(2) = -1 -> zone hors cadre - ai(2) = 0 -> zone hors cadre ! ag = 1-2 (ezmap) 3-4 (conpack) identificateur de groupes ! fill = 1 ! Par defaut, polygone rempli do i=1,nai if (ai(i).lt.0) fill = 0 !Mais pas si un ai < 0 end do * if (fill.ne.0) then ! Si polygone a remplir fill = 0 do i=1,nai ! Balayage indices d'identifier if (ag(i).eq.3) fill = ai(i) ! Si groupe 3 c'est un contour end do if (fill.gt.0) then call gsfaci(fill+2) call gfa(nca-1,xca,yca) end if end if return end subroutine DEFCOL dimension rgbv(3,0:15) data rgbv /0.00 , 0.00 , 0.00 , ! noir + 1.00 , 1.00 , 1.00 , ! blanc + 0.70 , 0.70 , 0.70 , + 0.75 , 0.50 , 1.00 , + 0.50 , 0.00 , 1.00 , + 0.00 , 0.00 , 1.00 , + 0.00 , 0.50 , 1.00 , + 0.00 , 1.00 , 1.00 , + 0.00 , 1.00 , 0.00 , + 0.70 , 1.00 , 0.00 , + 1.00 , 1.00 , 0.00 , + 1.00 , 0.75 , 0.00 , + 1.00 , 0.38 , 0.38 , + 1.00 , 0.00 , 0.38 , + 1.00 , 0.00 , 0.00 / do i=0,15 ! Definition de 16 couleurs en mode RGB call gscr(1,i,rgbv(1,i),rgbv(2,i),rgbv(3,i)) enddo return end
Exemple - Conpack2
- Conpack2.f90
external COLOR parameter (m=21,n=25) parameter (nb_niveaux=10,nb_labels=nb_niveaux+1) integer orient_barre,orient_texte,ai(10),ag(10) real niveau_min,niveau_max dimension z(m,n) dimension rwrk(1000),iwrk(1000),map(20000) dimension xca(1000),yca(1000) dimension index_col(nb_niveaux) character*7 labels(nb_labels) ! liste des labels ! ! Definition des indices de couleurs data index_col / 6,7,8,9,10,11,12,13,14,15 / ! ! Calcul des valeurs de z(i,j) ! do i=1,m x=.1*(i-m/2) do j=1,n y = .1*(j-n/2) z(i,j)=x+y+1./((x-.10)**2+y**2+.09) + -1./((x+.10)**2+y**2+.09) enddo enddo call GSFAIS (1) call DEFCOL ! ! Definition du cadre dans la partie gauche ! call CPSETR ('VPR - VIEWPORT RIGHT',.75) ! ! Calcul du minimum et maximum du tableau Z ! niveau_min = z(1,1) niveau_max = niveau_min do j=1,n do i=1 ,m zij = z(i,j) if (zij.lt.niveau_min) niveau_min = zij if (zij.gt.niveau_max) niveau_max = zij end do end do zc = niveau_min dz = (niveau_max-niveau_min)/nb_niveaux ! ! Ecriture des labels de nb_niveaux aires ! do i=1,nb_niveaux + 1 write(labels(i),'(f7.1)') zc zc = niveau_min + dz + (i-1) * dz end do ! ! Fixation du nombre de courbes de niveau ! call CPSETI('CLS',0) ! Pour prendre le controle call CPSETI('NCL',nb_niveaux) ! Nombre de contours do i=1,nb_niveaux ! Ident. d'aires : 1 a nb_niveaux zc = niveau_min + dz + (i-1) * dz call CPSETI('PAI',i) ! Travail sur le ieme niveau call CPSETR('CLV',zc) ! Valeur de ce niveau call CPSETI('CLU',1) ! type de ligne de contour call CPSETI('AIB',i) ! Indice aire au-dessous niveau i call CPSETI('AIA',i+1) ! Indice aire au-dessus niveau i end do ! ! Initialisation Conpack ! call CPRECT (z,m,m,n,rwrk,1000,iwrk,1000) ! ! Initialisation area map et ligne de contours lines au-dessus ! call ARINAM (map,20000) call CPCLAM (z,rwrk,iwrk,map) ! ! Coloration par appel au sous-programme COLOR ! call ARSCAM (map,xca,yca,1000,ai,ag,10,color) ! ! Trace des lignes de contours en noir ! call GSPLCI (0) call CPCLDR (z,rwrk,iwrk) call GSPLCI (1) ! ! Trace de la legende ! orient_barre = 1 ! labels dessous (horizontal) a droite (vertical) orient_texte = 1 xorlab=.80 xfinlab=.95 yorlab=.05 yfinlab=.95 call LBLBAR(orient_barre,xorlab,xfinlab,yorlab,yfinlab, + nb_niveaux,.5,1.,index_col,0,labels,nb_niveaux+1,orient_texte) stop end
Tracé cartographique en mode ligne : Ezmap
Ezmap réalise la projection sur la surface terrestre des limites continentales des pays . On peut choisir le type de projection (lambert, stéréographique, …), l'origine du point de vue, l'orientation et la représentation des parallèles et méridiens
- MAPDRW Tracé d'une carte complète.
- MAPINT Initialisation EZMAP.
- MAPGRD Tracé des parallèles et méridiens.
- MAPROJ Définition du type de projection de la latitude et de la longitude du point de vue et de l'angle de rotation de la terre
- MAPSET Définition de la zone géographique visible.
- vue maximum.
- latitude et longitude min. et max.
- limites en coordonnées normalisées.
- MAPTRN Transformation des données latitude et longitude en coordonnées normalisées.
- MPSETx Définition des paramètres ezmap_params
Exemple mpex04
Différents types de projections
Tracé cartographique en mode surface : Ezmapa
EZMAPA autorise la redirection des sorties obtenues par EZMAP dans l'utilitaire AREAS permettant ainsi la superposition de surfaces colorées avec des fonds cartographiques.
- MAPINT Initialisation EZMAP
- MAPBLA Définit les limites d'une zone géographique sur une surface calculée par EZMAP.
- MAPLOT Tracé de contours géographiques
- MAPGRM Tracé des lignes de longitude et latitude masquées par une surface
- I=MAPACI(A) Fournit l'index de couleur I d'une zone A.
- MPSETx Définition des paramètres ezmap_params
Exemple ezmap1
- Ezmap1.f90
parameter (nb_niveaux=14,nb_labels=nb_niveaux) parameter (m=40,n=40 integer orient_barre,orient_texte dimension z(m,n),rwrk(1000),iwrk(1000),map(200000 dimension xca(5000),yca(5000) integer ai(10),ag(10) dimension index_col(nb_niveaux) data index_col/ 7,2,3,4,5,6,8,9,10,11,12,13,14,15 character*10 labels(nb_labels) data labels / `ocean ` , `land ` , `< 0 ` , `0-10 ` + `10-20 ` , `20-30 ` , `30-40 ` , `40-50 ` , + `50-60 ` , `60-70 ` , `70-80 ` , `80-90 ` , + `90-100 ` , `> 100 ` / call opngks call gfais (1) ! Remplissage en mode plein call defcol ! Definition des couleurs ! ! Creation des donnees ! call gendat (z,40,40,40,15,15,-10.,110.) ! ! Initialisation area map. ! call arinam (map,200000) ! ! Initialisation Ezmap ! call mappos (.01,.74,.01,.99) call maproj ('OR - orthographic projection',15.,15.,0.) call mapset ('MA - maximal area',0.,0.,0.,0.) call mapstc ('OU - outline dataset','co') call mapin call mapbla (map) ! ! L'appel du sp SET est fait par ezmap en non par conpack (set=0) ! Definition des limites en latitude et longitude ! Les coordonnees(x,y) sont vues comme des latitudes et des logitudes. ! call cpseti ('SET - do-set-call flag',0) call cpseti ('MAP - mapping flag',1) call cpsetr ('XC1 - x coordinate at i=1',-18.) call cpsetr ('XCM - x coordinate at i=m',+52.) call cpsetr ('YC1 - y coordinate at j=1',-35. call cpsetr ('YCN - y coordinate at j=n',+38.) ! ! Definition des n niveaux de contours tels que ! cmn < cmn + cis*cls < cmx ! call cpseti ('CLS - contour level selector',1) call cpsetr ('CMN - contour level minimum',0.) call cpsetr ('CMX - contour level maximum',100.) call cpsetr ('CIS - contour interval specifier',10.) call cpsetr ('ORV - out-of-range value',1.e12) call cprect (z,m,m,n,rwrk,1000,iwrk,1000) call cpclam (z,rwrk,iwrk,map) call arscam (map,xca,yca,5000,ai,ag,10,color) ! ! Trace des limites continentales en noir et des paralleles et ! meridiens au-dessus des oceans ! call gsplci (0) call maplot call cpcldm (z,rwrk,iwrk,map,colrcl) call gsplci (2) call mapgrm (map,xca,yca,5000,ai,ag,10,colrll) call gsplci (1) ! ! Trace echelle de couleurs ! orient_barre = 1 orient_texte = 1 orlab=.76 xfinlab=.99 orlab=.13 yfinlab=.87 call lbseti ('CBL - color of box lines',0) call LBLBAR(orient_barre,xorlab,xfinlab,yorlab,yfinlab, + nb_niveaux,.5,1.,index_col,0,labels,nb_labels,orient_texte) call clsgks stop end subroutine COLOR (xca,yca,nca,ai,ag,nai) implicit none real xca(*),yca(*) integer ai(*),ag(*),index_co(12) integer ncs,i,nai,ai1,ai3,mapaci ! ! Tableau des indices de couleurs ! data index_col / 3,4,5,6,8,9,10,11,12,13,14,15 / ! ! Recherche des identificateurs d'aire pour les groupes 1 et 3 le ! premier indique si la zone est au-dessus de la terre ou l'ocean ! ai1=-1 ai3=-1 do i=1,nai if (ag(i).eq.1) ai1=ai(i) ! Ezmap if (ag(i).eq.3) ai3=ai(i) ! Conpack enddo if (ai1.gt.0) then ! zone Ezmap a representer if (mapaci(ai1).eq.1) then ! zone au dessus de l'ocean call gsfaci (7) ! couleur cyan (index 7 de rgbv ) call gfa (nca-1,xca,yca) else ! zone au dessus de la terre if (ai3.le.0) then ! qui est hors limites call gsfaci (2) ! couleur gris call gfa (nca-1,xca,yca) else ! zone au dessus de la terre call gsfaci (index_col(ai3)) ! dans les limites ai3 > 0 call gfa (ncs-1,xca,yca) ! a representer par conpack end if end if end if return end
Remplissage de surface : Areas
Définition de zones polygonales pour hachurage ou coloriage. Les surfaces ainsi définies peuvent être utilisées en relation avec EZMAPA.
- ARINAM Initialisation AREAS.
- AREDAM Définition des différents types de zones constituant la surface.
- ARPRAM Prétraitement de la surface
- ARSCAM Utilisation de définitions de surface pour coloration par un sous-programme utilisateur.
- ARSETx Définition des paramètres areas_params
Lignes de courants : Strmln
- STINIT Initialisation d'un tracé de lignes courants
- STREAM Tracé de lignes courants
- STSETx Définition des paramètres streamlines_params
Exemple tstrml
- trmln.f90
parameter (m=21, n=25, iwsize = 2*m*n) real u(m,n), v(m,n), wrk(iwsize) gisize = 2.0*pi/float(m) gjsize = 2.0*pi/float(n) do j = 1,n do i = 1,m u(i,j) = cos(gisize*(float(i)-1.0)) ! Calcul des valeurs horizontales v(i,j) = cos(gjsize*(float(j)-1.0)) ! et verticales des vecteurs u et v enddo enddo idm = 0 rdm = 0.0 call stinit(u,m,v,m,rdm,idm,m,n,wrk,iwsize) call stream(u,v,rdm,idm,idm,wrk) !Trace des lignes de courant
Champ de vecteurs : Velvct
Tracé de champs de vecteurs en 2 dimensions, la taille de la flèche et son orientation sont fonction de la longueur et de l'angle du vecteur vitesse à ce point.
Exemple - vvex02
- vvex02.f90
! VVINIT Initialisation d'un tracé de champ de vecteurs ! VVECTR Tracé de lignes courants ! VVSETx **Définition des paramètres vectors_params parameter (mize=21, n=25, iwsize = 2*m*n) real u(m,n), v(m,n), wrk(iwsize gisize = 2.0*pi/float(m) gjsize = 2.0*pi/float(n) do j = 1,n do i = 1,m u(i,j) = cos(gisize*(float(i)-1.0)) ! Calcul valeurs horizontales v(i,j) = cos(gjsize*(float(j)-1.0)) ! et verticales vecteurs u et v enddo enddo idm = 0 rdm = 0.0 call vvinit(u,m,v,m,rdm,idm,m,n,rdm,idm) call vvectr(u,v,rdm,idm,idm,rdm) ! Trace des vecteurs
Labels et légendes : Labelbar
Tracé de cartouches donnant la correspondance entre couleurs et plage de valeurs. Le remplissage des couleurs se fait par un sous-programme NCAR ou un sous-programme utilisateur.
- LBLBAR Création d'une barre de labels complète.
- LBFILL Remplissage d'une barre de labels déjà créée .
- LBSETx Définition des paramètres labelbar_params
Isosurface 3D : Isosrf
Visualisation d'isosurface à partir d'un tableau 3D et suppression des lignes cachées, ISOSRF constitue la version de base et ISOSRFHR la version haute résolution.
- ISOSRF Tracé d'une isosurface
- EZISO Tracé d'une isosurface sous forme simplifiée
- ISSETx Définition des paramètres isosurface_params
Surface 3D : Srface
- SRFACE Tracé d'une surface en perspective
- ISSETx Définition des paramètres decrits par man surface_params
Courbe 3D : Threed
- SET3 Définition de l'espace utilisateur et du point de vue.
- CURVE3 Tracé d'une courbe 3D passant par N points.
- LINE3 Tracé d'une ligne passant par 2 points (x1,y1,z1) et (x2,y2,z2).
Conversion de couleurs : Colconv
- COLCONV permet le passage d'un mode de représentation des couleurs à un autre. Les différents types de représentations sont les suivants :
- RGB : Red, Green, Blue utilisé par les écrans video (synthèse de couleur additive).
- CMY : Cyan, Magenta, Yellow utilisé par les imprimantes (synthèse soustractive).
- HSV : Hue, Saturation,Value (teinte,saturation,valeur)
- HLS : Hue, Lightness, Saturation(teinte, brillance, saturation)
- HLSRGB ( H, L, S, R, G, B ) Conversion HLS en RGB.
- HSVRGB ( H, S, V, R, G, B ) Conversion HSV en RGB.
- RGBHLS ( R, G, B, H, L, S ) Conversion RGB en HLS.
- RGBHSV ( R, G, B, H, S, V ) Conversion RGB en HSV.
Exemple coex02
Représentation HSV (V=0.8)
Représentation HSV (V=1.0)
Utilisation
Programme NCL avec GKS NCAR
La commande ncargf90
permet de faire la compilation et l'edition de liens avec les librairies NCAR.
- Pilotes
- CGM binaire : 1
- X-Window : 8
La procedure *ncargex* permet le lancement d'un ou plusieurs exemples NCAR
ncargex [-all, -A] [-allexamples,-E] [-allfundamental,-F] ....
- -n l'exemple n'est pas compilé ou exécuté
- -allexamples génération de tous les exemples disponibles
- -alltests génération de tous les tests disponibles
L'appel de ncargex sans paramètres fourni la liste des exemples disponibles :
usage: ncargex [-all,-A] [-allexamples,-E] [-alltests,-T] [-allfundamental,-F] [-alltutorial,-U] [-allpdocs,-P] [-areas] [-autograph] [-bivar] [-colconv] [-conpack] [-conran_family] [-conrec_family] [-dashline] [-ezmap] [-field_flow] [-gflash] [-gridall] [-halftone] [-histogram] [-isosrfhr] [-isosurface] [-labelbar] [-ngmisc] [-plotchar] [-pwrite_family] [-scrolled_title] [-softfill] [-spps] [-streamlines] [-surface] [-threed] [-vectors] [-gks] [-misc] [-clean] [-n] [-onebyone] names
Création et exécution de l'exemple agex01 avec sauvegarde du programme agex01.f , du programme agex01 et du fichier cgm agex01.cgm *ncargex agex01*