Blame view

web/view/home.html.jinja2 3.52 KB
9390ec89   Goutte   Initial experimen...
1
2
3
4
5
6
{% extends 'layout.html.jinja2' %}
{% set menu_section = 'home' %}
{% block title %}Home{% endblock %}

{% block content %}

84cb553d   Goutte   Move to material ...
7
8
<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--4-col">
c42fea3a   Goutte   Rework the CSS wi...
9
10
11
12
13
14
15
16
17
18
    <section id="orbits"></section>
    <section id="orbiters_filters">
      <img src="{{ static('img/planet/jupiter_128.png') }}" width="64px" height="64px" alt="Jupiter">
      <img src="{{ static('img/planet/earth_128.png') }}" width="64px" height="64px" alt="Earth (locked)" class="locked">
      <img src="{{ static('img/planet/mars_128.png') }}" width="64px" height="64px" alt="Mars (locked)" class="locked">
    </section>
    <hr class="clear">
    <p>Measures</p>
    <p>Options</p>
  </div>
84cb553d   Goutte   Move to material ...
19
  <div class="mdl-cell mdl-cell--8-col">
c42fea3a   Goutte   Rework the CSS wi...
20
21
22
    <section id="time_series"></section>
  </div>
</div>
9390ec89   Goutte   Initial experimen...
23
24
25
26
27
28

{% endblock %}


{% block styles %}
  <style>
c42fea3a   Goutte   Rework the CSS wi...
29
30
31
32
    html, body {
      background-color: #322e3f;
      color: #e3e3e3;
    }
18f38374   Goutte   Crisp edges for a...
33
34
    .axis path, .axis line {
      fill: none;
c42fea3a   Goutte   Rework the CSS wi...
35
      stroke: #f4f4f4;
18f38374   Goutte   Crisp edges for a...
36
37
38
      shape-rendering: crispEdges;
      stroke-width: 1px;
    }
c42fea3a   Goutte   Rework the CSS wi...
39
40
41
    svg text {
      fill: #f4f4f4;
    }
9390ec89   Goutte   Initial experimen...
42
43
44
45
46
    path.line {
      fill: none;
      stroke: steelblue;
      stroke-width: 1px;
    }
c42fea3a   Goutte   Rework the CSS wi...
47
    path.orbit.orbit_section {
2d2af24b   Goutte   Add a basic orbit...
48
49
      fill: none;
      stroke: steelblue;
c42fea3a   Goutte   Rework the CSS wi...
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
      stroke-width: 3px;
    }
    ellipse.orbit.orbit_ellipse {
      fill: none;
      stroke: #a3a3a3;
      stroke-width: 1px;
      stroke-dasharray: 5px;
    }
    #orbiters_filters img {
      float: left;
    }
    #orbiters_filters img.locked {
      -webkit-filter: grayscale(100%);
         -moz-filter: grayscale(100%);
           -o-filter: grayscale(100%);
          -ms-filter: grayscale(100%);
              filter: grayscale(100%);
    }

    #orbits {
      background-image: url('{{ static('img/orbitals_background.png') }}');
      background-repeat: repeat;
      background-size: 42%;
2d2af24b   Goutte   Add a basic orbit...
73
    }
9390ec89   Goutte   Initial experimen...
74
75
76
77
78
  </style>
{% endblock %}


{% block scripts_footer %}
84cb553d   Goutte   Move to material ...
79
<script type="application/javascript" src="{{ static('js/vendor/d3.min.js') }}"></script>
438929a4   Goutte   Rewrite the orbit...
80
<script type="application/javascript" src="{{ static('js/swapp.js') }}"></script>
9390ec89   Goutte   Initial experimen...
81
82
<script type="application/javascript">

c42fea3a   Goutte   Rework the CSS wi...
83
84
// Sorry, no ES6. Feel free to refactor.

438929a4   Goutte   Rewrite the orbit...
85
86
87
88
89
90
91
var orbiters = {
  jupiter: {
    name: "Jupiter",
    orbit: { a: 5.45516759, b: 4.95155843 },
    img: "{{ static('img/planet/jupiter_128.png') }}"
  }
};
9390ec89   Goutte   Initial experimen...
92
93

jQuery().ready(function($){
438929a4   Goutte   Rewrite the orbit...
94
95
96
  var timeSeries = [];
  var orbits;

9390ec89   Goutte   Initial experimen...
97
98
  d3.csv("{{ url_for('get_csv') }}", function(csv){
    var timeFormat = d3.timeParse('%Y-%m-%dT%H:%M:%S%Z');
c42fea3a   Goutte   Rework the CSS wi...
99
    var data = {'pdyn': [], 'magn': [], 'vlen': []};
9390ec89   Goutte   Initial experimen...
100
101
102
    csv.forEach(function (d) {
      data['pdyn'].push({x: timeFormat(d['time']), y: parseFloat(d['pdyn'])});
      data['magn'].push({x: timeFormat(d['time']), y: parseFloat(d['magn'])});
c42fea3a   Goutte   Rework the CSS wi...
103
      data['vlen'].push({x: timeFormat(d['time']), y: parseFloat(d['vlen'])});
9390ec89   Goutte   Initial experimen...
104
    });
438929a4   Goutte   Rewrite the orbit...
105
106
107
108
109
110
111
112
113
114
115
116

    var container = "#time_series";
    timeSeries.push(new TimeSeries(
        'Dynamic Pressure (nPa)', data['pdyn'], container
    ));
    timeSeries.push(new TimeSeries(
        'Magnetism (nT)', data['magn'], container
    ));
    timeSeries.push(new TimeSeries(
        'Velocity (km/s)', data['vlen'], container
    ));

9390ec89   Goutte   Initial experimen...
117
  });
438929a4   Goutte   Rewrite the orbit...
118

2d2af24b   Goutte   Add a basic orbit...
119
120
121
122
123
  d3.csv("{{ url_for('get_astral_coordinates_csv') }}", function(csv){
    var data = [];
    csv.forEach(function (d) {
      data.push({x: parseFloat(d['x_hci']), y: parseFloat(d['y_hci'])});
    });
438929a4   Goutte   Rewrite the orbit...
124
125
126
127
128
129
130

    orbits = new Orbits(orbiters, data, '#orbits');
  });

  window.addEventListener('resize', function() {
    timeSeries.forEach(function(ts){ ts.resize(); });
    orbits.resize();
2d2af24b   Goutte   Add a basic orbit...
131
132
  });

9390ec89   Goutte   Initial experimen...
133
134
135
136
});
</script>

{% endblock %}