Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
description_string = "{} Long".format(filetype)
mask &= np.array([description_string in desc for desc in products['description']])
# Identify quarter by the description.
if quarter is not None:
quarter_mask = np.zeros(len(products), dtype=bool)
for q in np.atleast_1d(quarter):
quarter_mask |= np.array([desc.lower().replace('-', '').endswith('q{}'.format(q))
for desc in products['description']])
mask &= quarter_mask
# For Kepler short cadence data the month can be specified
if month is not None:
month = np.atleast_1d(month)
# Get the short cadence date lookup table.
table = ascii.read(os.path.join(PACKAGEDIR, 'data', 'short_cadence_month_lookup.csv'))
# The following line is needed for systems where the default integer type
# is int32 (e.g. Windows/Appveyor), the column will then be interpreted
# as string which makes the test fail.
table['StartTime'] = table['StartTime'].astype(str)
# Grab the dates of each of the short cadence files.
# Make sure every entry has the correct month
is_shortcadence = mask & np.asarray(['Short' in desc for desc in products['description']])
for idx in np.where(is_shortcadence)[0]:
quarter = int(products['description'][idx].split(' - ')[-1][1:].replace('-', ''))
date = products['dataURI'][idx].split('/')[-1].split('-')[1].split('_')[0]
permitted_dates = []
for m in month:
try:
permitted_dates.append(table['StartTime'][
np.where((table['Month'] == m) & (table['Quarter'] == quarter))[0][0]
])
def _header_template(extension):
"""Returns a template `fits.Header` object for a given extension."""
template_fn = os.path.join(PACKAGEDIR, "data",
"tpf-ext{}-header.txt".format(extension))
return fits.Header.fromtextfile(template_fn)
products.sort(['order', 'dates', 'qoc'])
# For Kepler short cadence data there are additional rules, so find anywhere
# where there is short cadence data...
scmask = np.asarray(['Short' in d for d in products['description']]) &\
np.asarray(['kplr' in d for d in products['dataURI']])
if np.any(scmask):
# Error check the user if there's multiple months and they didn't ask
# for a specific one
if month is None:
raise ArchiveError("Found {} different Target Pixel Files "
"for target {} in Quarter {}. "
"Please specify the month (1, 2, or 3)."
"".format(len(products), target, quarter))
# Get the short cadence date lookup table.
table = ascii.read(os.path.join(PACKAGEDIR, 'data', 'short_cadence_month_lookup.csv'))
# Grab the dates of each of the short cadence files. Make sure every entry
# has the correct month
finalmask = np.ones(len(products), dtype=bool)
for c in np.unique(products[scmask]['qoc']):
ok = (products['qoc'] == c) & (scmask)
mask = np.zeros(np.shape(products[ok])[0], dtype=bool)
for m in month:
udate = (table['StartTime'][np.where(
(table['Month'] == m) & (table['Quarter'] == c))[0][0]])
mask |= np.asarray(products['dates'][ok]) == udate
finalmask[ok] = mask
products = products[finalmask]
# Sort by id, then date and quarter
products.sort(['order', 'dates', 'qoc'])
if len(products) < 1:
raise ArchiveError("No {} File found for {} "
def _header_template(extension):
"""Returns a template `fits.Header` object for a given extension."""
template_fn = os.path.join(PACKAGEDIR, "data",
"lc-ext{}-header.txt".format(extension))
return fits.Header.fromtextfile(template_fn)
def _header_template(self, extension):
"""Returns a template `fits.Header` object for a given extension."""
template_fn = os.path.join(PACKAGEDIR, "data",
"tpf-ext{}-header.txt".format(extension))
return fits.Header.fromtextfile(template_fn)