================================================================================
SUPPLEMENTARY MATERIAL — PHASE II FINAL DETECTION CATALOG
New River Valley, Belize — Maya Pottery Sherd Detection Study
University of Cincinnati, Department of Geography & GIS
Author: Benjamin Britton
================================================================================

ASSOCIATED ARTICLE
------------------
Britton, B. (2026). A Hue-Weighted Two-Phase Workflow for Automated Detection of
Maya Pottery Red Sherds in UAV Imagery. Remote Sensing (MDPI).

CONTENTS OF THIS ARCHIVE
--------------------------
  pass13_catalog.csv             1,647-row Phase II final detection catalog (CSV)
  pass13_detections.shp          Same detections as a point shapefile (EPSG:32616)
  pass13_detections.dbf          Shapefile attribute table
  pass13_detections.prj          Shapefile projection definition
  pass13_detections.shx          Shapefile spatial index
  run_pass13.py                  Reproduction script (Phase II chromatic filter)
  README_Phase2_Final_Detections.txt   This file


WHAT THIS DATASET IS
---------------------
pass13_catalog.csv is the output of the Two-Phase Workflow's Phase II stage —
the final validated detection catalog of 1,647 Maya Pottery Red (MPR) sherd
candidates after chromatic filtering of the 177,148-candidate Phase I master
catalog (see companion supplementary file: NewRiver_Phase1_Master_Catalog).

Filters applied (Pass 13, grid-search optimised 2026-03-22):
  Hue floor:        28.0°   (circular mean hue, CIRC_HUE)
  Hue ceiling:      37.0°   (circular mean hue, CIRC_HUE)
  Saturation floor: 25.0    (MEAN_SAT, 0–100 scale)
  Value ceiling:    40.0    (MEAN_VAL, 0–100 scale; excludes bleached limestone)
  Hue std dev max:  45.0°   (STD_HUE; spectrally homogeneous surface filter)
  Min bbox dim:     12.0 px (Gold Standard size floor)
  Dedup radius:     0.01 m  (tile-overlap artefact suppression only)
  Model confidence: ≥ 0.05

Scoring:
  PASS13_SCORE = 0.70 × HUE_SCORE + 0.30 × GEOM_NORM
  HUE_SCORE    = exp(−0.5 × ((CIRC_HUE − 32.0°) / 8.0°)²)
                 (Gaussian proximity to 32.0° operational target)


VALIDATION PERFORMANCE (post-HITL adjudication)
-------------------------------------------------
  Ground truth annotations: 984
  True Positives  (TP):     962
  False Positives (FP):     685
  False Negatives (FN):      22
  Precision:               58.4%
  Recall:                  97.8%
  F1 score:                0.731
  Average Precision (AP):  0.374

  786 candidate FP detections were submitted for expert HITL adjudication;
  101 were reclassified as TP (genuine sherds missed by the annotator);
  685 were confirmed FP.

  Candidate reduction: 177,148 → 1,647 (99.1% reduction)
  Re-applying Phase II filters to Phase I catalog: ~1.2 seconds per iteration.


PROVENANCE
----------
  Input:            geom4999_enriched.csv (Phase I master catalog, 177,148 rows)
  Model:            Cascade Mask R-CNN, ViTDet backbone
  Checkpoint:       model_0004999.pth
  Dataset:          100-image UAV survey, New River Valley, Belize
  Sensor:           DJI drone, DNG raw imagery, 100 m AGL
  CRS:              EPSG:32616 (UTM Zone 16N, WGS84)
  Run date:         2026-03-22
  Script version:   run_pass13.py (params locked after grid search 2026-03-22)


COLUMN DEFINITIONS (38 columns)
---------------------------------
  Pass13_Rank         Integer rank by PASS13_SCORE (1 = highest probability MPR)
  EVT_Rank            Rank from Phase I master catalog (by Geometric_Score)
  Object_ID           Unique detection identifier (Flight_ID + Tile + Sherd)
  Flight_ID           Source DNG image identifier (e.g. DJI_0016)
  Tile_Num            Tile index within the flight image
  Sherd_Num           Detection index within the tile
  Combined_Confidence Raw model confidence score (0–1)
  Gold_Score          0.70 × Color_Score_Raw + 0.30 × Geom_Norm (Pass 12 metric)
  Geometric_Score     Normalised geometric confidence (0–1)
  Geom_Norm           Geometry score normalised within flight
  Color_Score_Raw     Chromatic similarity score, centred on 32.0° hue
  Color_Score_Penalized  Color score after limestone penalty (hues 40–45°)
  Hue_Deg             Mean hue of detection mask (degrees, 0–360)
  Saturation          Mean saturation of detection mask (0–100 scale)
  Value               Mean brightness of detection mask (0–100 scale)
  BBox_X              Bounding box left edge (pixels, image coordinates)
  BBox_Y              Bounding box top edge (pixels, image coordinates)
  BBox_W              Bounding box width (pixels)
  BBox_H              Bounding box height (pixels)
  BBox_Area           Bounding box area (pixels²)
  Size_Category       Ordinal size class (Small / Medium / Large)
  Cluster_Size        Number of tile detections within dedup radius
  UTM_Easting         Detection centroid easting, EPSG:32616 (metres)
  UTM_Northing        Detection centroid northing, EPSG:32616 (metres)
  Latitude            WGS84 decimal degrees
  Longitude           WGS84 decimal degrees
  Notes               Processing flags or anomaly notes
  Chip_Filename       Filename of 128 px chip image (chips not included here)
  CIRC_HUE            Circular mean hue (atan2 method, degrees) — PRIMARY HUE FIELD
  MED_HUE             Median hue of mask pixels (degrees)
  STD_HUE             Circular standard deviation of hue (degrees)
  MEAN_SAT            Mean saturation of mask pixels (0–1 normalised)
  MED_SAT             Median saturation of mask pixels (0–1 normalised)
  MEAN_VAL            Mean brightness of mask pixels (0–1 normalised)
  MASK_PX             Total pixel count of segmentation mask
  HUE_SRC             Source of hue measurement ('mask' or 'bbox')
  HUE_SCORE           Gaussian proximity score to 32.0° target (0–1)
  PASS13_SCORE        Final composite score: 0.70×HUE_SCORE + 0.30×GEOM_NORM


REPRODUCTION INSTRUCTIONS
--------------------------
Requirements:
  Python 3.8+, numpy, pandas, geopandas, pyproj, shapely

Steps:
  1. Obtain the Phase I master catalog:
       geom4999_enriched.csv  (see companion supplementary archive)
       Place at: G:/100pix_EVT_geom4999/geom4999_enriched.csv
     (or update INPUT_CSV in run_pass13.py)
  2. Run:
       python run_pass13.py
  3. Output writes to:
       G:/100pix_EVT_pass13/pass13_catalog.csv
       G:/100pix_EVT_pass13/pass13_detections.shp

Approximate runtime: ~1.2 seconds.

To run a sensitivity analysis with different thresholds, edit the
CONFIGURATION block at the top of run_pass13.py (lines 66–97) and re-run.
The Phase I master catalog never needs to be regenerated for this.


NOTES
------
- CIRC_HUE (circular mean via atan2) is the primary hue field used for all
  Phase II filtering. Hue_Deg (simple mean) is retained for legacy comparison
  but should not be used for chromatic analysis near the 0°/360° wrap.
- HSV values in MEAN_SAT / MED_SAT / MEAN_VAL are 0–1 normalised (float32).
  Saturation and Value in the Saturation/Value columns are on a 0–100 scale.
- The shapefile and CSV contain identical records; the shapefile adds point
  geometry (UTM Easting/Northing) for direct loading in ArcGIS Pro or QGIS.


LICENSE / CITATION
-------------------
These data are released as supplementary material to the above article.
Please cite the article if you use this dataset or the associated code.

================================================================================
End of README
================================================================================
