Arun0808's picture
Align Space docs with CPU demo
02f8337
Raw
History Blame Contribute Delete
2.06 kB
"""Gradio HF Space entry point for DarkVesselNet.
The public Space is a CPU-safe scaffold: it exposes the same AOIs and
reasoning trace as the full project, but uses deterministic synthetic
Sentinel-1/Sentinel-2/AIS tensors instead of live external downloads or
600M-parameter foundation-model weights.
"""
from __future__ import annotations
import zlib
import gradio as gr
import torch
AOIS = {
"Gulf of Oman": (24.55, 58.10),
"Strait of Hormuz": (26.60, 56.25),
"South China Sea": (15.00, 113.50),
"Galapagos EEZ": (-0.50, -90.50),
"Sea of Japan": (40.00, 132.00),
}
def run_pipeline(aoi: str) -> str:
if aoi not in AOIS:
return "Unknown AOI."
torch.manual_seed(zlib.crc32(aoi.encode("utf-8")) & 0xFFFF)
chip = torch.randn(1, 6, 224, 224)
ais = torch.randn(1, 12, 5)
optical_sar_energy = chip.square().mean()
ais_gap_energy = ais[..., :2].square().mean()
score = torch.sigmoid(0.55 * optical_sar_energy + 0.45 * ais_gap_energy - 0.75).item()
lat, lon = AOIS[aoi]
return (
f"AOI: {aoi} ({lat:.3f}, {lon:.3f})\n"
f"backbone: prithvi-2 interface (CPU demo mode)\n"
f"dark vessel probability: {score:.3f}\n"
f"reasoning: TGARD gap score 0.42, Pi-DPM kinematic residual 0.18 m/s^2.\n"
f"sensor stack simulated: Sentinel-1 VV/VH GRD, Sentinel-2 L2A, AIS DMA feed.\n"
)
def build_ui() -> gr.Blocks:
with gr.Blocks(title="DarkVesselNet") as demo:
gr.Markdown(
"# DarkVesselNet\n"
"CPU-safe dark-vessel reasoning demo for S1/S2/AIS fusion. "
"The full repository contains the live data connectors and model-backed pipeline."
)
aoi = gr.Dropdown(choices=list(AOIS), value="Gulf of Oman", label="Area of interest")
out = gr.Textbox(label="Pipeline output", lines=8)
btn = gr.Button("Run DarkVesselNet")
btn.click(fn=run_pipeline, inputs=aoi, outputs=out)
return demo
demo = build_ui()
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0")