Source code for pyLIMA.microllimb_darkening
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 27 16:39:32 2015
@author: ebachelet
"""
import collections
import contextlib
import StringIO
_CLARET_COLUMNS = 'log_g, Teff, metallicity, microturbulent_velocity, linear_limb_darkening, ' \
'filter, method, model'
_ClaretType = collections.namedtuple('ClaretType', _CLARET_COLUMNS)
[docs]def read_claret_data(file_name, camera_filter):
"""
Read in claret data from file.
:param file_name: Path and name of data file.
:param camera_filter: Retrieve data for supplied filter.
:return: Generator of claret table.
"""
try:
resource = open(file_name)
except IOError:
resource = contextlib.closing(StringIO.StringIO(file_name))
with resource as file_socket:
for line in file_socket.readlines():
data = [_convert_datum(x) for x in line.strip().split()]
claret_datum = _ClaretType(*data)
if claret_datum.filter == camera_filter:
yield claret_datum
elif camera_filter == 'all':
yield claret_datum
def _convert_datum(datum):
"""
Convert a datum to a float (if possible).
:param datum: Datum to convert.
:return: Float or original if not convertible
"""
try:
return float(datum)
except ValueError:
return datum