PRO RH_DPNEW ; Remarques diverses a caser mieux que ca : ; Rem du 11 dec 01 : le flux total, determine par la methode de la somme des ; bordures N et S nulles, et beaucoup plus sensible que le gain compact, ; obtenu par extrapolation, aux erreurs de gain complexe des antennes, ; et beaucoup plus aux modules qu'aux phases. ; Avec un Cygne simule et les gains "reguliers" de SIMUL_HARM_N : ; flux_total = 0.66 et flux_compact = 1.02 (au lieu de 1). ; Modifications : ; 05 nov 22 : . changement de la recalibration manuelle. les gains et phases ; apparents ne sont plus declares mais lus dans un fichier sur ; ~/corr_man/. ; 05 nov 25 : . modif du while de RH_DPATCHFITS_NRH pour pouvoir traiter une ; seule scrutation. Dans ce cas prendre t_integ < 0 sinon ; il se produit des divisions par zero. ; Lancement : ; inssw ; sswidl ; retall ; .compile ~/fasr/fasr_sub ; pour "ANNEAU" etc. ; .compile ~/rh_gene/rh_malc_im_2d rh_dpatchfits_nrh rh_dpnew ; rh_dpnew ; En cas de plantage pour manque de place : sous unix faire (DANS LA FENETRE ; OU ON LANCE IDL) : ; limit (return) ou limit datasize (return) ; ca affiche la valeur de plusieurs parametres (ou de datazise seul) ; faire alors : ; limit datasize 500000 (ou un nombre plus grand que 131000) ; ; 5 frequencies in general : 164.0MHz 236.6MHz 327.0MHz 410.5MHz 432.0MHz ; creates one file per frequency ; NS45 utilisee apres le 10 sept 98 ; NOMS DE FICHIERS ; voir en fin de fichier la liste des observations utilisees pour les ; mises au point diverses. i_meu_nan = 1 ; 1 meudon, 2 Nancay if (i_meu_nan eq 1) then begin ch_pref_0 = '/poub/mercier/data/' ch_pref_1 = '/data/extraits/mercier/' ch_pref_3 = '/poub0/mercier/data/' pref_4 = '/poub/extraits/mercier/' ; sur mesopl p_m_10sec = '/poub/mercier/data/master_05/10sec/' ; bigbug p_m_128sec = '/poub/mercier/data/master_05/128sec/' ; bigbug p_m_gen = '/poub/mercier/data/master_05/' ; bigbug endif if (i_meu_nan eq 2) then begin p_m_10sec = '/poub/mercier/data/master_05/10sec/' ; bigbug p_m_128sec = '/poub/mercier/data/master_05/128sec/' ; bigbug p_m_gen = '/poub/mercier/data/master_05/' ; bigbug endif ; DEBUT ESPACE ARCHIVES DES FICHIERS UTILISES (tous en commentaires) ; CYGNE ; Cygne du 7 jan 03, 6 freq, pour calibration avec AA, phases 21 oct 03 ; tout pointe, H2, H4, NS0 tournees, ; nomfich = ch_pref_3 + '2d040107.30' ; 1pt/sec 20:20 23:59 ; Cygne du 17 jan 03, 6 freq, pour calibration avec AA, phases ; tout pointe, H2, H4, NS0 tournees, integr'e a Nancay ; nomfich = ch_pref_1 + '2i040117.30' ; 1pt/min 16:40 23:30 ; SOLEIL ; CME 20 avril 98 (quadrant SW, vague allure de pinces de lucane) ; Etalonnage 6 avr 98. Controles 8 (etal 6) et 29 avr 98 (etal 2). ; nomfich=ch_pref_0 + '2i980420.02' ; integre 32 sec. ; l'image de 10:13:07 est bonne pour mise au point. ; l'image que fixe Monique est 10:13:23. ; evt complet : 10:05 a 10:25. Interessant : 10:08 - 10:16. ; t_deb = [10,13,20,00] ; deb CME 20 avr (h,mn,sec,ms) ; t_fin = [10,15,59,00] ; fin ----------------------- ; CME 15 avril 2001 (Monique et Dalmiro) 13:50:00 - 13:55 06 ; a 410 MHz belle image pour mise au point a 13:52:56 ; Etal 15 mars 01. Controles 12 et 16 avril 01 (2d010412.20 et ..) ; nomfich = ch_pref_0 + '2i010415.01' ; copie du juke ; t_deb = [13,52,50,00] ; deb (sauvegarde) ; t_fin = [14,00,00,00] ; fin ---------- ; Les fichiers de sortie ont meme heure de fin (14:00:00) et se ; distinguent par l'heure de debut : ; . 13:45:06 post-calibration du 12 avril, champ 6 Rs, 5 freq. ; . 13:45:36 ------------------- 16 avril, ----- 6 Rs. 5 freq. ; . 13:46:36 sans post-calibration, ----- 6 Rs, 5 freq ; . 13:46:06 post-calibration du 12 avril, ----- 8 Rs, 164, 236. ; . 13:47:06 sans post-calibration, ----- 8 Rs, 164, 236. ; Cas Trottet 30 aug 2002 ; refaire : 13:27:00 a 13:30:00, 5 freq (manip a 5 freq) ; 20 mars 03 : verifier le flux a 410 MHz 13:28:00. Il faut trouver ; ~1000 sfu. Il y a encore l'alias a 410. ; nomfich = '/poub/trottet/ev300802/2i020830.01ZA' ; fichier 13:25:00:18 a 13:29:59:69 . Utile de 13:27 a 13:30 . ; t_deb = [13,25,20,00] ; t_fin = [13,29,58,00] ; CME (?) du 2 juin 2002 (Monique) 10:13 10:20 a preciser 410 MHz ; Corrections des antennes instables dans CALIB_ESSAIS.TXT ; Sans correction 10:13 - 10:34. Avec correction 10:12 - 10:34. ; Aucun CME visible malgre l'autocalibration partielle. ; nomfich = ch_pref_0 + '2i020602.01' ; copie juke 10sec. ; Cas Prasad ; nomfich = ch_pref_0 + '2I970813.01' ; copie du juke 32 sec. ; phases du 23 jul 97. Recalibration 2D970804.20 (seul possible) ; maximum Prasat : 12:06:19.67, autres 11:58:51.68 12:07:55,67 ; fichier depatche avec Visibility to Images : ; /poub/mercier/data/nrh2_1640_h70_19970813_114915c06_i.fts ; Pave plein, origine (10, 0) ; Soleil avec antennes AA ; nomfich = '/data/extraits/bouteill/2i040116.01A'; 10s 13:16 13:44 ; nomfich = '/data/extraits/mercier/2q040120.01' ; 128 sec 11:13 13:35 ; phases du 17 jan 04. ; Expos'e Kerdraon au DASOP le 9 avril 04 : illustration des AA et de la ; synthese ; nomfich = ch_pref_0 + '2q040405.01' ; petit centre (pour monter alias). utiliser 410 MHz 11:52:55. ; nomfich = ch_pref_0 + '2q040406.01' ; images a 11:49:08. Calme dans l'ensemble, avec SC complexe ; 26 jun 04 (GMRT). on traite 11:43 - 11:45 a 236 MHz ; nomfich = '/data/extraits/mercier/2d040626.02D' ; ; GMRT (cas avec le) ; 27 aug 2002 GMRT: 333 MHz, integration 17 sec RH: num freq=2 (5 freq) ; temps avec le GMRT : 09:01:50-09:58:10 gap puis 11:01:22-11:28:42 ; nomfich = '/poub2/mercier/2d020827.01' ; 08:22 - 11:05 calib 25 jul 18:00 ; t_deb = [09, 00, 00, 00] & t_fin = [10, 00, 00, 00] ; heures de la 1ere et de la derniere scrutation brute GMRT a utiliser. ; La source W est a son max a 09:13:39 ; 26 jan 2003 . 236 MHz RH: num freq=2 (6 freq) dir0_rh = '/data0/mercier/data/rh/' ; nomfich = '/poub/mercier/data/2q030126.01' ; 128 sec ; nomfich = '/poub/mercier/data/2i030126.01' ; 10 sec ; nomfich = dir0_rh + '/2d030126.01A' ; 0.13 sec 10:30:01 10:59:58 ; 6 frequences, phases 20 dec 02 a 18:00 num_freq=2 ; t_deb = [10, 30, 55, 00] & t_fin = [10, 59, 55, 00] ; 26 juin 2004 (comment. dans "26_jun_2004.txt") 236 MHz num_freq=2 (6 freq) ; sur mesopl ; nomfich = dir0_rh + '2d040626.02B' ; 10:20 10:40 cal 18/5 19:50 ; nomfich = dir0_rh + '2d040626.02c' ; 10:58 11:17 cal 18/5 19:50 ; nomfich = dir0_rh + '2d040626.02D' ; 11:34 11:48:25 cal 18/5 19:50 ; t_deb = [11, 43, 49] & t_fin = [11, 48, 20] ; 14 aug 2004 GMRT 325 MHz recalib '23_aug_04_19:30' ; voir la recalibration a appliquer dans ~/gmrt/14_aug_2005.txt ; dir_ju = '/juke/10sec/INT0408A/' ; pour fichier 10 sec ci-dessous. ; nomfich = dir_ju + '2i040814.01' ; 08:25-15:24 phases 10/08/04 a 19:30 ; dir_rh = /poub/extraits/mercier ; nomfich = dir_rh + '/2d040814.01A' ; 09:23-10:50 calib 10 aug 04 19:50 ; nomfich = dir_rh + '/2d040814.01ZA' ; 10:50:07 - 12:12 ; t_deb = [10, 39, 08] & t_fin = [12, 12, 08] ; 30 mai 2005 : 236 MHz RH: num freq=2 (6 freq), phases du 12 mai 05 19:00 ; dir_30mai = '/poub/kerdraon/30-05-2005/' ; nomfich = dir_30mai + '2d050530.01' ; 08:14 - 11:05 ; nomfich = dir_30mai + '2d050530.01Z' ; 11:05 - 13:56 ; nomfich = dir_30mai + '2d050530.01ZZ' ; 13:56 - 14:14 ; nomfich = dir_30mai + '2d050530.50' ; Hydre 07:09 08:29 point'e, ; rotation EW et NS0 ; nomfich = dir_30mai + '2d050531.30' ; Cygne 16:30 23:30 pointe, non ; tourne, phases 12 mai 05 19:00 ; 30 aug 2005 : 325 MHz RH: num freq=3 (6 freq), phases du 15 aug 05 18:00 ; dir_30aug = '/poub/extraits/mercier/30-08-2005/' ; nomfich = dir_30aug + '2d050830.01Z' ; 10:49 - 13:37 ; nomfich = dir_30aug + '2d050830.01ZZ' ; 13:37 - ***** ; nomfich = dir_30aug + '2d050830.30' ; Cygne 15:59 23:59 pointe, non ; tourne, phases 15 aug 05 18:00 ; 14 nov 2005 (type II de White) ; nomfich = '/juke/10sec/INT0511A/2i051114.01' ; 08:20 - 15:05 ; t_deb = [12, 02, 09, 00] & t_fin = t_deb ; source la plus simple ; nomfich = pref_4 + '2d051114.01ZZA' ; 14:21:00 - 14:25:00 phi du 19/10/05 ; Rappel a Meudon : ; ch_pref_0 = '/poub/mercier/data/' ; mesopz ou mesopl ; ch_pref_1 = '/data/extraits/mercier/' ; ch_pref_3 = '/poub0/mercier/data/' ; pref_4 = '/poub/extraits/mercier/' ; sur mesopl ; Cas pour le master (suivi de positions d'orages) ; nomfich = p_m_128sec + '2q050729.01' ; 08:28 - 14:17 cal 7 jun 05 19:00 ; nomfich = p_m_128sec + '2q050730.01' ; 08:31 - 15:26 ------------------ ; nomfich = p_m_128sec + '2q050731.01' ; 08:28 - 15:25 ------------------ ; nomfich = p_m_128sec + '2q050801.01' ; 08:39 - 15:24 ------------------ ; nomfich = p_m_128sec + '2q050803.01' ; 08:39 - 15:24 -- ; nomfich = p_m_128sec + '2q050804.01' ; 08:28 - 14:11 -- ; nomfich = p_m_128sec + '2q050805.01' ; 08:28 - 15:25 -- ; nomfich = p_m_128sec + '2q050806.01' ; 08:28 - 15:25 -- ; nomfich = p_m_128sec + '2q050819.01' ; 08:25 - 15:22 cal 15 aug 18:00 ; nomfich = p_m_128sec + '2q050820.01' ; 09:45 - 15:22 cal 15 aug 18:00 ; nomfich = p_m_128sec + '2q050821.02' ; 13:00 - 15:22 ---------------- ; nomfich = p_m_128sec + '2q050823.01' ; 08:24 - 15_20 ---------------- ; Fin des cas pour le master ; FIN ESPACE ARCHIVE DES FICHIERS UTILISES ; DEBUT ESPACE DE TRAVAIL DES FICHIERS UTILISES ; dir0_rh = '/data0/mercier/data/rh/' ; mesopz dir0_rh = '/poub/mercier/data/rhgm/rh/' ; sur mesopl ; nomfich = ch_pref_0 + '2I970813.01' ; copie du juke 32 sec. ; nomfich = '/poub2/mercier/2d020827.01' ; 08:22-11:05 calib 25 jul 18:00 ; nomfich = dir0_rh + '/2d030126.01A' ; 0.13 sec 10:30:01 10:59:58 ; 6 frequences, phases 20 dec 02 a 18:00 num_freq=2 ; nomfich = ch_pref_3 + '2d040107.30' ; Cygne 1pt/sec 20:20 23:59 ; nomfich = ch_pref_1 + '2i040117.30' ; 1pt/min 16:40 23:30 ; nomfich = '/data/extraits/bouteill/2i040116.01A'; 10s. 13:16 13:44 ; nomfich = '/data/extraits/mercier/2q040120.01' ; 128 sec, 11:13 13:35 ; nomfich = ch_pref_0 + '2q040405.01' ; 410 MHz 11:52:55. ; nomfich = ch_pref_0 + '2q040406.01' ; images toutes frq 11:49:08. ; Provisoire : ; 26 juin 2004 ; nomfich = '/data/extraits/mercier/2d040626.02D' ; sur mesopz. ; traiter 11:43 - 11:45 ; nomfich = dir0_rh + '2d040626.02D' ; 11:34 11:48:25 cal 18/5 19:50 ; sur mesopl. ; t_deb = [11, 44, 12, 00] & t_fin = [11, 48, 20, 00] ; ; nomfich = '/juke/10sec/INT0406A/2i040626.02' ; 10 sec, 09:26-11:35 ; plantage avec ce fichier. ; t_deb = [10, 46, 50, 00] & t_fin = t_deb + [0, 1, 11, 0] ; sursaut ; t_deb = [09, 30, 50, 00] & t_fin = t_deb + [0, 1, 11, 0] ; essai ; 27 juin 2004 pour verif de la normalisation des brillances ; Fichiers juke 10 sec ; dir_juke_10 = '/juke/10sec/INT0406A/' ; nomfich = dir_juke_10 + '2i040627.01' ; 10 sec 08:24-15:23 ; Fichiers juke 128 sec ; dir_juke_128 = '/juke/10sec/INT0406A/' ; dir_juke = '/juke/128sec/2Q2004_2/' ; nomfich = dir_juke + '2q040627.01' ; 08:24:26 - 15:22:12 ; t_deb = [08, 25] & t_fin = [15, 20] ; totalite ; t_deb = [13, 00] & t_fin = [14, 00] ; essai moitie E plus intense ; Fichiers integres a partir des fichiers juke 10 sec nomfich = '/poub/mercier/data/rh/synthese/2i_60sec_040627.01' ; 08:24-15:23 ; nomfich = '/poub/mercier/data/rh/synthese/2i_30sec_040627.01' ; 08:24-15:23 ; nomfich = '/poub/mercier/data/rh/synthese/2i_20sec_040627.01' ; 08:24-15:23 ; t_deb = [08, 24] & t_fin = [15, 22] ; totalite t_deb = [12, 00, 00, 00] & t_fin = [12, 10, 00, 00] ; essai ; t_deb = [08, 50, 00, 00] & t_fin = [12, 10, 00, 00] ; essai ; pref_9 = '/poub/mercier/sources/' ; sur mesopl ; nomfich = pref_9 + '2i040614.30' ; 17:02 23:29 pointe, rot. H2 H4 NS0 ; t_deb = [23, 05, 00, 00] & t_fin = [23, 28, 00, 00] ; essai ; Fin provisoire ; 14 aug 2004 (GMRT 325 MHz) ; dir_ju = '/juke/10sec/INT0408A/' ; pour fichier 10 sec. GMRT 325 MHz ; nomfich = dir_ju + '2i040814.01' ; 08:25-15:24 phases 10/08/04 a 19:30 ; 13:01:30 et integrer 40 sec pour test (source pas trop complexe). ; 30 mai 2005 ; dir_30mai = '/poub/kerdraon/30-05-2005/' ; 236 MHz num freq=2 (6 freq) ; nomfich = dir_30mai + '2d050530.01' ; 08:14 - 11:05 ; nomfich = dir_30mai + '2d050530.01Z' ; 11:05 - 13:56 ; dir_30aug = '/poub/extraits/mercier/30-08-2005/' ; nomfich = dir_30aug + '2d050830.01Z' ; 10:49 - 13:37 ; t_deb = [11, 01, 30, 00] & t_fin = [13, 30, 10, 00] ; ; t_deb = [10, 34, 52, 00] & t_fin = [10, 35, 40, 00] ; max ; t_deb = [10, 02, 49, 00] & t_fin = [10, 03, 05, 00] ; t_deb = [09, 10, 00, 50] & t_fin = [11, 00, 00, 00] ; calme ; Type II White et cygne de recalibration ; nomfich = pref_4 + '2i051114.30' ; 10sec 19:44-23:29 rot NS0 H2 H4 pointe ; t_deb = [20, 45, 00, 00] & t_fin = [21, 15, 00, 00] ; nomfich = '/juke/10sec/INT0511A/2i051114.01' ; 08:20 - 15:05 ; t_deb = [12, 02, 09, 00] & t_fin = t_deb ; source la plus simple ; nomfich = pref_4 + '2d051114.01ZZA' ; 14:21:00 - 14:25:00 phi du 19/10/05 ; t_deb = [14, 21, 49, 50] & t_fin = [14, 24, 30, 00] ; totalite II ; t_deb = [14, 22, 24, 00] & t_fin = [14, 23, 30, 00] ; max 327 ; t_deb = [14, 22, 42, 00] & t_fin = [14, 23, 30, 00] ; max 410 ; Evt Monique 24 sept 01 ; 5 freq, pas de AA. phases du 2 sept 01 18:00 ; non recalibrable (il manque les NS impaires de 9 a 21 sur le cygne du ; du 18 sept 2001 ; nomfich = '/juke/10sec/INT0109C/2i010924.01' ; 08:13-15:12 ; t_deb = [10, 03, 00, 00] & t_fin = [10, 40, 00, 00] ; totalite II ; Cas pour le master (suivi de positions d'orages) ; nomfich = p_m_128sec + '2q050729.01' ; 08:28 - 14:17 cal 7 jun 05 19:00 ; nomfich = p_m_128sec + '2q050730.01' ; 08:31 - 15:26 ------------------ ; nomfich = p_m_128sec + '2q050731.01' ; 08:28 - 15:25 ------------------ ; nomfich = p_m_128sec + '2q050801.01' ; 08:39 - 15:24 ------------------ ; nomfich = p_m_128sec + '2q050803.01' ; 08:39 - 15:24 -- ; nomfich = p_m_128sec + '2q050804.01' ; 08:28 - 14:11 -- ; nomfich = p_m_128sec + '2q050805.01' ; 08:28 - 15:25 -- ; nomfich = p_m_128sec + '2q050806.01' ; 08:28 - 15:25 -- ; nomfich = p_m_128sec + '2q050819.01' ; 08:25 - 15:22 cal 15 aug 18:00 ; nomfich = p_m_128sec + '2q050820.01' ; 09:45 - 15:22 cal 15 aug 18:00 ; nomfich = p_m_128sec + '2q050821.02' ; 13:00 - 15:22 ---------------- ; nomfich = p_m_128sec + '2q050823.01' ; 08:24 - 15_20 ---------------- ; t_deb = [08, 40, 00, 00] & t_fin = [15, 20, 00, 00] ; totalite II ; Fin des cas pour le master ; FIN ESPACE DE TRAVAIL DES FICHIERS UTILISES ; INTEGRATION AVANT TRAITEMENT IMAGE ; t_integ = 1.0 ; temps d'integration (sec) a appliquer aux donnees RH. t_integ = -1.0 ; temps d'integration (sec) a appliquer aux donnees RH. ; Ignor'e dans RH_DPATCHFITS_NRH pour des donnees ; comprimees et/ou si on selectionne plusieurs fre- ; quences. ; Valeur negative pour ne pas integrer. ; Controles de securite dans RH_DPATCHFITS_NRH, car ca ; pourrait planter. ; CHOIX DES FREQUENCES ET POLARISATION ; 164 151 236 327 410 435 MHz sel_freq = ['N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N'] num_freq = [3] ; - on peut mettre plusieurs elements, sauf si on integre avec t_integ. ; - il est strictement equivalent de faire un passage multifrequence ; ou plusieurs passages monofrequence (les fichiers de sortie sont ; des fichiers fits monofrequence). ; - plusieurs passages a une seule frequence ont l'avantage de pouvoir ; integrer avec t_integ sel_freq(num_freq) = 'Y' ; N no, Y yes. Let dimension 10 at the array. i_polar = 0 ; 0 Stokes I, 1 Stokes I and V, 2 Stokes V. ; RECALIBRATION A POSTERIORI i_source_cal = 1 ; Calibrateur : Soleil 0, Cygne 1, Vierge 2, Hydre 3 ; Mis a 1 d'office si i_recalib = 0 . h_cal = [18, 00] ; Indifferent pour les observations apres 1 nov 2003 ; (date d'introduction des antennes AA), avec heure ; de calibration dans entete de fichier. ; Sert a CORR_POS_ANT. ; Recalibration complete i_recalib = 1 ; 1 pour recalibrer (apres passage de RH_DP_CALIB). ; Corrige d'une deformation du lobe independante du ; temps et complete la correction de position des ; antennes. ; Il faut alors avoir prealablement recalibr'e. ; Rem : le recalibration fonctionne en multifrequence. dir_cor = '/home/mercier/coeff_corr/' ; repertoire des coeff_corr*. ch_cor = '14_jun_04_19:45' ; indiff. si i_recalib=0. Combin'e a dir_cor plus bas ; Archives des fichiers ~/coeff_corr/ch_cor ; '08_avr_98' ; pour CME du 20 avril 98 ; '12_avr_01' ; ---- CME du 15 avril 01 ; '16_avr_01' ; ---- CME du 15 avril 01 ; '04_aug_97_19:45' ; evt de Prasat du 13 aug 97 ; Pour ce Cygne E1 anormale et un peu E2. ; Avec RH_CALIB_CON sans recalib. il faut : ; g_E2 = [1.00, -25] g_E1 = [0.32, -40] ; '14_jun_04_19:45' ; '23_aug_04_19:30' ; '31_mai_05_19:45' ; '30_aug_05_19:45' ; '09_nov_05_20:00' ; '14_nov_05_20:00' '14_nov_05_21:00''15_nov_05_20:00' ; ; Fin des archives des fichiers ~/coeff_corr/ch_cor ; Recalibration manuelle ; Le fichier dir_cor_man/ch_cor_man contient: ; . 12 lignes commentaires ; . phi_ew_ns et phi_w_e en format 2i8 ; . 5 lignes commentaires ; . g_amp et g_phi sur 44 ou 48 lignes (nbre auquel on adapte i_AA) i_AA = 1 ; 1 si antennes AA figurent dans fichier ch_cor_man. ; Toujours bien preciser, car sert a initialisation i_corr_man = 1 ; recalibration manuelle du fichier "ch_cor_man" (se ; superpose a la recalibration). dir_cor_man = '/home/mercier/corr_man/' ch_cor_man = '27_jun_04_327_1' ; Archives des fichiers de correction manuelle : ; '26_jun_04_236_3' (_1 et _2 sont obsoletes) ; '27_jun_04_164_1' '27_jun_04_236_1' ; '14_aug_04_327_1' ; '30_mai_05_236_3' ne pas utiliser; se contenter de la recalib comple- ; te sur cygne du 31 mai + phi_ew_n =3, phi_w_e=-5 ; '14_nov_05_164_1' '14_nov_05_236_1' '14_nov_05_327_1' et 410 ; Ces fichiers contiennent les gains et phases apparents. ; CHOIX DU REPERTOIRE DE SORTIE POUR ECRIRE LES RESULTATS ; out_dir = '/disque4/mercier/bogod' ; output directory for fits files ; out_dir = '/poub/mercier/dpatch' ; CME 15 avr 01, 20 avr 98, 2 jun 01 ; cas Prasat 13 aug 97 ; soleil AA 20 jan 04 ; out_dir = '/data0/mercier/dpatch/' ; mesopz ; out_dir = '/poub/mercier/dpatch/rh/30mai05' ; mesopl. ; out_dir = '/poub/mercier/dpatch/rh/14nov05' ; mesopl. ; out_dir = '/poub/mercier/dpatch/rh/master' ; mesopl. ; out_dir = '/poub/mercier/pick/' ; mesopl. out_dir = '/poub/mercier/essais' ; mesopl a jeter seulement. ; out_dir = '/poub/mercier/dpatch_2' ; ; out_dir = getenv("DPATCH") ; CHOIX DES DONNEES (REELLES OU SIMULEES) i_simulation = 0 ; donnees : 0 reelles (usuel), 1 simulees (essais). ; pour des donnees simulees on prend dans DPATCHFITS : ; hmer = t_deb = 11:50, dec = 20 deg ; DRAPEAUX D'UTILISATION DE SERIES D'HARMONIQUES AVEC LES ANTENNES D'EXTENSION ; Usuel : tous les drapeaux a 1 et gap_ns0=[0, 0] (pas de suppress.) ; Il peut etre parfois utile de supprimer E2 et peut-etre NS45 si elles ; sont mal phasees. ; Rem : avant le remplissage du pave la suppression de E0 renforcait ; les alias a l'egal de l'image centrale et rendait leur reduction ; par clean impossible. ie0_ew = 1 ; E0 avec E2, E1, H1 a H16 (1 avec, 0 sans). Indispen- ; sable pour distinguer une source de son alias et ; que le clean ne s'y trompe pas. ie0_ns = 1 ; E0 avec les NS (distrib asym dans plan (u,v)) ie1_ew = 1 ; E1 avec H1 a H16. ie2_ew = 1 ; E2 avec E1, H1 a H16. La calibration de E2 etant pro- ; blematique, ne pas l'utiliser si ca peut arranger. ie2_ns = 1 ; E2 avec les NS (distrib asym dans plan (u,v)). Idem. ins45_ew = 1 ; NS45 avec E1, H1 a H16. ins45_NS = 1 ; NS45 avec les NS. i_redond = 0 ; 0 pour suppression des doublures mediocres (bases ; courtes a partir de NS0). Usuel 0. gap_ns0 = [0, 0] ; limites du gap d'ant [EW, NS], comptees a partir de ; NS0, non couplees a NS0 (parasitee). Usuel [0, 0]. ; DRAPEAUX DE SUPPRESSION D'ANTENNES A PROBLEMES ; Usuel : tous les drapeaux a 1, sauf depointage, parasites, ou gain ; aberrant. sel_ant = [ 0, 1, 1, $ ; E2 E1 E0 ; ; 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,$ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,$ ; H1 H2 H3 H4 H6 H6 H7 NS0_ew H9 H10 H11 H12 H13 H14 H15 H16 ; ; 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, $ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, $ ; NS0 NS1 NS2 NS3 NS4 NS5 NS6 NS7 NS8 NS9 NS10 NS11 NS12 NS13 NS14 ; ; 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, $ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, $ ; NS15 NS16 NS17 NS18 NS19 NS20 NS21 NS22 NS23 NS45 0, 0, 0, 0 ] ; 1, 1, 1, 1 ] ; AA1 AA2 AA3 AA4 ; Ces suppressions se cumulent avec les precedentes (ie0_ew, etc.). ; CARACTERISATION DU CHAMP DE CALCUL D'IMAGE ET UNITES DE BRILLANCE ; Image interferometrique n_period = 1.0 ; Nbre de periodes (EW ET NS) sur lesquelles on calcule ; l'image interferometrique. Usuel 1 (1.5 pour des ; arches de CMEs). ; Le nbre de points sur une periode de l'image inter- ; ferometrique est toujours 128. ; Image heliographique mode_interpol = 3 ; Mode d'interpolation pour passer de l'image interfe- ; rometrique a l'image heliographique : ; 1 interpolation bi-lineaire ( 5 msec, mediocre) ; 2 ------------- cubic spline ( 60 ----, meilleur) ; 3 ------------- fft (150 ----, parfait) ; Rem : l'interpolation bilineaire suffit sauf s'il ; existe des sources etroites (a peine plus larges ; que le lobe theorique) sur le soleil. ; Ren : les temps de calcul sont valables sur mesopz. np = 128 ; Number of pixels, in EW and NS in final heliographic ; images (128 or 256) . ; For a correct sampling of heliographic images obtai- ; ned with antennsa E0 and E2, np should not be less ; than 128, and larger if "larg" is larger than the ; width of the interferometric field. champ_helio = 4.0 ; Largeur (Rs) du champ heliographique souhaite, cou- ; vert par la grille a mailles carrees de np*np pts : ; - 4 suffit usuellement (sauf cas de type IV mouvant ; ou de CME). ; La meme valeur etant adoptee pour toutes les ; frequences, le champ heliographique couvre ; alors environ la moitie du champ interferome- ; trique a 164 MHz (qui est en general inutile- ; ment grand), tout le champ a 327 MHz, et plus ; du champ interferometrique a 410 et 432 MHz. ; - 8 (qui couvre la totalite du champ interferome- ; trique a 164 Mhz, et plus aux frequences plus ; elevees) permet de voir les alias pour f<327, ; alias qui ne sont que peu "desaliases" par les ; harm de E0 (qui n'existent que sur l'axe EW). ; Rem : il n'est pas interdit de prendre ; champ_helio > periode d'image interferometrique ; mais il faudra alors choisir plus bas n_period > 1, ; faute de quoi l'image heliographique sera nulle ; sur les bords. rot_p = 1 ; correction angle p : 0 sans, 1 avec (mais le centre ; du disque est toujours au centre du champ). t_b = 2 ; unites image: 1 en sfu, 2 en Kelvins (il faut t_b=2 ; pour calculer le flux en sfu dans NRH. ; PARAMETRES DE CONTROLE i_test_arret = 1 ; 0 ou 1 pour afficher quel test d'arret a fonctionn'e ; et le nbre d'iterations (en general 150 a 300 OK). i_stop_image = 1 ; arret pour controle image par image a la fin de CALC_ ; IMAGE_HELIO, visualisant le limbe solaire et dom_c. ; 0 pas d'arret sur images. ; 1 images interfero seules. ; 2 ------ helio ------ (option usuelle). ; 3 ------ interfero + helio. ; gouverne aussi l'ecriture des fichiers mono-images. ; Chercher f_l et fac_dom dans RH_CALC_IMAGE_HELIO pour ; regler l'intensite du limbe helio et interfero. ; Les fichiers de sortie sont crees a la 1ere image. ; Re-ecrits avec le meme nom pour la 2eme image. ; RAPPEL : ON A LE CHOIX DU NUMERO DE FENETRE DE SORTIE ; n_win DANS RH_CALC_IMAGE_HELIO vers ligne 1271 i_ecrete = [0, 0, 0, 0] ; parfois commode... ; i_ecrete = [1, 1, 1, 1] ; drapeau d'ecretage pour images inter- ; fero sale et propre, images helio ; sale et propre (dans l'ordre). frac_ecr = [1.00, 1.00, 1.00, 1.00] ; fraction d'ecretage des memes images. dmul = 1.0 frac_ecr = dmul * frac_ecr ; parfois commode... tete_fich= '14_nov_05' ; debut des noms de fichiers pour les ; images interfero sales et propres, ; helio sales et propres, ecrasee a ; chaque nouvelle image. Ces fichiers ; sont donc ecrits "sous les pieds". ; ATTENTION: l'ecriture de ces fichiers ; est sautee dans RH_CALC_IMAGE_HELIO ; pour eviter des messages intempes- ; tifs. Y changer i_saut_ecr. ; Ces controles sont utiles pour ajuster dom_c et les parametres d'ite- ; ration a chaque cas particulier avant de traiter tout un fichier. ; tete_fich= '04_avr_04_AA_1_pave_1_' ; debut des noms de fichiers pour les ; REMPLISSAGE EVENTUEL DU PAVE CENTRAL DES HARMONIQUES PAR INTERPOLATION i_pave_plein = 0 ; interpolation dans la zone centrale des harmoniques ; (-15 a +15 en EW et -23 a +23 en NS): ; 0 sans, 1 interpolation cubic spline, 2 bilineaire ; (plus rapide mais moins bonne). ; Recommand'e si les sources sont plus proches du ; centre du champ (en EW) que leurs alias (en general ; le cas a 164 et 236 MHz). Sinon le proc'ed'e con- ; serve l'alias et supprime la source, sauf si on ; recentre. i_recentrage = 0 ; recentrage d'image avant interpolation de TF, ; 0 sans recentrage ; 1 avec ---------- sur son maximum d'image (usuel). ; 2 ----------------sur coord helio ci-dessous. Dans ; ce cas le decalage depend de l'heure (ne pas ; traiter plus de 1h puisque le decalage est fixe) ; Le recentrage est fait dans RH_MALC_IMAGE_2D. ; x_centrage = 9 ; absc helio (0.01 Rs) du point de recentrage. ; y_centrage = 0 ; ord -------------------------------------- x_centrage = 95 ; absc helio (0.01 Rs) du point de recentrage. y_centrage = 75 ; ord -------------------------------------- ; Ces valeurs de x_centrage et y_centrage ne sont ; utilisees que si i_recentrage=2. La conversion en ; canaux "interfero" est faite dans RH_DPATCHFITS_NRH ; au debut du "traitement de calcul d'image". ; Ci dessous des valeurs encore exprimees en canaux ; interfero, avant le 15 juin 2005. ; CME 2 jun 02 164 MHz : 9, -21 327 MHz : 21, -26 ; 410 MHz : 26, -38 ; CLEAN mode_clean = 2 ; mode du clean : (usuel 2 sans le residu) ; 0 pas de clean ; 1 pour clean normal sur champ entier. L'image pro- ; pre est la somme de l'image synthetique et du ; residu. ; Le resultat sur le SC est tres mauvais des qu'- ; il y a de l'aliasing (aussi avec mode_clean=2). ; 2 pour clean normal sur champ entier mais on n'a- ; joute pas le residu a l'image synthetique. ; Option utile quand la qualite de la calibration ; est mediocre : on ne rajoute pas a l'image les ; gros secondaires negatifs que le clean ne peut ; avaler si le critere d'arret sur le chgt de si- ; gne des composantes clean fonctionne (ce qui ; est le cas usuel). Il n'y a dans l'image finale ; que ce qui est visible malgre la mauvaise ca- ; libration. ; Les resultats ne sont a peine meilleurs (et ; avec un contraste plus faible) que ceux avec ; mode_clean=1 pour une SC complexe et un reseau ; mal calibr'e (gains +- 20%, phases +- 10 deg). ; => n'utiliser que pour des sources compactes. ; 3 pour nettoyer partout mais on evite que l'image ; finale soit ecrasee par un orage intense : on ; soustrait partout les composantes "sales" mais ; on ne restitue sous forme synthetique que cel- ; les qui sont exterieures a un domaine dom_c de- ; fini par x_dom, y_dom, dr_dom. ; 4 pour retirer le pic et les lobes secondaires d'un ; orage intense qui obscurcissent tout le reste ; de l'image, se contentant d'une image sale ; residuelle pour le reste : on soustrait les ; les composantes sales interieures a dom_c. ; 5 pour obtenir rapidement une image d'un orage in- ; tense interieur a dom_c, debarasse seulement de ; ses propres secondaires : on restreint la re- ; cherche des composantes a dom_c. Le reste n'est ; pas nettoy'e et ajout'e a l'image synthetique ; partielle. ; Rem (13 mars 02) : clean donne de tres mauvais resul- ; tats sur le soleil calme s'il est alias'e. ; Rem : reduction du temps de clean par suppression ; de calculs inutilement longs ("moment") pour ; un resultat strictement identique (17 oct 02). ; Le temps par iteration sur mesopz passe de ; 8.6 msec a 1.5 msec. En limitant a qques 10^2 ; iterations le temps de calcul est alors ~ 2 sec ; / image. ; Criteres d'arret de l'iteration ; Il y a 4 criteres d'arret concurrents : ; 1) le maximum de la valeur absolue de l'image residuelle passe ; sous un seuil choisi, ; 2) le flux de l'image residuelle passe sous un seuil choisi, ; 3) le max des images residuelles commence a croitre, ; 4) le signe des composantes clean trouvees change. ; ; Rem : le critere 2) ne peut etre operatoire que pour les grandes ; echelles, puisque ce sont les seules images qui ont une compo- ; sante continue => ne pas l'activer seul. ; Les 3 premiers criteres sont usuellement actifs. Le 4eme ne peut etre ; activ'e que si on est s^ur que l'image est partout du meme signe ; (aux secondaires pres). Ce n'est en general pas le cas pour une ; image en polarisation circulaire. Mais 4) peut etre utilise pour ; une image mal calibree avec des secondaires negatifs importants : ; on limite la recherche des composantes clean aux structures inten- ; ses, qui dominent en valeur absolue les secondaires negatifs les ; plus forts. ; Il est clair qu'ainsi on ignore des details significatifs, mais il ; y a l'avantage (si on decide de ne pas ajouter le residu a l'image ; synthetique), d'obtenir un image finale assez simple (tout ce qui ; est complique ou "pas beau" reste dans le residu qui est ignor'e). ; On obtient des positions acceptables pour les grosses structures ; mais les petites sont ignorees. ; Les essais (13 mar 02) montrent que l'activation du critere 4) : ; - conduit a un mauvais rendu du soleil calme quand il est tout ; seul (trop pointu, ou avec un trou irreel au centre). L'itera- ; tion est arretee trop tot. ; Il parait curieux que des composantes clean <0 puissent con- ; duire a un bon rendu du SC (vu le 13 mars 02). ; - ne change rien sur une source tres compacte. ; - affecte moins le profil du SC s'il y a un centre compact sur le ; soleil, et d'autant moins que le centre compact est plus inten- ; se (pas trop, pour que le profil du SC ne soit pas ecras'e), ! ; - diminue le contraste des details sur le SC (centres faibles) ; en arretant l'iteration trop tot. ; => n'activer 4) que pour remedier a une mauvaise calibration. ; Quand 4) n'est pas actif i_ech_max=3 donne un meilleur rendu du SC ; que i_ech_max=4. crit_arret = [1, 1, 1, 0, 0, 0, 0] ; drapeau des 4 criteres ci-dessus, ; avec place pour 3 futurs criteres. ; Definition domaine dom_c (indiff si mode_clean = 0, 1 ou 2) ; Ce domaine est circulaire sur l'image heliographique, ; centr'e en (x_dom, y_dom) et de rayon dr_dom (tous ; exprimes en RS). x_dom = -0.0 ; absc (RS, >0 ou <0) du centre du domaine. ; simul. et 2Q990402.01 CME 20 04 98 ; dom etroit 0.12 0.87 ; --- large 0.12 -0.20 y_dom = -0.0 ; ord (RS, >0 ou <0) du centre du domaine. ; simul. et 2Q990402.01 CME 20 04 98 ; dom etroit -0.30 0.37 ; --- large -0.30 0.35 dr_dom = 0.999 ; rayon (RS) du domaine ; simul. et 2Q990402.01 CME 20 04 98 ; dom etroit 0.50 0.90 ; --- large 1.70 (disque entier) 2.20 ; LA SUITE CONSISTE EN CHOIX "POINTUS". INDIFFERENTE SI MODE_CLEAN = 0. ; Filtrage d'echelle (indiff si mode_clean = 0) i_filtr_ech = 1 ; 0 sans filtrage d'echelle, et 4 criteres d'arret. ; 1 avec ------------------ , nbre de zones au choix et ; 4 criteres d'arret. i_ech_min = 0 ; usuel 0 (correspond aux grandes echelles). Doit etre ; nul si i_filtr_ech = 0 . a_in = 0.85 ; a_in et a_ex permettent de definir des transitions a_ex = 1.15 ; progressives des bords internes et externes des ; zones annulaires de filtrage. Usuel 0.85 et 1.15 . a_red_fil = 1.0 ; fact d'homothetie pour reduire l'extension des zones ; de filtrage d'echelle, usuel 1. ; 02 mai 24 : la couronne externe doit etre contrainte ; par le bord du pave sinon le clean y est mauvais. ; Les resultats sur la TF de l'image propre non fil- ; tree sont ainsi bien meilleurs, surtout avec une ; source compacte. L'effet de a_red_fil=0.7 etait ; simplement de reduire assez la couronne externe ; pour la contraindre. ; Modif faite dans FILTRE_ECHELLE). if (i_filtr_ech eq 0) then i_ech_max = 0 ; pas de filtrage d'echelle. if (i_filtr_ech eq 1) then i_ech_max = 3 ; zones de filtrage : 1 disque ; central et 3 anneaux. ; Iteration (indiff si mode_clean = 0) itermax = 4000; 400 ; nombre d'iterations maximum admis. Usuel 400. ; On ne gagne rien au dela de 3000 environ. gain_iter = 0.25 ; gain d'iteration (usuel 0.2 d'apres Thomson). ; rem : ca peut aller plus vite avec 0.3 mais ; il faut alors que jmax ne soit pas trop ; grand pour eviter de depasser l'arret ; comme un obus si jmax >>1. if (mode_clean eq 0) then jmax = 1 ; bidon (pour impression Anne). if (mode_clean eq 1) then jmax = 1 ; nbre d'iteration d'affilee. if (mode_clean eq 2) then jmax = 1 if (mode_clean ge 3) then jmax = 5 ; jmax = 1 ; en commentaires sauf pour essais. ; Choix du mode de calcul de niveau d'image pour arreter l'iteration CLEAN: ; (indiff si mode_clean = 0) ; i_seuil = 1 : max(im residuelle) < coeff * max(image initiale) ; ------ 2 : ------------------------------- rms--------------- i_seuil = [1, 1, 1, 1, 2] ; 1 pour max, 2 pour rms. ; les elements de i_seuil correspondent aux zones annulaires de filtra- ; ge d'echelle, commencant avec les grandes echelles (petit disque ; autour de l'origine). Usuel : [1, 1, 1, 1, indiff] . ; Apres le 15 mai 02 le choix du seuil dans RH_CLEAN se fait ainsi : ; . si on ne fait pas le filtrage d'echelle (ce qui n'est pas le cas ; usuel) , le seuil est le plus grand des deux seuils suivants : ; - une fraction (petite) du max de l'image ; - une fraction (plus grande) du fond moyen de l'image (sources ; compactes intenses exclues). ; . si on fait le filtrage d'echelle (cas usuel) les valeurs max et ; moyenne rms sont quasi proportionnelles et le seuil d'arret est ; defini comme une fraction du max d'image filtree d'echelle ; (fraction exprimee par coeff_seuil(1, *). ; Dans les 2 cas un facteur multiplicatif, automatiquement calcul'e ; et allant jusqu'a 3 quand il n'y a pas de sources compactes inten- ; ses, est appliqu'e au seuil defini par coeff_seuil. Il est en effet ; intuitif que la dynamique possible sur une image est plus grande ; quand l'image consiste surtout en un petit nombre de sources com- ; pactes que quand c'est un magma compliqu'e. ; On laisse le choix de i_seuil (desormais inutilise) pour preserver ; un retour en arriere. fac_crois_res = 1.2 ; facteur de croissance admis pour image residuelle (en ; principe l'image residuelle decroit, sinon ca deconne). ; Coefficient pour calculer le seuil d'arret "seuil_amp" a partir de l'image ; initiale filtree d'echelle (indiff si mode_clean = 0) ; seuil_amp est la valeur maximale de l'image residuelle filtree ; d'echelle pour un filtrage d'echelle donn'e. ; Ce coefficient varie avec i_ech. On admet que le seuil de nettoyage ; est plus bas quand la couverture (u,v) est meilleure. Les valeurs ; ci-dessus ont ete determinees par essais sur un soleil complexe ; simul'e le 12 juin 02. coeff_seuil = fltarr(3, 5) ; coeff_seuil(0, *) est inutilise. if ((mode_clean eq 1) or (mode_clean eq 2) or (mode_clean eq 3)) then begin ; Idem pour mode_clean = 1 2 ou 3 puisqu'on nettoie partout. ; Le coeff usuel en fin de ligne est 0.001 . Ajuster ce coeff pour ; que le nbre d'iterations soit voisin de 150 ou 200. ; Le 1er indice de coeff_seuil correspond a i_seuil. La 1ere ligne ; est le coeff s'appliquant au max, la 2eme a la moyenne rms. ; Rappel : depuis le 14 mai 02 on definit toujours le seuil comme ; une fracrion du max. => coeff_seuil(2, *) est inutilis'e, ; sauf dans le cas sans filtrage (i_ech_max eq=0). En effet c'est ; seulement dans ce cas que les valeurs max et rms d'iune image ; sont independantes. ; Coeff pour des resultats optimaux A REVOIR TOTALEMENT. ; coeff_seuil(1, *) = [ 4, 20, 30, 50, 100] * 0.0001 * 1.0 ; val max ; coeff_seuil(2, *) = [ 5, 120, 200, 200, 350] * 0.0010 * 1.0 ; val rms ; coeff_seuil(2, *) inutilise sauf si pas de filtrage d'echelle. ; Coeff pour des resultats rapides pour traitement de masse, suffisant la ; plupart du temps, sauf pour des CMEs par exemple. A mettre en ; commentaire pour garder les coeff precedents. ; coeff_seuil(1, *) = [ 6, 40, 80, 100, 100] * 0.0001 * 1.0 ; val max ; coeff_seuil(2, *) = [ 5, 120, 200, 200, 350] * 0.0010 * 1.0 ; val rms ; Coeff adoptes d'apres ceux proposes ci-dessus coeff_seuil(1, *) = [ 4, 40, 80, 100, 100] * 0.0001 * 1.0 ; val max coeff_seuil(2, *) = [ 5, 120, 200, 200, 350] * 0.0010 * 1.0 ; val rms ; Le 12 juin 02 : ; Essais sur simulation de soleil complexe domin'e par une source ; compacte 30 fois plus brillante. Le CME est env 1/100 de la ; source compacte. ; a) 3000 iterations : on ne gagne rien au dela ; b) 500 ---------- : le contraste du CME commence a diminuer. ; c) 250 ---------- : le CME est 2 fois moins visible qu'avec ; 3000 iterations, les autres details ; commencent a etre gomm'es. Ca devrait ; suffire en general. On a alors : ; coeff_seuil(1, *) = [ 4, 20, 30, 120, 200] * 0.0001 ; Ne pas hesiter, le cas echeant, a multiplier par un facteur ; 0.5 ou 0.3 pour les CMEs ou des details faibles. ; Essai sur la meme simulation de soleil calme complexe ou la ; source compacte centrale est 2 fois plus brillante que le SC: ; Le resultat est acceptable avec env 300 iterations, ce qui ; correspond a un seuil 3 fois plus eleve que ci-dessus, auto- ; matiquement introduit par le programme (qui sait reconnaitre ; la presence ou l'absence de sources compactes intenses. ; Rem : coeff_seuil(2, *) est utilise seulement quand on ne fait ; pas de filtrage d'echelle. Une valeur standard est : ; coeff_seuil(2, *) = [ 5, 120, 200, 200, 350] * 0.001 ; CONCLUSION PRATIQUE (19 juin 02) ; - usuellement on se contente de 200 - 300 iterations (coeff ; 0.0001 * 1.0 a la fin de coeff_seuil(1, *)). L'image finale ; est peu pu pas entachee de "petits crateres" (les "gouttes ; d'eau" dans la terminologie d'Anne). On peut alors prendre ; un filtrage final (20, 30), qui laisse une assez bonne ; resolution. ; - si on veut atteindre des details faibles et etendus (CMEs) ; il faut iterer davantage, jusqu'a 1500 iterations (coeff ; 0.0001 * 0.3 a la fin de coeff_seuil(1, *)). Il apparait ; alors de petits crateres (ou gouttes d'eau) et le seul ; moyen trouv'e au 19 juin 02 pour les eliminer est de faire ; un filtrage final moins etendu : (12, 18) ou un peu moins. ; Un CME est alors bien rendu mais toute l'image est plus ; floue. endif if (mode_clean eq 4) then begin coeff_seuil(1, *) = [ 5, 20, 20, 20, 20] * 0.0001 * 1.0 ; val max coeff_seuil(2, *) = [100, 100, 200, 200, 200] * 0.0010 * 1.0 ; val rms endif if (mode_clean eq 5) then begin coeff_seuil(1, *) = [ 5, 20, 20, 20, 20] * 0.0001 * 1.0 ; val max coeff_seuil(2, *) = [100, 100, 200, 200, 200] * 0.0010 * 1.0 ; val rms endif ; Changement en bloc (suppos'e pratique...) de coeff_seuil defini ci-dessus amul = 1.0 ; usuel 1 . < 1 pour essais (0.5) coeff_seuil = amul * coeff_seuil ; Fraction de flux d'image initiale sous lequel on arrete l'iteration (seule- ; ment pour les grandes echelles, quand le flux est non nul, puisque ; les autres images filtrees d'echelle ont un total nul) ; (indiff si mode_clean = 0) frac_flux = 0.002 ; usuel 0.01 pour un soleil complexe, mais ca limite ; trop l'iteration pour une source tres compacte. ; Prendre alors 0.002 ou desactiver le critere. ; ESPACE SAUVEGARDE J_M = 0 ; variable bidon pour eviter de mettre la suite en commentaires if (J_M eq 0) then goto, a1 a1: J_M_Delouis = 0 ; fin du saut de sauvegarde ; FIN ESPACE SAUVEGARDE ; Lissage final apres clean (indiff si mode_clean = 0) i_lissage = 3 ; lissage image propre (usuel 2) : ; 0 sans, ; 1 lissage avec les 6 pts voisins, ; 2 filtrage TF gaussien circulaire ; 3 ----------- gaussien elliptique au choix poids_c = 0.7 ; poids point central (sur total de 1) pour ; i_lissage=1. larg_2 = [16, 23] ; 1/2 largeurs mi puissance de la gaussienne ; dans l'espace TF (i_lissage=2 ou 3). ; Idee de base : conserver les dimensions et ; proportions du lobe sale, donc du pave, ; => [16, 23] ; D'apres simulation (3 juin 02) : ; [20, 30] pour soleil complexe, ; [40, 40] pour source tres compacte print, 'RH_DPNEW, parametres demandes (OK ?) :' print, ' nom de fichier : ', nomfich print, ' heure debut : ', t_deb print, ' heure fin : ', t_fin print, ' ' stop ; FIN DE PARAMETRES INDIFFERENTS SI MODE_CLEAN=0 ; LIBERATION DES NUMEROS DE CANAL for i=1, 127 do free_lun, i for i=1, 127 do close , i ; help, /files ; pour connaitre l'etat des fichiers. ; ESPACE DES PARAMETRES FIG'ES OU OBSOLETES ; Correction de position des antennes ; Les antennes presentent des ecarts avec les positions regulieres ; correspondant a des reseaus moyens. ; Si on n'en tient pas compte : ; . dans le programme d'observation Temps Reel, il en resulte un ; dephasage progressif des harmoniques, ; . dans la calibration, il en resulte un dephasage constant qui ; depends de l'heure de l'observation de calibration ; Si on en tient compte dans le Temps Reel et la calibration, il ; n'y a pas de correction a faire. ; La distinction entre ces deux cas est faite automatiquement d'apres ; la date de l'observation. ; ; On peut recalibrer une observation solaire en passant prealablement ; RH_DP_CALIB sur une observation de controle faite avec les memes ; tables de correction => fichiers du type coeff_corr_164_np. ; i_corr_pos_ant = 1 ; usuel 1 (0 pour gagner du temps). Indifferent pour ; les observations pour lesquelles le Temps Reel ; tient compte des irregularites de position des ; antennes (vers jul 2008 ??). ; Rem : tenir compte des positions exactes des anten- ; nes corrige une deformation du lobe variable ; avec le temps. Le lobe resultant est donc quasi- ; invariable mais il peut etre tres moche. i_con_cal = 0 ; 0 usuel, 1 pour corriger de la rotation et du depoin- ; tage des antennes dans le cas des sources de con- ; trole. ; Il faut alors icon=1 a la fin de RH_MALC_IM_2D. ; Utiliser plutot RH_CALIB_CON, destinee speciale- ; ment aux sources de controle. ; Rem : On pourrait laisser i_con_cal=1 dans tous ; les cas, avec le seul inconvenient du temps ; calcul ; CHOSES AUTOMATIQUES fich_cor = dir_cor + 'coeff_corr_' + ch_cor if (i_recalib eq 0) then i_source_cal = 1 if (i_AA eq 0) then nbre_ant = 44 if (i_AA eq 1) then nbre_ant = 48 ; Initialisation par defaut des gains manuels et de leurs drapeaux g_flag = replicate( 0, nbre_ant) g_amp = replicate(1.0, nbre_ant) & g_phi = replicate(0, nbre_ant) ; Lecture du fichier de gains apparents pour une recalibration "manuelle" if (i_corr_man eq 0) then begin phi_ew_ns = 0 & phi_w_e = 0 ; precaution endif if (i_corr_man ne 0) then begin ; lecture des gains et phases apparents ; Definition des ch_* comme des chaines de caracteres (sinon ca bloque ; a la lecture si le 1er caractere n'est pas numerique). ch_1 = '1' & ch_2 = '1' & ch_3 = '1' & ch_4 = '1' & ch_5 = '1' ch_6 = '1' & ch_7 = '1' & ch_8 = '1' & ch_9 = '1' & ch_10 = '1' ch_11 = '1' & ch_12 = '1' & ch_14 = '1' & ch_15 = '1' & ch_16 = '1' ch_17 = '1' & ch_18 = '1' fich_cor_man = dir_cor_man + ch_cor_man openr, unit, fich_cor_man, /get_lun ; Saut des lignes de commentaire readf, unit, ch_1 & readf, unit, ch_2 & readf, unit, ch_3 readf, unit, ch_4 & readf, unit, ch_5 & readf, unit, ch_6 readf, unit, ch_7 & readf, unit, ch_8 & readf, unit, ch_9 readf, unit, ch_10 & readf, unit, ch_11 & readf, unit, ch_12 ; Lecture de phi_ew_n et phi_w_e readf, unit, format="(2i8)", phi_ew_ns, phi_w_e ; Saut ligne vide readf, unit, ch_14 & readf, unit, ch_15 & readf, unit, ch_16 readf, unit, ch_17 & readf, unit, ch_18 ch_format = "(i3, f8.2, i8)" for i = 0, nbre_ant - 1 do begin readf, unit, format=ch_format, flag_i, amp_i, phi_i ; refuse de remplir directement amp(i) et phi(i). g_flag (i) = flag_i & g_amp(i) = amp_i & g_phi (i) = phi_i endfor close, unit free_lun, unit endif ; fin de lecture des gains "manuels". ; FIN DE CHOSES AUTOMATIQUES ; APPEL DES PROCEDURES DE TRAITEMENT version = 'dpnew2.0' ; Mise en structure des parametres de calcul PUT_STR_DP, $ version, i_simulation, $ ; entree ; Temps d'integration prealable t_integ, $ ; ------ ; Caracterisation de l'image n_period, mode_interpol, rot_p, np, champ_helio, t_b, $ ; ------ ; Suppression (eventuelle) des harmoniques de certaines antennes ie0_ew, ie0_ns, ie1_ew, ie2_ew, ie2_ns, $ ; ------ ins45_ew, ins45_ns, i_redond, gap_ns0, sel_ant, $ ; ------ ; Cas particulier des sources de controle de calibration i_con_cal, $ ; ------ ; Correction de position d'antennes et recalibration i_corr_pos_ant, i_recalib, i_source_cal, h_cal, fich_cor, $ ; ------ phi_ew_ns, phi_w_e, i_corr_man, g_flag, g_amp, g_phi, $ ; ------ ; Complement du pave central (harm multiples impairs de 50m) i_pave_plein, i_recentrage, x_centrage, y_centrage, $ ; ------ ; Clean mode_clean, x_dom, y_dom, dr_dom, $ ; ------ i_ech_min, i_ech_max , a_in, a_ex, $ ; ------ a_red_fil, itermax, gain_iter, jmax, crit_arret, $ ; ------ i_seuil, i_test_arret, i_stop_image, i_ecrete, frac_ecr, $ ; ------ tete_fich, $ ; ------ fac_crois_res, coeff_seuil, frac_flux, $ ; ------ i_lissage, poids_c, larg_2, $ ; ------ str_dp RH_DPATCHFITS_NRH, $ ; entree. nomfich, sel_freq, $ i_polar, t_deb, t_fin, $ out_dir, $ str_dp, $ ; sortie out_file ; print, 'Ouf, quel boulot ! Le travail a ete fait dans des boites ' + $ ; 'd''acces interdit.' end ; fin de RH_DPNEW ;______________________________________________________________________________ ; Partie speciale Mercier (fichiers pour Bogod) ; nomfich='/cdrom/2i990519.01a' ; t_deb = [08,36,00,00] ; t_fin = [08,38,00,00] ; t_deb = [08,42,40,00] ; t_fin = [08,46,40,00] ; t_deb = [08,51,00,00] ; t_fin = [08,55,00,00] ; t_deb = [08,59,40,00] ; t_fin = [09,03,40,00] ; t_deb = [09,08,00,00] ; t_fin = [09,12,00,00] ; t_deb = [09,16,30,00] ; t_fin = [09,20,30,00] ; t_deb = [09,25,00,00] ; t_fin = [09,29,00,00] ; t_deb = [09,33,30,00] ; t_fin = [09,37,30,00] ; t_deb = [09,42,00,00] ; t_fin = [09,46,00,00] ; t_deb = [09,50,30,00] ; t_fin = [09,54,30,00] ; t_deb = [09,59,00,00] ; t_fin = [10,03,00,00] ; .size 60000 20000 ; avant compilation pour avoir une "program code area" et une "symbol area" ; suffisantes. ;______________________________________________________________________________ ; Parametres necessaires pour une calibration ; nomfich = '/juke/SOURCES2_DE_CONTROLE/2d981117.20' ; bien 432 mais manque ; NS11. ; t_deb = [20,10,00,00] ; start time (h,mn,sec,ms) ; t_fin = [20,12,00,00] ; stop time ;_____________________________________________________________________________ ; Vieilleries anterieures a RH_DP_CALIB (fin 2002). On regroupe ici tout ce qui ; a un rapport avec la calibration. ; OBSERVATIONS SANS NS45 ; FIN DES NOMS DE FICHIERS ET DES HEURES DEBUT ET FIN ; OBSERVATIONS SANS NS45 ; Cygne ; nomfich = '/disque4/nancay/2d990518.50' ; decale ; nomfich = '/disque4/nancay/2d990520.20' ; E2 H2 H6 sur charge. ; t_deb = [17,05,00,00] ; start time (h,mn,sec,ms) ; t_fin = [17,15,00,00] ; stop time ; nomfich = '/disque5/mercier/cleanself/2d980716.20' ; t_deb = [19,59,00,00] ; start time (h,mn,sec,ms) ; t_fin = [24,15,00,00] ; stop time ; Soleil ; nomfich = '/opserv/dasop/issartel/1q2q/1998/1998_2/2q980725.01' ; ; nomfich = '/opserv/dasop/issartel/1q2q/1997/1997_3/2q971023.01'; sol calme ; t_deb = [11,50,00,00] ; start time (h,mn,sec,ms) ; t_fin = [15,30,00,00] ; stop time ; nomfich = '/opserv/dasop/issartel/1q2q/1998/1998_1/2q980420.02' ; 164 ; soleil calme avec arc (CME). ; t_deb = [11,54,00,00] ; start time (h,mn,sec,ms) ; t_fin = [12,30,00,00] ; stop time ; CME 20 avril 98 (quadrant SW, vague allure de pinces de lucane) ; sources de controle les 8 et 29 avr 98. ; Juke box ; nomfich='/juke/32sec/2INT9804/2I980420.02' ; nomfich='/juke/128sec/2Q1998_1/1998_1/2Q980420.02' ; Doublet d'une observation avec NS45, de proximite commode pour essais;. ; nomfich='/poub/mercier/essais/2Q990402.01' ; copie juke 128 sec. ; Copies Juke box ; nomfich='/poub/mercier/essais/2Q980420.02' ; 128 sec ; nomfich='/poub/mercier/essais/2I980420.02' ; 32 sec ; nomfich='/disque6/pick/20april98/merciersoft/2i980420.02' ; 32 sec ; l'image de 10:13:07 est bonne pour mise au point. ; l'image que fixe Monique est 10:13:23. ; evt complet : 10:05 a 10:25. Interessant : 10:08 - 10:16. ; t_deb = [10,08,00,00] ; deb CME 20 avr (h,mn,sec,ms) ; t_fin = [10,15,59,00] ; fin ----------------------- ; OBSERVATIONS AVEC NS45 ; Cygne ; sources de controle ancien systeme : ; . antennes H depointees non tournees, ; . NS0 tounee, ; . tout ca (incorrectement) corrige dans initialisation observation ; nomfich = ch_pref_0 + '2d990605.20' ; 5 jun 99 ; nomfich = ch_pref_0 + '2d000621.20' ; 21 jun 00 ; nomfich = ch_pref_0 + '2d010503.20' ; 3 mai 01 ; nomfich = ch_pref_0 + '2d010615.20' ; 5 jun 01 parasiteNS8 ; nomfich = ch_pref_0 + '2d010623.20' ; 23 jun 01 ; nomfich = ch_pref_0 + '2d010712.20' ; 12 jul 01 ; nomfich = '/disque6/extraits/2d990520.20' ; ; mauvaise observation: H3 et H7 manquent. Certaines NS trop fortes. ; nomfich = '/juke/sources/source98/2d980910.20' ; pas mal a 432 ; nomfich = '/juke/sources/source98/2d980924.20' ; pas mal a 432 ; nomfich = '/juke/sources/source98/2d981001.20' ; ; nomfich = '/juke/sources/source98/2d981008.20' ; pb gains ; nomfich = '/juke/sources/source98/2d981117.20' ; bien 432 mais manque ; NS11. ; nomfich = ch_pref_0 + '2d981117.20' ; idem si panne juke ; ; Special essai de calibration directe (fin sept 02) ; Sources de controle ancien systeme ; nomfich = ch_pref_0 + '2d001230.20' ; Cygne 30 dec 00 ; Antennes H pointees et non tournees, NS0 non tournee : ; nomfich = '/data/extraits/mercier/2d020918.20' ; Cygne 18 sept 02 ; nomfich = '/data/extraits/mercier/2d020926.20' ; Cygne 26 sept 02 ; etalonnage du 5 sep pour les 18 et 26 sept 02. ; Antennes H pointees, H2, H4 tournees, NS0 tournee, maxion et micropoin- ; tage decouples (rotew = rotns = ah_dep = 0 dans en-tete) : ; nomfich = '/data/extraits/mercier/2d021008.20' ; Cygne 8 oct 02 ; t_deb = [20,00,00,00] ; start time (h,mn,sec,ms) ; t_fin = [20,50,00,00] ; stop time ; OBSERVATIONS AVEC NS45 ; Soleil ; 99 avr 2 ; nomfich='/juke/128sec/2Q1999_1/1999_1/2Q990402.01' ; soleil calme ; nomfich= '/poub/mercier/essais/2Q990402.01' ; copie juke-box soleil ; calme. ; t_deb = [11,10,00,00] ; deb ; t_fin = [11,20,00,00] ; fin ; 99 avr 4 a 27. sources de controle mar 26, avr 20, mai 1 ; nomfich='/juke/128sec/2Q1999_1/1999_1/2Q990404.01' ; centre assez etroit ; nomfich='/juke/128sec/2Q1999_1/1999_1/2Q990406.01' ; centre orage large ; nomfich='/juke/128sec/2Q1999_1/1999_1/2Q990410.01' ; calme + petit centre ; nomfich='/juke/128sec/2Q1999_1/1999_1/2Q990418.02' ; calme + 2 petits ; centres. ; nomfich='/juke/128sec/2Q1999_1/1999_1/2Q990419.02' ; 164 centre etroit et ; decale ; 236 idem mais Sc visi ; ble ; 327 centre env 3 Sol ; calme ; 432 calme ; nomfich='/juke/128sec/2Q1999_1/1999_1/2Q990421.02' ; 164 etroit et tres ; t_deb = [11,10,00,00] ; intense ; t_fin = [11,20,00,00] ; 236 Sc un peu visible ; sur TF ; > =327 Sc tres visi- ; ble sur TF ; nomfich='/juke/128sec/2Q1999_1/1999_1/2Q990422.02' ; 164 Sc peu visible ; sur TF. ; 236 Sc un peu visible ; sur TF ; 327 432 Sc tres visi- ; ble sur TF ; nomfich='/juke/128sec/2Q1999_1/1999_1/2Q990427.02' ; 164 calme complexe ; 236 centre aliase, ; 10 fois Sc ; 327 idem, 432 idem ; double. ; 99 jun 5 sources de controle mai 27, jun 5, 9, 11 ; nomfich='/juke/128sec/2Q1999_1/1999_1/2Q990605.02' ; 164 centre large deca ; le 10:50 ; 236 complexe env 10 ; Sc ; 327 multiple ; t_deb = [11,10,00,00] ; deb ; t_fin = [11,20,00,00] ; fin ; Eruption de filament 27 mai 02 (Christophe) ; nomfich = '/data/nancay/2q020527.01' ; copie du juke ; t_deb = [10,00,00,00] ; deb (sauvegarde) ; t_fin = [14,51,00,00] ; fin ---------- ; Cas signal'es a comportement pathologique ; 1) ca ne cleanerait pas d'apres K controles 02 jan xxx ; nomfich = '/juke/10sec/INT0201A/2i020101.01' ; nomfich = ch_pref_0 + '2i020101.01' ; copie du juke. ; t_deb = [08, 30, 00, 00] ; t_fin = [14, 09, 30, 00] ; t_deb = [09, 08, 30, 00] ; deb source double. ; t_fin = [09, 09, 30, 00] ; fin source double. ; ; 2) flux negatif d'apres KLK controles 98 avr 29 , mai 7 ; nomfich = '/juke/32sec/int9805/2i980502.01' ; nomfich = ch_pref_0 + '2i980502.01' ; copie du juke. ; ; 13:20 - 15_00 totalite ; ; 13:25 et 14:40 structure simple ; ; 13:40:09 --------- complexe ; t_deb = [13, 20, 00, 00] ; t_fin = [14, 49, 30, 00] ; CMEs : ; 14 jul 2000 (CME Monique et Dalmiro) controles jul 12, 19 ; nomfich = ch_pref_0 + '2q000714.01 ; nomfich = ch_pref_0 + '2i000714.01' ; copie juke 10sec. ; t_deb = [11,13,00,00] ; deb (sauvegarde) ; t_fin = [11,25,00,00] ; fin ---------- ; 27 mai 99 (Monique) 10:49 a 10:51 controles mai 20, 27, jun 5 ; nomfich = '/juke/10sec/INT9905C/2i990527.02' ; nomfich = ch_pref_0 + '2i990527.02' ; copie du juke ; t_deb = [10,49,00,00] ; deb (sauvegarde) ; t_fin = [10,59,00,00] ; fin ---------- ; Pour expos'e Kerdraon au DASOP le 9 avril 04 : illustration des AA et de la ; synthese ; nomfich = ch_pref_0 + '2q040405.01' ; Petit centre (pour monter alias). utiliser410 MHz 11:52:55. ; nomfich = ch_pref_0 + '2q040406.01' ; images a 11:49:08. Calme dans l'ensemble, avec SC complexe ; Rappel : ch_pref_0 = '/poub/mercier/data/' ; ch_pref_1 = '/data/extraits/mercier/' ; ch_pref_3 = '/poub0/mercier/data/' ; DEBUT ESPACE FICHIERS UTILISES (mise au point nouvelle calibration nov 02) ; CYGNE ; Sources de controle ancien systeme : ; . antennes H depointees non tournees, ; . NS0 tounee, ; . tout ca (incorrectement) corrige dans initialisation observation ; nomfich = ch_pref_0 + '2d990605.20' ; 5 jun 99 ; nomfich = ch_pref_0 + '2d000621.20' ; 21 jun 00 ; nomfich = ch_pref_0 + '2d010503.20' ; 3 mai 01 ; nomfich = ch_pref_0 + '2d010623.20' ; 15 jun 01 ; nomfich = ch_pref_0 + '2d010712.20' ; 12 jul 01 ; nomfich = ch_pref_0 + '2d010803.20' ; 3 aug 01 ; Special essai nouvelle calibration ; Antennes H pointees, H2 H4 et NS0 non tournees : ; nomfich = '/data/extraits/mercier/2d020918.20' ; 18 sept 02 ; nomfich = '/data/extraits/mercier/2d020926.20' ; 26 sept 02 ; etalonnage du 5 sep pour les 18 et 26 sept 02. ; Antennes H pointees, H2, H4 tournees, NS0 tournee, maxion et micro poin- ; tage decouples => rotew = rotns = ah_dep = 0 dans en-tete : ; nomfich = '/data/extraits/mercier/2d021008.20' ; 8 oct 02 ; Dans l'avenir H2 et H4 seront pleinement utilisables en non ; polarsi on les fait tourner dans le meme sens que NS0. ; t_deb = [20,00,00,00] ; start time (h,mn,sec,ms) ; t_fin = [20,50,00,00] ; stop time ; DEBUT ESPACE FICHIERS UTILISES ; SOLEIL ; 27 mai 99 (Monique) 10:49 a 10:51 controles mai 20, 27, jun 5 ; nomfich = ch_pref_0 + '2i990527.02' ; copie du juke ; t_deb = [10,49,00,00] ; deb (sauvegarde) ; t_fin = [10,51,00,00] ; fin ---------- ; 27 mai 02 Eruption de filament (christophe) ; nomfich = '/data/nancay/2q020527.01' ; copie du juke ; t_deb = [10,00,00,00] ; deb (sauvegarde) ; t_fin = [14,51,00,00] ; fin ---------- ; FIN ESPACE FICHIERS UTILISES