Skip to content

feat: Add satellite imagery classification job bundle#231

Open
phil-IO-p wants to merge 1 commit into
aws-deadline:mainlinefrom
phil-IO-p:feat/satellite-classification
Open

feat: Add satellite imagery classification job bundle#231
phil-IO-p wants to merge 1 commit into
aws-deadline:mainlinefrom
phil-IO-p:feat/satellite-classification

Conversation

@phil-IO-p
Copy link
Copy Markdown

Summary

  • Adds a new job bundle that classifies satellite image tiles into land-cover categories (water, vegetation, bare soil, rock, cloud) and merges results into a mosaic
  • Each tile is processed independently across the fleet, then a final step stitches them together
  • Includes 5 bundled synthetic tiles — no external data or accounts required to test

Test plan

  • openjd check passes on the template
  • Submitted to a Deadline Cloud farm with conda-forge queue environment — job completed successfully
  • Ran deadline bundle submit job_bundles/satellite_classification/ on a farm and verified output

@phil-IO-p phil-IO-p requested a review from a team as a code owner June 2, 2026 18:43
@github-actions github-actions Bot added the waiting-on-maintainers Waiting on the maintainers to review. label Jun 2, 2026
Comment on lines +50 to +51
deadline bundle submit job_bundles/satellite_classification/ \
-p TilesDir=/path/to/my/tiles
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be clear that they'll have to modify the job bundle template to support this. Right now the file names are hard-coded in template.yaml.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will update instructions

from matplotlib.patches import Patch


CLASS_NAMES = {1: "Water", 2: "Vegetation", 3: "Bare Soil", 4: "Rock", 5: "Cloud/Snow"}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these constants are in both classify_tile.py and mosaic.py - can we consolidate them somewhere?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure thing

Comment on lines +68 to +69
- name: attr.worker.os.family
anyOf: ["linux"]
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe worth mentioning that this only works on linux fleets in the README?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing this altogether. Upon further research, both linux and windows are supported

Comment on lines +21 to +27
TILE_CONFIGS = [
{
"name": "T12S_GC_North_Rim",
"bounds": (-112.2, 36.2, -112.0, 36.3),
"description": "North Rim - dense vegetation + exposed rock",
"mix": {"vegetation": 0.45, "rock": 0.40, "soil": 0.10, "water": 0.0, "cloud": 0.05},
},
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where did these tiles come from? Do we need an attribution for them? Better to add a reference to their source even if not required so someone can see where they came from.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All tiles are procedurally generated. Adding a docstring to generate_sample_tiles.py to detail this.

Demonstrates embarrassingly parallel tile processing on Deadline Cloud.
Classifies synthetic Sentinel-2 tiles into 5 land-cover classes using
spectral index thresholds, then merges results into a mosaic.

Signed-off-by: Phillip Krasnick <259470369+phil-IO-p@users.noreply.github.com>
@phil-IO-p phil-IO-p force-pushed the feat/satellite-classification branch from 0674f89 to 77c5be4 Compare June 2, 2026 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-on-maintainers Waiting on the maintainers to review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants