Code Monkey home page Code Monkey logo

atlas's People

Contributors

rprechelt avatar amanda-pagul avatar mcnowinski avatar knightss27 avatar dengyijia avatar

Watchers

Marc Berthoud avatar James Cloos avatar  avatar  avatar

atlas's Issues

Bias Subtraction

We need a Luigi task to perform bias subtraction using the master bias created in #13

Scheduling algorithm for queue

Implement a scheduling algorithm to maximize the effectiveness of the queue. Possible options

  1. Schedule images so they are taken when the object is highest in the sky?
  2. Schedule based upon priority? (user, admin, professor?)

This needs refinement and discussion. See Viv for more information/thoughts.

Change action buttons when completed

When an observation or session is complete, we should change the action button to be "green" (info html class) and remove the ability to delete the observation/session.

Observation Scheduler

Given a list of observations (by RA-DEC), return a list of observations and what time to observe them.

Background on login page flashes white

When a user opens the login page, the background loads, but it then flashes white for a second or two, before returning the background. This is undesired behaviour (obviously).

Is it related to the automatic weather-based background changing?

Aladin image preview not working

The Aladin image preview is not working; browsers are blocking it since it makes requests to http (insecure) sites from our https site.

Create Javascript Telescope class

In order to support realtime control of the telescope from the web app, we need a Javascript version of our Python client. The JS must maintain the exact same behaviour/API as the Python version. This should be a fairly straightforward line by line conversion from Python to Javascript.

See here for a reference on Javascript classes for those unfamiliar.

Due to the repetitive nature of the class, (how each class calls its own name in the commands), this could probably be done with some Javascript trickery in only a handful of lines. Extra points for completing it that way!

Walkthrough

A basic walk through stepping users through the site should be developed using bootstrap-tours. A flag should be called in the users database entry so that they only see the walkthrough once.

weather_ok inefficient

telescope.weather_ok calls get_cloud, get_dew, get_moon, get_rain, and get_sun, despite most of that information available in ONE call to tx taux. This should be rewritten with a better regular expression or another method.

Switching to database server

Since the database info needs to be accessed from the pipeline, the web server, and potentially other sources, it's best if we switch to a database server (as opposed to a SQLite instance contained within the web app).

We need to evaluate which database product best fits our need. If SQL, Postgres is probably the best option. If not, something else (Rethnink? Mongo?)

Timeout errors in find_target

The HTTP requests that occur during find_target occasionally timeout (we may be hitting a rate limiter); this throws a timeout exception. We should catch this exception, sleep for 1 second, and try that object again because otherwise the object is never scheduled.

Editable text field does not show if value is empty

When setting up a new user, the "edit profile" section is blank as the values for each field (i.e. firstName) are blank, and are therefore not rendered by editableText. We need to still render a text box even when the value is empty.

Chat box for admin to communicate with observers

A chat box on the admin web page to allow communication to

  1. Every logged in GUI user
  2. The active observer using the telescope

This must be implemented in the web app.

Skills required:

  1. Some Javascript knowledge (we use Meteor for our JS backend)
  2. Some HTML/CSS knowledge (use HTML/CSS code from here in order to maintain styling consistency)

See 1, 2. These packages may allow us to do this very easily.

Queue Submission Page

Design and implementation of queue page, with requests to telescope API to get telescope status, and submit new queue requests.

Allow users to change their password

Currently, the only way to change your password is to logout and use the reset password link. We should allow users to change their password while logged in without sending a reset email.

WCS Correction in Pipeline

We need to create a Luigi task to perform WCS correction on each of the images after dark/bias subtraction, and flat correction.

Individual User Metrics

It's been requested that we keep track of individual user metrics, such as:

  1. Number of total images taken on SEO
  2. When they last used SEO
  3. ??

Dome cameras in GUI

There's a desire to add the two dome cameras to the real-time control page/GUI. These cameras could be forwarded to RTSP streams on sirius and then accessed from the web page.

This task requires some experience with HTML/JS programming to get access to the RTSP stream.

Add Astrometry.net as submodule

We need to enable astrometry-net as a submodule of the pipeline. This will require

  1. Creating a script to initialize the download of astrometry-net into pipeline/astrometry
  2. Need to add a method of specifying the index files in config.yaml
  3. Need script to automatically download the appropriate index files into pipeline/astrometry/indexes

Creating master frames

We need a Luigi task to create/find master frames i.e.

  1. Coadd all dark frames taken in the session and produce a master dark
  2. Coadd all bias frames taken in the session and produce a master bias
  3. Find the current master flat

Add RA/Dec to every observation before scheduling

The current scheduling algorithm requires RA/Dec information. The scheduler either needs to look this up on the fly or we need to have computed the RA/Dec for every observation beforehand and save it to the object.

WCS solved called repeatedly on failed observations

If we image an object that fails WCS pointing, the current algorithm still attempts to use pinpoint at every pointing cycle for that object, causing the object to take an additional 8-10 minutes past what is needed since we have to wait for WCS to time out.

We should check the status of pinpoint the first time it is called for that object; if it fails the first time, we should only do the basic pointing for that object and not attempt to WCS pinpoint.

Automatic Focusing

We need to develop an autofocus routine to be called during queue startup to ensure good focus for the following imaging.

See discussion and use of Laplacion (LoG) filters here. Also kernel discussion [here](https://en.wikipedia.org/wiki/Kernel_(image_processing). Initial hacky attempts using LoG filter shows promising results.

Initial function layout here. Implementation should be confined to that file.

evaluate() should return the effective focus of the image using LoG filters, and then scipy's Newton's Method can be called to automatically optimize the focus function.

Automatic Flat Taking

We need a routine to automatically take flats during startup. It will be based off @mcnowinski's existing flatmatt script for SEO. As requirements are decided, please update this issue.

This should be implemented in this file and be based heavily off fatmatt

Sending mail from pipeline

We need a Luigi task that takes the final folder of output files, puts them in a zipped tarball, and then emails then using sendmail to the user who requested the files.

Error adding observations

When adding more than one observation, an error message "An Observation with that name already exists" appears.

SEO Home/Login page

Create a functioning home page where users can sign into their accounts or create new ones.

Copy programs

A request to copy public programs into your own account; this should be an action listed on public programs.

Asteroid Imaging Routine

Current execution strategies only support imaging stars, galaxies and other DSO's. We need an execution strategy that is optimized for asteroids. @mcnowinski is leading this effort.

To support asteroid imaging, we need an asteroid scheduler and executor to be implemented here

@mcnowinski can provide more details and requirements (please update the issue once they have been decided)

Telescope file operations

Since Atlas can run on a different server than the telescope controller, we need a transparent file operation layer that we can use that abstracts away dealing with copying and deleting files. Something like

file = telescope.open('filename.fits') # returns atlas.File object
file.read()
file.write()

In the backend, this should copy the file to a /tmp/, and store a mapping in the class header so that subsequent calls to telescope.open('filename.fits') returns the local /tmp/ copy and doesn't transfer the file again.

Flat Correction

We need a Luigi task to perform flat correction using the flat found by #13

Login + Password Reset

Add login page to Flask and ensure that user login, registration and password reset is working.

Dark Subtraction

We need a Luigi task to perform dark subtraction using the master dark created in #13

Automatically execute objects when telescope is available

Once the executor is finished calibrating, it needs to query the Google Calendar API to check whether anyone has the telescope scheduled. If the telescope is completely available, the telescope should automatically complete observations.

Needed features:

  • When creating an observation in the web app, a user needs a tickbox to disable automatic completion (in case they are trying to take objects at particular times throughout the month)
  • Method to query Google Calendar API from the atlas server and decide whether to automatically observe
  • How do we pick the order of objects? Do we sort by submit age, by quality, or some factor of the two? This needs to be decided. Thoughts?

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.