49
Motivation Interface MSG API, Maintenance, Perspectives Conclusion Interface de contrôle et de commande MSG Benoît Larroque 1 1 Pôle ATIS École Supérieure d’Electronique d’Informatique et d’Automatique Projet XL

Interface de contrôle et de commande MSG

  • Upload
    zeta

  • View
    955

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Interface de contrôle et de commande MSG

Benoît Larroque1

1Pôle ATISÉcole Supérieure d’Electronique d’Informatique et d’Automatique

Projet XL

Page 2: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Sommaire

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Page 3: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Page 4: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

En image

Page 5: Interface de contrôle et de commande MSG

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

Page 6: Interface de contrôle et de commande MSG

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

Page 7: Interface de contrôle et de commande MSG

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

Page 8: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Page 9: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Station

Page 10: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Page 11: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Ruby on Rails

• Open source• Framework MVC• Fournit une abstraction de la base de données

Page 12: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Ruby on Rails

• Open source• Framework MVC• Fournit une abstraction de la base de données

Page 13: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Ruby on Rails

• Open source• Framework MVC• Fournit une abstraction de la base de données

Page 14: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

PostgreSQL et PostGIS

• Open source• Robuste et performant (+ de 377760images en bases)

• Extensible, ajout des primitivesgéographiques

Page 15: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

PostgreSQL et PostGIS

• Open source• Robuste et performant (+ de 377760images en bases)

• Extensible, ajout des primitivesgéographiques

Page 16: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

PostgreSQL et PostGIS

• Open source• Robuste et performant (+ de 377760images en bases)

• Extensible, ajout des primitivesgéographiques

Page 17: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Page 18: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Schéma

Page 19: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

SchémaDeux types d’utilisateurs→utilisateurs et possesseurs de jetons

• ont tous des droits (admin, lecteur, analyste. . . )• un possesseur de jetons ne peut pas être admin

Page 20: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Page 21: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Design

Page 22: Interface de contrôle et de commande MSG

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)

Page 23: Interface de contrôle et de commande MSG

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)

Page 24: Interface de contrôle et de commande MSG

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)

Page 25: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Page 26: Interface de contrôle et de commande MSG

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

Page 27: Interface de contrôle et de commande MSG

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

Page 28: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Monitoring

Page 29: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Page 30: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Généralités

• Certaines informations sont disponibles pour lesprogrammeurs :

• Accès REST (Support code d’erreurs HTTP etauthentification, stateless)

• Réponses en xHTML, XML, JSON, YAML et bien sûr PNG,JPEG, PGM.BZ2

FactBibliothèque d’accès Ruby déjà disponible

Page 31: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Généralités

• Certaines informations sont disponibles pour lesprogrammeurs :

• Accès REST (Support code d’erreurs HTTP etauthentification, stateless)

• Réponses en xHTML, XML, JSON, YAML et bien sûr PNG,JPEG, PGM.BZ2

FactBibliothèque d’accès Ruby déjà disponible

Page 32: Interface de contrôle et de commande MSG

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

Page 33: Interface de contrôle et de commande MSG

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

Page 34: Interface de contrôle et de commande MSG

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

Page 35: Interface de contrôle et de commande MSG

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

Page 36: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Page 37: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Fait

FactL’interface est conçue pour nécessiter peu de maintenance

Page 38: Interface de contrôle et de commande MSG

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

Page 39: Interface de contrôle et de commande MSG

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

Page 40: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

En cas de problème

• Regarder les logs du serveur• redémarrer lighttpd

Page 41: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Page 42: Interface de contrôle et de commande MSG

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

Page 43: Interface de contrôle et de commande MSG

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

Page 44: Interface de contrôle et de commande MSG

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

Page 45: Interface de contrôle et de commande MSG

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Conclusion

• Enfin une interface simple et accessible à tous.• Facile à maintenir.• Un projet intéressant.

Page 46: Interface de contrôle et de commande MSG

Appendices

One more thing...

Film

Page 47: Interface de contrôle et de commande MSG

Appendices

Coder e q u i r e ’ a t i s ’r e q u i r e ’ RMagick ’i n c l u d e MagickTOKEN=’ 1∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗TOKEN∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗e ’de f compos i t e ( tab )

tab .map{ | f | f . s ave ( ’ / v e r s a t i l e / ’+f . f i l e n ame ) }t=tab . c o l l e c t { | f | pu t s f . f i l e n ame ; ( Image . r ead ( ’ / v e r s a t i l e / ’+f .

f i l e n ame ) ) [ 0 ] ; }Image . combine ( t [ 0 ] , t [ 1 ] , t [ 2 ] ) . thumbna i l (1080 ,1080) . w r i t e ( " . / out /

compos i te−#{tab . f i r s t . date . s t r f t i m e ( ’%Y%m%d%H%M’) } . png" )put s " compos i te−#{tab . f i r s t . date . s t r f t i m e ( ’%Y%m%d%H%M’) } . png"tab .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 ame ) }

endput s "START␣SCRIPT"con=At i sConne c t i on . new ( : token => TOKEN)s=At i s S e a r c h . new conr e t={}cache=Di r . new ( ’ . / out / ’ ) . r e j e c t { | t | t [0]== ’ . ’ [ 0 ] } . c o l l e c t { | t | Time . r ead (

F i l e . basename ( t , ’ . png ’ ) . s p l i t ( ’− ’ ) . l a s t ) }s . s e a r c h ( : channe l => [ ’ VIS006 ’ , ’ VIS008 ’ , ’ IR_016 ’ ] , : end =>Time . read ( "

200901111200" ) , : beg i n => Time . utc (2009) ) do | im |r e t [ im . date ]=Hash . new i f r e t [ im . date ] . n i l ?r e t [ im . date ] [ im . channe l ]=im u n l e s s cache . i n c l u d e ? im . datei f r e t [ im . date ] . s i z e > 2

put s "compose␣#{im . date }"compos i t e ( [ r e t [ im . date ] [ ’ IR_016 ’ ] , r e t [ im . date ] [ ’ VIS008

’ ] , r e t [ im . date ] [ ’ VIS006 ’ ] ] )end: more

end

Page 48: Interface de contrôle et de commande MSG

Appendices

One other thing

Deuxième film

Page 49: Interface de contrôle et de commande MSG

Appendices

Coder e q u i r e ’ a t i s ’r e q u i r e ’ RMagick ’i n c l u d e MagickTOKEN=’ 1∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗TOKEN∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗e ’put s "START␣SCRIPT"con=At i sConne c t i on . new ( : token => TOKEN) ; s=At i s S e a r c h . new con ; r e t={}cache=Di r . new ( ’ . / out / ’ ) . r e j e c t { | t | t [0]== ’ . ’ [ 0 ] } . c o l l e c t { | t | Time . r ead (

F i l e . basename ( t , ’ . png ’ ) . s p l i t ( ’− ’ ) . l a s t ) }cache2=Di r . new ( ’ . / out2 / ’ ) . r e j e c t { | t | t [0]== ’ . ’ [ 0 ] } . c o l l e c t { | t | Time . r ead

( F i l e . basename ( t , ’ . png ’ ) . s p l i t ( ’− ’ ) . l a s t ) }b l a c k = Magick : : Image . new (1080 ,1080) { s e l f . background_co lo r = ’ b l a c k ’ }s . s e a r c h ( : channe l => [ ’ IR_039 ’ ] , : end =>Time . read ( "200901111200" ) , :

beg i n => Time . utc (2009) ) do | im |i f ( cache . i n c l u d e ?( im . date ) && ! cache2 . i n c l u d e ?( im . date ) )

put s "compose␣#{im . date }"i=Image . r ead ( " . / out / compos i te−#{im . date . s t r f t i m e ( ’%Y%m%d

%H%M’) } . png" ) [ 0 ]i . f u z z="5.1%" ; t r a n s=i . t r a n s p a r e n t ( ’ b l a c k ’ )im . save ( ’ / v e r s a t i l e / ’+im . f i l e n ame )n_ight=(Image . r ead ( ’ / v e r s a t i l e / ’+im . f i l e n ame ) [ 0 ] ) .

thumbna i l (1080 ,1080)n i g h t=Magick : : Image . combine ( b l a c k . copy , n_ight , b l a c k . copy

)p=n i g h t . compos i t e ( t r an s , 0 , 0 , Magick : : OverCompositeOp )p . w r i t e ( " . / out2 / compos i te2−#{im . date . s t r f t i m e ( ’%Y%m%d%H%

M’) } . png" ) { s e l f . depth=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 ame )

end: more

end