From 99e2b0e2eb30210f68a9f4182021099dce5e0788 Mon Sep 17 00:00:00 2001 From: Carlos Vivar Rios Date: Sun, 6 Nov 2022 13:28:45 +0100 Subject: [PATCH] final dashboard --- img/colormap.jpg | Bin 0 -> 4414 bytes img/colormap2.png | Bin 0 -> 8822 bytes img/datafrom.jpg | Bin 0 -> 20557 bytes img/logocopernicus.svg | 179 +++++++++++++++++++++++++++++++++++++++++ streamlit_app.py | 80 ++++++++++++++++-- 5 files changed, 253 insertions(+), 6 deletions(-) create mode 100644 img/colormap.jpg create mode 100644 img/colormap2.png create mode 100644 img/datafrom.jpg create mode 100644 img/logocopernicus.svg diff --git a/img/colormap.jpg b/img/colormap.jpg new file mode 100644 index 0000000000000000000000000000000000000000..23821e2152614fa112e40e032218186560d3603d GIT binary patch literal 4414 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 literal 0 HcmV?d00001 diff --git a/img/datafrom.jpg b/img/datafrom.jpg new file mode 100644 index 0000000000000000000000000000000000000000..24b28a34e13d0866b72bfe56a7019657628e0789 GIT binary patch literal 20557 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 literal 0 HcmV?d00001 diff --git a/img/logocopernicus.svg b/img/logocopernicus.svg new file mode 100644 index 0000000..6082d1a --- /dev/null +++ b/img/logocopernicus.svg @@ -0,0 +1,179 @@ + + + Group 7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/streamlit_app.py b/streamlit_app.py index 342586c..9034f22 100644 --- a/streamlit_app.py +++ b/streamlit_app.py @@ -1,7 +1,10 @@ +import datetime +from bokeh.plotting import figure, curdoc from PIL import Image import inspect import textwrap from urllib.error import URLError +import numpy as np import pandas as pd import pydeck as pdk @@ -70,7 +73,7 @@ def color_scale(val): LAND_COVER = [[[-123.0, 49.196], [-123.0, 49.324],[-123.306, 49.324], [-123.306, 49.196]]] ALL_LAYERS = { - "Area hydrologic": pdk.Layer( + "Example dataset": pdk.Layer( "PolygonLayer", data=df, id="geojson", @@ -116,13 +119,78 @@ def color_scale(val): ) -st.set_page_config(page_title="Cropernicus Dashboard", page_icon="šŸŒ", layout="wide") +### Bokeh +y = np.random.rand(200) + +y_2 = np.random.rand(200) + +start = datetime.datetime.strptime("21-06-2017", "%d-%m-%Y") +dates = [start] +for _ in y: + new_date = dates[-1] + datetime.timedelta(days=6) + dates.append(new_date) + +p = figure( + title='Index Average of selected crops', + x_axis_label='Date', + y_axis_label='Index value', + height=250, toolbar_location="above", x_axis_type="datetime") + +p.line(dates, y, legend_label='NDWI', line_width=1, color="green") + +p.line(dates, y_2, legend_label='NDMI', line_width=1, color="red") + + +doc = curdoc() +doc.theme = 'night_sky' +doc.add_root(p) + +#### Streamlit app +st.set_page_config(page_title="Cropernicus Dashboard", page_icon="šŸŒ", layout="wide", initial_sidebar_state="expanded") + +## Sidebar +st.sidebar.image('img/datafrom.jpg', width=300) + +st.sidebar.markdown("# Cropernicus Dashboard") +st.sidebar.write( + """Commodity traders, seed and fertilizer industry forecast the yield/necessities of any crop production based on local state-owned agenciesā€™ monthly reports. + +For example: an industry commodity leader, Archer Daniels Midlands, on their weekly report, needs to digest USDAā€™s National Agricultural Statistics Serviceā€™s monthly crop predictions, based on past rainfall. + +Our solution predicts crop production using satellite data, providing daily updated information about any given area and commodity. + +Scientific literature and our early machine learning model show a good correlation between Sentinel-2 data, water availability and past crop yields. We are training our model to forecast production based on this newly-available technology. + +Our competitive advantage is giving independent real-time future yield predictions to stakeholders in an easy-to-consume way.""" + +) + + +## Main Content #st.markdown("# Cropernicus Dashboard") image = Image.open('img/logo.png') - -st.image(image) +st.image(image, width=500) st.write( - """This demo shows how to use the agroboad terminal to check for crop predictions over time.""" + """This demo shows how to use the cropernicus dashboard to check for crop yield forecast over time.""" ) -mapping_demo() \ No newline at end of file +image2 = Image.open('img/colormap2.png') +st.image(image2, width=200) + +mapping_demo() + +st.markdown("Here you can find related indices extracted from Sentinel-2 products.") + +st.bokeh_chart(p, use_container_width=True) + + +hide_streamlit_style = """ + + """ +st.markdown(hide_streamlit_style, unsafe_allow_html=True) + + +# st.markdown("[Cropernicus.com]()")