GithubHelp home page GithubHelp logo

delicatessen's Introduction


Serving you all the finest TESS visualizations at online.tess.science.

Installation

Developers:

pip install -e ".[develop]"
pre-commit install

This will install the repository in developer mode and enable pre-commit hooks for automatic formatting using the black python formatter. Whenever you commit, pre-commit will automatically format your code; note that if changes are made, you'll need to run the commit command again.

Users:

pip install .

Usage

To start the default bokeh server with a test data set (included in the repo), run the following from the command line:

deli

To start a bokeh server in "development mode" (which auto-detects modified files so you don't have to keep stopping/starting the server), run:

deli --dev

You can also start a server with your own data file by passing in the full path to the data file via the --args argument to bokeh serve. For example, to visualize the data table stored in here/is/my/data.fits, run:

deli --args here/is/my/data.fits

Check out the issues if you are interested in contributing to this project!

delicatessen's People

Contributors

rodluger avatar adrn avatar afeinstein20 avatar trevordavid avatar megbedell avatar namagu avatar

Stargazers

Jerome de Leon avatar  avatar

Watchers

 avatar James Cloos avatar  avatar  avatar  avatar  avatar  avatar Oliver Hall avatar  avatar

delicatessen's Issues

Human-readable axis labels

We need to implement a translator for the entries in the catalogs, so that parameters like "ra" and "dec" show up as "Right Ascension" and "Declination" (bonus if the units show up as well!)

There are many standard parameters that we could just code up into a JSON file, but @adrn suggested looking into the fuzzywuzzy package for fuzzy string matching.

Bug in selecting "source_id" for Marker size

Selecting "source_id" for marker size causes all data on the primary plot to disappear. It also removes the axis labels and tick labels. If the user then changes the selection for marker size, the plot appearance gets messed up (we see a zoomed-in version of a corner of the plot). The page needs to be refreshed in order to undo this.

I suspect the issue is with the fact that the dynamic range of the values in "source_id" is huge. My simple scaling hack to convert a value to a marker size needs to be amended to work for parameters such as this one.

Add a loading screen for the tools

For tools like Deli-LATTE, we should display a loading message in the bottom plot while the light curve is downloaded. As @megbedell suggested, we should also clear the plot while new data is being fetched (currently, it continues to display the previous selection until the new one is plotted, which can lead to some confusion). Finally, if a point is selected on the primary plot and then a tool is chosen, nothing happens. We should check for selected points in the tool selection callback to automatically update the lower plot.

Support 3D plots?

This is perhaps a longer term goal, but Bokeh actually allows you to easily wrap third-party JS libraries. We could follow the example here to implement 3D plots in delicatessen to visualize 3 parameters at once.

This could be a fun pet project for someone -- certainly not required functionality at this point.

Add more viz tools

@noraeisner is working on Deli-LATTE, but other tools are welcome! Ideas and suggestions welcome. A simple one might just be a simple periodogram tool.

Plot multiple datasets simultaneously

It would be super cool if the "Datasets" selector actually allowed multiple selections, and each time the user selected a new item, the color of the highlighting would change, and correspond to the color of the points on the plot. This would easily allow users to simultaneously plot two or more datasets (I'm thinking Kepler and TESS, for instance) and automatically color their points differently.

Improve the toolbar on the primary plot

Currently we have a whole bunch of tools enabled on the primary plot:

image

These are defined here. Not all of these are useful/necessary. Let's re-think what we need to reduce clutter.

Lots of these tools can be customized. For instance, I don't like the fact that the cursor is a crosshairs; it makes it awkward when selecting points on the primary plot. Also, it's currently possible to select multiple points, which doesn't make sense for tools like LATTE, which show only a single light curve. The tools that are available in the primary plot should be a function of the current tool selected on the control panel.

Appearance checkbox tools remove axis labels

Selecting checkboxes like "Flip x-axis" or "Log scale y-axis" causes the axis labels on the primary plot to disappear. (They get restored whenever a new parameter is selected.)

Work on the "Garnishes" tab

Place the checkboxes in the "appearance" tab within a Div with a nice border (as in the "data" tab) to maintain a consistent styling.

Add more tools, such as:

  • colormap picker for the marker color scheme
  • scale (all) the marker sizes up or down
  • change marker opacity (alpha)
    etc.

Add code to switch datasets

Currently there's only one dataset ("test data"), but we should add another test dataset and implement dataset switching.

Restore the "Specials tab"

I removed it to make room for the "Tools" control panel. We should try to add it to the main page if possible, or stick it in its own tab.

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.