Azure Workflow for KML and Satellite Imagery
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
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
Related categories:
Python
Cloud Computing
C# Programming
Sharepoint
Azure
Geospatial
Microsoft SQL Server
API Integration