Jak wykryć linie emisji w widmach optycznych?

11

Czy jest jakiś przydatny moduł do wykrywania linii emisji w spektrum takim jak ten, który otrzymujemy z Sloan Digital Sky Survey (SDSS)?

W poniższym spektrum widać wiele linii emisji, takich jak Ha, OI. W rzeczywistości widmo to dwukolumnowy zestaw danych, długość fali i strumień. Jest to kombinacja wielu punktów rozproszonych. Typowy odstęp między dwoma punktami w pobliżu wynosi 1,5 angstremów. Muszę znaleźć wszystkie guary Gaussa i ich środek linii.

Najpierw muszę znaleźć guzki, a następnie dopasować je, aby uzyskać ich centra.

wprowadź opis zdjęcia tutaj

pytanie
źródło
Prawdopodobnie mógłbym dać ci szczegółową odpowiedź, jeśli powiesz mi, co chcesz zrobić ze spektrum. Rygorystyczna analiza widma zwykle nie jest banalna.
Moriarty,
Zaktualizowałem swój post. Być może teraz jest to łatwe do zrozumienia.
questionhang

Odpowiedzi:

6

Programy, o których wiem, że możesz użyć, wymagają pewnej wiedzy programistycznej do działania. Poleciłbym przyjrzeć się IRAF (lub PyRAF , który używa Pythona do interfejsu z IRAF) lub SPECTER . Niestety nie znam rozwiązania „czarnej skrzynki”, w którym wystarczy nacisnąć przycisk i przejść.

SPECTER jest napisany w FORTRAN77 i jest dość łatwy w użyciu, gdy się go zrozumie, chociaż ma nieco ograniczony zestaw funkcji i dokumentacja jest krótka. Pomoże ci ręcznie dopasować Gaussa do linii widmowych, podając ich środkowe długości fali i równoważne szerokości. Zastrzeżeniem SPECTER jest to, że wymaga on pakietu kreślarskiego SuperMongo , który nie jest wolnym oprogramowaniem. Jeśli jesteś związany z uniwersytetem, większość wydziałów fizyki i astronomii powinna mieć licencję.

IRAF to dość w pełni funkcjonalna, bezpłatna, wieloplatformowa aplikacja specjalnie zaprojektowana do astronomicznej analizy obrazu. Pomaga mierzyć linie widmowe i może analizować widmo w celu określenia prędkości promieniowej obiektu.

Moriarty
źródło
co powiesz na napisanie własnego kodu python, aby to zrobić? Wystarczy przeanalizować wiele zestawów danych długości fali z wielu widm.
questionhang
Idź po to. Często najłatwiej jest napisać własny kod, zwłaszcza jeśli masz duże zestawy danych do przełamania.
Moriarty,
Najpierw znajdź lokalne maksimum, a następnie dopasuj go do profilu Gaussa. Ta metoda jest zbyt łatwa do uwierzenia. Czegoś mi brakuje?
questionhang
1
Tak, właśnie o to chodzi. Jeśli chcesz znaleźć lokalne maksima obliczeniowo, zastosowanie pewnego medianowego wygładzenia (w zależności od poziomów hałasu), a następnie użycie jego pochodnych może działać dobrze. Ten fragment kodu właśnie to robi (nie sądzę, aby działałby dobrze tak, jak chcesz, ale będzie służyć jako przykładowy przykład tego, co możesz zrobić). adsabs.harvard.edu/abs/2007A%26A...469..783S
Moriarty
4

Tak, istnieją dwa moduły python zwane astropy i astropizyka, które twierdzą, że posiadają narzędzia do analizy spektralnej. Jako odniesienie, oto link do zasobów dla astronomów dla języka programowania python.

astromax
źródło
4

Dostępnych jest wiele programów i narzędzi do robienia tego, co chcesz:

  • IRAF przez NOAO;
  • MIDAS, który jest zasadniczo bardzo podobny do IRAF, ale opracowany przez ESO;
  • w Pythonie: astropy lub pyRAF (aby używać IRAF z interfejsem Python).

Korzystałbym z niektórych narzędzi Pythona (Python jest bardziej wszechstronny niż IRAF lub MIDAS, które są o wiele bardziej „zorientowane na jeden cel”), aby skorzystać z innych funkcji oferowanych przez Python.

Ale wykreślenie i przetworzenie spektrum to tylko pierwsza część pracy. Prawdopodobnie chciałbyś w końcu zastosować syntezę spektralną do analizy swojego spektrum. Synteza spektralna pozwoli Ci:

  • w celu efektywnej identyfikacji składu chemicznego badanego obiektu niebieskiego;
  • aby określić niektóre właściwości badanego obiektu niebieskiego.

Wśród istniejących narzędzi do syntezy spektralnej (na przykład dla widm gwiazdowych) znajdują się:

MBR
źródło
Dzięki. Chcę tylko poznać pozycje centrum linii.
questionhang