Commit 604616e41b01c56609bf374d2364eeb966fbeacd
1 parent
8f98558e
Exists in
master
and in
2 other branches
Misc changes from past two weeks.
Showing
6 changed files
with
186 additions
and
144 deletions
Show diff stats
CHANGELOG.md
1 | +## Nicolas | ||
2 | + | ||
3 | +- prévoir la possibilité à l'utilisateur d'afficher les paramètres (séries temporelles) en échelle log ou linéaire | ||
4 | +- rajouter uranus et neptune comme planètes cibles | ||
5 | +- permettre à l'utilisateur de choisir inner heliosphere (jusqu'à mars) ou outer heliosphere (jusqu'à saturne) pour la visualisation des éphémérides planétaires | ||
6 | +- rajouter MAVEN, New Horizons, Cassini, Galileo, ExoMars comme spacecraft cible | ||
7 | +- rajouter le titre de Heliopropa dans le bandeau du haut (déplacer Planetary Space Weather Services et la version dans le bandeau du bas si besoin) | ||
8 | +- modifier le bandeau du bas pour faire apparaître sur une seule ligne les remerciements à la commission européenne source de financement | ||
9 | +- prévoir la possibilité à l'utilisateur d'afficher le temps en Day Of Year | ||
10 | +- rajouter les ticks sur l'échelle des temps en X | ||
11 | +- quant on zoome modifier l'échelle en Y afin qu'elle s'adapte aux valeurs maximales de l'intervalle du zoom | ||
12 | +- modifier le bandeau vertical d'affichage des choix utilisateurs pour qu'il soit plus petit (en particulier les champs paramètres) | ||
13 | +- ajouter dans le bandeau vertical un onglet INPUT DATA avec 3 choix possibles: STEREO-A, STEREO-B, L1 | ||
14 | +- ajouter dans le bandeau vertical un onglet LAYERS avec 3 choix possibles: Jupiter Thermosphere Model, HST Jupiter Observations, HST Saturn Observations | ||
15 | +- ajouter un bouton ALERT qui permet d'ouvrir une nouvelle page de formulaire ou l'utilisateur entrerait les données suivantes: | ||
16 | |||
17 | + * target (= planète, spacecraft, comet) | ||
18 | + * submit (envoyé ensuite vers un webservice d'AMDA à construire) | ||
19 | +- prévoir un bouton EPN-TAP ou l'on mettrait l'outil en relation avec le client VESPA développé par nathanaël | ||
20 | +- juno/rosetta doivent aussi bouger le long de leur orbite lorsque l'on parcourt à la souris les données de la série temporelle; pour les intervalles de temps où rosetta n'existe plus (crash à la surface de la comète) il faut qu'elle disparaisse; pour les intervalles de temps où juno est en orbite autour de jupiter il faut que juno suive jupiter | ||
21 | + | ||
22 | + | ||
1 | ## Future ? | 23 | ## Future ? |
2 | 24 | ||
3 | - [ ] Optimize data aggregation (numpy vectorization?) | 25 | - [ ] Optimize data aggregation (numpy vectorization?) |
4 | -- [ ] Credit the author of the pixel art planets | 26 | +- [ ] Credit the author of the pixel art planets (can't find it again) |
5 | - [ ] Add a README to the download tarball | 27 | - [ ] Add a README to the download tarball |
6 | - [ ] Set the log level to _error_ in production (see `web/run.py`) | 28 | - [ ] Set the log level to _error_ in production (see `web/run.py`) |
7 | - [ ] CRON statements to call the cache cleanup and warmup | 29 | - [ ] CRON statements to call the cache cleanup and warmup |
8 | - [ ] Give the future data another color | 30 | - [ ] Give the future data another color |
9 | 31 | ||
10 | -An heliospheric propagation 1D MHD model for solar wind prediction at planets, probes and comets. | ||
11 | 32 | ||
12 | 33 | ||
13 | ## 1.0.0-rc6 | 34 | ## 1.0.0-rc6 |
14 | 35 | ||
15 | - [ ] Rework the images of Rosetta and Juno | 36 | - [ ] Rework the images of Rosetta and Juno |
16 | - [ ] Enable p67 | 37 | - [ ] Enable p67 |
38 | +- [x] Move the version to the footer | ||
39 | +- [x] Fix various issues with spacepy and CDF generation | ||
17 | 40 | ||
18 | 41 | ||
19 | ## 1.0.0-rc5 | 42 | ## 1.0.0-rc5 |
config.yml
@@ -13,7 +13,8 @@ meta: | @@ -13,7 +13,8 @@ meta: | ||
13 | - space | 13 | - space |
14 | - weather | 14 | - weather |
15 | # Will be shown by search engines below the title of the page. | 15 | # Will be shown by search engines below the title of the page. |
16 | - description: Space weather predictions around solar celestial bodies. | 16 | + # Will also be shown in the header if there's enough room |
17 | + description: An heliospheric propagation 1D MHD model for solar wind prediction at planets, probes and comets. | ||
17 | 18 | ||
18 | # The top bar | 19 | # The top bar |
19 | header: | 20 | header: |
@@ -161,6 +162,7 @@ targets: | @@ -161,6 +162,7 @@ targets: | ||
161 | stopped_at: '2014-08-02T00:00:00' | 162 | stopped_at: '2014-08-02T00:00:00' |
162 | - slug: 'p67_orb_all' | 163 | - slug: 'p67_orb_all' |
163 | started_at: '2014-08-02T00:00:00' | 164 | started_at: '2014-08-02T00:00:00' |
165 | + #stopped_at: '2016-09-30T11:19:00' | ||
164 | parameters: | 166 | parameters: |
165 | hee: 'XYZ_HEE' | 167 | hee: 'XYZ_HEE' |
166 | models: | 168 | models: |
@@ -174,9 +176,9 @@ targets: | @@ -174,9 +176,9 @@ targets: | ||
174 | orbit: | 176 | orbit: |
175 | models: | 177 | models: |
176 | - slug: 'juno_cruise_all' | 178 | - slug: 'juno_cruise_all' |
177 | - stopped_at: '2016-07-01T00:00:00' | 179 | + stopped_at: '2016-07-05T03:53:00' |
178 | - slug: 'jupiter_orb_all' | 180 | - slug: 'jupiter_orb_all' |
179 | - started_at: '2016-07-01T00:00:00' | 181 | + started_at: '2016-07-05T03:53:00' |
180 | models: | 182 | models: |
181 | - slug: 'tao_juno_sw' | 183 | - slug: 'tao_juno_sw' |
182 | locked: false | 184 | locked: false |
web/run.py
@@ -995,6 +995,11 @@ def download_targets_cdf(targets, started_at, stopped_at): | @@ -995,6 +995,11 @@ def download_targets_cdf(targets, started_at, stopped_at): | ||
995 | environ['CDF_LIB'] = CDF_LIB | 995 | environ['CDF_LIB'] = CDF_LIB |
996 | from spacepy import pycdf | 996 | from spacepy import pycdf |
997 | try: | 997 | try: |
998 | + import spacepy.toolbox | ||
999 | + spacepy.toolbox.update() | ||
1000 | + except Exception as e: | ||
1001 | + log.error("Failed to update spacepy : %s." % e) | ||
1002 | + try: | ||
998 | cdf_handle = pycdf.CDF(cdf_path, masterpath='') | 1003 | cdf_handle = pycdf.CDF(cdf_path, masterpath='') |
999 | description = "Model and orbit data for %s." % \ | 1004 | description = "Model and orbit data for %s." % \ |
1000 | ', '.join([t['name'] for t in targets_configs]) | 1005 | ', '.join([t['name'] for t in targets_configs]) |
web/static/css/main.css
@@ -24,10 +24,20 @@ | @@ -24,10 +24,20 @@ | ||
24 | 24 | ||
25 | /** TYPOGRAPHY ***************************************************************/ | 25 | /** TYPOGRAPHY ***************************************************************/ |
26 | 26 | ||
27 | +header *::-moz-selection { | ||
28 | + background: #0049fc; | ||
29 | + text-shadow: none; | ||
30 | +} | ||
31 | + | ||
27 | header .mdl-layout-title { | 32 | header .mdl-layout-title { |
28 | font-family: 'Baumans', cursive; | 33 | font-family: 'Baumans', cursive; |
29 | } | 34 | } |
30 | 35 | ||
36 | +#header-description { | ||
37 | + font-style: italic; | ||
38 | + color: #e1e1e1; | ||
39 | +} | ||
40 | + | ||
31 | /** LAYOUT *******************************************************************/ | 41 | /** LAYOUT *******************************************************************/ |
32 | 42 | ||
33 | body { | 43 | body { |
web/view/home.html.jinja2
@@ -379,144 +379,144 @@ | @@ -379,144 +379,144 @@ | ||
379 | background-color: #c8d3e1; | 379 | background-color: #c8d3e1; |
380 | } | 380 | } |
381 | 381 | ||
382 | -.small-loader-container { | ||
383 | - width: 27px; | ||
384 | - margin: 0 auto; | ||
385 | - background: none; | ||
386 | - pointer-events: none; | ||
387 | -} | ||
388 | - | ||
389 | -.small-loader-circle-1 { | ||
390 | - height: 27px; | ||
391 | - width: 27px; | ||
392 | - background: rgba(255, 238, 195, 0.72); | ||
393 | -} | ||
394 | - | ||
395 | -.small-loader-circle-2 { | ||
396 | - height: 22px; | ||
397 | - width: 22px; | ||
398 | - background: none; | ||
399 | -{# background: rgba(56, 53, 194, 0.5);#} | ||
400 | -} | ||
401 | - | ||
402 | -.small-loader-circle-3 { | ||
403 | - height: 18px; | ||
404 | - width: 18px; | ||
405 | - background: rgba(29, 65, 255, 0.9); | ||
406 | -} | ||
407 | - | ||
408 | -.small-loader-circle-4 { | ||
409 | - height: 13px; | ||
410 | - width: 13px; | ||
411 | - background: none; | ||
412 | -{# background: rgba(98, 109, 237, 0.5);#} | ||
413 | -} | ||
414 | - | ||
415 | -.small-loader-circle-5 { | ||
416 | - height: 9px; | ||
417 | - width: 9px; | ||
418 | - background: rgba(238, 238, 238, 0.8); | ||
419 | -} | ||
420 | - | ||
421 | -.small-loader-circle-6 { | ||
422 | - height: 4px; | ||
423 | - width: 4px; | ||
424 | - background: none; | ||
425 | -{# background: rgba(0, 0, 0, 0);#} | ||
426 | -} | ||
427 | - | ||
428 | -.small-loader-circle-7 { | ||
429 | - height: 2px; | ||
430 | - width: 2px; | ||
431 | - background: rgb(110, 102, 255); | ||
432 | -} | ||
433 | - | ||
434 | -.small-loader-circle-1, | ||
435 | -.small-loader-circle-2, | ||
436 | -.small-loader-circle-3, | ||
437 | -.small-loader-circle-4, | ||
438 | -.small-loader-circle-5, | ||
439 | -.small-loader-circle-6, | ||
440 | -.small-loader-circle-7 { | ||
441 | - border-bottom: none; | ||
442 | - border-radius: 50%; | ||
443 | - -o-border-radius: 50%; | ||
444 | - -ms-border-radius: 50%; | ||
445 | - -webkit-border-radius: 50%; | ||
446 | - -moz-border-radius: 50%; | ||
447 | - box-shadow: 0px 0px 0px rgba(0,0,0,0.1); | ||
448 | - -o-box-shadow: 0px 0px 0px rgba(0,0,0,0.1); | ||
449 | - -ms-box-shadow: 0px 0px 0px rgba(0,0,0,0.1); | ||
450 | - -webkit-box-shadow: 0px 0px 0px rgba(0,0,0,0.1); | ||
451 | - -moz-box-shadow: 0px 0px 0px rgba(0,0,0,0.1); | ||
452 | - animation-name: small-loader-spin; | ||
453 | - -o-animation-name: small-loader-spin; | ||
454 | - -ms-animation-name: small-loader-spin; | ||
455 | - -webkit-animation-name: small-loader-spin; | ||
456 | - -moz-animation-name: small-loader-spin; | ||
457 | - animation-duration: 4600ms; | ||
458 | - -o-animation-duration: 4600ms; | ||
459 | - -ms-animation-duration: 4600ms; | ||
460 | - -webkit-animation-duration: 4600ms; | ||
461 | - -moz-animation-duration: 4600ms; | ||
462 | - animation-iteration-count: infinite; | ||
463 | - -o-animation-iteration-count: infinite; | ||
464 | - -ms-animation-iteration-count: infinite; | ||
465 | - -webkit-animation-iteration-count: infinite; | ||
466 | - -moz-animation-iteration-count: infinite; | ||
467 | - animation-timing-function: linear; | ||
468 | - -o-animation-timing-function: linear; | ||
469 | - -ms-animation-timing-function: linear; | ||
470 | - -webkit-animation-timing-function: linear; | ||
471 | - -moz-animation-timing-function: linear; | ||
472 | -} | ||
473 | - | ||
474 | - | ||
475 | - | ||
476 | -@keyframes small-loader-spin { | ||
477 | - from { | ||
478 | - transform: rotate(0deg); | ||
479 | - } | ||
480 | - to { | ||
481 | - transform: rotate(360deg); | ||
482 | - } | ||
483 | -} | ||
484 | - | ||
485 | -@-o-keyframes small-loader-spin { | ||
486 | - from { | ||
487 | - -o-transform: rotate(0deg); | ||
488 | - } | ||
489 | - to { | ||
490 | - -o-transform: rotate(360deg); | ||
491 | - } | ||
492 | -} | ||
493 | - | ||
494 | -@-ms-keyframes small-loader-spin { | ||
495 | - from { | ||
496 | - -ms-transform: rotate(0deg); | ||
497 | - } | ||
498 | - to { | ||
499 | - -ms-transform: rotate(360deg); | ||
500 | - } | ||
501 | -} | ||
502 | - | ||
503 | -@-webkit-keyframes small-loader-spin { | ||
504 | - from { | ||
505 | - -webkit-transform: rotate(0deg); | ||
506 | - } | ||
507 | - to { | ||
508 | - -webkit-transform: rotate(360deg); | ||
509 | - } | ||
510 | -} | ||
511 | - | ||
512 | -@-moz-keyframes small-loader-spin { | ||
513 | - from { | ||
514 | - -moz-transform: rotate(0deg); | ||
515 | - } | ||
516 | - to { | ||
517 | - -moz-transform: rotate(360deg); | ||
518 | - } | ||
519 | -} | 382 | + .small-loader-container { |
383 | + width: 27px; | ||
384 | + margin: 0 auto; | ||
385 | + background: none; | ||
386 | + pointer-events: none; | ||
387 | + } | ||
388 | + | ||
389 | + .small-loader-circle-1 { | ||
390 | + height: 27px; | ||
391 | + width: 27px; | ||
392 | + background: rgba(255, 238, 195, 0.72); | ||
393 | + } | ||
394 | + | ||
395 | + .small-loader-circle-2 { | ||
396 | + height: 22px; | ||
397 | + width: 22px; | ||
398 | + background: none; | ||
399 | + {# background: rgba(56, 53, 194, 0.5);#} | ||
400 | + } | ||
401 | + | ||
402 | + .small-loader-circle-3 { | ||
403 | + height: 18px; | ||
404 | + width: 18px; | ||
405 | + background: rgba(29, 65, 255, 0.9); | ||
406 | + } | ||
407 | + | ||
408 | + .small-loader-circle-4 { | ||
409 | + height: 13px; | ||
410 | + width: 13px; | ||
411 | + background: none; | ||
412 | + {# background: rgba(98, 109, 237, 0.5);#} | ||
413 | + } | ||
414 | + | ||
415 | + .small-loader-circle-5 { | ||
416 | + height: 9px; | ||
417 | + width: 9px; | ||
418 | + background: rgba(238, 238, 238, 0.8); | ||
419 | + } | ||
420 | + | ||
421 | + .small-loader-circle-6 { | ||
422 | + height: 4px; | ||
423 | + width: 4px; | ||
424 | + background: none; | ||
425 | + {# background: rgba(0, 0, 0, 0);#} | ||
426 | + } | ||
427 | + | ||
428 | + .small-loader-circle-7 { | ||
429 | + height: 2px; | ||
430 | + width: 2px; | ||
431 | + background: rgb(110, 102, 255); | ||
432 | + } | ||
433 | + | ||
434 | + .small-loader-circle-1, | ||
435 | + .small-loader-circle-2, | ||
436 | + .small-loader-circle-3, | ||
437 | + .small-loader-circle-4, | ||
438 | + .small-loader-circle-5, | ||
439 | + .small-loader-circle-6, | ||
440 | + .small-loader-circle-7 { | ||
441 | + border-bottom: none; | ||
442 | + border-radius: 50%; | ||
443 | + -o-border-radius: 50%; | ||
444 | + -ms-border-radius: 50%; | ||
445 | + -webkit-border-radius: 50%; | ||
446 | + -moz-border-radius: 50%; | ||
447 | + box-shadow: 0px 0px 0px rgba(0,0,0,0.1); | ||
448 | + -o-box-shadow: 0px 0px 0px rgba(0,0,0,0.1); | ||
449 | + -ms-box-shadow: 0px 0px 0px rgba(0,0,0,0.1); | ||
450 | + -webkit-box-shadow: 0px 0px 0px rgba(0,0,0,0.1); | ||
451 | + -moz-box-shadow: 0px 0px 0px rgba(0,0,0,0.1); | ||
452 | + animation-name: small-loader-spin; | ||
453 | + -o-animation-name: small-loader-spin; | ||
454 | + -ms-animation-name: small-loader-spin; | ||
455 | + -webkit-animation-name: small-loader-spin; | ||
456 | + -moz-animation-name: small-loader-spin; | ||
457 | + animation-duration: 4600ms; | ||
458 | + -o-animation-duration: 4600ms; | ||
459 | + -ms-animation-duration: 4600ms; | ||
460 | + -webkit-animation-duration: 4600ms; | ||
461 | + -moz-animation-duration: 4600ms; | ||
462 | + animation-iteration-count: infinite; | ||
463 | + -o-animation-iteration-count: infinite; | ||
464 | + -ms-animation-iteration-count: infinite; | ||
465 | + -webkit-animation-iteration-count: infinite; | ||
466 | + -moz-animation-iteration-count: infinite; | ||
467 | + animation-timing-function: linear; | ||
468 | + -o-animation-timing-function: linear; | ||
469 | + -ms-animation-timing-function: linear; | ||
470 | + -webkit-animation-timing-function: linear; | ||
471 | + -moz-animation-timing-function: linear; | ||
472 | + } | ||
473 | + | ||
474 | + | ||
475 | + | ||
476 | + @keyframes small-loader-spin { | ||
477 | + from { | ||
478 | + transform: rotate(0deg); | ||
479 | + } | ||
480 | + to { | ||
481 | + transform: rotate(360deg); | ||
482 | + } | ||
483 | + } | ||
484 | + | ||
485 | + @-o-keyframes small-loader-spin { | ||
486 | + from { | ||
487 | + -o-transform: rotate(0deg); | ||
488 | + } | ||
489 | + to { | ||
490 | + -o-transform: rotate(360deg); | ||
491 | + } | ||
492 | + } | ||
493 | + | ||
494 | + @-ms-keyframes small-loader-spin { | ||
495 | + from { | ||
496 | + -ms-transform: rotate(0deg); | ||
497 | + } | ||
498 | + to { | ||
499 | + -ms-transform: rotate(360deg); | ||
500 | + } | ||
501 | + } | ||
502 | + | ||
503 | + @-webkit-keyframes small-loader-spin { | ||
504 | + from { | ||
505 | + -webkit-transform: rotate(0deg); | ||
506 | + } | ||
507 | + to { | ||
508 | + -webkit-transform: rotate(360deg); | ||
509 | + } | ||
510 | + } | ||
511 | + | ||
512 | + @-moz-keyframes small-loader-spin { | ||
513 | + from { | ||
514 | + -moz-transform: rotate(0deg); | ||
515 | + } | ||
516 | + to { | ||
517 | + -moz-transform: rotate(360deg); | ||
518 | + } | ||
519 | + } | ||
520 | 520 | ||
521 | 521 | ||
522 | </style> | 522 | </style> |
web/view/layout.html.jinja2
@@ -41,7 +41,7 @@ | @@ -41,7 +41,7 @@ | ||
41 | <div class="mdl-layout-spacer"></div> | 41 | <div class="mdl-layout-spacer"></div> |
42 | <!-- Navigation. We hide it in small screens. --> | 42 | <!-- Navigation. We hide it in small screens. --> |
43 | <nav class="mdl-navigation mdl-layout--large-screen-only"> | 43 | <nav class="mdl-navigation mdl-layout--large-screen-only"> |
44 | - <a class="mdl-navigation__link" href="https://gitlab.irap.omp.eu/CDPP/SPACEWEATHERONLINE">v{{ version }}</a> | 44 | + <span id="header-description">{{ config.meta.description }}</span> |
45 | <a class="mdl-navigation__link" href="https://onlinelibrary.wiley.com/doi/10.1029/2004JA010959/abstract">Tao's Model</a> | 45 | <a class="mdl-navigation__link" href="https://onlinelibrary.wiley.com/doi/10.1029/2004JA010959/abstract">Tao's Model</a> |
46 | <a class="mdl-navigation__link" href="http://planetaryspaceweather-europlanet.irap.omp.eu">Planetary Space Weather Services</a> | 46 | <a class="mdl-navigation__link" href="http://planetaryspaceweather-europlanet.irap.omp.eu">Planetary Space Weather Services</a> |
47 | {# <a class="mdl-navigation__link" href="https://ec.europa.eu/programmes/horizon2020/">Horizon 2020</a>#} | 47 | {# <a class="mdl-navigation__link" href="https://ec.europa.eu/programmes/horizon2020/">Horizon 2020</a>#} |
@@ -71,6 +71,8 @@ | @@ -71,6 +71,8 @@ | ||
71 | <footer class="mdl-mini-footer"> | 71 | <footer class="mdl-mini-footer"> |
72 | <div class="mdl-mini-footer__left-section"> | 72 | <div class="mdl-mini-footer__left-section"> |
73 | <p style="float: left; margin: 1.5em;"> | 73 | <p style="float: left; margin: 1.5em;"> |
74 | + <a class="mdl-mini-footer__link" href="https://gitlab.irap.omp.eu/CDPP/SPACEWEATHERONLINE">v{{ version }}</a> | ||
75 | + <br /> | ||
74 | {{ visits }} visits since 2017 | 76 | {{ visits }} visits since 2017 |
75 | </p> | 77 | </p> |
76 | <p class="disclaimer"> | 78 | <p class="disclaimer"> |