import ee import geemap.foliumap as geemap import gradio as gr ee.Authenticate ee.Initialize(project='august-tract-445517-i2') def generate_map(start_date, end_date, zoom, center_lat, center_lon): Map = geemap.Map(center=[center_lat, center_lon], zoom=zoom) # Load Landsat 8 ImageCollection filtered by date landsat = ( ee.ImageCollection("LANDSAT/LC08/C02/T1_L2") .filterDate(start_date, end_date) .median() ) # Visualization parameters vis_params = { "bands": ["SR_B4", "SR_B3", "SR_B2"], # Red, Green, Blue bands "min": 0, "max": 3000, "gamma": 1.4, } # Add Landsat layer to the map Map.addLayer(landsat, vis_params, "Landsat 8") Map.addLayerControl() # Add layer controls # Save the map as an HTML file map_file = "map.html" Map.save(map_file) # Return the HTML file return map_file # Gradio interface def render_map(start_date, end_date, zoom, center_lat, center_lon): map_file = generate_map(start_date, end_date, zoom, center_lat, center_lon) with open(map_file, "r", encoding="utf-8") as f: html_content = f.read() return html_content # Gradio app iface = gr.Interface( fn=render_map, inputs=[ gr.inputs.Textbox(label="Start Date (YYYY-MM-DD)", default="2021-01-01"), gr.inputs.Textbox(label="End Date (YYYY-MM-DD)", default="2021-12-31"), gr.inputs.Slider(label="Zoom Level", minimum=1, maximum=20, default=4), gr.inputs.Number(label="Center Latitude", default=20.0), gr.inputs.Number(label="Center Longitude", default=78.0), ], outputs=gr.HTML(label="Interactive Map"), title="Interactive Google Earth Engine Map", description="Generate a responsive map using Landsat 8 data by specifying date range, zoom level, and center coordinates.", ) iface.launch(server_name="0.0.0.0", server_port=7860)