Add raster tile detection handoff
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-06-23 18:18:59 +02:00
parent 8855aa8390
commit aa41dfa586
8 changed files with 112 additions and 4 deletions
@@ -19,6 +19,7 @@ export interface DatasetDetailPanelProps {
selectedRasterMetadata: RasterMetadataResponse | null
selectedRasterStats: RasterStatsResponse | null
rasterPreview: RasterPreviewResponse | null
latestRasterTileManifestPath: string
rasterUnavailableMessage: string | null
selectedClipAreaId: string
selectedIntersectTargetId: string
@@ -57,6 +58,7 @@ export interface DatasetDetailPanelProps {
onRunRasterReproject: () => void
onRunRasterClip: () => void
onRunRasterTile: () => void
onUseTileManifestForDetection: () => void
onRunRasterNdvi: () => void
onRunRasterNdwi: () => void
onRunRasterNdbi: () => void
@@ -100,6 +102,7 @@ export function DatasetDetailPanel({
selectedRasterMetadata,
selectedRasterStats,
rasterPreview,
latestRasterTileManifestPath,
rasterUnavailableMessage,
selectedClipAreaId,
selectedIntersectTargetId,
@@ -138,6 +141,7 @@ export function DatasetDetailPanel({
onRunRasterReproject,
onRunRasterClip,
onRunRasterTile,
onUseTileManifestForDetection,
onRunRasterNdvi,
onRunRasterNdwi,
onRunRasterNdbi,
@@ -171,6 +175,7 @@ export function DatasetDetailPanel({
selectedRasterMetadata={selectedRasterMetadata}
selectedRasterStats={selectedRasterStats}
rasterPreview={rasterPreview}
latestRasterTileManifestPath={latestRasterTileManifestPath}
rasterUnavailableMessage={rasterUnavailableMessage}
selectedClipAreaId={selectedClipAreaId}
rasterTileSize={rasterTileSize}
@@ -203,6 +208,7 @@ export function DatasetDetailPanel({
onRunRasterReproject={onRunRasterReproject}
onRunRasterClip={onRunRasterClip}
onRunRasterTile={onRunRasterTile}
onUseTileManifestForDetection={onUseTileManifestForDetection}
onRunRasterNdvi={onRunRasterNdvi}
onRunRasterNdwi={onRunRasterNdwi}
onRunRasterNdbi={onRunRasterNdbi}
@@ -6,6 +6,7 @@ interface RasterControlsProps {
selectedRasterMetadata: RasterMetadataResponse | null
selectedRasterStats: RasterStatsResponse | null
rasterPreview: RasterPreviewResponse | null
latestRasterTileManifestPath: string
rasterUnavailableMessage: string | null
selectedClipAreaId: string
rasterTileSize: number
@@ -38,6 +39,7 @@ interface RasterControlsProps {
onRunRasterReproject: () => void
onRunRasterClip: () => void
onRunRasterTile: () => void
onUseTileManifestForDetection: () => void
onRunRasterNdvi: () => void
onRunRasterNdwi: () => void
onRunRasterNdbi: () => void
@@ -57,6 +59,7 @@ export function RasterControls({
selectedRasterMetadata,
selectedRasterStats,
rasterPreview,
latestRasterTileManifestPath,
rasterUnavailableMessage,
selectedClipAreaId,
rasterTileSize,
@@ -89,6 +92,7 @@ export function RasterControls({
onRunRasterReproject,
onRunRasterClip,
onRunRasterTile,
onUseTileManifestForDetection,
onRunRasterNdvi,
onRunRasterNdwi,
onRunRasterNdbi,
@@ -156,11 +160,14 @@ export function RasterControls({
))}
</div>
<div className="raster-manifest-handoff">
<span>Tile manifest handoff</span>
<span>Latest tile manifest</span>
<p>
Generated tile manifests remain backend artifacts and are referenced by path in detection/segmentation requests; this panel only prepares
and explains the handoff.
{latestRasterTileManifestPath ||
'No tile manifest generated yet. Generate tiles before handing this raster to Detection Lab.'}
</p>
<button type="button" onClick={onUseTileManifestForDetection} disabled={!latestRasterTileManifestPath}>
Use in Detection Lab
</button>
</div>
</section>
<section className="raster-guardrail-surface" aria-label="Processing guardrails">