Azure Workflow for KML and Satellite Imagery

Job ID: 40232130

Budget: $30 – $250 USD

Project Title

Azure Workflow for KML Ingestion and High-Resolution Satellite Imagery Acquisition

Project Objective

Develop an automated cloud workflow that:

- Detects uploaded .kml files and associated metadata (orchard name, tree variety, location, etc.) containing agricultural field / orchard boundaries
- Extracts polygon geometry from each file
- Automatically obtains very high resolution satellite imagery covering the polygon area
- Stores imagery and metadata in structured Azure storage for downstream analysis

IMPORTANT:
This phase does NOT include tree detection, counting, or computer vision.
This phase is strictly:

- KML ingestion
- AOI extraction
- Satellite imagery retrieval (sub-meter resolution preferred)
- Storage + metadata organization

Target Platform

Microsoft Azure (required)

Functional Requirements
1. KML Ingestion Pipeline

Monitor a designated cloud folder (OneDrive, SharePoint, or Azure Blob)

Automatically trigger processing when a new .kml file is uploaded

Support:
single polygon
multipolygon
multiple features per file

Extract:
geometry coordinates
bounding box
area (hectares)
centroid
CRS handling (assume WGS84 but validate)

2. Area of Interest (AOI) Processing

For each polygon:

Generate buffered bounding box (configurable margin, e.g. 50–200 m)
Prepare AOI query format compatible with imagery provider API
Log AOI metadata

3. High-Resolution Satellite Imagery Retrieval

System must be capable of retrieving imagery from an API provider.
Developer should implement provider-agnostic architecture so imagery source can be changed later.
Resolution target:
Prefer ≤ 50 cm per pixel
Must support configurable resolution target

Acceptable imagery acquisition modes:
archive imagery request
tile mosaic download
scene download covering AOI

System must handle:
API authentication
query submission
polling job status (if async)
downloading imagery
reprojection if needed
clipping to AOI polygon (optional but preferred)

4. Imagery Storage

Store outputs in Azure Blob Storage with structured hierarchy:

/kml/
original files

/imagery/raw/
/imagery/clipped/

/metadata/
json records


Each processed AOI must produce:
imagery file (GeoTIFF preferred)
metadata JSON including:
acquisition date
provider
spatial resolution
CRS
cloud cover (if available)
AOI area
bounding box
processing timestamp

5. Processing Orchestration

Implement automated cloud processing:

Recommended architecture (open to alternatives):
Azure Logic App OR Event Grid trigger
Azure Function (Python preferred)
Durable Functions if long-running
Azure Blob Storage
Key Vault for credentials
Must support multiple concurrent KML uploads.

6. Logging and Error Handling

System must:
log processing steps
log failed imagery queries
flag AOIs where imagery unavailable
provide retry mechanism