15 KiB
15 KiB
Crop Analysis Messaging Decision Flowchart
This flowchart visualizes the enhanced decision logic for automated crop analysis messaging based on field uniform| Good | ≤ 0.15 | ≥ 45% | Hi### 3. Enhanced Messaging Logic
Excellent Uniformity (CV ≤ 0.08, Acceptable ≥ 45%):
- ✅ "Excellent field condition - optimal uniformity"
- 📊 "Continue current management practices"
Good Uniformity with High Clustering (CV ≤ 0.15, Moran's I > 0.95):
- 🔶 "Growth zones detected - potential for optimization"
- 📍 "Monitor clustered areas for development opportunities"
Moderate Variation Issues:
- 🔍 "Field shows moderate variation - investigate causes"
- 📈 "Consider zone-specific management approaches"
Poor Uniformity (CV > 0.25 or Acceptable < 40%):
- 🚨 "Urgent attention needed - poor field uniformity"
- ⚠️ "Immediate management intervention required"ring (>0.95) | Any | Po🔶 CLUSTERING NOTEFor Moderate Variation:**
- 🔍 Investigate specific zones or field-wide issues
- 📈 Consider zone-specific management
- 🌾 Review irrigation, fertilization, or pest management
- ✅ Good/excellent uniformity with very high clustering (Moran's I > 0.95)
- ✅ Moderate variation with increasing CI and clusteringtial growth zones | 🔶 Clustering Note |ty, spatial patterns, CI change trends, and acceptable area thresholds.
Decision Flow
flowchart TD
Start([Weekly CI Analysis Starts]) --> Extract[Extract CI values from satellite mosaics]
Extract --> CalcStats[Calculate field statistics:<br/>- Mean CI<br/>- Coefficient of Variation CV<br/>- Acceptable area % (±25% of mean)<br/>- Spatial autocorrelation (Moran's I)]
CalcStats --> CompareWeeks[Compare current week vs previous week]
CompareWeeks --> CalcChange[Calculate CI Change:<br/>Current - Previous]
CalcChange --> CategorizeChange{Categorize CI Change}
CategorizeChange -->|Change ≥ +0.5| Increase[CI Increase]
CategorizeChange -->|-0.5 < Change < +0.5| Stable[CI Stable]
CategorizeChange -->|Change ≤ -0.5| Decrease[CI Decrease]
Increase --> CheckUniformity1{Enhanced Uniformity Check:<br/>CV & Acceptable Area}
Stable --> CheckUniformity2{Enhanced Uniformity Check:<br/>CV & Acceptable Area}
Decrease --> CheckUniformity3{Enhanced Uniformity Check:<br/>CV & Acceptable Area}
%% Enhanced uniformity categorization
CheckUniformity1 -->|CV > 0.25 OR<br/>Acceptable < 40%| PoorUniformity1[🚨 POOR UNIFORMITY<br/>Urgent attention needed]
CheckUniformity1 -->|CV ≤ 0.08 AND<br/>Acceptable ≥ 45%| ExcellentUniformity1[✅ EXCELLENT UNIFORMITY<br/>Optimal field condition]
CheckUniformity1 -->|CV ≤ 0.15| GoodUniformity1[✅ GOOD UNIFORMITY<br/>Check for clustering]
CheckUniformity1 -->|0.15 < CV ≤ 0.25| ModerateVariation1[⚠️ MODERATE VARIATION<br/>Needs investigation]
CheckUniformity2 -->|CV > 0.25 OR<br/>Acceptable < 40%| PoorUniformity2[🚨 POOR UNIFORMITY<br/>Urgent attention needed]
CheckUniformity2 -->|CV ≤ 0.08 AND<br/>Acceptable ≥ 45%| ExcellentUniformity2[✅ EXCELLENT UNIFORMITY<br/>Optimal field condition]
CheckUniformity2 -->|CV ≤ 0.15| GoodUniformity2[✅ GOOD UNIFORMITY<br/>Check for clustering]
CheckUniformity2 -->|0.15 < CV ≤ 0.25| ModerateVariation2[⚠️ MODERATE VARIATION<br/>Needs investigation]
CheckUniformity3 -->|CV > 0.25 OR<br/>Acceptable < 40%| PoorUniformity3[🚨 POOR UNIFORMITY<br/>Urgent attention needed]
CheckUniformity3 -->|CV ≤ 0.08 AND<br/>Acceptable ≥ 45%| ExcellentUniformity3[✅ EXCELLENT UNIFORMITY<br/>Optimal field condition]
CheckUniformity3 -->|CV ≤ 0.15| GoodUniformity3[✅ GOOD UNIFORMITY<br/>Check for clustering]
CheckUniformity3 -->|0.15 < CV ≤ 0.25| ModerateVariation3[⚠️ MODERATE VARIATION<br/>Needs investigation]
%% Spatial analysis for good uniformity fields (clustering check)
GoodUniformity1 --> SpatialCheck1{Moran's I > 0.95?<br/>Very strong clustering}
GoodUniformity2 --> SpatialCheck2{Moran's I > 0.95?<br/>Very strong clustering}
GoodUniformity3 --> SpatialCheck3{Moran's I > 0.95?<br/>Very strong clustering}
%% Spatial pattern analysis for moderate variation fields
ModerateVariation1 --> SpatialAnalysis1[Spatial Analysis:<br/>Moran's I autocorrelation]
ModerateVariation2 --> SpatialAnalysis2[Spatial Analysis:<br/>Moran's I autocorrelation]
ModerateVariation3 --> SpatialAnalysis3[Spatial Analysis:<br/>Moran's I autocorrelation]
SpatialAnalysis1 --> ClassifyVariation1{Spatial Pattern?}
SpatialAnalysis2 --> ClassifyVariation2{Spatial Pattern?}
SpatialAnalysis3 --> ClassifyVariation3{Spatial Pattern?}
%% Localized vs distributed variation outcomes (for moderate variation fields)
ClassifyVariation1 -->|Moran's I > 0.95<br/>Very Clustered| LocalizedInc[Localized Growth Zones<br/>+ CI Increase]
ClassifyVariation1 -->|Moran's I ≤ 0.95<br/>Normal/Random| DistributedInc[Field-wide Variation<br/>+ CI Increase]
ClassifyVariation2 -->|Moran's I > 0.95<br/>Very Clustered| LocalizedStable[Localized Growth Zones<br/>+ CI Stable]
ClassifyVariation2 -->|Moran's I ≤ 0.95<br/>Normal/Random| DistributedStable[Field-wide Variation<br/>+ CI Stable]
ClassifyVariation3 -->|Moran's I > 0.95<br/>Very Clustered| LocalizedDec[Localized Problem Zones<br/>+ CI Decrease]
ClassifyVariation3 -->|Moran's I ≤ 0.95<br/>Normal/Random| DistributedDec[Field-wide Variation<br/>+ CI Decrease]
%% Clustering analysis for good uniformity
SpatialCheck1 -->|Yes| HighClustering1[🔶 VERY HIGH CLUSTERING<br/>Potential growth zones]
SpatialCheck1 -->|No - Normal| OptimalField1[✅ EXCELLENT FIELD<br/>Uniform & well-distributed]
SpatialCheck2 -->|Yes| HighClustering2[🔶 VERY HIGH CLUSTERING<br/>Potential growth zones]
SpatialCheck2 -->|No - Normal| OptimalField2[✅ EXCELLENT FIELD<br/>Uniform & well-distributed]
SpatialCheck3 -->|Yes| HighClustering3[🔶 VERY HIGH CLUSTERING<br/>Potential growth zones]
SpatialCheck3 -->|No - Normal| OptimalField3[✅ EXCELLENT FIELD<br/>Uniform & well-distributed]
%% Excellent/good uniformity outcomes
ExcellentUniformity1 --> NoAlert1[❌ NO ALERT<br/>Excellent field condition]
ExcellentUniformity2 --> NoAlert2[❌ NO ALERT<br/>Excellent field condition]
ExcellentUniformity3 --> NoAlert3[❌ NO ALERT<br/>Excellent field condition]
HighClustering1 --> Alert1[🔶 CLUSTERING NOTED<br/>Growth zones detected]
HighClustering2 --> Alert2[🔶 CLUSTERING NOTED<br/>Growth zones detected]
HighClustering3 --> Alert3[🔶 CLUSTERING NOTED<br/>Growth zones detected]
OptimalField1 --> NoAlert1
OptimalField2 --> NoAlert2
OptimalField3 --> NoAlert3
%% Poor uniformity outcomes
PoorUniformity1 --> Alert4[🚨 URGENT ATTENTION<br/>Poor field uniformity]
PoorUniformity2 --> Alert5[🚨 URGENT ATTENTION<br/>Poor field uniformity]
PoorUniformity3 --> Alert6[🚨 URGENT ATTENTION<br/>Poor field uniformity]
%% Enhanced message outcomes for moderate variation
LocalizedInc --> Alert7[🔶 INVESTIGATION<br/>Growth zones + CI increase]
DistributedInc --> Alert8[🔶 INVESTIGATION<br/>Field-wide variation + CI increase]
LocalizedStable --> Alert9[🚨 SEND ALERT<br/>Problem zones detected - investigate]
DistributedStable --> Alert10[🚨 SEND ALERT<br/>Field-wide unevenness - check practices]
LocalizedDec --> Alert11[🚨 HIGH PRIORITY<br/>Declining zones - immediate action needed]
DistributedDec --> Alert12[🚨 HIGH PRIORITY<br/>Field declining overall - review management]
%% Final outcomes
Alert1 --> SendMessage1[📧 Send Clustering Note]
Alert2 --> SendMessage2[📧 Send Clustering Note]
Alert3 --> SendMessage3[📧 Send Clustering Note]
Alert4 --> SendMessage4[📧 Send Urgent Field Alert]
Alert5 --> SendMessage5[📧 Send Urgent Field Alert]
Alert6 --> SendMessage6[📧 Send Urgent Field Alert]
Alert7 --> SendMessage7[📧 Send Investigation Alert]
Alert8 --> SendMessage8[📧 Send Investigation Alert]
Alert9 --> SendMessage9[📧 Send Problem Zone Alert]
Alert10 --> SendMessage10[📧 Send Field Management Alert]
Alert11 --> SendMessage11[📧 Send Urgent Zone Alert]
Alert12 --> SendMessage12[📧 Send Urgent Management Alert]
NoAlert1 --> NoAction[📊 Log for monitoring only]
NoAlert2 --> NoAction
NoAlert3 --> NoAction
SendMessage1 --> End([End: Message Generated])
SendMessage2 --> End
SendMessage3 --> End
SendMessage4 --> End
SendMessage5 --> End
SendMessage6 --> End
SendMessage7 --> End
SendMessage8 --> End
SendMessage9 --> End
SendMessage10 --> End
SendMessage11 --> End
SendMessage12 --> End
NoAction --> End2([End: No Action Required])
%% Styling
classDef alertBox fill:#ffcccc,stroke:#ff0000,stroke-width:2px
classDef urgentBox fill:#ff9999,stroke:#cc0000,stroke-width:3px
classDef clusterBox fill:#ffeaa7,stroke:#fdcb6e,stroke-width:2px
classDef noAlertBox fill:#ccffcc,stroke:#00ff00,stroke-width:2px
classDef decisionBox fill:#fff2cc,stroke:#d6b656,stroke-width:2px
classDef processBox fill:#dae8fc,stroke:#6c8ebf,stroke-width:2px
classDef spatialBox fill:#e1d5e7,stroke:#9673a6,stroke-width:2px
classDef excellentBox fill:#a8e6cf,stroke:#558b2f,stroke-width:2px
classDef poorBox fill:#ffcdd2,stroke:#d32f2f,stroke-width:3px
class Alert9,Alert10,SendMessage9,SendMessage10 alertBox
class Alert4,Alert5,Alert6,Alert11,Alert12,SendMessage4,SendMessage5,SendMessage6,SendMessage11,SendMessage12 urgentBox
class Alert1,Alert2,Alert3,Alert7,Alert8,SendMessage1,SendMessage2,SendMessage3,SendMessage7,SendMessage8 clusterBox
class NoAlert1,NoAlert2,NoAlert3,NoAction noAlertBox
class CategorizeChange,CheckUniformity1,CheckUniformity2,CheckUniformity3,ClassifyVariation1,ClassifyVariation2,ClassifyVariation3,SpatialCheck1,SpatialCheck2,SpatialCheck3 decisionBox
class Extract,CalcStats,CompareWeeks,CalcChange processBox
class SpatialAnalysis1,SpatialAnalysis2,SpatialAnalysis3 spatialBox
class ExcellentUniformity1,ExcellentUniformity2,ExcellentUniformity3,OptimalField1,OptimalField2,OptimalField3 excellentBox
class PoorUniformity1,PoorUniformity2,PoorUniformity3 poorBox
Enhanced Decision Matrix with Spatial Analysis
| Uniformity Category | CV Range | Acceptable Area % | Spatial Pattern | CI Change | Message | Alert Level |
|---|---|---|---|---|---|---|
| Excellent | ≤ 0.08 | ≥ 45% | Normal (≤0.95) | Any | Excellent field condition | ❌ None |
| Excellent | ≤ 0.08 | ≥ 45% | High clustering (>0.95) | Any | Growth zones detected | 🔶 Clustering Note |
| Good | ≤ 0.15 | ≥ 45% | Normal (≤0.95) | Any | Good uniformity, well-distributed | ❌ None |
| Good | ≤ 0.15 | ≥ 45% | High clustering (>0.95) | Any | Potential growth zones | <EFBFBD> Clustering Note |
| Moderate | 0.15-0.25 | 40-45% | Normal (≤0.95) | Increase | Field-wide variation + CI increase | 🔶 Investigation |
| Moderate | 0.15-0.25 | 40-45% | Normal (≤0.95) | Stable | Field-wide unevenness - check practices | 🚨 Alert |
| Moderate | 0.15-0.25 | 40-45% | Normal (≤0.95) | Decrease | Field declining overall - review management | 🚨🚨 Urgent |
| Moderate | 0.15-0.25 | 40-45% | High clustering (>0.95) | Increase | Growth zones + CI increase | 🔶 Investigation |
| Moderate | 0.15-0.25 | 40-45% | High clustering (>0.95) | Stable | Problem zones detected - investigate | 🚨 Alert |
| Moderate | 0.15-0.25 | 40-45% | High clustering (>0.95) | Decrease | Declining zones - immediate action needed | 🚨🚨 Urgent |
| Poor | > 0.25 | < 40% | Any | Any | Poor field uniformity - urgent attention | 🚨🚨 Urgent |
Spatial Analysis Methods
1. Moran's I Spatial Autocorrelation
- Purpose: Determines if similar CI values cluster together spatially
- Agricultural Context: High values (>0.95) indicate very strong clustering, which is noteworthy in agricultural fields where some clustering is natural
- Threshold: > 0.95 for "very high clustering" (potential growth zones or problem areas)
- Calculation: Compares each pixel's value to its spatial neighbors using queen contiguity
2. Simple Extreme Detection (Mean ± 1.5 × SD)
- Purpose: Identifies pixels with values significantly above or below the field average
- Method: Values outside mean ± 1.5 standard deviations are considered extremes
- Agricultural Relevance: More interpretable than complex hotspot statistics
- Output: Percentage of field area classified as extremes
3. Enhanced Messaging Logic
Localized Issues (High Moran's I):
- 📍 "Problem detected in [X]% of field area"
- 🎯 "Focus investigation on hotspot zones"
- 📊 "Rest of field performing normally"
Field-wide Issues (Low Moran's I):
- 🌾 "Variation affects entire field uniformly"
- <EFBFBD> "Review overall management practices"
- ⚠️ "Systematic issue likely present"
Key Thresholds
-
CI Change Thresholds:
- Increase: ≥ +0.5
- Stable: -0.5 to +0.5
- Decrease: ≤ -0.5
-
Field Uniformity Thresholds:
- Excellent: CV ≤ 0.08 AND Acceptable ≥ 45%
- Good: CV ≤ 0.15 AND Acceptable ≥ 45%
- Moderate: 0.15 < CV ≤ 0.25 OR 40% ≤ Acceptable < 45%
- Poor: CV > 0.25 OR Acceptable < 40%
-
Spatial Clustering Threshold:
- Very High Clustering: Moran's I > 0.95
- Normal/Random: Moran's I ≤ 0.95
-
Extreme Values Threshold:
- Extremes: Values outside mean ± 1.5 × standard deviation
- Acceptable area: Percentage of field within normal range
Enhanced Alert Logic
🚨🚨 URGENT ALERTS (High Priority):
- ✅ Poor field uniformity (CV > 0.25 or Acceptable < 40%)
- ✅ Moderate variation with declining CI (zone-specific or field-wide)
<EFBFBD> CLUSTERING NOTES:
- ✅ Good/excellent uniformity with very high clustering (Moran's I > 0.95)
- ✅ Moderate variation with increasing CI and clustering
🚨 STANDARD ALERTS:
- ✅ Moderate variation with stable CI (investigate practices)
❌ NO ALERTS:
- ❌ Excellent uniformity with normal clustering
- ❌ Good uniformity with normal clustering
Actionable Insights
For Excellent/Good Uniformity:
- ✅ Continue current management practices
- 📊 Monitor for clustering patterns
- 🎯 Optimize growth zones if detected
For Moderate Variation:
- <EFBFBD> Investigate specific zones or field-wide issues
- 📈 Consider zone-specific management
- 🌾 Review irrigation, fertilization, or pest management
For Poor Uniformity:
- 🚨 Immediate management intervention required
- 🎯 Focus on most problematic areas first
- 📊 Comprehensive field assessment needed