tech and ref
Browse files- pages/01-main.py +7 -4
- public/instructions.py +70 -1
pages/01-main.py
CHANGED
@@ -250,9 +250,12 @@ def Page():
|
|
250 |
v.ExpansionPanels(children=[
|
251 |
v.ExpansionPanel(children=[
|
252 |
v.ExpansionPanelHeader(children=['Technical Background']),
|
253 |
-
v.ExpansionPanelContent(children=[
|
254 |
-
|
255 |
-
|
|
|
|
|
|
|
256 |
])
|
257 |
]),
|
258 |
v.ExpansionPanel(children=[
|
@@ -261,7 +264,7 @@ def Page():
|
|
261 |
]),
|
262 |
v.ExpansionPanel(children=[
|
263 |
v.ExpansionPanelHeader(children=['References']),
|
264 |
-
v.ExpansionPanelContent(children=[
|
265 |
])
|
266 |
])
|
267 |
|
|
|
250 |
v.ExpansionPanels(children=[
|
251 |
v.ExpansionPanel(children=[
|
252 |
v.ExpansionPanelHeader(children=['Technical Background']),
|
253 |
+
v.ExpansionPanelContent(children=[instructions.Tech()
|
254 |
+
])
|
255 |
+
]),
|
256 |
+
v.ExpansionPanel(children=[
|
257 |
+
v.ExpansionPanelHeader(children=['Components and Architecture']),
|
258 |
+
v.ExpansionPanelContent(children=[instructions.ComponentsArch()
|
259 |
])
|
260 |
]),
|
261 |
v.ExpansionPanel(children=[
|
|
|
264 |
]),
|
265 |
v.ExpansionPanel(children=[
|
266 |
v.ExpansionPanelHeader(children=['References']),
|
267 |
+
v.ExpansionPanelContent(children=[instructions.Ref()])
|
268 |
])
|
269 |
])
|
270 |
|
public/instructions.py
CHANGED
@@ -1,6 +1,59 @@
|
|
1 |
import reacton.ipyvuetify as v
|
2 |
import solara
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
@solara.component
|
6 |
def EEInstructions():
|
@@ -246,4 +299,20 @@ This method should work for most users, regardless of the text editor or operati
|
|
246 |
v.ExpansionPanelHeader(children=['Libraries']),
|
247 |
v.ExpansionPanelContent(children=[Text
|
248 |
])
|
249 |
-
])])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
import reacton.ipyvuetify as v
|
2 |
import solara
|
3 |
|
4 |
+
@solara.component
|
5 |
+
def Tech():
|
6 |
+
solara.Markdown( '''The application developed during the internship at the Universities Space Research Association (USRA)
|
7 |
+
represents a significant advancement in leveraging geospatial data for environmental analysis.
|
8 |
+
The project's core is an interactive web application designed to analyze, visualize, and interpret air quality data,
|
9 |
+
particularly PM2.5 levels, using data from Google Earth Engine (GEE) and advanced machine learning techniques
|
10 |
+
through Convolutional Neural Networks (CNNs).
|
11 |
+
The application integrates sophisticated data preprocessing, machine learning models provided by USRA,
|
12 |
+
and a user-friendly interface for comprehensive environmental data analysis.
|
13 |
+
|
14 |
+
The application developed during the USRA internship represents a blend of advanced data processing techniques,
|
15 |
+
machine learning, and interactive web technologies. It stands as a testament to the power of interdisciplinary
|
16 |
+
approaches in solving environmental challenges. By making complex geospatial and environmental data accessible
|
17 |
+
and understandable, the application aids in raising awareness, guiding policy decisions, and fostering scientific
|
18 |
+
curiosity and research in air quality and environmental science.''')
|
19 |
+
|
20 |
+
@solara.component
|
21 |
+
def ComponentsArch():
|
22 |
+
solara.Markdown('''### 1. Data Preprocessing and CNN Models (Provided by USRA):
|
23 |
+
|
24 |
+
* **Preprocessing Scripts:** Scripts to fetch and preprocess geospatial data from Earth Engine, including aerosol and meteorological variables. The preprocessing involves data normalization, feature extraction, and preparation for CNN input.
|
25 |
+
|
26 |
+
* **CNN Models:** Advanced machine learning models developed to estimate PM2.5 levels from satellite imagery and other geospatial data. These models are trained on historical data and can predict air quality indicators, providing insights into environmental conditions.
|
27 |
+
|
28 |
+
### 2. Interactive Web Application:
|
29 |
+
|
30 |
+
**Frontend UI Components:**
|
31 |
+
|
32 |
+
* Developed using modern web technologies and libraries to create a responsive and interactive user interface.
|
33 |
+
|
34 |
+
* Components include date range selectors, map visualization tools, and options to choose different types of data visualizations and analyses.
|
35 |
+
|
36 |
+
**Integration with Earth Engine:**
|
37 |
+
|
38 |
+
* Utilizes the Google Earth Engine's Python API for data retrieval and processing. The application queries GEE for specific datasets related to air quality and environmental conditions.
|
39 |
+
|
40 |
+
* Enables dynamic data visualization based on user-selected parameters, such as date ranges, regions, and specific environmental variables.
|
41 |
+
|
42 |
+
**Visualization and Analysis:**
|
43 |
+
|
44 |
+
* Implements various visualization tools, including contour plots, heatmaps, and Earth Engine images, to represent the data effectively.
|
45 |
+
|
46 |
+
* Allows users to interact with the data, select specific time frames, regions, and view detailed environmental information graphically.
|
47 |
+
|
48 |
+
###3. Development Environment and Technologies
|
49 |
+
|
50 |
+
* **Python and Jupyter Environment:** The application's backend and data processing components are developed in Python, leveraging libraries like NumPy, Pandas, Matplotlib, and specifically Earth Engine's Python API for geospatial data manipulation.
|
51 |
+
|
52 |
+
* **Geospatial Libraries:** Utilizes geemap, ee, and cartopy for mapping and spatial data visualization.
|
53 |
+
|
54 |
+
* **Web Technologies:** Employs libraries like solara, reacton.ipyvuetify, and ipywidgets for creating interactive web components and layouts.
|
55 |
+
|
56 |
+
* **Deployment and Accessibility:** The application is made accessible as a web-based tool, possibly hosted on platforms like Hugging Face Spaces, allowing users to interact with the application through a web browser without needing any local setup.''')
|
57 |
|
58 |
@solara.component
|
59 |
def EEInstructions():
|
|
|
299 |
v.ExpansionPanelHeader(children=['Libraries']),
|
300 |
v.ExpansionPanelContent(children=[Text
|
301 |
])
|
302 |
+
])])
|
303 |
+
|
304 |
+
@solara.component
|
305 |
+
def Ref():
|
306 |
+
solara.Markdown('''For assistance please feel free to reach out: <a href="https://www.linkedin.com/in/romero61/" target="_blank">Guillermo Romero</a>
|
307 |
+
|
308 |
+
Further documentation to help with guiding development is located within the <a href="https://github.com/romero61/USRA-STI/blob/5e37d9878958536134480836d6043c39d693bb3f/guide.pdf" target="_blank">Github Repo</a>.
|
309 |
+
|
310 |
+
<a href="https://disc.gsfc.nasa.gov/information/mission-project?title=HAQAST:%20Global%20Daily%20PM2.5" target="_blank">"GESDISC." Nasa.gov, 2023</a>
|
311 |
+
|
312 |
+
Global Modeling and Assimilation Office (GMAO) (2015), inst3_3d_asm_Cp: MERRA-2 3D IAU State, Meteorology Instantaneous 3-hourly (p-coord, 0.625x0.5L42), version 5.12.4, Greenbelt, MD, USA: Goddard Space Flight Center Distributed Active Archive Center (GSFC DAAC), doi: 10.5067/VJAFPLI1CSIV.
|
313 |
+
|
314 |
+
Wu, Q., (2020). geemap: A Python package for interactive mapping with Google Earth Engine. The Journal of Open Source Software, 5(51), 2305. https://doi.org/10.21105/joss.02305
|
315 |
+
|
316 |
+
Wu, Q., Lane, C. R., Li, X., Zhao, K., Zhou, Y., Clinton, N., DeVries, B., Golden, H. E., & Lang, M. W. (2019). Integrating LiDAR data and multi-temporal aerial imagery to map wetland inundation dynamics using Google Earth Engine. Remote Sensing of Environment, 228, 1-13. https://doi.org/10.1016/j.rse.2019.04.015 (pdf | source code)
|
317 |
+
|
318 |
+
License This project is licensed under the MIT License - see the LICENSE.md file for details''')
|