; -----------------------------------------------------------------
;                     rh_malcrond_im_2d
; -----------------------------------------------------------------
; En entree,
;	harm     = harmoniques 2D		complex(576 ou 648)
;	heur     = heure 			intarr(4)
;	freq     = frequence en Mhz	float
;	np       = taille de l'image
;	larg     = nb de rayons solaires
;       correl   = tableau entfi.corel
; KEYWORDs:
;       t_b      = 1-image en unites de flux  2-image en Kelvins
;                  par defaut t_b = 1   
; Procedures appelantes :
;   film/film2d.pro
;   image_2d/rh_im_2dsel.pro elle-meme appelee par 
;                                          - animation/cre_2m.pro
;                                          - bass2000/cre_gif1.pro
;                                          - image_2d/image_2d.pro
;   movie/cre_movie.pro
; Renvoie l'image calculee  fltarr(np,np)
; MODIFICATIONS: 
; 03 sep 08  : ajout de l'argt correl. Calcule l'image en utilisant au
; mieux tous les harmoniques y compris anti_alias a l'aide du tableau correl
; 04 juin 18 : ajout du mot cle T_B pour appel par RH_IMCUBE
; -----------------------------------------------------------------

FUNCTION rh_malcrond_im_2d, harm_N, heur, freq, np, larg, correl, t_b= t_b

    npi = 128            ;
;   ie0_ew = 1           ; Utilisation des harm de E0 avec E2, E1, H1 a
;   H16.

;     CALCUL DE L'IMAGE INTERFEROMETRIQUE
        RH_BR_MALC_IM_2D,  harm_N,  correl,   npi, image

;     Calcul de la maille elementaire interferometrique et de son angle solide.
	RH_MAILLE_3,  npi,     freq,   heur, $		; entree
		      maille,  domega	    		; sortie
	    ; entree: npi	nbre de pts sur l'image interferometrique.
	    ;	      frequence (MHz),
	    ;	      heure (h, m, s, c).
	    ;	      common MALAX, contenant entre autres new (defini par ie0,
	    ;			     ie1, ie2) et nns (toujours 64).
	    ; sortie: maille = [x0, y0, x1, y1, x2, y2] contient les coord 
	    ;		   heliographiques en RS des points M0 (r=0, s=0), 
	    ;		   M1 (r=1, s=0), M2 (r=0, s=1) definissant la maille 
	    ;		   interferometrique MI.
	    ;		 Un pavage de npi*npi  MI  recouvre le champ de l'image
	    ;		   interferometrique calculee par fft en EW et NS. Ce
	    ;		   champ peut etre double du champ interferometrique
	    ;		   stricto sensu si ie0_ew = ie0_ns = 0.
	    ;		 Rappel : npi est fige egal a 128 dans DPATCHFITS 
	    ;		          depuis jul 01.
	    ;	      domega, angle solide sous-tendu par la maille (sterad).


;     Calcul de la grille des coordonnees interferometriques correspondant a
	    ; une grille heliographique carree et calcul du drapeau de limita-
	    ; tion du champ "champ" dans le calcul de l'image.
        n_period = 1
	RH_GRILLE,  npi,  np,  maille,  n_period,  larg,   freq, $ ; entree. 
		    rg,   sg,  champ				   ; sortie.
	    ; larg est la largeur totale (Rs) du champ couvert par la grille 
	    ;   heliographique a mailles carrees (dans laquelle le soleil est 
	    ;   rond). A ne pas confondre avec la largeur du champ interfero-
	    ;   metrique.
	    ; rg et sg sont fltarr(np, np) contenant les coord interferome-
	    ;   triques non entieres correspondant aux noeuds de la grille 
	    ;   des coordonnees heliographiques `a maille carree sur laquelle 
	    ;   on calcule l'image du soleil.
	    ; Rappel: 
	    ;   Les indices interferometriques r et s varient sur [0, npi] sur
	    ;     un champ interferometrique. Si une image periodisee ils 
	    ;     varient sur [0,  n_period*npi].   
	    ;   rg et sg peuvent varier sur un domaine plus etroit ou plus 
	    ;      large selon que le champ "larg" choisi par l'utilisateur
	    ;	   est plus petit ou plus grand que le champ interferometrique
	    ;	   eventuellement periodise.
	    ; champ est un intarr(np, np), comme rg et sg, et qui vaut zero la
	    ;     ou rg et sg correspondent a des points exterieurs au champ 
	    ;     interferometrique eventuellement periodise.
	    ;   Avant le 8 sept 99 "champ" valait aussi zero pour r < rmax du 
	    ;	  centre solaire (rmax defini dans RH_GRILLE). C'est une de-
	    ;	  louiserie abandonnee.

; CALCUL DE L'IMAGE HELIOGRAPHIQUE FINALE (soleil rond) par:
	; interpolation de l'image interferometrique,

	im_2d     = interpolate (image    ,  rg,  sg,  miss=0)

; NORMALISATION DE L'IMAGE HELIOGRAPHIQUE :
	; - pour une image en unites de flux, le flux (en sfu) sera la 
	;     somme des points de l'image.
        ; - pour une image en temperature de brillance l'image sera en Kelvins.
;    t_b = 1           ; unites de flux. Flux en sfu.
;    t_b = 2           ; unites temperarture de brillance. Flux en
;    Kelvins.
; si le keyword T_B est absent, unites de flux
        if n_elements(t_b) eq 0 then t_b=1
; appel a rh_norm_im seulement si unites temperature de brillance(janv 2006)
    if (t_b  eq  2) then begin
        RH_NORM_IM,  larg,  np,  domega,  freq,       $	; entree
	      anorm					; sortie
	; Rappel: - domega angle solide sous-tendu par la maille interfero,
	;	     calcule par RH_MAILLE_3.
	;	  - np et larg servent a calculer l'angle solide de la maille 
	;		heliographique.
	; Le commentaire justifiant le calcul de anorm est en fin de 
	;   RH_NORM_IM.
        im_2d     = anorm * im_2d			; image -------------
    endif
; FIN DE NORMALISATION
  RETURN, im_2d

END



