Source code for specdash.spectral_lines

import pkg_resources
import json

from .local.resources import get_text_lines

#http://classic.sdss.org/dr6/algorithms/linestable.html
#https://classic.sdss.org/dr7/algorithms/speclinefits.html

#https://iopscience.iop.org/article/10.1086/132961/pdf
#https://iopscience.iop.org/article/10.1086/316552/pdf
#http://adsabs.harvard.edu/pdf/2004JKAS...37...87S
#http://tdc-www.harvard.edu/iraf/rvsao/emsao/ex2/emsao.sky.lines.html
#http://skinakas.physics.uoc.gr/en/images/weather_data/SkinakasSkyBrghtSpectroscopy.pdf
#https://github.com/iraf-community/iraf/blob/master/noao/lib/linelists/skylines.dat

[docs]def get_spectral_lines_from_json(): package_name = __name__ # Could be any module/package name resource_path = 'assets/spectral_lines.json' # Do not use os.path.join() spectrum_lines_file = pkg_resources.resource_stream(package_name, resource_path) content_dict = json.loads(spectrum_lines_file.read()) spectrum_lines_file.close() return content_dict
[docs]def get_spectral_lines(): lineList = get_text_lines('assets/spectral_lines.txt') spectral_lines = {} for item in lineList: listTemp = item.split() listTemp = [ item.decode('ascii') for item in listTemp] # print(listTemp) spectral_line = {} id = listTemp[1] + " " + listTemp[0] spectral_line["fullname"] = id spectral_line["lambda"] = float(listTemp[0]) spectral_line["name"] = listTemp[1] spectral_line["label"] = listTemp[2] spectral_lines[id] = spectral_line return spectral_lines
[docs]def get_sky_lines(): line_list = get_text_lines('assets/sky_lines.txt') sky_lines = {} for item in line_list: listTemp = item.split() listTemp = [ item.decode('ascii') for item in listTemp] # print(listTemp) sky_line = {} id = listTemp[1] + " " + listTemp[0] sky_line["fullname"] = id sky_line["lambda"] = float(listTemp[0]) sky_line["name"] = listTemp[1] sky_line["label"] = listTemp[2] sky_lines[id] = sky_line return sky_lines
[docs]def get_artificial_lines(): line_list = get_text_lines('assets/artificial_lines.txt') artificial_lines = {} for item in line_list: listTemp = item.split() listTemp = [ item.decode('ascii') for item in listTemp] # print(listTemp) line = {} id = listTemp[1] + " " + listTemp[0] line["fullname"] = id line["lambda"] = float(listTemp[0]) line["name"] = listTemp[1] line["label"] = listTemp[2] artificial_lines[id] = line return artificial_lines
spectral_lines = get_spectral_lines() sky_lines = get_sky_lines() artificial_lines = get_artificial_lines()