import gradio as gr import pandas as pd from image_call import (create_image_ndvi, create_image_ndwi, create_image_ndmi, create_image_nddi, create_image_savi, date_create, load_and_process_file, filter_latest_date, create_image_from_coordinates) import numpy as np from PIL import Image import tensorflow as tf # โหลดโมเดล loaded_model = tf.keras.models.load_model('combind_model.h5') def process_input(file): df_use = load_and_process_file(file) date_use = filter_latest_date(df_use, date_column='acq_date') hotspot_array=create_image_from_coordinates(filter_latest_date(df_use, date_column='acq_date')) date_response= date_create(str(date_use["acq_date"][0].date())) start_date,stop_date = date_response[0],date_response[1] ndvi_array,image_ndvi_array = create_image_ndvi(start_date,stop_date) ndwi_array,image_ndwi_array = create_image_ndwi(start_date,stop_date) ndmi_array,image_ndmi_array = create_image_ndmi(start_date,stop_date) nddi_array,image_nddi_array = create_image_nddi(start_date,stop_date) savi_array,image_savi_array = create_image_savi(start_date,stop_date) model_input_array = [ndvi_array,ndwi_array,ndmi_array,nddi_array,savi_array,hotspot_array] img_use = np.array(model_input_array) np_img_use = np.transpose(img_use,(1,2,0)) input_to_model = np.expand_dims(np_img_use, axis=0) predictions = loaded_model.predict(input_to_model) predictions = np.squeeze(predictions).astype(np.uint8) return_image = Image.fromarray(predictions).convert("RGB") path_save_img = "test.png" return_image.save(path_save_img) return path_save_img,str(input_to_model.shape) iface = gr.Interface( fn=process_input, # ฟังก์ชันที่ใช้ในการอ่านและประมวลผลไฟล์ inputs="file", # อินพุตเป็นไฟล์ outputs=["image", "text"], # เอาท์พุตเป็นภาพและข้อความ title="อ่านและแสดงไฟล์ CSV เป็นภาพและข้อความ", description="อัปโหลดไฟล์ CSV และแสดงข้อมูลออกมาในรูปแบบของภาพและข้อความ", ) # รัน Gradio interface iface.launch(share=True)