Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/tess_asteroids/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
__version__ = '0.1.0'
__version__ = "0.1.0"

from .asteroid import Asteroid
60 changes: 60 additions & 0 deletions src/tess_asteroids/asteroid.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
"""Class to obtain, correct and analyze TESS asteroid data"""
import lightkurve as lk

import tess_ephem
import tess_locator
import tess_cloud
import tess_backdrop


class Asteroid(lk.TargetPixelFile):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should consider naming it MinorPlanet to avoid confusion if we measure non-asteroid moving objects?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah! Names are important, sounds great! We can totally rename the package too

"""Class to work with TESS asteroid data"""

def __init__(self, asteroid_name):
self.asteroid_name = asteroid_name
self._correct_sky_background()
self._correct_star_background()

@static_method
def from_MAST(self, asteroid_name):
"""Get object out of tesscut dataset"""
self.asteroid_name = asteroid_name
self._get_data()
self.__init__(**kwargs)

def _get_data(self):
"""Use tess_locator, tess_cloud"""
raise NotImplementedError

def _correct_sky_background(self):
"""Use tess_backdrop to correct scattered light"""
raise NotImplementedError

def _correct_star_background(self):
"""Use tess_backdrop, and new functionality, to remove stars from background"""
raise NotImplementedError

def create_aperture(self):
"""create_threshold_mask may work just as well here, but we might want to think about
special functions"""
raise NotImplementedError

def to_lightcurve(self):
"""makes special lk.LightCurve class?"""
raise NotImplementedError


class AsteroidLightCurve(lk.LightCurve):
"""I think we might need a special lk class...but maybe not?"""

def get_MPC_data(self):
# Get supplmental data from MPC?
raise NotImplementedError

def to_periodogram(self, type="GP"):
"""Special periodogram that uses GP kernels to estimate period?"""
raise NotImplementedError

def to_file(self):
"""Some sort of MPC viable file with relevant meta info..."""
raise NotImplementedError
19 changes: 19 additions & 0 deletions src/tess_asteroids/periodogram.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"""Tools to calculate periodicities in asteroid light curves?"""
import lightkurve as lk


class GPPeriodogram(lk.Periodogram):
"""A periodogram that works based on SHO GP kernels to obtain
a distribution of consistent periods."""

def __init__(self, **kwargs):
"""Initialize a normal periodogram..."""
super.__init__(**kwargs)


class AugmentedBLSPeriodogram(lk.Periodogram):
"""A periodogram that fits a BLS and SHO at the same time, to model binary asteroids."""

def __init__(self, **kwargs):
"""Initialize a normal periodogram..."""
super.__init__(**kwargs)
13 changes: 12 additions & 1 deletion tests/test_tess_asteroids.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
from tess_asteroids import __version__
import pytest
from tess_asteroid import Asteroid


def test_version():
assert __version__ == '0.1.0'
assert __version__ == "0.1.0"


@pytest.mark.remote_data
def test_asteroid():
tpf = Asteroid.from_MAST("Juno")
lc = tpf.to_lightcurve()
per = lc.to_periodogram("GP", minimum_period=0.1, maximum_period=10)
assert (per.period_at_max_power[0].value, 10)
assert (per.period_at_max_power[1].value, 0.1)