
-----------------------------------
romh
23 Mai 2025 10:33


-----------------------------------
Am revenit la Astropy dupa o lunga pauza... Astropy nu contine libraria libwcs din packetul obsolete wcstools, ci alta librarie mai moderna numita wcslib. Practic, setul asta academic de librarii, care este in domeniul public, contine tot ce ar trebui sa am ca sa detectez intrusi in fotografiile FITS. Si de data asta avand niste fisiere fits cu asteroizi la dispozitie, am decis sa reiau testele cu astropy.

Totul a fost realizat cu relativ putine linii de cod. Un simplu exemplu poate fi gasit aici. 
https://gist.github.com/rgherta/0b03301cc8c58fb1980830bcae1b2ece

In primul rand am vrut sa plotez imaginea. Prima alegere python ar fi matplotlib, dar asta inseamna sa aplici multe artificii sintactice doar ca sa plotezi coordonatele in sistem celest etc. Am realizat ca ceea ce matplotlb facea cu 10 linii, pachetul [url=https://aplpy.readthedocs.io/en/stable/]APLPY poate face cu 2, asa ca asta am folosit intr-un final.

Odata imaginea afisata, este util de detectat stelele, ceea ce am vazut numit in documentatie "centroizi"... Aici am folosit DAOStarFinder() despre care am scris mai sus. Este o metoda interesanta, dar sunt si alte fucntii de detectie stele in aceasta librarie, care probabil merita mai multa atentie pe viitor...

Functia de mai sus o sa returneze o lista de centroizi in coordonate pixeli x,y. Mai departe aceste coordonate trebuie transformate in sistem WCS. Aici gasim niste metode numite pix2world si world2pix. Denumirea s-a pastra istoric de la utilitarele wcstools. pix2world face aceasta transformare in functie de datele din headerul WCS al fisierului FITS, de exemplu epoca sau sistemul de referinta. Sistemul de referinta in care are loc aceastra transformare este important. WCS este generic, insa are cateva sisteme de referinta predefinite sau builtin. ICRS, GCRS, Galactic etc merita mentionate. ICRS din cate am citit nu este sistemul propriu al telescopului ci un sistem heliocentric, foarte apropiat, pana la 0,1 arcsec de sistemul de referinta geocentric. O provocare aici este transformarea dintr-un sistem in altul, inclusiv propagarea de epoca de la 2000 la 2016 pt Gaia din cate am vazut. Pt un amator partea buna este ca libraria are multe functii predefinite care fac anume asta. Odata coordonatele convertite in ra,dec urmeaza plotarea lor pe grafic, intr-o anumita culoare, galben de exemplu.

Urmeaza interogarea bazei de date online GAIA pt a obtine toate stelele de pe o raza de jumatate de grad de exemplu. Jumatate de grad departare de un pixel numit pixel de referinta. Acesta se gaseste in headerul fisierului FITS numit CRPIX si CRVAL. Putem plota acest pixel de referinta in culoarea verde, si vedem ca in cazul asta este chiar centrul campului. 

Interogarea GAIA se poate face sincron ca in exemplul asta, insa rezultatul este limitat la 2000 de stele sau cred ca avea si  valoare in KB. Pentru interogari mai performante, trebuie efectuate interogari asyncrone, si asta mai presupune o bucla while, dar este posibil. Partea urata este ca aceste interogari asincrone se pastreaza in baza de date gaia si poate polua.

Odata rezultatele primite, avem o lista de stele, cu numarul de referinta si coordonatele radec in epoca 2016 (important). Le putem plota in culoarea rosie de exemplu.

Pentru a returna rezultatele in epoca 2000 pt comparare cu simbad de exemplu, sunt anumite [url=https://www.cosmos.esa.int/web/gaia-users/archive/writing-queries/#EpochPropagationFlag]tutoriale . Am lasat epoca 2016 ca sa fie mai inteligibile queriurile si sa am o mica diferenta vizibila intre cerucirle rosii si cele galbene. 

Fisierul fits reprezinta asteroidul EVA fotografiat in Mai si este deja platesolved, altfel nu aveam pixelii de referina si valoarea corespunzatoare in radec.

In continuare putem analiza rezultate. Se observa pixelul de referinta(verde). Se observa cum asteroidul a fost detectat de algoritmul daostarfinder(galben) dar nu apare in lista returnata de gaia(albastru). In dreapta jos gasim steaua HD127987 . Aceasta apare in lista Gaia, dar nu a fost detectata de Daostarfinder, probabil pt ca nu este foarte circulara, pt ca apare la margine, de asta zic ca e nevoie de alta metoda de detectie centroizi sau niste filtre de aplicat. Mai sunt tot felul de puncte albe care nu apar in lista Gaia fie pt ca eu am pus limita de magnitudine <17 in interogare, fie sunt tot felul de artefacte, care probabil pot fi indepartate. Imi amintesc ca erau in folderul NINA niste fisiere de zgomot alb, dar nu le-am salvat.

Chatgpt poate ajuta la unele chestii, dar nu face minuni, api-urile se schimba, acus o sa apara si DR4... cele mai sigure sunt comentariile din codul sursa, pe baza carora este generata si documentatia.

Deci detectia intrusilor in fotografii poate di realziata doar cu astropy, asta ramane o librarie de referinta si probabil in lumea academica se lucreaza cu astfel de scripturi individualizate pt ca ofera libertate mare de customizare. Pentru publicul larg, mine inclusiv, sunt mai utile programele grafice cu drag and drop. O sa scriu in curand un pic despre ASTAP si cum face acelasi lucru ca cel discutat aici dar mult mai usor si rapid de folosit si cu drag and drop si alte posibilitati.

.... Pt familiarizare cu astropy... Un exemplu interesant de urmat este de luat un fisier fits cu o stea cunoscuta, de gasit coordonatele acestei stele in pixeli, apoi de convertit aceste coorodnate in coordonate celeste apoi de comparat aceste coordonate cu cele din SIMBAD. Folosind aceeasi librarie coordonatele pot fi transformate in sistemele de referinta FK4, Gal, ICRS iar rezultatele pot fi comparate cu cele de pe SIMBAD din marginea stanga. Apoi se poate incerca propagare de epoca spre 2016 si de comparat aceiaisi stea cu rezultatele returnate de GAIA.... Cred ca de aici trebuia sa incep eu...

Un sfarsit de weekend fain
