Astronomie

Práce s hvězdnými spektry ve formátu fit v pythonu

Práce s hvězdnými spektry ve formátu fit v pythonu


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Ahoj, jsem nový v práci s astronomickými daty v Pythonu. Chtěl jsem začít pracovat s hvězdnými spektry a mám potíže s daty. Pro první pohled jsem chtěl vykreslit spektra (tok přes vlnovou délku). Stáhl jsem si knihovnu Miles (http://research.iac.es/proyecto/miles/pages/stellar-libraries/miles-library.php) a začal pracovat s jedním souborem záchvatů. Moje první kroky jsou následující:

import numpy jako np import matplotlib.pyplot jako plt z astropy.io import vyhovuje hdul = fit.open ('s0013.fits') data = hdul [0]. data h1 = hdul [0] .header

Četl jsem záhlaví pomocí print (repr (h1)) a vím, že jsem chtěl vykreslit spektrum. Data mají tvar (1, 4367) a nejsem si jistý, jak postupovat k dosažení 2 polí, jednoho s vlnovou délkou a jednoho s tokem pro vykreslení dat. Je mi líto, pokud je tato otázka hloupá, ale nedokážu na ni přijít.

Na zdraví


Informace, které potřebujete k opětovnému vytvoření pole vlnové délky, jsou ve World Coordinate System (WCS) záhlaví, konkrétně:

CRPIX1 = 1,00 CRVAL1 = 3500,0000 / centrální vlnová délka prvního pixelu CDELT1 = 0,900000 / lineární disperze (Angstrom / pixel)

který uvádí počáteční / referenční pixel pole vlnové délky (1.0), hodnota vlnové délky v počátečním bodě (3500angstromy (předpokládané)) a krok na pixel (0.9Angstrom / pixel). Chcete-li si přečíst tyto informace, je nejlepší použít spíše knihovnu WCS, než se je snažit přímo interpretovat, protože mohou být komplikovanější a existuje mnoho podformátů FITS WCS.

naštěstíastropiemá modul, který to usnadňuje (počínaje výše uvedeným kódem a jeho rozšířením):

import numpy jako np import matplotlib.pyplot jako plt z astropy.io import vyhovuje z astropy.wcs import WCS hdul = fit.open ('s0013.fits') data = hdul [0]. data h1 = hdul [0] .header obj_name = h1.get ('OBJECT', 'Unknown') flux = data [0] w = WCS (h1, naxis = 1, relax = False, fix = False) lam = w.wcs_pix2world (np.arange (len ( tok)), 0) [0] plt.plot (lam, tok) plt.ylim (0,) plt.xlabel ('Vlnová délka (Angstrom)') plt.ylabel ('Normalizovaný tok') plt.savefig (obj_name + '.png ">

Chcete-li provést rozsáhlejší manipulaci se spektry, zejména s matoucí rozmanitostí jednotek vlnových délek a toků, mohlo by být vhodné podívat se na synphot a specutily, které staví na Astropy a přidávají přímější podporu pro spektra nad rámec jednoduchých číselných polí. Můžete například vytvořit a synphotZdrojové spektrumz výše uvedeného provedením:

z jednotek importu astropy jako u ze jednotek importu synphot, SourceSpectrum ze synphot.spectrum import Empirical1D source_spec = SourceSpectrum (Empirical1D, points = lam * u.AA, lookup_table = flux, keep_neg = True, meta = {'header': h1})


Podívejte se na video: JAK SI NAJÍT SKVĚLOU PRÁCI - LEKCE 53: Katastrof. pohovor pana Rybky - Tereza Valášková LearnTube (Říjen 2022).