Loading star_coverage.pro +22 −41 Original line number Diff line number Diff line Loading @@ -14,40 +14,21 @@ ;- ROTATION = +1 ; +1 gira NATURAL, come il cielo (CCW), -1 gira in "REVERSE" (CW) VIEW = +1 ; +1 mostra la SKYVIEW, -1 inserisce un flip N-S (CAMVIEW) NB. Solo nei GRAFICI ;-- INSERISCI I DATI DELLA SIMULAZIONE: POINT = (catalogue("BRIGHT_STARS"))[where((catalogue("BRIGHT_STARS")).name eq "NCP")] ;Navi ;Vega R = 6.0 ; 5.8 ;deg MAG = "5.5" ;"6.5" DATA = '2019-02-26T02:36:43' ; IN UTC! ; DATA = sxpar( headfits(file) ,'DATE-OBS') ROTATION = +1 ; +1 NATURAL (same of the sky, CCW), -1 is "REVERSE" (CW) VIEW = +1 ; +1 plot in SKYVIEW, -1 plot in CAMVIEW (flip n-s) ;-- PARAMS OF SIMULATION: POINT = {ra:279.23473, dec:38.7836889} ;Vega R = 6.0 ;deg MAG = "5.5" ;mag DATA = '2019-02-26T02:36:43' ; IN UTC! LAST = ten(2,30,00) ; IN HMS! ;;-- PUNTAMENTO DI UN RUN DAL CATALOGO ;RUNS = catalogue('RUNID') ;RUN = runs[0] ;POINT = {ra:run.ra, dec:run.dec } ;R = 4.0 ;MAG = "5.5" ;"6.5" ;DATA = run.time_utc ; IN UTC! ; DATA = sxpar( headfits(file) ,'DATE-OBS') ;LAST = ten(sec2hms(run.time)) ; IN HMS! ;tel = telescope_parameters('ASTRI') ; Torna una struct con tutti i parametri del telescopio ;;******************** ;;-- SORGENTI MINIARRAY ;a = indgen(15) & remove, [1, 2, 3, 4, 9, 10, 13], a & print, a ;RUNS = catalogue('MINIARRAY') ;R = 4.5 ;MAG = "5.5" ;"6.5" ;DATA = '2023-06-20T22:30:00' ; IN UTC! ; DATA = sxpar( headfits(file) ,'DATE-OBS') ;LAST = ten(2,30,00) ; IN HMS! ;tel = (telescope_parameters('MINIARRAY'))[1] ; Torna una struct con tutti i parametri del telescopio ;RUN = runs[13] ;POINT = {ra:run.ra, dec:run.dec } ;;******************** ;;-- CONTROLLO CHE IL CAMPO SIA OSSERVABILE ;-- Field over horizon? JD = DATE_CONV(DATA, 'JD') EQ2HOR, POINT.RA, POINT.DEC, jd, alt_i, az_i, lat=tel.LAT_DEG, lon=tel.lon_deg, altitude=tel.altitude EQ2HOR, POINT.RA, POINT.DEC, (jd*24.d + LAST*(0.5d))/24.d, alt_m, az_m, lat=tel.LAT_DEG, lon=tel.lon_deg, altitude=tel.altitude Loading @@ -60,7 +41,7 @@ ENDIF ;;-- CONTROLLO CHE SIA SEMPRE NOTTE ;-- Is it during night? sunpos, jd, ra_sun_i, dec_sun_i sunpos, (jd*24.d + LAST*(0.5d))/24.d, ra_sun_m, dec_sun_m sunpos, (jd*24.d + LAST)/24.d, ra_sun_f, dec_sun_f Loading @@ -76,7 +57,7 @@ ;-- CONTROLLO LE POSIZIONI DI LUNA E PIANETI: ;-- Moon and planets? mphase, jd, k & IF k GT 0.5 THEN PRINT, " >> OCCHIO ALLA LUNA!" moonpos, jd, ram, decm, dism, /RADIAN planet_coords, jd, rap, decp, /jd ;'MERCURY','VENUS', 'MARS', 'JUPITER','SATURN','URANUS','NEPTUNE', 'MOON' ---> NB che la luna è sbagliata -.- Loading @@ -87,21 +68,21 @@ ;-- ANGOLO PARALLATTICO (INIZIALE E SUA EVOLUZIONE): ;-- Initial parangle and its evolution EQ2HOR, POINT.RA, POINT.DEC, jd, alt, az, ha, lat=tel.LAT_DEG, lon=tel.lon_deg, altitude=tel.altitude ; Trovo HA ; ALTAZ2HADEC, alt, az, tel.lat_deg, ha, dec_on_date ; HA = LST - RA ma fai la precess! (LST: CT2LST, lst, tel.lon_deg, 1,ten(20,36), 26, 02, 2019 ) parang_i = PARANGLE(ha, POINT.DEC, tel.lat_deg, /DEGREE) ; HA cresce linearmente col tempo, PARANG invece no! parang_m = PARANGLE(ha+(LAST*(1./2.)*15.), POINT.DEC, tel.lat_deg, /DEGREE) ; QUesto intermedio serve per riconoscere il verso di rotazione... parang_i = PARANGLE(ha, POINT.DEC, tel.lat_deg, /DEGREE) parang_m = PARANGLE(ha+(LAST*(1./2.)*15.), POINT.DEC, tel.lat_deg, /DEGREE) ; to distinghish cw and ccw parang_f = PARANGLE(ha+(LAST*15.), POINT.DEC, tel.lat_deg, /DEGREE) ; parang = -angoli_ordinati(parang_i, parang_m, parang_f) ; *** METTO IL MENO PER FARLO GIRARE CCW COME IN GENERE FANNO GLI ANGOLI *** parang = -angoli_ordinati(parang_i, parang_m, parang_f) ; ;-- CERCO LE STELLE NEL FOV, NELLA BANDA SPETTRALE GIUSTA: JUMP=0 & if nel(lista) ne 0 then begin & jump=1 & goto, here & endif ; vuol dire che stai runnando più volte, forse un debug? ;-- Query catalogs JUMP=0 & if nel(lista) ne 0 then begin & jump=1 & goto, here & endif lista = queryvizier('USNO-B1',[POINT.RA, POINT.DEC], R*60.d, constraint='B1mag<'+MAG) ; radius in arcmin, B1=Optical B band between 400 and 500 nm IF nel(lista) eq 0 THEN BEGIN IF lista[0] eq -1 THEN BEGIN & print print, "LISTA VUOTA!" print, "EMPTY LIST!" perimetro = bordo_camera("REDUCED") plot_stars_i = plot([0.], [0.], linestyle=6, symbol=3, sym_filled=0, sym_size=8, sym_color='black', ASPECT_RATIO=1, XTITLE='[deg]', YTITLE='[deg]', TITLE="ASTRI FOV", xrange=[perimetro.x/tel.PlateScaledeg-1, perimetro.x/tel.PlateScaledeg+1], yrange=[perimetro.x/tel.PlateScaledeg-1, perimetro.x/tel.PlateScaledeg+1]) plot_bordo = plot(perimetro.x/tel.PlateScaledeg, perimetro.y/tel.PlateScaledeg, color='light blue', /OVERPLOT) Loading Loading
star_coverage.pro +22 −41 Original line number Diff line number Diff line Loading @@ -14,40 +14,21 @@ ;- ROTATION = +1 ; +1 gira NATURAL, come il cielo (CCW), -1 gira in "REVERSE" (CW) VIEW = +1 ; +1 mostra la SKYVIEW, -1 inserisce un flip N-S (CAMVIEW) NB. Solo nei GRAFICI ;-- INSERISCI I DATI DELLA SIMULAZIONE: POINT = (catalogue("BRIGHT_STARS"))[where((catalogue("BRIGHT_STARS")).name eq "NCP")] ;Navi ;Vega R = 6.0 ; 5.8 ;deg MAG = "5.5" ;"6.5" DATA = '2019-02-26T02:36:43' ; IN UTC! ; DATA = sxpar( headfits(file) ,'DATE-OBS') ROTATION = +1 ; +1 NATURAL (same of the sky, CCW), -1 is "REVERSE" (CW) VIEW = +1 ; +1 plot in SKYVIEW, -1 plot in CAMVIEW (flip n-s) ;-- PARAMS OF SIMULATION: POINT = {ra:279.23473, dec:38.7836889} ;Vega R = 6.0 ;deg MAG = "5.5" ;mag DATA = '2019-02-26T02:36:43' ; IN UTC! LAST = ten(2,30,00) ; IN HMS! ;;-- PUNTAMENTO DI UN RUN DAL CATALOGO ;RUNS = catalogue('RUNID') ;RUN = runs[0] ;POINT = {ra:run.ra, dec:run.dec } ;R = 4.0 ;MAG = "5.5" ;"6.5" ;DATA = run.time_utc ; IN UTC! ; DATA = sxpar( headfits(file) ,'DATE-OBS') ;LAST = ten(sec2hms(run.time)) ; IN HMS! ;tel = telescope_parameters('ASTRI') ; Torna una struct con tutti i parametri del telescopio ;;******************** ;;-- SORGENTI MINIARRAY ;a = indgen(15) & remove, [1, 2, 3, 4, 9, 10, 13], a & print, a ;RUNS = catalogue('MINIARRAY') ;R = 4.5 ;MAG = "5.5" ;"6.5" ;DATA = '2023-06-20T22:30:00' ; IN UTC! ; DATA = sxpar( headfits(file) ,'DATE-OBS') ;LAST = ten(2,30,00) ; IN HMS! ;tel = (telescope_parameters('MINIARRAY'))[1] ; Torna una struct con tutti i parametri del telescopio ;RUN = runs[13] ;POINT = {ra:run.ra, dec:run.dec } ;;******************** ;;-- CONTROLLO CHE IL CAMPO SIA OSSERVABILE ;-- Field over horizon? JD = DATE_CONV(DATA, 'JD') EQ2HOR, POINT.RA, POINT.DEC, jd, alt_i, az_i, lat=tel.LAT_DEG, lon=tel.lon_deg, altitude=tel.altitude EQ2HOR, POINT.RA, POINT.DEC, (jd*24.d + LAST*(0.5d))/24.d, alt_m, az_m, lat=tel.LAT_DEG, lon=tel.lon_deg, altitude=tel.altitude Loading @@ -60,7 +41,7 @@ ENDIF ;;-- CONTROLLO CHE SIA SEMPRE NOTTE ;-- Is it during night? sunpos, jd, ra_sun_i, dec_sun_i sunpos, (jd*24.d + LAST*(0.5d))/24.d, ra_sun_m, dec_sun_m sunpos, (jd*24.d + LAST)/24.d, ra_sun_f, dec_sun_f Loading @@ -76,7 +57,7 @@ ;-- CONTROLLO LE POSIZIONI DI LUNA E PIANETI: ;-- Moon and planets? mphase, jd, k & IF k GT 0.5 THEN PRINT, " >> OCCHIO ALLA LUNA!" moonpos, jd, ram, decm, dism, /RADIAN planet_coords, jd, rap, decp, /jd ;'MERCURY','VENUS', 'MARS', 'JUPITER','SATURN','URANUS','NEPTUNE', 'MOON' ---> NB che la luna è sbagliata -.- Loading @@ -87,21 +68,21 @@ ;-- ANGOLO PARALLATTICO (INIZIALE E SUA EVOLUZIONE): ;-- Initial parangle and its evolution EQ2HOR, POINT.RA, POINT.DEC, jd, alt, az, ha, lat=tel.LAT_DEG, lon=tel.lon_deg, altitude=tel.altitude ; Trovo HA ; ALTAZ2HADEC, alt, az, tel.lat_deg, ha, dec_on_date ; HA = LST - RA ma fai la precess! (LST: CT2LST, lst, tel.lon_deg, 1,ten(20,36), 26, 02, 2019 ) parang_i = PARANGLE(ha, POINT.DEC, tel.lat_deg, /DEGREE) ; HA cresce linearmente col tempo, PARANG invece no! parang_m = PARANGLE(ha+(LAST*(1./2.)*15.), POINT.DEC, tel.lat_deg, /DEGREE) ; QUesto intermedio serve per riconoscere il verso di rotazione... parang_i = PARANGLE(ha, POINT.DEC, tel.lat_deg, /DEGREE) parang_m = PARANGLE(ha+(LAST*(1./2.)*15.), POINT.DEC, tel.lat_deg, /DEGREE) ; to distinghish cw and ccw parang_f = PARANGLE(ha+(LAST*15.), POINT.DEC, tel.lat_deg, /DEGREE) ; parang = -angoli_ordinati(parang_i, parang_m, parang_f) ; *** METTO IL MENO PER FARLO GIRARE CCW COME IN GENERE FANNO GLI ANGOLI *** parang = -angoli_ordinati(parang_i, parang_m, parang_f) ; ;-- CERCO LE STELLE NEL FOV, NELLA BANDA SPETTRALE GIUSTA: JUMP=0 & if nel(lista) ne 0 then begin & jump=1 & goto, here & endif ; vuol dire che stai runnando più volte, forse un debug? ;-- Query catalogs JUMP=0 & if nel(lista) ne 0 then begin & jump=1 & goto, here & endif lista = queryvizier('USNO-B1',[POINT.RA, POINT.DEC], R*60.d, constraint='B1mag<'+MAG) ; radius in arcmin, B1=Optical B band between 400 and 500 nm IF nel(lista) eq 0 THEN BEGIN IF lista[0] eq -1 THEN BEGIN & print print, "LISTA VUOTA!" print, "EMPTY LIST!" perimetro = bordo_camera("REDUCED") plot_stars_i = plot([0.], [0.], linestyle=6, symbol=3, sym_filled=0, sym_size=8, sym_color='black', ASPECT_RATIO=1, XTITLE='[deg]', YTITLE='[deg]', TITLE="ASTRI FOV", xrange=[perimetro.x/tel.PlateScaledeg-1, perimetro.x/tel.PlateScaledeg+1], yrange=[perimetro.x/tel.PlateScaledeg-1, perimetro.x/tel.PlateScaledeg+1]) plot_bordo = plot(perimetro.x/tel.PlateScaledeg, perimetro.y/tel.PlateScaledeg, color='light blue', /OVERPLOT) Loading