Interface de contrôle et de commande MSG

1,208 views

Published on

Présentation de projet XL, création d'une interface d'accès aux images satelittes de l'archive ATIS (plus de 2To).

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Interface de contrôle et de commande MSG

  1. 1. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Interface de contrôle et de commande MSG Benoît Larroque1 1 Pôle ATIS École Supérieure d’Electronique d’Informatique et d’Automatique Projet XL
  2. 2. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Sommaire Motivation Pourquoi une nouvelle interface ? Interface MSG Station Technologies utilisées Modélisation Interface utilisateur Utilisation API, Maintenance, Perspectives API Maintenance Perspectives d’avenir
  3. 3. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Lignes directrices Motivation Pourquoi une nouvelle interface ? Interface MSG Station Technologies utilisées Modélisation Interface utilisateur Utilisation API, Maintenance, Perspectives API Maintenance Perspectives d’avenir
  4. 4. Motivation Interface MSG API, Maintenance, Perspectives Conclusion En image
  5. 5. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Plus précisément On souhaite une interface avec les capacités : • Accéder aux images à distance • Faire des requêtes (temporelles, géographiques) • Surveiller les machines
  6. 6. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Plus précisément On souhaite une interface avec les capacités : • Accéder aux images à distance • Faire des requêtes (temporelles, géographiques) • Surveiller les machines
  7. 7. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Plus précisément On souhaite une interface avec les capacités : • Accéder aux images à distance • Faire des requêtes (temporelles, géographiques) • Surveiller les machines
  8. 8. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Lignes directrices Motivation Pourquoi une nouvelle interface ? Interface MSG Station Technologies utilisées Modélisation Interface utilisateur Utilisation API, Maintenance, Perspectives API Maintenance Perspectives d’avenir
  9. 9. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Station
  10. 10. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Lignes directrices Motivation Pourquoi une nouvelle interface ? Interface MSG Station Technologies utilisées Modélisation Interface utilisateur Utilisation API, Maintenance, Perspectives API Maintenance Perspectives d’avenir
  11. 11. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Ruby on Rails • Open source • Framework MVC • Fournit une abstraction de la base de données
  12. 12. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Ruby on Rails • Open source • Framework MVC • Fournit une abstraction de la base de données
  13. 13. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Ruby on Rails • Open source • Framework MVC • Fournit une abstraction de la base de données
  14. 14. Motivation Interface MSG API, Maintenance, Perspectives Conclusion PostgreSQL et PostGIS • Open source • Robuste et performant (+ de 377760 images en bases) • Extensible, ajout des primitives géographiques
  15. 15. Motivation Interface MSG API, Maintenance, Perspectives Conclusion PostgreSQL et PostGIS • Open source • Robuste et performant (+ de 377760 images en bases) • Extensible, ajout des primitives géographiques
  16. 16. Motivation Interface MSG API, Maintenance, Perspectives Conclusion PostgreSQL et PostGIS • Open source • Robuste et performant (+ de 377760 images en bases) • Extensible, ajout des primitives géographiques
  17. 17. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Lignes directrices Motivation Pourquoi une nouvelle interface ? Interface MSG Station Technologies utilisées Modélisation Interface utilisateur Utilisation API, Maintenance, Perspectives API Maintenance Perspectives d’avenir
  18. 18. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Schéma
  19. 19. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Schéma Deux types d’utilisateurs→utilisateurs et possesseurs de jetons • ont tous des droits (admin, lecteur, analyste. . . ) • un possesseur de jetons ne peut pas être admin
  20. 20. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Lignes directrices Motivation Pourquoi une nouvelle interface ? Interface MSG Station Technologies utilisées Modélisation Interface utilisateur Utilisation API, Maintenance, Perspectives API Maintenance Perspectives d’avenir
  21. 21. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Design
  22. 22. Motivation Interface MSG API, Maintenance, Perspectives Conclusion • xHTML léger pour un téléchargement plus rapide • Facilement modifiable par conception • Multi-résolution (conçu pour 1024 × 768)
  23. 23. Motivation Interface MSG API, Maintenance, Perspectives Conclusion • xHTML léger pour un téléchargement plus rapide • Facilement modifiable par conception • Multi-résolution (conçu pour 1024 × 768)
  24. 24. Motivation Interface MSG API, Maintenance, Perspectives Conclusion • xHTML léger pour un téléchargement plus rapide • Facilement modifiable par conception • Multi-résolution (conçu pour 1024 × 768)
  25. 25. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Lignes directrices Motivation Pourquoi une nouvelle interface ? Interface MSG Station Technologies utilisées Modélisation Interface utilisateur Utilisation API, Maintenance, Perspectives API Maintenance Perspectives d’avenir
  26. 26. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Recherche • Formulaire permettant de chercher par : • Date (début et fin) • Canal (ex : VIS008, VIS006, IR_039. . . ) • Coordonnées Géographiques (latitude, longitude) • Les résultats sont affichés dans un tableau réordonnable
  27. 27. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Recherche • Formulaire permettant de chercher par : • Date (début et fin) • Canal (ex : VIS008, VIS006, IR_039. . . ) • Coordonnées Géographiques (latitude, longitude) • Les résultats sont affichés dans un tableau réordonnable
  28. 28. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Monitoring
  29. 29. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Lignes directrices Motivation Pourquoi une nouvelle interface ? Interface MSG Station Technologies utilisées Modélisation Interface utilisateur Utilisation API, Maintenance, Perspectives API Maintenance Perspectives d’avenir
  30. 30. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Généralités • Certaines informations sont disponibles pour les programmeurs : • Accès REST (Support code d’erreurs HTTP et authentification, stateless) • Réponses en xHTML, XML, JSON, YAML et bien sûr PNG, JPEG, PGM.BZ2 Fact Bibliothèque d’accès Ruby déjà disponible
  31. 31. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Généralités • Certaines informations sont disponibles pour les programmeurs : • Accès REST (Support code d’erreurs HTTP et authentification, stateless) • Réponses en xHTML, XML, JSON, YAML et bien sûr PNG, JPEG, PGM.BZ2 Fact Bibliothèque d’accès Ruby déjà disponible
  32. 32. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Endpoints • Images : • /images/index. :format → liste d’image (params. : pagination, ordre) • /images/search. :format→recherche d’image (params. : précédent et recherche ) • /image/ :id. :format→Infos sur une image ou binaire de l’image • images/coverage. :format→Couverture géographique et spatiale • Composition : composite/compose. :format (params. : canaux) • Monitoring : monitor/inst_info/ :machine. :format • Analyses • analysis/images_to_process/ :id. :format (params : pagination) • analysis/set_result/ :id. :format (params. analyse, image, résultat) • analysis/results/ :id. :format
  33. 33. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Endpoints • Images : • /images/index. :format → liste d’image (params. : pagination, ordre) • /images/search. :format→recherche d’image (params. : précédent et recherche ) • /image/ :id. :format→Infos sur une image ou binaire de l’image • images/coverage. :format→Couverture géographique et spatiale • Composition : composite/compose. :format (params. : canaux) • Monitoring : monitor/inst_info/ :machine. :format • Analyses • analysis/images_to_process/ :id. :format (params : pagination) • analysis/set_result/ :id. :format (params. analyse, image, résultat) • analysis/results/ :id. :format
  34. 34. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Endpoints • Images : • /images/index. :format → liste d’image (params. : pagination, ordre) • /images/search. :format→recherche d’image (params. : précédent et recherche ) • /image/ :id. :format→Infos sur une image ou binaire de l’image • images/coverage. :format→Couverture géographique et spatiale • Composition : composite/compose. :format (params. : canaux) • Monitoring : monitor/inst_info/ :machine. :format • Analyses • analysis/images_to_process/ :id. :format (params : pagination) • analysis/set_result/ :id. :format (params. analyse, image, résultat) • analysis/results/ :id. :format
  35. 35. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Endpoints • Images : • /images/index. :format → liste d’image (params. : pagination, ordre) • /images/search. :format→recherche d’image (params. : précédent et recherche ) • /image/ :id. :format→Infos sur une image ou binaire de l’image • images/coverage. :format→Couverture géographique et spatiale • Composition : composite/compose. :format (params. : canaux) • Monitoring : monitor/inst_info/ :machine. :format • Analyses • analysis/images_to_process/ :id. :format (params : pagination) • analysis/set_result/ :id. :format (params. analyse, image, résultat) • analysis/results/ :id. :format
  36. 36. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Lignes directrices Motivation Pourquoi une nouvelle interface ? Interface MSG Station Technologies utilisées Modélisation Interface utilisateur Utilisation API, Maintenance, Perspectives API Maintenance Perspectives d’avenir
  37. 37. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Fait Fact L’interface est conçue pour nécessiter peu de maintenance
  38. 38. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Opérations de maintenance • Surveiller la tailles des logs • tail log/production.log > log/production.log • Surveiller la bonne marche de PostgreSQL • VACCUM FULL ANALYZE
  39. 39. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Opérations de maintenance • Surveiller la tailles des logs • tail log/production.log > log/production.log • Surveiller la bonne marche de PostgreSQL • VACCUM FULL ANALYZE
  40. 40. Motivation Interface MSG API, Maintenance, Perspectives Conclusion En cas de problème • Regarder les logs du serveur • redémarrer lighttpd
  41. 41. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Lignes directrices Motivation Pourquoi une nouvelle interface ? Interface MSG Station Technologies utilisées Modélisation Interface utilisateur Utilisation API, Maintenance, Perspectives API Maintenance Perspectives d’avenir
  42. 42. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Idées de projet Nombreuses ! • Analyses déportées • Client lourd, interfaçage Google Earth • Aide à la destruction des images inintéressantes
  43. 43. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Idées de projet Nombreuses ! • Analyses déportées • Client lourd, interfaçage Google Earth • Aide à la destruction des images inintéressantes
  44. 44. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Idées de projet Nombreuses ! • Analyses déportées • Client lourd, interfaçage Google Earth • Aide à la destruction des images inintéressantes
  45. 45. Motivation Interface MSG API, Maintenance, Perspectives Conclusion Conclusion • Enfin une interface simple et accessible à tous. • Facile à maintenir. • Un projet intéressant.
  46. 46. Appendices One more thing... Film
  47. 47. Appendices Code require ’ atis ’ r e q u i r e ’ RMagick ’ i n c l u d e Magick TOKEN= ’ 1∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗TOKEN∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ e ’ def composite ( tab ) t a b . map { | f | f . s a v e ( ’ / v e r s a t i l e / ’+f . f i l e n a m e ) } t=t a b . c o l l e c t { | f | p u t s f . f i l e n a m e ; ( Image . r e a d ( ’ / v e r s a t i l e / ’+f . filename ) ) [0];} Image . c o m b i n e ( t [ 0 ] , t [ 1 ] , t [ 2 ] ) . t h u m b n a i l ( 1 0 8 0 , 1 0 8 0 ) . w r i t e ( quot; . / o u t / c o m p o s i t e −#{t a b . f i r s t . d a t e . s t r f t i m e ( ’%Y% %d%H% ’ ) } . png quot; ) m M p u t s quot; c o m p o s i t e −#{t a b . f i r s t . d a t e . s t r f t i m e ( ’%Y% %d%H% ’ ) } . png quot; m M t a b . map { | f | F i l e . u n l i n k ( ’ / v e r s a t i l e / ’+f . f i l e n a m e ) } end p u t s quot;START SCRIPTquot; c o n=A t i s C o n n e c t i o n . new ( : t o k e n = TOKEN) > s=A t i s S e a r c h . new co n r e t ={} c a c h e=D i r . new ( ’ . / o u t / ’ ) . r e j e c t { | t | t [0]== ’ . ’ [ 0 ] } . c o l l e c t { | t | Time . r e a d ( F i l e . basename ( t , ’ . png ’ ) . s p l i t ( ’− ’ ) . l a s t ) } s . s e a r c h ( : c h a n n e l = [ ’ VIS006 ’ , ’ VIS008 ’ , ’ IR_016 ’ ] , : e n d = > >Time . r e a d ( quot; 2 0 0 9 0 1 1 1 1 2 0 0 quot; ) , : b e g i n = Time . u t c ( 2 0 0 9 ) ) do | im | > r e t [ im . d a t e ]= Hash . new i f r e t [ im . d a t e ] . n i l ? r e t [ im . d a t e ] [ im . c h a n n e l ]= im u n l e s s c a c h e . i n c l u d e ? im . d a t e i f r e t [ im . d a t e ] . s i z e > 2 p u t s quot; compose #{im . d a t e } quot; c o m p o s i t e ( [ r e t [ im . d a t e ] [ ’ IR_016 ’ ] , r e t [ im . d a t e ] [ ’ VIS008 ’ ] , r e t [ im . d a t e ] [ ’ VIS006 ’ ] ] ) end : more end
  48. 48. Appendices One other thing Deuxième film
  49. 49. Appendices Code require ’ atis ’ r e q u i r e ’ RMagick ’ i n c l u d e Magick TOKEN= ’ 1∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗TOKEN∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ e ’ p u t s quot;START SCRIPTquot; c o n=A t i s C o n n e c t i o n . new ( : t o k e n = TOKEN) ; s=A t i s S e a r c h . new con ; r e t ={} > c a c h e=D i r . new ( ’ . / o u t / ’ ) . r e j e c t { | t | t [0]== ’ . ’ [ 0 ] } . c o l l e c t { | t | Time . r e a d ( F i l e . basename ( t , ’ . png ’ ) . s p l i t ( ’− ’ ) . l a s t ) } c a c h e 2=D i r . new ( ’ . / o u t 2 / ’ ) . r e j e c t { | t | t [0]== ’ . ’ [ 0 ] } . c o l l e c t { | t | Time . r e a d ( F i l e . basename ( t , ’ . png ’ ) . s p l i t ( ’− ’ ) . l a s t ) } b l a c k = Magick : : Image . new ( 1 0 8 0 , 1 0 8 0 ) { s e l f . b a c k g r o u n d _ c o l o r = ’ b l a c k ’ } s . s e a r c h ( : c h a n n e l = [ ’ IR_039 ’ ] , : e n d = > >Time . r e a d ( quot; 2 0 0 9 0 1 1 1 1 2 0 0 quot; ) , : b e g i n = Time . u t c ( 2 0 0 9 ) ) do | im | > i f ( c a c h e . i n c l u d e ? ( im . d a t e ) && ! c a c h e 2 . i n c l u d e ? ( im . d a t e ) ) p u t s quot; compose #{im . d a t e } quot; i =Image . r e a d ( quot; . / o u t / c o m p o s i t e −#{im . d a t e . s t r f t i m e ( ’%Y% %d m % M ’ ) } . png quot; ) [ 0 ] H% i . f u z z=quot; 5.1% quot; ; t r a n s= i . t r a n s p a r e n t ( ’ b l a c k ’ ) im . s a v e ( ’ / v e r s a t i l e / ’+im . f i l e n a m e ) n _ i g h t =( Image . r e a d ( ’ / v e r s a t i l e / ’+im . f i l e n a m e ) [ 0 ] ) . thumbnail (1080 ,1080) n i g h t=Magick : : Image . c o m b i n e ( b l a c k . copy , n _ i g h t , b l a c k . c o p y ) p=n i g h t . c o m p o s i t e ( t r a n s , 0 , 0 , Magick : : O verC ompo site Op ) p . w r i t e ( quot; . / o u t 2 / c o m p o s i t e 2 −#{im . d a t e . s t r f t i m e ( ’%Y% %d%H% m M ’ ) } . png quot; ) { s e l f . d e p t h =8} F i l e . u n l i n k ( ’ / v e r s a t i l e / ’+im . f i l e n a m e ) end : more end

×