| import gradio as gr |
| from api import * |
| from processing import * |
| import pandas as pd |
| from indices import indices |
| import xgboost as xgb |
| import pickle |
|
|
| def predict(lat, lon): |
| cord = [lon,lat] |
| download(cord) |
| unzip() |
| name,cld_prob,days_ago = select_best_cloud_coverage_tile() |
| |
| bandes_path_10,bandes_path_20,bandes_path_60,tile_path,path_cld_20,path_cld_60 =paths(name) |
| |
| images_10 = extract_sub_image(bandes_path_10,tile_path,cord) |
|
|
| |
| |
| images_20 = extract_sub_image(bandes_path_20,tile_path,cord,20,1) |
|
|
| |
| |
| images_60 = extract_sub_image(bandes_path_60,tile_path,cord,60) |
| |
| feature = images_10.tolist()+images_20.tolist()+images_60.tolist() |
| bands = ['B02', 'B03', 'B04', 'B05', 'B06', 'B07', 'B08', 'B8A', 'B11', 'B12','B01','B09'] |
| X = pd.DataFrame([feature],columns = bands) |
| |
| X = indices(X) |
| |
| filename = "data/finalized_model.sav" |
| loaded_model = pickle.load(open(filename, 'rb')) |
| |
| biomass = loaded_model.predict(X)[0] |
| carbon = 0.55*biomass |
|
|
| |
| ndvi_index = ndvi(cord,name) |
|
|
| |
| delete_tiles() |
|
|
| return str(cld_prob)+ " % cloud coverage", str(days_ago)+" days ago",str(biomass)+" Mg/ha", str(carbon)+" MgC/ha","NDVI: "+ str(ndvi_index) |
|
|
| |
| title = "🌴BEEPAS : Biomass estimation to Evaluate the Environmental Performance of Agroforestry System🌴" |
| description = "This application estimates the biomass of certain areas using AI and satellite images (S2)." |
| article = "Created by data354." |
|
|
| |
| |
| example_list = [[5.379913, -4.050445],[6.54644,-7.86156],[5.346938, -4.027849]] |
|
|
| outputs = [ |
| gr.Textbox(label="Cloud coverage"), |
| gr.Textbox(label="Number of days since sensing"), |
| gr.Textbox(label="Above ground biomass density(AGBD) Mg/ha"), |
| gr.Textbox(label="Carbon stock density MgC/ha "), |
| gr.Textbox(label="Mean NDVI"),] |
|
|
|
|
| demo = gr.Interface( |
| fn=predict, |
| inputs=["number", "number"], |
| outputs=outputs, |
| examples=example_list, |
| title=title, |
| description=description, |
| article=article, |
| ) |
|
|
| demo.launch(share=False) |