Le satellite Alouette-I a été le premier satellite canadien lancé dans l'espace. L'objectif de son expérience principale était de comprendre la structure de la haute ionosphÚre. Les données de l'Alouette I sont constitués de centaines de milliers d'ionogrammes dont une proportion sont maintenant stockés numériquement sous forme de fichiers d'images.
Ce projet est une application qui permet aux utilisateurs de filtrer les ionogrammes sur de multiples paramĂštres et tĂ©lĂ©charger soit les donnĂ©es extraites des ionogrammes sĂ©lectionnĂ©s sous forme de CSV, soit les images des ionogrammes eux-mĂȘmes. L'application permet Ă©galement aux utilisateurs de visualiser un rĂ©sumĂ© des donnĂ©es des ionogrammes qu'ils ont sĂ©lectionnĂ©s, Ă la fois sur une carte et un graphique linĂ©aire, Ă©vitant ainsi le tĂ©lĂ©chargement des donnĂ©es pour des aperçus simples.
Les commandes suivantes peuvent ĂȘtre exĂ©cutĂ©es plus facilement dans un environnement virtuel (comme conda). Il peut donc ĂȘtre judicieux d'installer [Anaconda] (https://www.anaconda.com/distribution/) au prĂ©alable.
Pour démarrer l'application :
-
CrĂ©er un dossier nommĂ© "data" et y ajouter le fichier "final_alouette_data.csv". Vous devrez aussi ajouter le fichier "config.cfg" dans le mĂȘme dossier que "alouette.py". Vous trouverez ce fichier sur Livelink.
pip install -r requirements.txt python alouette.py
Des instructions d'installation distinctes pour la version de production de l'application sont fournies dans le "Guide d'installation de l'application Alouette Production.docx".
-
Plotly Dash - Le framework Python construit sur Flask a Ă©tĂ© utilisĂ© pour dĂ©velopper l'application. Tous les composants et visualisations de l'application web sont des objets Dash qui sont crĂ©Ă©s et mis Ă jour dans les fonctions de rappel de l'application. Je vous recommande de consulter la documentation complĂšte de Dash (lien) si vous n'ĂȘtes pas sĂ»r de son fonctionnement.
-
Jupyter Notebook - Utilisé pour le nettoyage des données.
-
app.py est l'application principale oĂč chaque composant et la prĂ©sentation de l'application sont dĂ©finis
-
controls.py contient les options pour certains des composants (par exemple, les dropdowns)
-
header_footer.py contient le html pour l'en-tĂȘte et le pied de page du gouvernement du Canada. Ce html est injectĂ© dans l'application principale.
-
/assets contient différents fichiers pour le style de l'application (images, redimensionnement, css)
-
/data contient les données csv traitées provenant du pipeline d'extraction des caractéristiques
-
/data_cleaning contient des carnets jupyter utilisés pour nettoyer les données ionogrammes extraites
-
messages.pot et /translations contient des informations sur la traduction
-
config.py précise les langues disponibles pour la traduction
- Le code de l'en-tĂȘte/du pied de page du gouvernement est enregistrĂ© dans un fichier sĂ©parĂ© (header_footer.py), et est directement injectĂ© dans l'application du tiret.
Ceci est la v0.1 de l'application Alouette.
- Les traductions sont délicates avec Dash en raison de la façon dont il rend la page. Pour savoir comment faire de nouvelles traductions, consultez [https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xiii-i18n-and-l10n]([https://blog.miguelgrinberg.com/post/the-flask-
Traduit avec www.DeepL.com/Translator (version gratuite)
The Alouette-I satellite was the first Canadian satellite launched into space. The goal of its main experiment was to understand the structure of the upper ionosphere. The data from the Alouette I satellite consists of hundreds of thousands of ionograms with a proportion now stored digitally as image files.
This project is an application that allows users to filter through ionograms on multiple parameters and download either the selected ionogramsâ extracted features as a CSV or the ionogram images themselves. The application also allows users to visualize a summary of the data from their selected ionograms on both a map and a line chart, forgoing the need for downloading the data for simple insights.
The following commands can be done more easily if in a virtual environment (like conda) so it may be a good idea to install Anaconda beforehand.
For starting the application:
-
Create a folder named "data" and add the file "final_alouette_data.csv". You will also have to add the "config.cfg" file to the same folder as the "alouette.py" file.You can find this file on Livelink.
pip install -r requirements.txt python alouette.py
Separate installation instructions for the production version of the app are provided in "Alouette Production Installation Guide.docx".
-
Plotly Dash - The Python framework built on top of Flask used to develop the application. All components and visualizations on the web application are Dash objects that are created and updated in the callback functions in app.py. I would recommend that you look over Dash's comprehensive documentation (linked) if you are unsure how it works.
-
Jupyter Notebook - Used for data cleaning.
-
app.py is the main application where each component and the layout of the application is defined
-
controls.py contains the options for the some of the components (e.g. dropdowns)
-
header_footer.py contains the html for the government of Canada header and footer. This html is injected into the main app.
-
/assets contains various files for the styling of the application (images, resizing, css)
-
/data contains the processed csv data from the feature extraction pipeline
-
/data_cleaning contains jupyter notebooks used to clean the extracted ionogram data
-
messages.pot and /translations contains translation information
-
config.py specifies the languages available for translation
- The max number of ionograms that can be downloaded at once is 100 as of now. These ionograms are currently stored in memory before being sent to the user as a zip; this method may fail for a larger download.
The current and previous roadmaps can be found on livelink for reference: http://livelink/livelink/llisapi.dll?func=ll&objId=39628342&objAction=viewheader
This is v0.1 of the Alouette app.
- Hansen Liu
- Wasiq Mohammmad
- Etienne Low-Decarie
- Jenisha Patel
- Cooper Ang