Giter Site home page Giter Site logo

dirac-institute / hybrid_sso_catalogue Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 1.0 59.94 MB

A package for creating hybrid solar system catalogues for making LSST predictions

License: MIT License

Python 100.00%
astrophysics lsst catalogue k-d-tree solar-system

hybrid_sso_catalogue's People

Contributors

tomwagg avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

tclarkec

hybrid_sso_catalogue's Issues

Paper structure & message

Decide on exactly how to structure the paper with Mario and what the message should be (will be clearer once MBAs have been run etc)

(This refactors the writing issues so close #3, close #4, close #5, close #6, close #7)

Methods

I've written most of this but there are some things left to add/check

  • Add a description of the simulated observations (Sam's stuff) - I'll need help from Mario on this
  • Check with Mario about whether the NEOCP stuff should also be in methods?

Respond to feedback from mentoring team

Mario

  • Address inline comments
  • Restructure paper into Part I & II, where we discuss the current expectation for the NEOCP and then ways to mitigate these problems
  • #30
  • [later] quantify why digest2 doesn't have the MBA problem currently by pretending LSST can only see 21st mag and brighter

Eric

  • Address inline comments
  • Consider purity increases
    Eric wonders whether we could increase purity in a number of ways.
  1. Parallax measurements
    • If measurements were more spaced out we could use the rotation of the Earth to measure this
    • I don't think this is relevant though because I'm not sure it is possible for a single night?
  2. Colour
    • Do NEOs differ in colour from MBAs?
    • Good question, don't know!
  3. Magnitude
    • Can you use the magnitude to distinguish
    • Nope :( The absolute magnitudes are fairly separated at faint mags, but apparent magnitudes are clearly distinguishable sadly
  4. S/N or precision of measurements
    • Would there be fewer false alarms by taking only the most well measured tracklets?
    • Don't know! But I don't think it would help too much since their orbits are so similar in this projection
  5. Proper motion
    • Anything with a high enough proper motion to definitely be an NEO would also lead to a streak in the exposure annoyingly
  6. Radial velocities?
  7. Direction of motion and tumbling rate
  • Prioritise dangerous NEOs?

Additionally, Eric wonders if we could optimise this for the most dangerous of objects. Mario and I discussed this a while ago but perhaps we could actually check the orbits of the NEOs that get lost and see whether it is specifically ones that are close/far away. Would be useful to comment on that

Jess

  • (Awaiting feedback)

Account for past observations

Currently the way I have it set up is that the algorithm doesn't account for any observations prior to the detection window. This leaves us with 3 cases

  1. It hasn't been observed before
  2. It has been observed at least twice on a previous night but not enough to be detected
  3. It's been previously detected

For 1, we proceed as usual. For 3, we should remove these objects from the run since we've already found them.

2 is more complicated but I propose we do the following. For each object, pass a list/dict of nights on which 2 observations have occurred that meet the usual criteria. We can then prepend this to unique_nights in get_probability_by_id and run it in exactly the same way.

LSST detection probability algorithm

Need to discuss this with Mario but the current algorithm does the following for each object in a night:

  • Get ephemerides for every field time in the next night
  • Do this for all variant orbits, i.e. with ra/dec errors and distance/RV grid
  • For each field start time i, check if the predicted RA/Dec is within 2.1 degrees of the ra/dec of field i and field i - 1
  • For each variant orbit, calculate the fraction of orbits that predict the object will be in a field on the next day and use this as a probability that the object will be seen again

TODOs

Calculate milestone statistics for LSST's view of NEOs and MBAs

Use difi to work out how many NEOs and MBAs are discovered within the first year. Ask Mario for a total number ish in the solar system to get a rough completeness.

Then we can use this numbers without needing to cite a conference proceeding that no one can see ๐Ÿ™ƒ

Decide on distance/RV grid to sample for each potential NEO

Mario and I discussed it and we think we should just focus on the NEO range. When we chat with Davide we may make these more specific but now we are thinking

  • Lower limit of 0.1 AU
  • Set the upper limit to be ~10 AU but then cut out orbits that have q > 1.3 to make it a smarter upper bound!

Minor tweaks/fixes to prediction algorithm

  • Use SkyCoords rather than just a circle of 2.1 degrees, this isn't valid for large declinations
  • Update radial velocity range to match Scout and not be so large (try [-50,10] km/s)
  • Use the CameraFootprint from RubinSim to improve the field shape issues if it matches the 2.1 degree criterion
    • Peter and Lynne can help here if I need it
    • Also adding this to plotting would be nice if possible (Mario says ask Peter)

Optimise detection algorithm using only a subset of fields

A better method than what I currently do. Evolve all of the orbits until the start, midpoint and end of each night. Take the greater separation of (start, midpoint) and (midpoint, end) and use that to calculate the distance the object can cover during night.

Use this to restrict to only fields that the object can reach to speed things up.

image

Get multiprocessing working with `thor`

If we're going to run this for more detection windows/MBAs as well we need it to be much faster.

Need to upgrade to the latest thor version and use the workers in generateEphemeris

Results

Majority of this is written but there are some things left to do. Mainly I need to add how well my mitigation strategy works...once I've finished it ๐Ÿ™ƒ

  • Add mitigation results
  • Check description of periodic effects in traffic
  • Clarify description of D/dot(D) sampling method
  • Add plots of hybrid catalogue distributions that I use

Introduction

I'll need help from Mario on this. I want to make a brief outline with him before attempting this. I think it will look something like this

  1. Basics
    • Introduce NEOs
    • Introduce NEOCP and digest2 (see Keys+2019)
  2. LSST
    • Introduce LSST (Jones et al. for numbers)
    • If LSST continued to operate in the same way then things go boom
    • LSST can self-followup, sizeable fraction need community (NEOCP)
    • Requires community preparation, so the paper quantifies this problem
    • LSST self-followup, how many NEOCP, propose further classification for NEOCP to enable prioritising objects
  3. Outline rest of paper
  • Create outline
  • Write it!

Create function to calculate absolute magnitude of an NEO

Basically just implementing the following expressions

$$ m = H(\alpha) + 5 \log_{10} (d_{\rm ast, \odot} \cdot d_{\rm ast, \oplus}) $$

$$ H(\alpha) = H - 2.5 \log_{10} ((1 - G) \phi_1(\alpha) + G \phi_2(\alpha)) $$

$$ \phi_1(\alpha) = \exp(-3.33 \tan^{0.63} (0.5 \alpha)) $$

$$ \phi_2(\alpha) = \exp(1.87 \tan^{1.22} (0.5 \alpha)) $$

Improve orbits+schedule plots

A couple of things to improve the plots

Quick things

  • Larger point size
  • Discrete colourbar
  • Add limits option for full 15-night schedule so it stays fixed
  • Grid version instead of interactive version

Fixes

  • Distance colourbar seems to be heliocentric not topocentric - fix it ๐Ÿ˜›
  • Don't plot for every single field time

Additions

  • Add a point for where the object is in reality
  • Plot points at the start and end of the night, joining them with a line (hopefully we'll see a shaded region emerge)

Full Flowchart

I want to make a full flowchart of the whole nightly workflow (hybrid catalogue + NEOCP stuff)

Discussion

Honestly not sure exactly what goes into the discussion here, may move some stuff from the results?

Threshold for sending to NEOCP

What detection probability should necessitate an object being sent to the NEOCP?

Should be able to decide this statistically once we have a large sample of probabilities/realities and maximise the accuracy.

Conclusions

A fair dinkum of this is here too, it basically just needs #5 to be finished first.

  • Add conclusions about mitigation success
  • Write a summary of what we said in the paper

Final steps before submission

  • Add Siegfried Eggl
  • Re-do analysis with latest numbers
    • Recreate the hybrid catalogue with latest MPCORB
    • Ask Sam to re-run mock observations on the new hybrid catalogue
    • digest run on the first year
  • Run digest2 at the start of each year (removing discovered objects) - check ratio of NEOs to unknown MBAs with digest2 > 65
    - For a plot in the discussion
  • How much better do things get if we make an extreme ecliptic latitude cut? When applying algorithm as well do we get a fairly pure sample for follow-up
  • Plot of apparent magnitude distribution (also with H < 22 - are we finding the big things?)
  • Something like apparent magnitude [22, 24] with high ecliptic latitudes seems like a promising cut, explore!

Create (interactive) visualisation of Oracle Algorithm

Use this from ipywidgets import interact to show plots of predictions for one particular object. It makes one plot for each night showing the schedule and positions.

  • Molleweide projection
  • Version coloured by distance
  • Version coloured by whether orbit is "findable"

I'm also interested in the idea of animating the plot for one night where you can see the scheduled visits and object locations change over time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.