-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path4_Post_processing
More file actions
78 lines (53 loc) · 2.34 KB
/
Copy path4_Post_processing
File metadata and controls
78 lines (53 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
var palette = [ '7f5217','#e5c520','#428717']
var classified = ee.Image('projects/ee-hyinhe/assets/Esmaeel/LessIsMore_GEDI_TreeCrops/Outputs/Syria_3_Wall_RF_DTW_rectified')
var roi = table
var classified = classified.updateMask(image.select('ndvi_median').gt(1500))
// Get landcover 2020 ESA/WorldCover/v100
var WC_ESA = ee.ImageCollection("ESA/WorldCover/v100").first();
// urban area and water
var UrbanMask = WC_ESA.neq(50)
var WaterMask = WC_ESA.neq(80)
var BareMask = WC_ESA.neq(60)
var classified = classified.updateMask(UrbanMask).updateMask(WaterMask).updateMask(BareMask)
var classified = classified.clip(roi)
Map.addLayer(roi)
Map.addLayer(classified,{min: 1, max: 3, palette:palette},'Classified_DTW')
//**************************************************************************
// Post process by clustering
//**************************************************************************
var composite = image.clip(roi)
// Cluster using Unsupervised Clustering methods
var seeds = ee.Algorithms.Image.Segmentation.seedGrid(5);
var snic = ee.Algorithms.Image.Segmentation.SNIC({
image: composite,
compactness: 0,
connectivity: 4,
neighborhoodSize: 10,
size: 2,
seeds: seeds
})
var clusters = snic.select('clusters')
// // Assign class to each cluster based on 'majority' voting (using ee.Reducer.mode()
// var smoothed = classified.addBands(clusters);
// var clusterMajority = smoothed.reduceConnectedComponents({
// reducer: ee.Reducer.mode(),
// labelBand: 'clusters'
// });
// Map.addLayer(clusterMajority, {min: 1, max: 3, palette: palette},
// 'Processed using Clusters');
//**************************************************************************
// Post process by replacing isolated pixels with surrounding value
//**************************************************************************
// count patch sizes
var patchsize = classified.connectedPixelCount(80, true);
// run a majority filter
var filtered = classified.focal_mode({
radius: 10,
kernelType: 'square',
units: 'meters',
});
// updated image with majority filter where patch size is small
var connectedClassified = classified.where(patchsize.lt(25),filtered);
Map.addLayer(connectedClassified, {min: 1, max: 3, palette: palette},
'Processed using Connected Pixels');
var treeCrops = connectedClassified.eq(1).updateMask(connectedClassified.eq(1))