GithubHelp home page GithubHelp logo

lsstdarkmatter / dark-matter-graph Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 2.0 287 KB

Create dark matter graphics

Home Page: https://lsstdarkmatter.github.io/dark-matter-graph/

License: MIT License

Python 21.40% HTML 69.23% CSS 2.48% JavaScript 6.88%
lsst dark-matter visualization d3

dark-matter-graph's Introduction

LSST Dark Matter Graphic

This web application uses D3.js to visualize the intertwined elements about probing the nature of dark matter with LSST.

The design concept largely comes from coversations between @kadrlica, @aimalz, and @yymao during the 2017 LSST DESC Sprint Week at ANL (see the discussions in #9, #10, #11, #13, and this table in LSSTDESC/LSSTDarkMatter), and also their conversations with @sazabi4 and @wadawson.

Current web app development is led by @yymao with content curated by @kadrlica. We hope to see more contribution from the community.

Click to see the network diagram Click to see the adjacency matrix
Click to submit a new idea

Local Installation

Below are local installation instructions for developers.

  1. Clone this repo:

    git clone https://github.com/lsstdarkmatter/dark-matter-graph.git
    cd dark-matter-graph
    

    Or update your local clone if you already have one:

    cd dark-matter-graph
    git pull
    
  2. (Optional) Edit data/data.yaml, and then convert it to the json file by running:

    data/prepare_data.py
    

    (See this readme to learn more the format of data.yaml and data.json.)

    Note: this step is slow because it connects to ADS online to resolve references. To speed things up for testing purposes, add option --no-ads to the command.

  3. Start a Python http server:

    ./server.py
    

    If the page loads slowly, or does not load the most up-to-date version, try pressing ctrl + shift + R (or cmd + shift + R on a Mac) in your browser.

dark-matter-graph's People

Contributors

kadrlica avatar yymao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

dark-matter-graph's Issues

Reference formatting?

How hard is it to format the references as "First Author (Year)" instead of the ADS key?

Display column header categories in boxes

If we are going to have descriptions for the categories (i.e., model, probe, measurement, target), then I think it would make sense to have them appear in boxes similar to those of the regular nodes. This would encourage the user to treat them (and click on them) like normal nodes. I think it would make sense to give them a different color and font weight to distinguish them from regular nodes.

HTML formating in descriptions

@yymao is there any way to render html text in the description text? For example, I was trying to bold something by adding the <b> tag, but this didn't seem to render.

Thumbnail graphics in README.md

Once we get the graphical representations in a semi-stable state it would be cool to add a small thumbnail PNGs to the README page. If the user clicks on the PNG, it would take them to the webpage of the graphic.

Flesh out yaml data

We need to add content to and cross check the content of data.yaml. This includes:

  1. Syncing with the working copy of the google sheet.
  2. Adding content from table.md

Instructions to click

I think we need to add instructions telling the user to click on a node to see more details.

Increase size of matrix column/row label

The matrix view has the potential to get quite large. It would be awesome if the mouse-over highlighting could also increase the fontsize of the columns/rows label highlighted. I don't know how difficult this is.

Display node descriptions

We have talked before about adding "tooltips" with node descriptions. I think it would be best to either display these in a sidebar or only on to display them on click. This would allow the user to continue to mouse-over the network and see connectivity (which is a nice feature of the current implementation).

Add an "adjacency matrix" visualization

Another nice way to visualize our "dark matter graph" is to use an adjacency matrix, as @wadawson proposed. @kadrlica and I suggest that we implement an "adjacency matrix" representation in our web app, in addition to the network graph we currently have.

This can certainly archivable with the D3.js library. A nice (and much more sophisticated) example can be found here.

Text overflowing nodes

This is a browser issue because I have my text size set to "large" rather than "normal", but the text is overflowing the nodes for several probes: "MACHO Mass Function" and "Anomalous Energy Loss" (see attached). @yymao any ideas? Probably not worth fixing, but figured I'd ask.

image

add in support capability/resource and survey synergy into the graph

It would be good to have some information on additional observations/datasets in addition to the LSST data, e.g. what additional observation/dataset is needed, what telescope/instrument (or ToO) capability is needed, synergies with other telescope or surveys, etc. This will help organize the synergy of LSST with other resources and also give bits of advice on the upcoming 2020 decadal survey.

Allow zoom on dark matter graph

Transferring from LSSTDESC/LSSTDarkMatter#9 ...

Is it possible to allow the user to dynamically change the zoom of the dark matter graph? I'm able to change this with the browsers zoom level, but it might be useful to make this part of the webapp. (Also, I expect that the content will only grow, and there may be some reason someone would want to visualize the whole network at once.)

Add reference links to sidebar text

As part of #19 I've been (sporadically) adding ADS references for different nodes. It would be super cool if we could build ADS links and add them to the sidebar text.

distinguish/visualize the concepts of "paths" and "links" better

There are two distinct kinds of "objects" that describe how different nodes are connected:

  • The first kind we called "paths", as specified in the YMAL data files, provide the connections of among the four categories. Each path connects one node in each category.
  • The second kind we called "links", which are generated from "paths", are the links between nodes that are in adjacent categories. For example, a link connects "SIDM" in Models and "halo density profile" in Probes.

Each "path" would exactly has N-1 "links", where N is the number of categories (currently N=4). Two different paths could share some links

Right now the visualization mostly focus on links rather than paths. Even in the network diagram view, the highlighted paths when mouseover are all possible paths, not just the paths we have entered in the YMAL file.

The question is how to better visualize the "paths" in the matrix view, and also how to distinguish entered paths from all possible paths in the network diagram view. This is not entirely trivial (both conceptually and technically) so I open this issue to solicit suggestions.

Remove individual/population distinction

Following the discussion with @yymao @ahgpeter and @wadawson, I'm planning to remove the distinction between individual sources and populations of sources. I think this distinction is still important to discuss in the white paper, but I think it adds a significant amount of complexity to the graphics without providing a straightforward interpretation.

Add cluster subhalo abundance

Form submission from @idellant to add cluster subhalo abundance cluster and distributions using weak lensing/galaxy populations/X-rays. This partially already in the diagram, but the subhalo abundance isn't linked to clusters yet.

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.