Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +586 -0
- README.md +47 -3
- code/deep_learning_dataset/gee.ipynb +463 -0
- code/deep_learning_dataset/gee_vis_date_mission.ipynb +140 -0
- code/lake_detection/band_stats.json +1 -0
- code/lake_detection/pca_model.pkl +3 -0
- code/lake_detection/superpixel_classification.ipynb +458 -0
- code/lake_detection/superpixel_dataloader.ipynb +349 -0
- code/lake_detection/superpixel_rlhf.ipynb +0 -0
- code/lake_detection/train_segments_features.csv +3 -0
- code/lake_detection/validation_segments_features.csv +3 -0
- code/lake_detection_deep_learning/band_stats.json +1 -0
- code/lake_detection_deep_learning/model_anaysis_comp.ipynb +0 -0
- code/lake_detection_deep_learning/model_visulalisation.ipynb +0 -0
- code/lake_detection_deep_learning/models/deeplabv3/0/deeplabv3_mae_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/deeplabv3/0/deeplabv3_mae_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/deeplabv3/0/deeplabv3_mae_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/deeplabv3/0/deeplabv3_seg_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/deeplabv3/0/deeplabv3_seg_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_mae_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_mae_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_mae_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_seg_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_seg_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_seg_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_mae_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_mae_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_mae_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_seg_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_seg_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_seg_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_mae_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_mae_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_mae_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_seg_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_seg_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_seg_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_mae_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_mae_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_mae_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_seg_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_seg_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_seg_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_mae_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_mae_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_mae_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_seg_models/epoch_best.pth +3 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_seg_models/training_log.csv +31 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_seg_models/training_time_log.csv +2 -0
- code/lake_detection_deep_learning/models/swinv2_cnn/2/swinv2_cnn_mae_models/epoch_best.pth +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,589 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
code/lake_detection/train_segments_features.csv filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
code/lake_detection/validation_segments_features.csv filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
code/melting_season/glacier/SGI_2016_centerlines.dbf filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
code/melting_season/glacier/SGI_2016_centerlines.shp filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
code/melting_season/glacier/SGI_2016_debriscover.dbf filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
code/melting_season/glacier/SGI_2016_debriscover.shp filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
code/melting_season/glacier/SGI_2016_glacier_locations.dbf filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
code/melting_season/glacier/SGI_2016_glaciers.dbf filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
code/melting_season/glacier/SGI_2016_glaciers.shp filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
code/melting_season/glacier/SGI_2016_surfacetype_10m_LV95.tif filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
code/melting_season/s1_wet_snow_timeseries_points_base2020.csv filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
dataset/Aletsch/20230613_Aletsch_cloud_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
dataset/Aletsch/20230613_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
dataset/Aletsch/20230613_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
dataset/Aletsch/20230613_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 51 |
+
dataset/Aletsch/20230618_Aletsch_cloud_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 52 |
+
dataset/Aletsch/20230618_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 53 |
+
dataset/Aletsch/20230618_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 54 |
+
dataset/Aletsch/20230618_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 55 |
+
dataset/Aletsch/20230618_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 56 |
+
dataset/Aletsch/20230625_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 57 |
+
dataset/Aletsch/20230625_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 58 |
+
dataset/Aletsch/20230625_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 59 |
+
dataset/Aletsch/20230625_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 60 |
+
dataset/Aletsch/20230630_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 61 |
+
dataset/Aletsch/20230630_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 62 |
+
dataset/Aletsch/20230630_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 63 |
+
dataset/Aletsch/20230703_Aletsch_cloud_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 64 |
+
dataset/Aletsch/20230703_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 65 |
+
dataset/Aletsch/20230703_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 66 |
+
dataset/Aletsch/20230703_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 67 |
+
dataset/Aletsch/20230703_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 68 |
+
dataset/Aletsch/20230708_Aletsch_cloud_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 69 |
+
dataset/Aletsch/20230708_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 70 |
+
dataset/Aletsch/20230708_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 71 |
+
dataset/Aletsch/20230708_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 72 |
+
dataset/Aletsch/20230708_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 73 |
+
dataset/Aletsch/20230715_Aletsch_cloud_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 74 |
+
dataset/Aletsch/20230715_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 75 |
+
dataset/Aletsch/20230715_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 76 |
+
dataset/Aletsch/20230715_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 77 |
+
dataset/Aletsch/20230715_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 78 |
+
dataset/Aletsch/20230720_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 79 |
+
dataset/Aletsch/20230720_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 80 |
+
dataset/Aletsch/20230720_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 81 |
+
dataset/Aletsch/20230720_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 82 |
+
dataset/Aletsch/20230812_Aletsch_cloud_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 83 |
+
dataset/Aletsch/20230812_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 84 |
+
dataset/Aletsch/20230812_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 85 |
+
dataset/Aletsch/20230812_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 86 |
+
dataset/Aletsch/20230812_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 87 |
+
dataset/Aletsch/20230817_Aletsch_cloud_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 88 |
+
dataset/Aletsch/20230817_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 89 |
+
dataset/Aletsch/20230817_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 90 |
+
dataset/Aletsch/20230817_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 91 |
+
dataset/Aletsch/20230817_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 92 |
+
dataset/Aletsch/20230824_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 93 |
+
dataset/Aletsch/20230824_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 94 |
+
dataset/Aletsch/20230824_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 95 |
+
dataset/Aletsch/20230824_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 96 |
+
dataset/Aletsch/20230829_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 97 |
+
dataset/Aletsch/20230829_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 98 |
+
dataset/Aletsch/20230829_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 99 |
+
dataset/Aletsch/20230901_Aletsch_cloud_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 100 |
+
dataset/Aletsch/20230901_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 101 |
+
dataset/Aletsch/20230901_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 102 |
+
dataset/Aletsch/20230901_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 103 |
+
dataset/Aletsch/20230901_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 104 |
+
dataset/Aletsch/20230906_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 105 |
+
dataset/Aletsch/20230906_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 106 |
+
dataset/Aletsch/20230906_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 107 |
+
dataset/Aletsch/20230906_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 108 |
+
dataset/Aletsch/20230913_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 109 |
+
dataset/Aletsch/20230913_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 110 |
+
dataset/Aletsch/20230913_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 111 |
+
dataset/Aletsch/20230918_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 112 |
+
dataset/Aletsch/20230918_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 113 |
+
dataset/Aletsch/20230918_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 114 |
+
dataset/Aletsch/20231011_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 115 |
+
dataset/Aletsch/20231011_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 116 |
+
dataset/Aletsch/20231011_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 117 |
+
dataset/Aletsch/20231011_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 118 |
+
dataset/Aletsch/20231016_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 119 |
+
dataset/Aletsch/20231016_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 120 |
+
dataset/Aletsch/20231016_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 121 |
+
dataset/Aletsch/20231016_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 122 |
+
dataset/Aletsch/20231023_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 123 |
+
dataset/Aletsch/20231023_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 124 |
+
dataset/Aletsch/20231023_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 125 |
+
dataset/Aletsch/20231028_Aletsch_cloud_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 126 |
+
dataset/Aletsch/20231028_Aletsch_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 127 |
+
dataset/Aletsch/20231028_Aletsch_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 128 |
+
dataset/Aletsch/20231028_Aletsch_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 129 |
+
dataset/Aletsch/20231028_Aletsch_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 130 |
+
dataset/Aletsch/Aletsch_dem.tif filter=lfs diff=lfs merge=lfs -text
|
| 131 |
+
dataset/Allalin/20230613_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 132 |
+
dataset/Allalin/20230613_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 133 |
+
dataset/Allalin/20230613_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 134 |
+
dataset/Allalin/20230618_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 135 |
+
dataset/Allalin/20230618_Allalin_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 136 |
+
dataset/Allalin/20230618_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 137 |
+
dataset/Allalin/20230618_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 138 |
+
dataset/Allalin/20230625_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 139 |
+
dataset/Allalin/20230625_Allalin_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 140 |
+
dataset/Allalin/20230625_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 141 |
+
dataset/Allalin/20230625_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 142 |
+
dataset/Allalin/20230630_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 143 |
+
dataset/Allalin/20230630_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 144 |
+
dataset/Allalin/20230630_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 145 |
+
dataset/Allalin/20230703_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 146 |
+
dataset/Allalin/20230703_Allalin_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 147 |
+
dataset/Allalin/20230703_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 148 |
+
dataset/Allalin/20230703_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 149 |
+
dataset/Allalin/20230708_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 150 |
+
dataset/Allalin/20230708_Allalin_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 151 |
+
dataset/Allalin/20230708_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 152 |
+
dataset/Allalin/20230708_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 153 |
+
dataset/Allalin/20230715_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 154 |
+
dataset/Allalin/20230715_Allalin_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 155 |
+
dataset/Allalin/20230715_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 156 |
+
dataset/Allalin/20230715_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 157 |
+
dataset/Allalin/20230720_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 158 |
+
dataset/Allalin/20230720_Allalin_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 159 |
+
dataset/Allalin/20230720_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 160 |
+
dataset/Allalin/20230720_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 161 |
+
dataset/Allalin/20230812_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 162 |
+
dataset/Allalin/20230812_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 163 |
+
dataset/Allalin/20230812_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 164 |
+
dataset/Allalin/20230817_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 165 |
+
dataset/Allalin/20230817_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 166 |
+
dataset/Allalin/20230817_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 167 |
+
dataset/Allalin/20230824_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 168 |
+
dataset/Allalin/20230824_Allalin_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 169 |
+
dataset/Allalin/20230824_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 170 |
+
dataset/Allalin/20230824_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 171 |
+
dataset/Allalin/20230829_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 172 |
+
dataset/Allalin/20230829_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 173 |
+
dataset/Allalin/20230829_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 174 |
+
dataset/Allalin/20230901_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 175 |
+
dataset/Allalin/20230901_Allalin_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 176 |
+
dataset/Allalin/20230901_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 177 |
+
dataset/Allalin/20230901_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 178 |
+
dataset/Allalin/20230906_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 179 |
+
dataset/Allalin/20230906_Allalin_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 180 |
+
dataset/Allalin/20230906_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 181 |
+
dataset/Allalin/20230906_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 182 |
+
dataset/Allalin/20230913_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 183 |
+
dataset/Allalin/20230913_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 184 |
+
dataset/Allalin/20230913_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 185 |
+
dataset/Allalin/20230918_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 186 |
+
dataset/Allalin/20230918_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 187 |
+
dataset/Allalin/20230918_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 188 |
+
dataset/Allalin/20231011_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 189 |
+
dataset/Allalin/20231011_Allalin_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 190 |
+
dataset/Allalin/20231011_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 191 |
+
dataset/Allalin/20231011_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 192 |
+
dataset/Allalin/20231016_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 193 |
+
dataset/Allalin/20231016_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 194 |
+
dataset/Allalin/20231016_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 195 |
+
dataset/Allalin/20231023_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 196 |
+
dataset/Allalin/20231023_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 197 |
+
dataset/Allalin/20231023_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 198 |
+
dataset/Allalin/20231028_Allalin_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 199 |
+
dataset/Allalin/20231028_Allalin_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 200 |
+
dataset/Allalin/20231028_Allalin_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 201 |
+
dataset/Allalin/Allalin_dem.tif filter=lfs diff=lfs merge=lfs -text
|
| 202 |
+
dataset/Anzere/20230613_Anzere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 203 |
+
dataset/Anzere/20230613_Anzere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 204 |
+
dataset/Anzere/20230613_Anzere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 205 |
+
dataset/Anzere/20230618_Anzere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 206 |
+
dataset/Anzere/20230618_Anzere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 207 |
+
dataset/Anzere/20230618_Anzere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 208 |
+
dataset/Anzere/20230708_Anzere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 209 |
+
dataset/Anzere/20230708_Anzere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 210 |
+
dataset/Anzere/20230708_Anzere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 211 |
+
dataset/Anzere/20230812_Anzere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 212 |
+
dataset/Anzere/20230812_Anzere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 213 |
+
dataset/Anzere/20230812_Anzere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 214 |
+
dataset/Anzere/20230817_Anzere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 215 |
+
dataset/Anzere/20230817_Anzere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 216 |
+
dataset/Anzere/20230817_Anzere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 217 |
+
dataset/Anzere/20230906_Anzere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 218 |
+
dataset/Anzere/20230906_Anzere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 219 |
+
dataset/Anzere/20230906_Anzere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 220 |
+
dataset/Anzere/20231011_Anzere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 221 |
+
dataset/Anzere/20231011_Anzere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 222 |
+
dataset/Anzere/20231011_Anzere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 223 |
+
dataset/Anzere/20231016_Anzere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 224 |
+
dataset/Anzere/20231016_Anzere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 225 |
+
dataset/Anzere/20231016_Anzere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 226 |
+
dataset/Anzere/Anzere_dem.tif filter=lfs diff=lfs merge=lfs -text
|
| 227 |
+
dataset/Diablerets/20230613_Diablerets_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 228 |
+
dataset/Diablerets/20230613_Diablerets_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 229 |
+
dataset/Diablerets/20230613_Diablerets_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 230 |
+
dataset/Diablerets/20230618_Diablerets_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 231 |
+
dataset/Diablerets/20230618_Diablerets_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 232 |
+
dataset/Diablerets/20230618_Diablerets_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 233 |
+
dataset/Diablerets/20230708_Diablerets_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 234 |
+
dataset/Diablerets/20230708_Diablerets_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 235 |
+
dataset/Diablerets/20230708_Diablerets_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 236 |
+
dataset/Diablerets/20230812_Diablerets_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 237 |
+
dataset/Diablerets/20230812_Diablerets_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 238 |
+
dataset/Diablerets/20230812_Diablerets_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 239 |
+
dataset/Diablerets/20230817_Diablerets_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 240 |
+
dataset/Diablerets/20230817_Diablerets_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 241 |
+
dataset/Diablerets/20230817_Diablerets_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 242 |
+
dataset/Diablerets/20230906_Diablerets_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 243 |
+
dataset/Diablerets/20230906_Diablerets_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 244 |
+
dataset/Diablerets/20230906_Diablerets_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 245 |
+
dataset/Diablerets/20231011_Diablerets_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 246 |
+
dataset/Diablerets/20231011_Diablerets_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 247 |
+
dataset/Diablerets/20231011_Diablerets_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 248 |
+
dataset/Diablerets/20231016_Diablerets_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 249 |
+
dataset/Diablerets/20231016_Diablerets_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 250 |
+
dataset/Diablerets/20231016_Diablerets_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 251 |
+
dataset/Diablerets/Diablerets_dem.tif filter=lfs diff=lfs merge=lfs -text
|
| 252 |
+
dataset/Gorbassiere/20230613_Gorbassiere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 253 |
+
dataset/Gorbassiere/20230613_Gorbassiere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 254 |
+
dataset/Gorbassiere/20230613_Gorbassiere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 255 |
+
dataset/Gorbassiere/20230618_Gorbassiere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 256 |
+
dataset/Gorbassiere/20230618_Gorbassiere_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 257 |
+
dataset/Gorbassiere/20230618_Gorbassiere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 258 |
+
dataset/Gorbassiere/20230618_Gorbassiere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 259 |
+
dataset/Gorbassiere/20230708_Gorbassiere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 260 |
+
dataset/Gorbassiere/20230708_Gorbassiere_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 261 |
+
dataset/Gorbassiere/20230708_Gorbassiere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 262 |
+
dataset/Gorbassiere/20230708_Gorbassiere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 263 |
+
dataset/Gorbassiere/20230812_Gorbassiere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 264 |
+
dataset/Gorbassiere/20230812_Gorbassiere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 265 |
+
dataset/Gorbassiere/20230812_Gorbassiere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 266 |
+
dataset/Gorbassiere/20230817_Gorbassiere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 267 |
+
dataset/Gorbassiere/20230817_Gorbassiere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 268 |
+
dataset/Gorbassiere/20230817_Gorbassiere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 269 |
+
dataset/Gorbassiere/20230906_Gorbassiere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 270 |
+
dataset/Gorbassiere/20230906_Gorbassiere_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 271 |
+
dataset/Gorbassiere/20230906_Gorbassiere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 272 |
+
dataset/Gorbassiere/20230906_Gorbassiere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 273 |
+
dataset/Gorbassiere/20231011_Gorbassiere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 274 |
+
dataset/Gorbassiere/20231011_Gorbassiere_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 275 |
+
dataset/Gorbassiere/20231011_Gorbassiere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 276 |
+
dataset/Gorbassiere/20231011_Gorbassiere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 277 |
+
dataset/Gorbassiere/20231016_Gorbassiere_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 278 |
+
dataset/Gorbassiere/20231016_Gorbassiere_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 279 |
+
dataset/Gorbassiere/20231016_Gorbassiere_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 280 |
+
dataset/Gorbassiere/Gorbassiere_dem.tif filter=lfs diff=lfs merge=lfs -text
|
| 281 |
+
dataset/Gorner/20230613_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 282 |
+
dataset/Gorner/20230613_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 283 |
+
dataset/Gorner/20230613_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 284 |
+
dataset/Gorner/20230618_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 285 |
+
dataset/Gorner/20230618_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 286 |
+
dataset/Gorner/20230618_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 287 |
+
dataset/Gorner/20230618_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 288 |
+
dataset/Gorner/20230625_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 289 |
+
dataset/Gorner/20230625_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 290 |
+
dataset/Gorner/20230625_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 291 |
+
dataset/Gorner/20230625_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 292 |
+
dataset/Gorner/20230630_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 293 |
+
dataset/Gorner/20230630_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 294 |
+
dataset/Gorner/20230630_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 295 |
+
dataset/Gorner/20230703_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 296 |
+
dataset/Gorner/20230703_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 297 |
+
dataset/Gorner/20230703_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 298 |
+
dataset/Gorner/20230703_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 299 |
+
dataset/Gorner/20230708_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 300 |
+
dataset/Gorner/20230708_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 301 |
+
dataset/Gorner/20230708_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 302 |
+
dataset/Gorner/20230708_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 303 |
+
dataset/Gorner/20230715_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 304 |
+
dataset/Gorner/20230715_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 305 |
+
dataset/Gorner/20230715_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 306 |
+
dataset/Gorner/20230715_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 307 |
+
dataset/Gorner/20230720_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 308 |
+
dataset/Gorner/20230720_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 309 |
+
dataset/Gorner/20230720_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 310 |
+
dataset/Gorner/20230720_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 311 |
+
dataset/Gorner/20230812_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 312 |
+
dataset/Gorner/20230812_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 313 |
+
dataset/Gorner/20230812_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 314 |
+
dataset/Gorner/20230812_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 315 |
+
dataset/Gorner/20230817_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 316 |
+
dataset/Gorner/20230817_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 317 |
+
dataset/Gorner/20230817_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 318 |
+
dataset/Gorner/20230824_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 319 |
+
dataset/Gorner/20230824_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 320 |
+
dataset/Gorner/20230824_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 321 |
+
dataset/Gorner/20230824_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 322 |
+
dataset/Gorner/20230829_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 323 |
+
dataset/Gorner/20230829_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 324 |
+
dataset/Gorner/20230829_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 325 |
+
dataset/Gorner/20230901_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 326 |
+
dataset/Gorner/20230901_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 327 |
+
dataset/Gorner/20230901_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 328 |
+
dataset/Gorner/20230901_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 329 |
+
dataset/Gorner/20230906_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 330 |
+
dataset/Gorner/20230906_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 331 |
+
dataset/Gorner/20230906_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 332 |
+
dataset/Gorner/20230906_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 333 |
+
dataset/Gorner/20230913_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 334 |
+
dataset/Gorner/20230913_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 335 |
+
dataset/Gorner/20230913_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 336 |
+
dataset/Gorner/20230918_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 337 |
+
dataset/Gorner/20230918_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 338 |
+
dataset/Gorner/20230918_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 339 |
+
dataset/Gorner/20231011_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 340 |
+
dataset/Gorner/20231011_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 341 |
+
dataset/Gorner/20231011_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 342 |
+
dataset/Gorner/20231011_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 343 |
+
dataset/Gorner/20231016_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 344 |
+
dataset/Gorner/20231016_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 345 |
+
dataset/Gorner/20231016_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 346 |
+
dataset/Gorner/20231016_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 347 |
+
dataset/Gorner/20231023_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 348 |
+
dataset/Gorner/20231023_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 349 |
+
dataset/Gorner/20231023_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 350 |
+
dataset/Gorner/20231028_Gorner_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 351 |
+
dataset/Gorner/20231028_Gorner_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 352 |
+
dataset/Gorner/20231028_Gorner_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 353 |
+
dataset/Gorner/20231028_Gorner_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 354 |
+
dataset/Gorner/Gorner_dem.tif filter=lfs diff=lfs merge=lfs -text
|
| 355 |
+
dataset/Moiry/20230613_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 356 |
+
dataset/Moiry/20230613_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 357 |
+
dataset/Moiry/20230613_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 358 |
+
dataset/Moiry/20230618_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 359 |
+
dataset/Moiry/20230618_Moiry_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 360 |
+
dataset/Moiry/20230618_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 361 |
+
dataset/Moiry/20230618_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 362 |
+
dataset/Moiry/20230625_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 363 |
+
dataset/Moiry/20230625_Moiry_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 364 |
+
dataset/Moiry/20230625_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 365 |
+
dataset/Moiry/20230625_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 366 |
+
dataset/Moiry/20230630_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 367 |
+
dataset/Moiry/20230630_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 368 |
+
dataset/Moiry/20230630_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 369 |
+
dataset/Moiry/20230708_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 370 |
+
dataset/Moiry/20230708_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 371 |
+
dataset/Moiry/20230708_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 372 |
+
dataset/Moiry/20230720_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 373 |
+
dataset/Moiry/20230720_Moiry_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 374 |
+
dataset/Moiry/20230720_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 375 |
+
dataset/Moiry/20230720_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 376 |
+
dataset/Moiry/20230812_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 377 |
+
dataset/Moiry/20230812_Moiry_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 378 |
+
dataset/Moiry/20230812_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 379 |
+
dataset/Moiry/20230812_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 380 |
+
dataset/Moiry/20230817_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 381 |
+
dataset/Moiry/20230817_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 382 |
+
dataset/Moiry/20230817_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 383 |
+
dataset/Moiry/20230824_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 384 |
+
dataset/Moiry/20230824_Moiry_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 385 |
+
dataset/Moiry/20230824_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 386 |
+
dataset/Moiry/20230824_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 387 |
+
dataset/Moiry/20230829_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 388 |
+
dataset/Moiry/20230829_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 389 |
+
dataset/Moiry/20230829_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 390 |
+
dataset/Moiry/20230906_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 391 |
+
dataset/Moiry/20230906_Moiry_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 392 |
+
dataset/Moiry/20230906_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 393 |
+
dataset/Moiry/20230906_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 394 |
+
dataset/Moiry/20230918_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 395 |
+
dataset/Moiry/20230918_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 396 |
+
dataset/Moiry/20230918_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 397 |
+
dataset/Moiry/20231011_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 398 |
+
dataset/Moiry/20231011_Moiry_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 399 |
+
dataset/Moiry/20231011_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 400 |
+
dataset/Moiry/20231011_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 401 |
+
dataset/Moiry/20231016_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 402 |
+
dataset/Moiry/20231016_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 403 |
+
dataset/Moiry/20231016_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 404 |
+
dataset/Moiry/20231023_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 405 |
+
dataset/Moiry/20231023_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 406 |
+
dataset/Moiry/20231023_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 407 |
+
dataset/Moiry/20231028_Moiry_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 408 |
+
dataset/Moiry/20231028_Moiry_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 409 |
+
dataset/Moiry/20231028_Moiry_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 410 |
+
dataset/Moiry/Moiry_dem.tif filter=lfs diff=lfs merge=lfs -text
|
| 411 |
+
dataset/PleineMorte/20230613_PleineMorte_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 412 |
+
dataset/PleineMorte/20230613_PleineMorte_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 413 |
+
dataset/PleineMorte/20230613_PleineMorte_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 414 |
+
dataset/PleineMorte/20230618_PleineMorte_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 415 |
+
dataset/PleineMorte/20230618_PleineMorte_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 416 |
+
dataset/PleineMorte/20230618_PleineMorte_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 417 |
+
dataset/PleineMorte/20230618_PleineMorte_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 418 |
+
dataset/PleineMorte/20230708_PleineMorte_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 419 |
+
dataset/PleineMorte/20230708_PleineMorte_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 420 |
+
dataset/PleineMorte/20230708_PleineMorte_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 421 |
+
dataset/PleineMorte/20230812_PleineMorte_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 422 |
+
dataset/PleineMorte/20230812_PleineMorte_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 423 |
+
dataset/PleineMorte/20230812_PleineMorte_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 424 |
+
dataset/PleineMorte/20230817_PleineMorte_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 425 |
+
dataset/PleineMorte/20230817_PleineMorte_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 426 |
+
dataset/PleineMorte/20230817_PleineMorte_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 427 |
+
dataset/PleineMorte/20230906_PleineMorte_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 428 |
+
dataset/PleineMorte/20230906_PleineMorte_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 429 |
+
dataset/PleineMorte/20230906_PleineMorte_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 430 |
+
dataset/PleineMorte/20230906_PleineMorte_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 431 |
+
dataset/PleineMorte/20231011_PleineMorte_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 432 |
+
dataset/PleineMorte/20231011_PleineMorte_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 433 |
+
dataset/PleineMorte/20231011_PleineMorte_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 434 |
+
dataset/PleineMorte/20231011_PleineMorte_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 435 |
+
dataset/PleineMorte/20231016_PleineMorte_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 436 |
+
dataset/PleineMorte/20231016_PleineMorte_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 437 |
+
dataset/PleineMorte/20231016_PleineMorte_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 438 |
+
dataset/PleineMorte/20231016_PleineMorte_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 439 |
+
dataset/PleineMorte/PleineMorte_dem.tif filter=lfs diff=lfs merge=lfs -text
|
| 440 |
+
dataset/Rhone/20230613_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 441 |
+
dataset/Rhone/20230613_Rhone_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 442 |
+
dataset/Rhone/20230613_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 443 |
+
dataset/Rhone/20230613_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 444 |
+
dataset/Rhone/20230625_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 445 |
+
dataset/Rhone/20230625_Rhone_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 446 |
+
dataset/Rhone/20230625_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 447 |
+
dataset/Rhone/20230625_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 448 |
+
dataset/Rhone/20230703_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 449 |
+
dataset/Rhone/20230703_Rhone_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 450 |
+
dataset/Rhone/20230703_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 451 |
+
dataset/Rhone/20230703_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 452 |
+
dataset/Rhone/20230708_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 453 |
+
dataset/Rhone/20230708_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 454 |
+
dataset/Rhone/20230708_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 455 |
+
dataset/Rhone/20230715_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 456 |
+
dataset/Rhone/20230715_Rhone_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 457 |
+
dataset/Rhone/20230715_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 458 |
+
dataset/Rhone/20230715_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 459 |
+
dataset/Rhone/20230720_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 460 |
+
dataset/Rhone/20230720_Rhone_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 461 |
+
dataset/Rhone/20230720_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 462 |
+
dataset/Rhone/20230720_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 463 |
+
dataset/Rhone/20230812_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 464 |
+
dataset/Rhone/20230812_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 465 |
+
dataset/Rhone/20230812_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 466 |
+
dataset/Rhone/20230824_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 467 |
+
dataset/Rhone/20230824_Rhone_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 468 |
+
dataset/Rhone/20230824_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 469 |
+
dataset/Rhone/20230824_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 470 |
+
dataset/Rhone/20230901_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 471 |
+
dataset/Rhone/20230901_Rhone_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 472 |
+
dataset/Rhone/20230901_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 473 |
+
dataset/Rhone/20230901_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 474 |
+
dataset/Rhone/20230906_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 475 |
+
dataset/Rhone/20230906_Rhone_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 476 |
+
dataset/Rhone/20230906_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 477 |
+
dataset/Rhone/20230906_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 478 |
+
dataset/Rhone/20230913_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 479 |
+
dataset/Rhone/20230913_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 480 |
+
dataset/Rhone/20230913_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 481 |
+
dataset/Rhone/20230918_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 482 |
+
dataset/Rhone/20230918_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 483 |
+
dataset/Rhone/20230918_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 484 |
+
dataset/Rhone/20231011_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 485 |
+
dataset/Rhone/20231011_Rhone_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 486 |
+
dataset/Rhone/20231011_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 487 |
+
dataset/Rhone/20231011_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 488 |
+
dataset/Rhone/20231023_Rhone_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 489 |
+
dataset/Rhone/20231023_Rhone_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 490 |
+
dataset/Rhone/20231023_Rhone_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 491 |
+
dataset/Rhone/Rhone_dem.tif filter=lfs diff=lfs merge=lfs -text
|
| 492 |
+
dataset/Saas-Tal/20230613_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 493 |
+
dataset/Saas-Tal/20230613_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 494 |
+
dataset/Saas-Tal/20230613_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 495 |
+
dataset/Saas-Tal/20230618_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 496 |
+
dataset/Saas-Tal/20230618_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 497 |
+
dataset/Saas-Tal/20230618_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 498 |
+
dataset/Saas-Tal/20230618_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 499 |
+
dataset/Saas-Tal/20230625_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 500 |
+
dataset/Saas-Tal/20230625_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 501 |
+
dataset/Saas-Tal/20230625_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 502 |
+
dataset/Saas-Tal/20230625_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 503 |
+
dataset/Saas-Tal/20230630_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 504 |
+
dataset/Saas-Tal/20230630_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 505 |
+
dataset/Saas-Tal/20230630_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 506 |
+
dataset/Saas-Tal/20230703_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 507 |
+
dataset/Saas-Tal/20230703_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 508 |
+
dataset/Saas-Tal/20230703_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 509 |
+
dataset/Saas-Tal/20230703_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 510 |
+
dataset/Saas-Tal/20230708_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 511 |
+
dataset/Saas-Tal/20230708_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 512 |
+
dataset/Saas-Tal/20230708_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 513 |
+
dataset/Saas-Tal/20230708_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 514 |
+
dataset/Saas-Tal/20230715_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 515 |
+
dataset/Saas-Tal/20230715_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 516 |
+
dataset/Saas-Tal/20230715_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 517 |
+
dataset/Saas-Tal/20230715_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 518 |
+
dataset/Saas-Tal/20230720_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 519 |
+
dataset/Saas-Tal/20230720_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 520 |
+
dataset/Saas-Tal/20230720_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 521 |
+
dataset/Saas-Tal/20230720_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 522 |
+
dataset/Saas-Tal/20230812_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 523 |
+
dataset/Saas-Tal/20230812_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 524 |
+
dataset/Saas-Tal/20230812_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 525 |
+
dataset/Saas-Tal/20230812_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 526 |
+
dataset/Saas-Tal/20230817_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 527 |
+
dataset/Saas-Tal/20230817_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 528 |
+
dataset/Saas-Tal/20230817_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 529 |
+
dataset/Saas-Tal/20230824_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 530 |
+
dataset/Saas-Tal/20230824_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 531 |
+
dataset/Saas-Tal/20230824_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 532 |
+
dataset/Saas-Tal/20230824_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 533 |
+
dataset/Saas-Tal/20230829_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 534 |
+
dataset/Saas-Tal/20230829_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 535 |
+
dataset/Saas-Tal/20230829_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 536 |
+
dataset/Saas-Tal/20230901_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 537 |
+
dataset/Saas-Tal/20230901_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 538 |
+
dataset/Saas-Tal/20230901_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 539 |
+
dataset/Saas-Tal/20230901_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 540 |
+
dataset/Saas-Tal/20230906_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 541 |
+
dataset/Saas-Tal/20230906_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 542 |
+
dataset/Saas-Tal/20230906_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 543 |
+
dataset/Saas-Tal/20230906_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 544 |
+
dataset/Saas-Tal/20230913_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 545 |
+
dataset/Saas-Tal/20230913_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 546 |
+
dataset/Saas-Tal/20230913_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 547 |
+
dataset/Saas-Tal/20230918_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 548 |
+
dataset/Saas-Tal/20230918_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 549 |
+
dataset/Saas-Tal/20230918_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 550 |
+
dataset/Saas-Tal/20231011_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 551 |
+
dataset/Saas-Tal/20231011_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 552 |
+
dataset/Saas-Tal/20231011_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 553 |
+
dataset/Saas-Tal/20231011_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 554 |
+
dataset/Saas-Tal/20231016_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 555 |
+
dataset/Saas-Tal/20231016_Saas-Tal_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 556 |
+
dataset/Saas-Tal/20231016_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 557 |
+
dataset/Saas-Tal/20231016_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 558 |
+
dataset/Saas-Tal/20231023_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 559 |
+
dataset/Saas-Tal/20231023_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 560 |
+
dataset/Saas-Tal/20231023_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 561 |
+
dataset/Saas-Tal/20231028_Saas-Tal_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 562 |
+
dataset/Saas-Tal/20231028_Saas-Tal_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 563 |
+
dataset/Saas-Tal/20231028_Saas-Tal_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 564 |
+
dataset/Saas-Tal/Saas-Tal_dem.tif filter=lfs diff=lfs merge=lfs -text
|
| 565 |
+
dataset/Zmutt/20230613_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 566 |
+
dataset/Zmutt/20230613_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 567 |
+
dataset/Zmutt/20230613_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 568 |
+
dataset/Zmutt/20230618_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 569 |
+
dataset/Zmutt/20230618_Zmutt_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 570 |
+
dataset/Zmutt/20230618_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 571 |
+
dataset/Zmutt/20230618_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 572 |
+
dataset/Zmutt/20230625_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 573 |
+
dataset/Zmutt/20230625_Zmutt_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 574 |
+
dataset/Zmutt/20230625_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 575 |
+
dataset/Zmutt/20230625_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 576 |
+
dataset/Zmutt/20230630_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 577 |
+
dataset/Zmutt/20230630_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 578 |
+
dataset/Zmutt/20230630_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 579 |
+
dataset/Zmutt/20230708_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 580 |
+
dataset/Zmutt/20230708_Zmutt_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 581 |
+
dataset/Zmutt/20230708_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 582 |
+
dataset/Zmutt/20230708_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 583 |
+
dataset/Zmutt/20230720_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 584 |
+
dataset/Zmutt/20230720_Zmutt_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 585 |
+
dataset/Zmutt/20230720_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 586 |
+
dataset/Zmutt/20230720_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 587 |
+
dataset/Zmutt/20230812_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 588 |
+
dataset/Zmutt/20230812_Zmutt_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 589 |
+
dataset/Zmutt/20230812_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 590 |
+
dataset/Zmutt/20230812_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 591 |
+
dataset/Zmutt/20230817_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 592 |
+
dataset/Zmutt/20230817_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 593 |
+
dataset/Zmutt/20230817_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 594 |
+
dataset/Zmutt/20230824_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 595 |
+
dataset/Zmutt/20230824_Zmutt_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 596 |
+
dataset/Zmutt/20230824_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 597 |
+
dataset/Zmutt/20230824_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 598 |
+
dataset/Zmutt/20230829_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 599 |
+
dataset/Zmutt/20230829_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 600 |
+
dataset/Zmutt/20230829_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 601 |
+
dataset/Zmutt/20230906_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 602 |
+
dataset/Zmutt/20230906_Zmutt_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 603 |
+
dataset/Zmutt/20230906_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 604 |
+
dataset/Zmutt/20230906_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 605 |
+
dataset/Zmutt/20230918_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 606 |
+
dataset/Zmutt/20230918_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 607 |
+
dataset/Zmutt/20230918_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 608 |
+
dataset/Zmutt/20231011_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 609 |
+
dataset/Zmutt/20231011_Zmutt_lake_mask.tif filter=lfs diff=lfs merge=lfs -text
|
| 610 |
+
dataset/Zmutt/20231011_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 611 |
+
dataset/Zmutt/20231011_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 612 |
+
dataset/Zmutt/20231016_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 613 |
+
dataset/Zmutt/20231016_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 614 |
+
dataset/Zmutt/20231016_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 615 |
+
dataset/Zmutt/20231023_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 616 |
+
dataset/Zmutt/20231023_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 617 |
+
dataset/Zmutt/20231023_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 618 |
+
dataset/Zmutt/20231028_Zmutt_hillshade.tif filter=lfs diff=lfs merge=lfs -text
|
| 619 |
+
dataset/Zmutt/20231028_Zmutt_s1.tif filter=lfs diff=lfs merge=lfs -text
|
| 620 |
+
dataset/Zmutt/20231028_Zmutt_s2.tif filter=lfs diff=lfs merge=lfs -text
|
| 621 |
+
dataset/Zmutt/Zmutt_dem.tif filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -1,3 +1,47 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
In this repository, you will find code and resources related to lake detection using deep learning techniques. The project leverages satellite imagery and advanced neural network architectures to accurately identify and segment lakes in various geographical regions.
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
## Project Overview
|
| 5 |
+
Accelerated glacier retreat driven by global climate change has led to the rapid formation and expansion
|
| 6 |
+
of glacial lakes in alpine environments, significantly increasing the risk of Glacial Lake
|
| 7 |
+
Outburst Floods (GLOFs). This research proposes a
|
| 8 |
+
two-part methodological framework to improve the detection and
|
| 9 |
+
monitoring of these dynamic water bodies using multi-source remote sensing data.
|
| 10 |
+
|
| 11 |
+
First, a Melting Season Assessment was developed using Sentinel-1 Synthetic
|
| 12 |
+
Aperture Radar (SAR) backscatter data to automatically identify the onset of
|
| 13 |
+
the melting season. This period is critical for hazard assessment as
|
| 14 |
+
it marks the time when newly formed or rapidly expanding lakes pose the highest risks.
|
| 15 |
+
The results indicate that the melting season start can be reliably detected using $\sigma^{0}_{VV}$
|
| 16 |
+
backscatter with a 3 dB threshold and a 25\% wet snow percentage threshold.
|
| 17 |
+
This method achieved high accuracy, identifying the start of snowmelt within an average
|
| 18 |
+
of 6.5 days compared to in-situ physical simulations.
|
| 19 |
+
|
| 20 |
+
Second, Glacial Lake Segmentation was performed using deep
|
| 21 |
+
learning-based semantic segmentation models. These models integrated multi-source data,
|
| 22 |
+
including Sentinel-1 (radar), Sentinel-2 (optical), and Digital Elevation Models
|
| 23 |
+
(topographical). The study evaluated several architectures,
|
| 24 |
+
including U-Net variants, DeepLabV3+, and a hybrid SwinV2-CNN U-Net.
|
| 25 |
+
The findings demonstrate that the hybrid SwinV2-CNN U-Net was the best-performing model,
|
| 26 |
+
effectively capturing both global context and fine spatial details necessary for
|
| 27 |
+
accurate segmentation of early-stage lakes.
|
| 28 |
+
|
| 29 |
+
Overall, the work demonstrates that advanced deep learning models
|
| 30 |
+
outperform traditional machine learning methods for glacial lake mapping.
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
## Repository Structure
|
| 34 |
+
- `dataset/`: Contains the data for the Deep Learning models, including satellite images and corresponding labels.
|
| 35 |
+
- `code/`: Houses all the scripts and notebooks used for data preprocessing, model training, evaluation, and visualization.
|
| 36 |
+
- `melting_season/`: Notebooks and scripts specific to the melting season analysis.
|
| 37 |
+
- `deep_learning_dataset/`: Scripts for handling and reconstructing the images dataset from GEE.
|
| 38 |
+
- `lake_detection/`: Code related to lake detection models and experiments used as a Classification task.
|
| 39 |
+
- `lake_detection_deep_learning/`: Contains deep learning models for lake detection, including model architectures, training routines, and visualization tools.
|
| 40 |
+
- `models/`: Pre-trained models and checkpoints for various experiments.
|
| 41 |
+
- `trainer/`: Is the library for training inside of it are all the models architectures.
|
| 42 |
+
|
| 43 |
+
## Author
|
| 44 |
+
Tim Ernst
|
| 45 |
+
|
| 46 |
+
## Scope of the Project
|
| 47 |
+
This work is part of the Master's thesis "Detection of glacial lakes using remote sensing data" for the degree of Master of Science in Data Science at the University of Applied Sciences and Arts Western Switzerland (HES-SO).
|
code/deep_learning_dataset/gee.ipynb
ADDED
|
@@ -0,0 +1,463 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": null,
|
| 6 |
+
"id": "d4b6549c",
|
| 7 |
+
"metadata": {},
|
| 8 |
+
"outputs": [
|
| 9 |
+
{
|
| 10 |
+
"name": "stdout",
|
| 11 |
+
"output_type": "stream",
|
| 12 |
+
"text": [
|
| 13 |
+
"Generating dataset for location: Aletsch\n",
|
| 14 |
+
"Exporting DEM for location: Aletsch\n",
|
| 15 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 16 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230426, 20230426\n",
|
| 17 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230419, 20230419\n",
|
| 18 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230218, 20230218\n",
|
| 19 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230225, 20230225\n",
|
| 20 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230302, 20230302\n",
|
| 21 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230305, 20230305\n",
|
| 22 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230317, 20230317\n",
|
| 23 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230521, 20230521\n",
|
| 24 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230501, 20230501\n",
|
| 25 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 26 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230322, 20230322\n",
|
| 27 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 28 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 29 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230516, 20230516\n",
|
| 30 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 31 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230504, 20230504\n",
|
| 32 |
+
"Generating dataset for location: PleineMorte\n",
|
| 33 |
+
"Exporting DEM for location: PleineMorte\n",
|
| 34 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 35 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230419, 20230419\n",
|
| 36 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230218, 20230218\n",
|
| 37 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 38 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 39 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 40 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 41 |
+
"Generating dataset for location: Anzere\n",
|
| 42 |
+
"Exporting DEM for location: Anzere\n",
|
| 43 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 44 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230419, 20230419\n",
|
| 45 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230218, 20230218\n",
|
| 46 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 47 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 48 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 49 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 50 |
+
"Generating dataset for location: Diablerets\n",
|
| 51 |
+
"Exporting DEM for location: Diablerets\n",
|
| 52 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 53 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230419, 20230419\n",
|
| 54 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230218, 20230218\n",
|
| 55 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 56 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 57 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 58 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 59 |
+
"Generating dataset for location: Gorner\n",
|
| 60 |
+
"Exporting DEM for location: Gorner\n",
|
| 61 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 62 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230426, 20230426\n",
|
| 63 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230419, 20230419\n",
|
| 64 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230218, 20230218\n",
|
| 65 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230225, 20230225\n",
|
| 66 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230302, 20230302\n",
|
| 67 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230305, 20230305\n",
|
| 68 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230317, 20230317\n",
|
| 69 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230521, 20230521\n",
|
| 70 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230501, 20230501\n",
|
| 71 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 72 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230322, 20230322\n",
|
| 73 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 74 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 75 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230516, 20230516\n",
|
| 76 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 77 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230504, 20230504\n",
|
| 78 |
+
"Generating dataset for location: Rhone\n",
|
| 79 |
+
"Exporting DEM for location: Rhone\n",
|
| 80 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 81 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230426, 20230426\n",
|
| 82 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230225, 20230225\n",
|
| 83 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230305, 20230305\n",
|
| 84 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230317, 20230317\n",
|
| 85 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230521, 20230521\n",
|
| 86 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 87 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230322, 20230322\n",
|
| 88 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 89 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 90 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230516, 20230516\n",
|
| 91 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 92 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230504, 20230504\n",
|
| 93 |
+
"Generating dataset for location: Moiry\n",
|
| 94 |
+
"Exporting DEM for location: Moiry\n",
|
| 95 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 96 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230426, 20230426\n",
|
| 97 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230419, 20230419\n",
|
| 98 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230218, 20230218\n",
|
| 99 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230225, 20230225\n",
|
| 100 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230302, 20230302\n",
|
| 101 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230521, 20230521\n",
|
| 102 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230501, 20230501\n",
|
| 103 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 104 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230322, 20230322\n",
|
| 105 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 106 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 107 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 108 |
+
"Generating dataset for location: Zmutt\n",
|
| 109 |
+
"Exporting DEM for location: Zmutt\n",
|
| 110 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 111 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230426, 20230426\n",
|
| 112 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230419, 20230419\n",
|
| 113 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230218, 20230218\n",
|
| 114 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230225, 20230225\n",
|
| 115 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230302, 20230302\n",
|
| 116 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230521, 20230521\n",
|
| 117 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230501, 20230501\n",
|
| 118 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 119 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230322, 20230322\n",
|
| 120 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 121 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 122 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 123 |
+
"Generating dataset for location: Saas-Tal\n",
|
| 124 |
+
"Exporting DEM for location: Saas-Tal\n",
|
| 125 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 126 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230426, 20230426\n",
|
| 127 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230419, 20230419\n",
|
| 128 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230218, 20230218\n",
|
| 129 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230225, 20230225\n",
|
| 130 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230302, 20230302\n",
|
| 131 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230305, 20230305\n",
|
| 132 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230317, 20230317\n",
|
| 133 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230521, 20230521\n",
|
| 134 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230501, 20230501\n",
|
| 135 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 136 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230322, 20230322\n",
|
| 137 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 138 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 139 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230516, 20230516\n",
|
| 140 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 141 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230504, 20230504\n",
|
| 142 |
+
"Generating dataset for location: Gorbassiere\n",
|
| 143 |
+
"Exporting DEM for location: Gorbassiere\n",
|
| 144 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 145 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230419, 20230419\n",
|
| 146 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230218, 20230218\n",
|
| 147 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 148 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 149 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 150 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 151 |
+
"Generating dataset for location: Allalin\n",
|
| 152 |
+
"Exporting DEM for location: Allalin\n",
|
| 153 |
+
"Processing year: 2023 from 2023-02-01 to 2023-05-30\n",
|
| 154 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230426, 20230426\n",
|
| 155 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230419, 20230419\n",
|
| 156 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230218, 20230218\n",
|
| 157 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230225, 20230225\n",
|
| 158 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230302, 20230302\n",
|
| 159 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230305, 20230305\n",
|
| 160 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230317, 20230317\n",
|
| 161 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230521, 20230521\n",
|
| 162 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230501, 20230501\n",
|
| 163 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230509, 20230509\n",
|
| 164 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230322, 20230322\n",
|
| 165 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230414, 20230414\n",
|
| 166 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230310, 20230310\n",
|
| 167 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230516, 20230516\n",
|
| 168 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230213, 20230213\n",
|
| 169 |
+
"Exporting Sentinel-1 and Sentinel-2 for date: 20230504, 20230504\n"
|
| 170 |
+
]
|
| 171 |
+
}
|
| 172 |
+
],
|
| 173 |
+
"source": [
|
| 174 |
+
"import ee\n",
|
| 175 |
+
"import sys\n",
|
| 176 |
+
"import datetime\n",
|
| 177 |
+
"ee.Authenticate()\n",
|
| 178 |
+
"ee.Initialize()\n",
|
| 179 |
+
"\n",
|
| 180 |
+
"YEARS = [2025]\n",
|
| 181 |
+
"MONTHS_START = 2\n",
|
| 182 |
+
"MONTHS_END = 8\n",
|
| 183 |
+
"\n",
|
| 184 |
+
"LOCATION = {\n",
|
| 185 |
+
" # 'Aletsch': ee.Geometry.Polygon([\n",
|
| 186 |
+
" # [[7.9, 46.35],\n",
|
| 187 |
+
" # [7.9, 46.6],\n",
|
| 188 |
+
" # [8.2, 46.6],\n",
|
| 189 |
+
" # [8.2, 46.35]]\n",
|
| 190 |
+
" # ]),\n",
|
| 191 |
+
" # 'PleineMorte': ee.Geometry.Polygon([\n",
|
| 192 |
+
" # [[7.472076, 46.371332],\n",
|
| 193 |
+
" # [7.472076, 46.395963],\n",
|
| 194 |
+
" # [7.558594, 46.395963],\n",
|
| 195 |
+
" # [7.558594, 46.371332]]\n",
|
| 196 |
+
" # ]),\n",
|
| 197 |
+
" # 'Anzere': ee.Geometry.Polygon([\n",
|
| 198 |
+
" # [[7.315350, 46.344202],\n",
|
| 199 |
+
" # [7.315350, 46.371451],\n",
|
| 200 |
+
" # [7.387362, 46.371451],\n",
|
| 201 |
+
" # [7.387362, 46.344202]]\n",
|
| 202 |
+
" # ]),\n",
|
| 203 |
+
" # 'Diablerets': ee.Geometry.Polygon([\n",
|
| 204 |
+
" # [[7.174759, 46.302236],\n",
|
| 205 |
+
" # [7.174759, 46.330632],\n",
|
| 206 |
+
" # [7.245140, 46.330632],\n",
|
| 207 |
+
" # [7.245140, 46.302236]]\n",
|
| 208 |
+
" # ]),\n",
|
| 209 |
+
" # 'Gorner': ee.Geometry.Polygon([\n",
|
| 210 |
+
" # [[7.737808, 45.889453],\n",
|
| 211 |
+
" # [7.737808, 45.977836],\n",
|
| 212 |
+
" # [7.891617, 45.977836],\n",
|
| 213 |
+
" # [7.891617, 45.889453]]\n",
|
| 214 |
+
" # ]),\n",
|
| 215 |
+
" # 'Rhone': ee.Geometry.Polygon([\n",
|
| 216 |
+
" # [[8.362999, 46.580103],\n",
|
| 217 |
+
" # [8.362999, 46.648493],\n",
|
| 218 |
+
" # [8.421364, 46.648493],\n",
|
| 219 |
+
" # [8.421364, 46.580103]]\n",
|
| 220 |
+
" # ]),\n",
|
| 221 |
+
" # 'Moiry': ee.Geometry.Polygon([\n",
|
| 222 |
+
" # [[7.562027, 46.049170],\n",
|
| 223 |
+
" # [7.562027, 46.097876],\n",
|
| 224 |
+
" # [7.637730, 46.097876],\n",
|
| 225 |
+
" # [7.637730, 46.049170]]\n",
|
| 226 |
+
" # ]),\n",
|
| 227 |
+
" # 'Zmutt': ee.Geometry.Polygon([\n",
|
| 228 |
+
" # [[7.558765, 45.969049],\n",
|
| 229 |
+
" # [7.558765, 46.027959],\n",
|
| 230 |
+
" # [7.665539, 46.027959],\n",
|
| 231 |
+
" # [7.665539, 45.969049]]\n",
|
| 232 |
+
" # ]),\n",
|
| 233 |
+
" # 'Saas-Tal': ee.Geometry.Polygon([\n",
|
| 234 |
+
" # [[7.821545, 46.011491],\n",
|
| 235 |
+
" # [7.821545, 46.105634],\n",
|
| 236 |
+
" # [7.942223, 46.105634],\n",
|
| 237 |
+
" # [7.942223, 46.011491]]\n",
|
| 238 |
+
" # ]),\n",
|
| 239 |
+
" # 'Gorbassiere': ee.Geometry.Polygon([\n",
|
| 240 |
+
" # [[7.246376, 45.934768],\n",
|
| 241 |
+
" # [7.246376, 46.003639],\n",
|
| 242 |
+
" # [7.326027, 46.003639],\n",
|
| 243 |
+
" # [7.326027, 45.934768]]\n",
|
| 244 |
+
" # ]),\n",
|
| 245 |
+
" # 'Diablerets': ee.Geometry.Polygon([\n",
|
| 246 |
+
" # [[7.189934, 46.301615],\n",
|
| 247 |
+
" # [7.189934, 46.330259],\n",
|
| 248 |
+
" # [7.243320, 46.330259],\n",
|
| 249 |
+
" # [7.243320, 46.301615]]\n",
|
| 250 |
+
" # ]),\n",
|
| 251 |
+
" # 'Allalin': ee.Geometry.Polygon([\n",
|
| 252 |
+
" # [[7.868614, 46.016011],\n",
|
| 253 |
+
" # [7.868614, 46.052493],\n",
|
| 254 |
+
" # [7.946205, 46.052493],\n",
|
| 255 |
+
" # [7.946205, 46.016011]]\n",
|
| 256 |
+
" # ]),\n",
|
| 257 |
+
" 'Praflleuri': ee.Geometry.Polygon([\n",
|
| 258 |
+
" [[7.328739, 46.059534],\n",
|
| 259 |
+
" [7.328739, 46.078470],\n",
|
| 260 |
+
" [7.370968, 46.078470],\n",
|
| 261 |
+
" [7.370968, 46.059534]]\n",
|
| 262 |
+
" ]),\n",
|
| 263 |
+
"}\n",
|
| 264 |
+
"\n",
|
| 265 |
+
"\n",
|
| 266 |
+
"# ---------------------------\n",
|
| 267 |
+
"# Sentinel-2 collection\n",
|
| 268 |
+
"# ---------------------------\n",
|
| 269 |
+
"def s2_preprocessing(img, roi):\n",
|
| 270 |
+
" scl = img.select('SCL')\n",
|
| 271 |
+
" # Mask out cloudy, cirrus, snow, and shadow classes\n",
|
| 272 |
+
" cloud_classes = [3, 8, 9] # 3=Cloud Shadows, 8=Cloud Medium prob, 9=Cloud High prob, 10=Thin cirrus\n",
|
| 273 |
+
" clouds = scl.eq(cloud_classes[0]) \\\n",
|
| 274 |
+
" .Or(scl.eq(cloud_classes[1])) \\\n",
|
| 275 |
+
" .Or(scl.eq(cloud_classes[2]))\n",
|
| 276 |
+
"\n",
|
| 277 |
+
" # def s2_preprocessing(img, roi):\n",
|
| 278 |
+
" # Scale reflectance (Sentinel-2 is stored as 0–10000)\n",
|
| 279 |
+
" scaled = img.select(['B2','B3','B4','B5','B6','B7','B8','B8A','B11','B12'])\n",
|
| 280 |
+
"\n",
|
| 281 |
+
" # --- Derived indices ---\n",
|
| 282 |
+
" ndsi = scaled.normalizedDifference(['B3', 'B11']).rename('ndsi')\n",
|
| 283 |
+
" ndwi = scaled.normalizedDifference(['B3', 'B8']).rename('ndwi')\n",
|
| 284 |
+
"\n",
|
| 285 |
+
" # --- Combine all results ---\n",
|
| 286 |
+
" processed = ee.Image(scaled\n",
|
| 287 |
+
" .addBands(ndwi)\n",
|
| 288 |
+
" .addBands(ndsi)\n",
|
| 289 |
+
" .clip(roi)\n",
|
| 290 |
+
" .toFloat()\n",
|
| 291 |
+
" .copyProperties(img, img.propertyNames()))\n",
|
| 292 |
+
"\n",
|
| 293 |
+
" return processed, clouds\n",
|
| 294 |
+
"\n",
|
| 295 |
+
"# add for each image the date as a property\n",
|
| 296 |
+
"def add_date(img):\n",
|
| 297 |
+
" date = img.date().format('YYYYMMdd')\n",
|
| 298 |
+
" return img.set('date', date)\n",
|
| 299 |
+
"\n",
|
| 300 |
+
"\n",
|
| 301 |
+
"def export_pair(s1_data, s2_data, s1_date, s2_date, roi, name):\n",
|
| 302 |
+
" s1_image = s1_data.filter(ee.Filter.eq('date', s1_date)).mosaic()\n",
|
| 303 |
+
" s2_image = s2_data.filter(ee.Filter.eq('date', s2_date)).mosaic()\n",
|
| 304 |
+
" processed, cloud_mask = s2_preprocessing(s2_image, roi)\n",
|
| 305 |
+
" \n",
|
| 306 |
+
" if s1_image and s2_image:\n",
|
| 307 |
+
" task_s1 = ee.batch.Export.image.toDrive(\n",
|
| 308 |
+
" image=s1_image,\n",
|
| 309 |
+
" description=f'Sentinel1_{s1_date}',\n",
|
| 310 |
+
" folder=f'GEE_exports_02',\n",
|
| 311 |
+
" fileNamePrefix=f'{s1_date}_{name}_s1',\n",
|
| 312 |
+
" region=roi,\n",
|
| 313 |
+
" scale=10,\n",
|
| 314 |
+
" maxPixels=1e13\n",
|
| 315 |
+
" )\n",
|
| 316 |
+
" task_s2 = ee.batch.Export.image.toDrive(\n",
|
| 317 |
+
" image=processed,\n",
|
| 318 |
+
" description=f'Sentinel2_{s2_date}',\n",
|
| 319 |
+
" folder=f'GEE_exports_02',\n",
|
| 320 |
+
" fileNamePrefix=f'{s2_date}_{name}_s2',\n",
|
| 321 |
+
" region=roi,\n",
|
| 322 |
+
" scale=10,\n",
|
| 323 |
+
" maxPixels=1e13\n",
|
| 324 |
+
" )\n",
|
| 325 |
+
" # task_lake_mask = ee.batch.Export.image.toDrive(\n",
|
| 326 |
+
" # image=s2_lake_mask,\n",
|
| 327 |
+
" # description=f'Sentinel2_LakeMask_{s2_date}',\n",
|
| 328 |
+
" # folder=f'GEE_exports',\n",
|
| 329 |
+
" # fileNamePrefix=f'{s2_date}_{name}_lake_mask',\n",
|
| 330 |
+
" # region=roi,\n",
|
| 331 |
+
" # scale=10,\n",
|
| 332 |
+
" # maxPixels=1e13\n",
|
| 333 |
+
" # )\n",
|
| 334 |
+
" task_cloud_mask = ee.batch.Export.image.toDrive(\n",
|
| 335 |
+
" image=cloud_mask,\n",
|
| 336 |
+
" description=f'Sentinel2_CloudMask_{s2_date}',\n",
|
| 337 |
+
" folder=f'GEE_exports_02',\n",
|
| 338 |
+
" fileNamePrefix=f'{s2_date}_{name}_cloud_mask',\n",
|
| 339 |
+
" region=roi,\n",
|
| 340 |
+
" scale=10,\n",
|
| 341 |
+
" maxPixels=1e13\n",
|
| 342 |
+
" )\n",
|
| 343 |
+
" task_s1.start()\n",
|
| 344 |
+
" task_s2.start()\n",
|
| 345 |
+
" # task_lake_mask.start()\n",
|
| 346 |
+
" task_cloud_mask.start()\n",
|
| 347 |
+
" print(f'Exporting Sentinel-1 and Sentinel-2 for date: {s1_date}, {s2_date}')\n",
|
| 348 |
+
" \n",
|
| 349 |
+
" else:\n",
|
| 350 |
+
" print(f'No matching images for date: {s1_date}, {s2_date}')\n",
|
| 351 |
+
"\n",
|
| 352 |
+
"\n",
|
| 353 |
+
" \n",
|
| 354 |
+
"def generate_dataset(name, roi, years):\n",
|
| 355 |
+
" \n",
|
| 356 |
+
" for year in years:\n",
|
| 357 |
+
" DATE_START = f'{year}-{MONTHS_START:02d}-01'\n",
|
| 358 |
+
" DATE_END = f'{year}-{MONTHS_END:02d}-30'\n",
|
| 359 |
+
" print(f'Processing year: {year} from {DATE_START} to {DATE_END}')\n",
|
| 360 |
+
" \n",
|
| 361 |
+
" s1_col = (ee.ImageCollection('COPERNICUS/S1_GRD')\n",
|
| 362 |
+
" .filterBounds(roi)\n",
|
| 363 |
+
" .filterDate(DATE_START, DATE_END)\n",
|
| 364 |
+
" .filter(ee.Filter.eq('instrumentMode', 'IW'))\n",
|
| 365 |
+
" .map(lambda img: img.select(['VV', 'VH']).clip(roi).toFloat())\n",
|
| 366 |
+
" )\n",
|
| 367 |
+
" # PALSAR-2 ScanSAR collection\n",
|
| 368 |
+
" # s1_col = (ee.ImageCollection('JAXA/ALOS/PALSAR-2/Level2_2/ScanSAR')\n",
|
| 369 |
+
" # .filterBounds(roi)\n",
|
| 370 |
+
" # .filterDate(DATE_START, DATE_END)\n",
|
| 371 |
+
" # .map(lambda img: img.select(['HH']).clip(roi).toFloat())\n",
|
| 372 |
+
" # )\n",
|
| 373 |
+
" s2_raw = (ee.ImageCollection(\"COPERNICUS/S2_SR_HARMONIZED\")\n",
|
| 374 |
+
" .filterBounds(roi)\n",
|
| 375 |
+
" .filterDate(DATE_START, DATE_END))\n",
|
| 376 |
+
" # s2_col, s2_lake_mask, s2_cloud_mask = s2_raw.map(lambda img: s2_preprocessing(img, roi))\n",
|
| 377 |
+
"\n",
|
| 378 |
+
" dem_col = ee.ImageCollection(\"COPERNICUS/DEM/GLO30\").mosaic().clip(roi)\n",
|
| 379 |
+
" dem_col = dem_col.select('DEM').rename('elevation').toFloat()\n",
|
| 380 |
+
" \n",
|
| 381 |
+
" s1_col = s1_col.map(add_date)\n",
|
| 382 |
+
" s2_col = s2_raw.map(add_date)\n",
|
| 383 |
+
" \n",
|
| 384 |
+
" s2_dates = s2_raw.aggregate_array('system:time_start').getInfo()\n",
|
| 385 |
+
" s1_dates = s1_col.aggregate_array('system:time_start').getInfo()\n",
|
| 386 |
+
" \n",
|
| 387 |
+
" s1_dates = [ee.Date(d).format('YYYYMMdd').getInfo() for d in s1_dates]\n",
|
| 388 |
+
" s2_dates = [ee.Date(d).format('YYYYMMdd').getInfo() for d in s2_dates]\n",
|
| 389 |
+
" \n",
|
| 390 |
+
" common_dates = set(s1_dates).intersection(set(s2_dates))\n",
|
| 391 |
+
" for date in common_dates:\n",
|
| 392 |
+
" export_pair(s1_col, s2_col, date, date, roi, name)\n",
|
| 393 |
+
" # s1_dates = [d for d in s1_dates if d not in common_dates]\n",
|
| 394 |
+
" # s2_dates = [d for d in s2_dates if d not in common_dates]\n",
|
| 395 |
+
" # s1_dates = sorted(s1_dates)\n",
|
| 396 |
+
" # s2_dates = sorted(s2_dates)\n",
|
| 397 |
+
" \n",
|
| 398 |
+
" # s1_dates = [datetime.datetime.strptime(d, \"%Y%m%d\").timestamp() for d in s1_dates]\n",
|
| 399 |
+
" # s2_dates = [datetime.datetime.strptime(d, \"%Y%m%d\").timestamp() for d in s2_dates]\n",
|
| 400 |
+
" \n",
|
| 401 |
+
" # i, j = 0, 0\n",
|
| 402 |
+
" # while i < len(s1_dates) and j < len(s2_dates):\n",
|
| 403 |
+
" # date_s1 = s1_dates[i]\n",
|
| 404 |
+
" # date_s2 = s2_dates[j]\n",
|
| 405 |
+
"\n",
|
| 406 |
+
" # if abs(date_s1 - date_s2) <= 2 * 86400: # 2 days in seconds\n",
|
| 407 |
+
" # date_str_s1 = datetime.datetime.fromtimestamp(date_s1).strftime(\"%Y%m%d\")\n",
|
| 408 |
+
" # date_str_s2 = datetime.datetime.fromtimestamp(date_s2).strftime(\"%Y%m%d\")\n",
|
| 409 |
+
" # export_pair(s1_col, s2_col, date_str_s1, date_str_s2, roi, name)\n",
|
| 410 |
+
" # i += 1\n",
|
| 411 |
+
" # j += 1\n",
|
| 412 |
+
" # elif date_s1 < date_s2:\n",
|
| 413 |
+
" # i += 1\n",
|
| 414 |
+
" # else:\n",
|
| 415 |
+
" # j += 1\n",
|
| 416 |
+
"\n",
|
| 417 |
+
"def export_location_dem(name, roi):\n",
|
| 418 |
+
" dem_image = ee.ImageCollection(\"COPERNICUS/DEM/GLO30\").mosaic().clip(roi)\n",
|
| 419 |
+
" dem_image = dem_image.select('DEM').rename('elevation').toFloat()\n",
|
| 420 |
+
" task_dem = ee.batch.Export.image.toDrive(\n",
|
| 421 |
+
" image=dem_image,\n",
|
| 422 |
+
" description=f'DEM_{name}',\n",
|
| 423 |
+
" folder=f'GEE_exports',\n",
|
| 424 |
+
" fileNamePrefix=f'{name}_dem',\n",
|
| 425 |
+
" region=roi,\n",
|
| 426 |
+
" scale=10,\n",
|
| 427 |
+
" maxPixels=1e13\n",
|
| 428 |
+
" )\n",
|
| 429 |
+
" task_dem.start()\n",
|
| 430 |
+
" print(f'Exporting DEM for location: {name}')\n",
|
| 431 |
+
" \n",
|
| 432 |
+
"for loc_name, loc_roi in LOCATION.items():\n",
|
| 433 |
+
" print(f'Generating dataset for location: {loc_name}')\n",
|
| 434 |
+
" export_location_dem(loc_name, loc_roi)\n",
|
| 435 |
+
" generate_dataset(loc_name, loc_roi, YEARS)\n",
|
| 436 |
+
" # break\n",
|
| 437 |
+
" \n",
|
| 438 |
+
"\n"
|
| 439 |
+
]
|
| 440 |
+
}
|
| 441 |
+
],
|
| 442 |
+
"metadata": {
|
| 443 |
+
"kernelspec": {
|
| 444 |
+
"display_name": ".venv",
|
| 445 |
+
"language": "python",
|
| 446 |
+
"name": "python3"
|
| 447 |
+
},
|
| 448 |
+
"language_info": {
|
| 449 |
+
"codemirror_mode": {
|
| 450 |
+
"name": "ipython",
|
| 451 |
+
"version": 3
|
| 452 |
+
},
|
| 453 |
+
"file_extension": ".py",
|
| 454 |
+
"mimetype": "text/x-python",
|
| 455 |
+
"name": "python",
|
| 456 |
+
"nbconvert_exporter": "python",
|
| 457 |
+
"pygments_lexer": "ipython3",
|
| 458 |
+
"version": "3.12.7"
|
| 459 |
+
}
|
| 460 |
+
},
|
| 461 |
+
"nbformat": 4,
|
| 462 |
+
"nbformat_minor": 5
|
| 463 |
+
}
|
code/deep_learning_dataset/gee_vis_date_mission.ipynb
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": null,
|
| 6 |
+
"id": "006f8288",
|
| 7 |
+
"metadata": {},
|
| 8 |
+
"outputs": [
|
| 9 |
+
{
|
| 10 |
+
"name": "stdout",
|
| 11 |
+
"output_type": "stream",
|
| 12 |
+
"text": [
|
| 13 |
+
"Sentinel-1 images count: 782\n",
|
| 14 |
+
"Sentinel-2 images count: 466\n",
|
| 15 |
+
"PALSAR-2 images count: 110\n",
|
| 16 |
+
"PALSAR-2 Observation Mode Counts:\n",
|
| 17 |
+
"ScanSAR VBD: 5\n",
|
| 18 |
+
"ScanSAR WBD: 95\n",
|
| 19 |
+
"ScanSAR WBS: 10\n",
|
| 20 |
+
"Sentinel-1 Images by Hour and Minute\n",
|
| 21 |
+
"Hour: 05, Minute: 34 → 80\n",
|
| 22 |
+
"Hour: 05, Minute: 35 → 180\n",
|
| 23 |
+
"Hour: 05, Minute: 42 → 35\n",
|
| 24 |
+
"Hour: 05, Minute: 43 → 227\n",
|
| 25 |
+
"Hour: 17, Minute: 22 → 77\n",
|
| 26 |
+
"Hour: 17, Minute: 23 → 183\n",
|
| 27 |
+
"Sentinel-2 Images by Hour and Minute\n",
|
| 28 |
+
"Hour: 10, Minute: 37 → 32\n",
|
| 29 |
+
"Hour: 10, Minute: 38 → 434\n"
|
| 30 |
+
]
|
| 31 |
+
}
|
| 32 |
+
],
|
| 33 |
+
"source": [
|
| 34 |
+
"# plot when images are available in a graph for thes colection\n",
|
| 35 |
+
"# s1_col = (ee.ImageCollection('COPERNICUS/S1_GRD')\n",
|
| 36 |
+
" # .filterBounds(roi)\n",
|
| 37 |
+
" # .filterDate(DATE_START, DATE_END)\n",
|
| 38 |
+
" # .filter(ee.Filter.eq('instrumentMode', 'IW'))\n",
|
| 39 |
+
" # .map(lambda img: img.select(['VV', 'VH']).clip(roi).toFloat())\n",
|
| 40 |
+
" # )\n",
|
| 41 |
+
" # s2_raw = (ee.ImageCollection(\"COPERNICUS/S2_SR_HARMONIZED\")\n",
|
| 42 |
+
" # .filterBounds(roi)\n",
|
| 43 |
+
" # .filterDate(DATE_START, DATE_END))\n",
|
| 44 |
+
"# and for the ee.ImageCollection(\"JAXA/ALOS/PALSAR-2/Level2_2/ScanSAR\") collelction\n",
|
| 45 |
+
"\n",
|
| 46 |
+
"\n",
|
| 47 |
+
"import ee\n",
|
| 48 |
+
"import datetime\n",
|
| 49 |
+
"import pandas as pd\n",
|
| 50 |
+
"\n",
|
| 51 |
+
"ee.Authenticate()\n",
|
| 52 |
+
"ee.Initialize()\n",
|
| 53 |
+
"\n",
|
| 54 |
+
"roi = ee.Geometry.Polygon([\n",
|
| 55 |
+
" [[7.472076, 46.371332],\n",
|
| 56 |
+
" [7.472076, 46.395963],\n",
|
| 57 |
+
" [7.558594, 46.395963],\n",
|
| 58 |
+
" [7.558594, 46.371332]]\n",
|
| 59 |
+
" ]) \n",
|
| 60 |
+
"DATE_START = '2020-01-01'\n",
|
| 61 |
+
"DATE_END = '2025-12-31'\n",
|
| 62 |
+
"\n",
|
| 63 |
+
"s1_col = (ee.ImageCollection('COPERNICUS/S1_GRD')\n",
|
| 64 |
+
" .filterBounds(roi) \n",
|
| 65 |
+
" .filterDate(DATE_START, DATE_END)\n",
|
| 66 |
+
" \n",
|
| 67 |
+
" .filter(ee.Filter.eq('instrumentMode', 'IW'))\n",
|
| 68 |
+
")\n",
|
| 69 |
+
"s2_raw = (ee.ImageCollection(\"COPERNICUS/S2_SR_HARMONIZED\")\n",
|
| 70 |
+
" .filterBounds(roi)\n",
|
| 71 |
+
" .filterDate(DATE_START, DATE_END)\n",
|
| 72 |
+
")\n",
|
| 73 |
+
"\n",
|
| 74 |
+
"palsar2_col = (ee.ImageCollection(\"JAXA/ALOS/PALSAR-2/Level2_2/ScanSAR\")\n",
|
| 75 |
+
" .filterBounds(roi)\n",
|
| 76 |
+
" .filterDate(DATE_START, DATE_END)\n",
|
| 77 |
+
" # .filter(ee.Filter.eq('ObservationMode', 'ScanSAR WBD'))\n",
|
| 78 |
+
")\n",
|
| 79 |
+
"\n",
|
| 80 |
+
"print(f'Sentinel-1 images count: {s1_col.size().getInfo()}')\n",
|
| 81 |
+
"print(f'Sentinel-2 images count: {s2_raw.size().getInfo()}')\n",
|
| 82 |
+
"print(f'PALSAR-2 images count: {palsar2_col.size().getInfo()}')\n",
|
| 83 |
+
"\n",
|
| 84 |
+
"def get_dates(image):\n",
|
| 85 |
+
" date = ee.Date(image.get('system:time_start')).format('YYYY-MM-dd')\n",
|
| 86 |
+
" return ee.Feature(None, {'date': date})\n",
|
| 87 |
+
"\n",
|
| 88 |
+
"s1_dates = s1_col.map(get_dates).distinct('date').aggregate_array('date').getInfo()\n",
|
| 89 |
+
"s2_dates = s2_raw.map(get_dates).distinct('date').aggregate_array('date').getInfo()\n",
|
| 90 |
+
"palsar2_dates = palsar2_col.map(get_dates).distinct('date').aggregate_array('date').getInfo()\n",
|
| 91 |
+
"\n",
|
| 92 |
+
"# Convert string dates to datetime objects\n",
|
| 93 |
+
"s1_dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in s1_dates]\n",
|
| 94 |
+
"s2_dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in s2_dates]\n",
|
| 95 |
+
"palsar2_dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in palsar2_dates]\n",
|
| 96 |
+
"\n",
|
| 97 |
+
"# Create a DataFrame for plotting\n",
|
| 98 |
+
"df_s1 = pd.DataFrame({'Date': s1_dates, 'Collection': 'Sentinel-1'})\n",
|
| 99 |
+
"df_s2 = pd.DataFrame({'Date': s2_dates, 'Collection': 'Sentinel-2'})\n",
|
| 100 |
+
"df_palsar2 = pd.DataFrame({'Date': palsar2_dates, 'Collection': 'PALSAR-2'})\n",
|
| 101 |
+
"df = pd.concat([df_s1, df_s2, df_palsar2])\n",
|
| 102 |
+
"df['Count'] = 1\n",
|
| 103 |
+
"\n",
|
| 104 |
+
"\n",
|
| 105 |
+
"\n",
|
| 106 |
+
"\n",
|
| 107 |
+
"# Plotting using plotly calendar heatmap\n",
|
| 108 |
+
"import plotly.express as px\n",
|
| 109 |
+
"fig = px.density_heatmap(df, x='Date', y='Collection', z='Count', \n",
|
| 110 |
+
" histfunc='sum', nbinsx=12*6, nbinsy=3,\n",
|
| 111 |
+
" title='Image Availability Calendar Heatmap',\n",
|
| 112 |
+
" labels={'Date': 'Date', 'Collection': 'Satellite Collection', 'Count': 'Number of Images'},\n",
|
| 113 |
+
" color_continuous_scale='Viridis')\n",
|
| 114 |
+
"fig.update_layout(yaxis={'categoryorder':'array', 'categoryarray':['Sentinel-1', 'Sentinel-2', 'PALSAR-2']})\n",
|
| 115 |
+
"fig.show(renderer=\"browser\")\n"
|
| 116 |
+
]
|
| 117 |
+
}
|
| 118 |
+
],
|
| 119 |
+
"metadata": {
|
| 120 |
+
"kernelspec": {
|
| 121 |
+
"display_name": ".venv",
|
| 122 |
+
"language": "python",
|
| 123 |
+
"name": "python3"
|
| 124 |
+
},
|
| 125 |
+
"language_info": {
|
| 126 |
+
"codemirror_mode": {
|
| 127 |
+
"name": "ipython",
|
| 128 |
+
"version": 3
|
| 129 |
+
},
|
| 130 |
+
"file_extension": ".py",
|
| 131 |
+
"mimetype": "text/x-python",
|
| 132 |
+
"name": "python",
|
| 133 |
+
"nbconvert_exporter": "python",
|
| 134 |
+
"pygments_lexer": "ipython3",
|
| 135 |
+
"version": "3.12.7"
|
| 136 |
+
}
|
| 137 |
+
},
|
| 138 |
+
"nbformat": 4,
|
| 139 |
+
"nbformat_minor": 5
|
| 140 |
+
}
|
code/lake_detection/band_stats.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"S1": {"mean": [-10.275007355103828, -19.10187808404981], "std": [8.077864757293627, 7.844485108696792]}, "S2": {"mean": [5203.776225113677, 5177.932304360476, 5094.146809105275, 5347.402283155328, 5348.477004072858, 5270.95105022702, 5153.108935614604, 5121.852479570022, 2418.92716783689, 2097.1146048929945, -0.06470172436416462, 0.2634266785421579], "std": [3657.3655615311823, 3431.3825227867237, 3364.7190966576554, 3358.4156132414055, 2986.983152871217, 2827.1899896570476, 2766.966383714519, 2677.4497688979413, 1686.293892684087, 1496.7516589009574, 0.22958618236701017, 0.46373559025376304]}, "DEM": {"mean": [2783.627744911285], "std": [679.0806803913562]}, "Hillshade": {"mean": [139.7336736969706], "std": [78.18240595643589]}}
|
code/lake_detection/pca_model.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b4141c05f477bbf5b4592054c63b9e0e57c5b8ed41702746605983b4de1578c2
|
| 3 |
+
size 1054
|
code/lake_detection/superpixel_classification.ipynb
ADDED
|
@@ -0,0 +1,458 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": null,
|
| 6 |
+
"id": "ae6d5585",
|
| 7 |
+
"metadata": {},
|
| 8 |
+
"outputs": [],
|
| 9 |
+
"source": [
|
| 10 |
+
"import cv2\n",
|
| 11 |
+
"import os\n",
|
| 12 |
+
"import json\n",
|
| 13 |
+
"import numpy as np\n",
|
| 14 |
+
"from matplotlib import pyplot as plt\n",
|
| 15 |
+
"import rasterio\n",
|
| 16 |
+
"from skimage.segmentation import mark_boundaries\n",
|
| 17 |
+
"from skimage.color import label2rgb\n",
|
| 18 |
+
"from skimage.segmentation import slic, felzenszwalb, quickshift\n",
|
| 19 |
+
"import pandas as pd\n",
|
| 20 |
+
"from skimage.measure import regionprops_table\n"
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"cell_type": "code",
|
| 25 |
+
"execution_count": null,
|
| 26 |
+
"id": "68a3d89e",
|
| 27 |
+
"metadata": {},
|
| 28 |
+
"outputs": [],
|
| 29 |
+
"source": [
|
| 30 |
+
"def normalize_band(img, mean, std):\n",
|
| 31 |
+
" \"\"\"Min-max normalization using mean ± 2sigma .\"\"\"\n",
|
| 32 |
+
" min_v = mean - 2 * std\n",
|
| 33 |
+
" max_v = mean + 2 * std\n",
|
| 34 |
+
" img = (img - min_v) / (max_v - min_v + 1e-6)\n",
|
| 35 |
+
" return np.clip(img, 0, 1).astype(np.float32)\n",
|
| 36 |
+
"\n",
|
| 37 |
+
"band_stats_file = \"band_stats.json\"\n",
|
| 38 |
+
"\n",
|
| 39 |
+
"if os.path.exists(band_stats_file):\n",
|
| 40 |
+
" with open(band_stats_file, \"r\") as f:\n",
|
| 41 |
+
" band_stats = json.load(f)\n",
|
| 42 |
+
"\n",
|
| 43 |
+
"def nomralize_image(s1, s2, dem, band_stats):\n",
|
| 44 |
+
" \"\"\"Normalize each band of the image using precomputed statistics.\"\"\"\n",
|
| 45 |
+
" normalized_bands = []\n",
|
| 46 |
+
" for i in range(s1.shape[2]):\n",
|
| 47 |
+
" band_mean = band_stats['S1']['mean'][i]\n",
|
| 48 |
+
" band_std = band_stats['S1']['std'][i]\n",
|
| 49 |
+
" normalized_band = normalize_band(s1[:, :, i], band_mean, band_std)\n",
|
| 50 |
+
" normalized_bands.append(normalized_band)\n",
|
| 51 |
+
"\n",
|
| 52 |
+
" for i in range(s2.shape[2]):\n",
|
| 53 |
+
" band_mean = band_stats['S2']['mean'][i]\n",
|
| 54 |
+
" band_std = band_stats['S2']['std'][i]\n",
|
| 55 |
+
" normalized_band = normalize_band(s2[:, :, i], band_mean, band_std)\n",
|
| 56 |
+
" normalized_bands.append(normalized_band)\n",
|
| 57 |
+
"\n",
|
| 58 |
+
" for i in range(dem.shape[2]):\n",
|
| 59 |
+
" band_mean = band_stats['DEM']['mean'][i]\n",
|
| 60 |
+
" band_std = band_stats['DEM']['std'][i]\n",
|
| 61 |
+
" normalized_band = normalize_band(dem[:, :, i], band_mean, band_std)\n",
|
| 62 |
+
" normalized_bands.append(normalized_band)\n",
|
| 63 |
+
"\n",
|
| 64 |
+
" # for band in range(hillshade.shape[2]):\n",
|
| 65 |
+
" # band_mean = band_stats['Hillshade']['mean'][band]\n",
|
| 66 |
+
" # band_std = band_stats['Hillshade']['std'][band]\n",
|
| 67 |
+
" # normalized_band = normalize_band(hillshade[:, :, band], band_mean, band_std)\n",
|
| 68 |
+
" # normalized_bands.append(normalized_band)\n",
|
| 69 |
+
"\n",
|
| 70 |
+
" # for band in range(cloudmask.shape[2]):\n",
|
| 71 |
+
" # band_mean = band_stats['Cloudmask']['mean'][band]\n",
|
| 72 |
+
" # band_std = band_stats['Cloudmask']['std'][band]\n",
|
| 73 |
+
" # normalized_band = normalize_band(cloudmask[:, :, band], band_mean, band_std)\n",
|
| 74 |
+
" # normalized_bands.append(normalized_band)\n",
|
| 75 |
+
"\n",
|
| 76 |
+
" return np.stack(normalized_bands, axis=-1)\n",
|
| 77 |
+
"\n",
|
| 78 |
+
"\n",
|
| 79 |
+
"def load_image(location, date, folder, load_mask=False):\n",
|
| 80 |
+
" s1 = f\"{folder}/{location}/{date}_{location}_s1.tif\"\n",
|
| 81 |
+
" s2 = f\"{folder}/{location}/{date}_{location}_s2.tif\"\n",
|
| 82 |
+
" dem = f\"{folder}/{location}/{location}_dem.tif\"\n",
|
| 83 |
+
" mask_path = f\"{folder}/{location}/{date}_{location}_lake_mask.tif\" if load_mask else None\n",
|
| 84 |
+
" \n",
|
| 85 |
+
" if not os.path.exists(s1):\n",
|
| 86 |
+
" print(f\"The file {s1} does not exist.\")\n",
|
| 87 |
+
" return None\n",
|
| 88 |
+
" if not os.path.exists(s2):\n",
|
| 89 |
+
" print(f\"The file {s2} does not exist.\")\n",
|
| 90 |
+
" return None\n",
|
| 91 |
+
" if not os.path.exists(dem):\n",
|
| 92 |
+
" print(f\"The file {dem} does not exist.\")\n",
|
| 93 |
+
" return None\n",
|
| 94 |
+
" if load_mask and not os.path.exists(mask_path):\n",
|
| 95 |
+
" print(f\"The file {mask_path} does not exist.\")\n",
|
| 96 |
+
" return None\n",
|
| 97 |
+
" \n",
|
| 98 |
+
" s1 = rasterio.open(s1).read()\n",
|
| 99 |
+
" s1 = np.moveaxis(s1, 0, -1)\n",
|
| 100 |
+
" s2 = rasterio.open(s2).read()\n",
|
| 101 |
+
" s2 = np.moveaxis(s2, 0, -1)\n",
|
| 102 |
+
" dem = rasterio.open(dem).read()\n",
|
| 103 |
+
" dem = np.moveaxis(dem, 0, -1)\n",
|
| 104 |
+
" # hillshade = rasterio.open(hillshade).read()\n",
|
| 105 |
+
" # hillshade = np.moveaxis(hillshade, 0, -1)\n",
|
| 106 |
+
" # cloudmask = rasterio.open(cloudmask).read()\n",
|
| 107 |
+
" # cloudmask = np.moveaxis(cloudmask, 0, -1)\n",
|
| 108 |
+
" normalized_image = nomralize_image(s1, s2, dem, band_stats)\n",
|
| 109 |
+
"\n",
|
| 110 |
+
" if load_mask:\n",
|
| 111 |
+
" mask = rasterio.open(mask_path).read(1)\n",
|
| 112 |
+
" mask = (mask > 1).astype(np.uint8)\n",
|
| 113 |
+
" return normalized_image, mask\n",
|
| 114 |
+
"\n",
|
| 115 |
+
" return normalized_image\n",
|
| 116 |
+
"\n",
|
| 117 |
+
"def extract_segment_features(image_s2, segments, mask):\n",
|
| 118 |
+
" num_bands = image_s2.shape[2]\n",
|
| 119 |
+
" rows = []\n",
|
| 120 |
+
"\n",
|
| 121 |
+
" props_table = regionprops_table(\n",
|
| 122 |
+
" segments,\n",
|
| 123 |
+
" properties=('label', 'perimeter', 'eccentricity', 'solidity')\n",
|
| 124 |
+
" )\n",
|
| 125 |
+
" props_df = pd.DataFrame(props_table).set_index('label')\n",
|
| 126 |
+
"\n",
|
| 127 |
+
" for segment_id in np.unique(segments):\n",
|
| 128 |
+
" segment_mask = segments == segment_id\n",
|
| 129 |
+
"\n",
|
| 130 |
+
" # Skip empty segments defensively\n",
|
| 131 |
+
" if not np.any(segment_mask):\n",
|
| 132 |
+
" continue\n",
|
| 133 |
+
"\n",
|
| 134 |
+
" segment_data = {'segment_id': segment_id}\n",
|
| 135 |
+
"\n",
|
| 136 |
+
" # ---- Spectral features ----\n",
|
| 137 |
+
" for band in range(num_bands):\n",
|
| 138 |
+
" band_data = image_s2[:, :, band][segment_mask]\n",
|
| 139 |
+
"\n",
|
| 140 |
+
" if band_data.size == 0:\n",
|
| 141 |
+
" continue\n",
|
| 142 |
+
"\n",
|
| 143 |
+
" segment_data[f'b{band+1}_mean'] = band_data.mean()\n",
|
| 144 |
+
" segment_data[f'b{band+1}_median'] = np.median(band_data)\n",
|
| 145 |
+
" segment_data[f'b{band+1}_std'] = band_data.std()\n",
|
| 146 |
+
" segment_data[f'b{band+1}_min'] = band_data.min()\n",
|
| 147 |
+
" segment_data[f'b{band+1}_max'] = band_data.max()\n",
|
| 148 |
+
"\n",
|
| 149 |
+
" s = pd.Series(band_data)\n",
|
| 150 |
+
" segment_data[f'b{band+1}_skew'] = s.skew()\n",
|
| 151 |
+
" segment_data[f'b{band+1}_kurtosis'] = s.kurtosis()\n",
|
| 152 |
+
"\n",
|
| 153 |
+
" segment_data[f'b{band+1}_energy'] = np.mean(band_data ** 2)\n",
|
| 154 |
+
"\n",
|
| 155 |
+
" hist, _ = np.histogram(band_data, bins=256, range=(0, 1), density=True)\n",
|
| 156 |
+
" hist = hist[hist > 0]\n",
|
| 157 |
+
" segment_data[f'b{band+1}_entropy'] = -np.sum(hist * np.log2(hist)) if hist.size else 0.0\n",
|
| 158 |
+
"\n",
|
| 159 |
+
" # ---- Shape features (once per segment) ----\n",
|
| 160 |
+
" if segment_id in props_df.index:\n",
|
| 161 |
+
" row = props_df.loc[segment_id]\n",
|
| 162 |
+
" segment_data['perimeter'] = row.perimeter\n",
|
| 163 |
+
" segment_data['eccentricity'] = row.eccentricity\n",
|
| 164 |
+
" segment_data['solidity'] = row.solidity\n",
|
| 165 |
+
" else:\n",
|
| 166 |
+
" segment_data['perimeter'] = 0.0\n",
|
| 167 |
+
" segment_data['eccentricity'] = 0.0\n",
|
| 168 |
+
" segment_data['solidity'] = 0.0\n",
|
| 169 |
+
"\n",
|
| 170 |
+
" # ---- Mask label ----\n",
|
| 171 |
+
" mask_data = mask[segment_mask]\n",
|
| 172 |
+
" if mask_data.size > 0:\n",
|
| 173 |
+
" majority = np.bincount(mask_data).argmax()\n",
|
| 174 |
+
" segment_data['mask_value'] = 0 if majority == 0 else 1\n",
|
| 175 |
+
" else:\n",
|
| 176 |
+
" segment_data['mask_value'] = 0\n",
|
| 177 |
+
"\n",
|
| 178 |
+
" rows.append(segment_data)\n",
|
| 179 |
+
"\n",
|
| 180 |
+
" return pd.DataFrame(rows)"
|
| 181 |
+
]
|
| 182 |
+
},
|
| 183 |
+
{
|
| 184 |
+
"cell_type": "code",
|
| 185 |
+
"execution_count": null,
|
| 186 |
+
"id": "647d0096",
|
| 187 |
+
"metadata": {},
|
| 188 |
+
"outputs": [],
|
| 189 |
+
"source": [
|
| 190 |
+
"\n",
|
| 191 |
+
"# image = load_image(\"Aletsch\", \"20230625\", \"../dataset\")\n",
|
| 192 |
+
"image, mask = load_image(\"Allalin\", \"20230720\", \"../dataset\", load_mask=True)\n",
|
| 193 |
+
"# image = load_image(\"Zmutt\", \"20230720\", \"../dataset\")\n",
|
| 194 |
+
"fig, ax = plt.subplots(1, 1, figsize=(10, 10))\n",
|
| 195 |
+
"ax.imshow(image[:, :, [8, 4, 12]])\n",
|
| 196 |
+
"ax.set_title('Superpixel Boundaries on Original Image')\n",
|
| 197 |
+
"ax.axis('off')\n",
|
| 198 |
+
"plt.tight_layout()\n",
|
| 199 |
+
"plt.show()\n"
|
| 200 |
+
]
|
| 201 |
+
},
|
| 202 |
+
{
|
| 203 |
+
"cell_type": "code",
|
| 204 |
+
"execution_count": null,
|
| 205 |
+
"id": "d5a75173",
|
| 206 |
+
"metadata": {},
|
| 207 |
+
"outputs": [],
|
| 208 |
+
"source": [
|
| 209 |
+
"df = pd.read_csv(\"train_segments_features.csv\")\n",
|
| 210 |
+
"validation_df = pd.read_csv(\"validation_segments_features.csv\")"
|
| 211 |
+
]
|
| 212 |
+
},
|
| 213 |
+
{
|
| 214 |
+
"cell_type": "code",
|
| 215 |
+
"execution_count": null,
|
| 216 |
+
"id": "369519bf",
|
| 217 |
+
"metadata": {},
|
| 218 |
+
"outputs": [],
|
| 219 |
+
"source": [
|
| 220 |
+
"# create a balanced dataset with equal number of lake and non-lake segments\n",
|
| 221 |
+
"# replace nan with 0 \n",
|
| 222 |
+
"df = df.fillna(0)\n",
|
| 223 |
+
"validation_df = validation_df.fillna(0)\n",
|
| 224 |
+
"lake_df = df[df['mask_value'] == 1]\n",
|
| 225 |
+
"non_lake_df = df[df['mask_value'] == 0]\n",
|
| 226 |
+
"non_lake_df_sampled = non_lake_df.sample(n=len(lake_df), random_state=42)\n",
|
| 227 |
+
"balanced_df = pd.concat([lake_df, non_lake_df_sampled], ignore_index=True)\n",
|
| 228 |
+
"balanced_df = balanced_df.sample(frac=1, random_state=42).reset_index(drop=True)\n",
|
| 229 |
+
"\n",
|
| 230 |
+
"X = balanced_df[[col for col in balanced_df.columns if col not in ['segment_id', 'location', 'date', 'mask_value']]]\n",
|
| 231 |
+
"y = balanced_df['mask_value']\n",
|
| 232 |
+
"\n",
|
| 233 |
+
"val_X = validation_df[[col for col in validation_df.columns if col not in ['segment_id', 'location', 'date', 'mask_value']]]\n",
|
| 234 |
+
"val_y = validation_df['mask_value']"
|
| 235 |
+
]
|
| 236 |
+
},
|
| 237 |
+
{
|
| 238 |
+
"cell_type": "code",
|
| 239 |
+
"execution_count": null,
|
| 240 |
+
"id": "dba1ada5",
|
| 241 |
+
"metadata": {},
|
| 242 |
+
"outputs": [],
|
| 243 |
+
"source": [
|
| 244 |
+
"print(f\"Lake segments: {len(lake_df)}, Non-lake segments (sampled): {len(non_lake_df)}, Total balanced segments: {len(balanced_df)}\")"
|
| 245 |
+
]
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"cell_type": "code",
|
| 249 |
+
"execution_count": null,
|
| 250 |
+
"id": "64ba7546",
|
| 251 |
+
"metadata": {},
|
| 252 |
+
"outputs": [],
|
| 253 |
+
"source": [
|
| 254 |
+
"from imblearn.over_sampling import SMOTE\n",
|
| 255 |
+
"\n",
|
| 256 |
+
"sm = SMOTE(random_state=42)\n",
|
| 257 |
+
"X, y = sm.fit_resample(df.drop(columns=['segment_id', 'location', 'date', 'mask_value']), df['mask_value'])\n",
|
| 258 |
+
"\n",
|
| 259 |
+
"# take only the first 10000\n",
|
| 260 |
+
"X = X[:10000]\n",
|
| 261 |
+
"y = y[:10000]\n"
|
| 262 |
+
]
|
| 263 |
+
},
|
| 264 |
+
{
|
| 265 |
+
"cell_type": "code",
|
| 266 |
+
"execution_count": null,
|
| 267 |
+
"id": "be1b30ac",
|
| 268 |
+
"metadata": {},
|
| 269 |
+
"outputs": [],
|
| 270 |
+
"source": [
|
| 271 |
+
"# train a random forest classifier to predict mask_value based on the band mean values\n",
|
| 272 |
+
"from sklearn.metrics import classification_report, confusion_matrix\n",
|
| 273 |
+
"from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier\n",
|
| 274 |
+
"from sklearn.naive_bayes import GaussianNB\n",
|
| 275 |
+
"from sklearn import svm\n",
|
| 276 |
+
"from sklearn.neural_network import MLPClassifier\n",
|
| 277 |
+
"from sklearn.metrics import f1_score, accuracy_score, precision_score, recall_score\n",
|
| 278 |
+
"clfs = {\n",
|
| 279 |
+
" 'RandomForest': RandomForestClassifier(n_estimators=100),\n",
|
| 280 |
+
" 'GradientBoosting': GradientBoostingClassifier(n_estimators=100),\n",
|
| 281 |
+
" 'GaussianNB': GaussianNB(),\n",
|
| 282 |
+
" 'SVM': svm.SVC(),\n",
|
| 283 |
+
" 'mlp': MLPClassifier(hidden_layer_sizes=(50, ), max_iter=300)\n",
|
| 284 |
+
"}\n",
|
| 285 |
+
"\n",
|
| 286 |
+
"\n",
|
| 287 |
+
"scores = {}\n",
|
| 288 |
+
"\n",
|
| 289 |
+
"def score(y_true, y_pred):\n",
|
| 290 |
+
" f1 = f1_score(y_true, y_pred, average='binary')\n",
|
| 291 |
+
" accuracy = accuracy_score(y_true, y_pred)\n",
|
| 292 |
+
" precision = precision_score(y_true, y_pred, average='binary')\n",
|
| 293 |
+
" recall = recall_score(y_true, y_pred, average='binary')\n",
|
| 294 |
+
" return {'f1_score': f1, 'accuracy': accuracy, 'precision': precision, 'recall': recall}\n",
|
| 295 |
+
"\n",
|
| 296 |
+
"\n",
|
| 297 |
+
"for col in X.columns:\n",
|
| 298 |
+
" num_nan = X[col].isna().sum()\n",
|
| 299 |
+
" if num_nan > 0:\n",
|
| 300 |
+
" print(f\"{col}: {num_nan}\")\n",
|
| 301 |
+
"\n",
|
| 302 |
+
"for name, clf in clfs.items():\n",
|
| 303 |
+
" clf.fit(X, y)\n",
|
| 304 |
+
" val_y_pred = clf.predict(val_X)\n",
|
| 305 |
+
"\n",
|
| 306 |
+
" scores[name] = score(val_y, val_y_pred)\n",
|
| 307 |
+
"\n",
|
| 308 |
+
" # create a confusion matrix and classification report\n",
|
| 309 |
+
" conf = confusion_matrix(val_y, val_y_pred)\n",
|
| 310 |
+
" print(f\"Classifier: {name}\")\n",
|
| 311 |
+
" print(\"Confusion Matrix:\")\n",
|
| 312 |
+
" print(conf)\n",
|
| 313 |
+
"\n",
|
| 314 |
+
" print(\"Classification Report:\")\n",
|
| 315 |
+
" print(classification_report(val_y, val_y_pred))\n",
|
| 316 |
+
"\n",
|
| 317 |
+
"\n",
|
| 318 |
+
" print(\"-\" * 50)\n",
|
| 319 |
+
"\n",
|
| 320 |
+
"\n",
|
| 321 |
+
"\n"
|
| 322 |
+
]
|
| 323 |
+
},
|
| 324 |
+
{
|
| 325 |
+
"cell_type": "code",
|
| 326 |
+
"execution_count": null,
|
| 327 |
+
"id": "bd477409",
|
| 328 |
+
"metadata": {},
|
| 329 |
+
"outputs": [],
|
| 330 |
+
"source": [
|
| 331 |
+
"scores"
|
| 332 |
+
]
|
| 333 |
+
},
|
| 334 |
+
{
|
| 335 |
+
"cell_type": "code",
|
| 336 |
+
"execution_count": null,
|
| 337 |
+
"id": "94360582",
|
| 338 |
+
"metadata": {},
|
| 339 |
+
"outputs": [],
|
| 340 |
+
"source": [
|
| 341 |
+
"print(f\"Number of lake segments in training set: {df['mask_value'].sum()} - {len(df)} total segments\")\n",
|
| 342 |
+
"print(f\"Number of lake segments in training set: {balanced_df['mask_value'].sum()} - {len(balanced_df)} total segments\")\n",
|
| 343 |
+
"print(f\"Number of lake segments in validation set: {validation_df['mask_value'].sum()} - {len(validation_df)} total segments\")"
|
| 344 |
+
]
|
| 345 |
+
},
|
| 346 |
+
{
|
| 347 |
+
"cell_type": "code",
|
| 348 |
+
"execution_count": null,
|
| 349 |
+
"id": "3972150d",
|
| 350 |
+
"metadata": {},
|
| 351 |
+
"outputs": [],
|
| 352 |
+
"source": [
|
| 353 |
+
"# show feature importance\n",
|
| 354 |
+
"rf_clf = clfs['RandomForest']\n",
|
| 355 |
+
"importances = rf_clf.feature_importances_\n",
|
| 356 |
+
"feature_names = X.columns\n",
|
| 357 |
+
"\n",
|
| 358 |
+
"# print 10 most important features\n",
|
| 359 |
+
"print(\"Feature Importances:\")\n",
|
| 360 |
+
"ordered_indices = np.argsort(importances)[::-1]\n",
|
| 361 |
+
"for idx in ordered_indices[:10]:\n",
|
| 362 |
+
" print(f\"{feature_names[idx]}: {importances[idx]:.4f}\")"
|
| 363 |
+
]
|
| 364 |
+
},
|
| 365 |
+
{
|
| 366 |
+
"cell_type": "code",
|
| 367 |
+
"execution_count": null,
|
| 368 |
+
"id": "bf5afbee",
|
| 369 |
+
"metadata": {},
|
| 370 |
+
"outputs": [],
|
| 371 |
+
"source": [
|
| 372 |
+
"# image, mask = load_image(\"Zmutt\", \"20230720\", \"../dataset\", True)\n",
|
| 373 |
+
"image, mask = load_image(\"PleineMorte\", \"20230618\", \"../dataset\", True)\n",
|
| 374 |
+
"# features = predicted_segments\n",
|
| 375 |
+
"all_segments = quickshift(image[:, :, [8, 4, 12]], kernel_size=3, max_dist=6, ratio=0.5)\n",
|
| 376 |
+
"# all_segments = quickshift(image_superpixel, kernel_size=5, max_dist=50, ratio=0.5)\n",
|
| 377 |
+
"# print(all_segments.shape, test_image.shape)\n",
|
| 378 |
+
"\n",
|
| 379 |
+
"features = extract_segment_features(image, all_segments, mask)\n",
|
| 380 |
+
"features = features.fillna(0)\n",
|
| 381 |
+
"\n",
|
| 382 |
+
"rf_clf = clfs['GradientBoosting']\n",
|
| 383 |
+
"features_X = features[[col for col in features.columns if col not in ['segment_id', 'mask_value']]]\n",
|
| 384 |
+
"features_y_pred = rf_clf.predict(features_X)\n",
|
| 385 |
+
"features['predicted_mask_value'] = features_y_pred\n",
|
| 386 |
+
"\n",
|
| 387 |
+
"print(f\"Get number of lake segments in test image: {features['mask_value'].sum()} out of {len(features)} segments\")\n",
|
| 388 |
+
"\n",
|
| 389 |
+
"# pllot predicted segments\n",
|
| 390 |
+
"predicted_mask_segment = np.zeros((image.shape[0], image.shape[1]), dtype=np.int8)\n",
|
| 391 |
+
"for seg_id in np.unique(all_segments):\n",
|
| 392 |
+
" seg_mask = all_segments == seg_id\n",
|
| 393 |
+
" if seg_mask.sum() == 0:\n",
|
| 394 |
+
" continue\n",
|
| 395 |
+
" segment_row = features[features['segment_id'] == seg_id]\n",
|
| 396 |
+
" if segment_row.empty:\n",
|
| 397 |
+
" continue\n",
|
| 398 |
+
" predicted_mask_value = segment_row['predicted_mask_value'].values[0]\n",
|
| 399 |
+
" predicted_mask_segment[seg_mask] = predicted_mask_value\n",
|
| 400 |
+
"\n",
|
| 401 |
+
"empty_img = np.zeros((image.shape[0], image.shape[1]), dtype=np.int8)\n",
|
| 402 |
+
"plot_img = image[:, :, [4, 3, 2]] * 255\n",
|
| 403 |
+
"plot_img = plot_img.astype(np.uint8)\n",
|
| 404 |
+
"plot_img = plot_img * 0.7 + np.stack([predicted_mask_segment * 255, empty_img, empty_img], axis=-1) * 0.3\n",
|
| 405 |
+
"plot_img = plot_img.astype(np.uint8)\n",
|
| 406 |
+
"fig, ax = plt.subplots(1, 1, figsize=(10, 10))\n",
|
| 407 |
+
"ax.imshow(plot_img)\n",
|
| 408 |
+
"ax.set_title('Predicted Mask Segments')\n",
|
| 409 |
+
"ax.axis('off')\n",
|
| 410 |
+
"plt.tight_layout()\n",
|
| 411 |
+
"plt.show()"
|
| 412 |
+
]
|
| 413 |
+
},
|
| 414 |
+
{
|
| 415 |
+
"cell_type": "markdown",
|
| 416 |
+
"id": "2af0989b",
|
| 417 |
+
"metadata": {},
|
| 418 |
+
"source": [
|
| 419 |
+
"0 vv \n",
|
| 420 |
+
"1 vh\n",
|
| 421 |
+
"2 b02\n",
|
| 422 |
+
"3 b03\n",
|
| 423 |
+
"4 b04\n",
|
| 424 |
+
"5 b05\n",
|
| 425 |
+
"6 b06\n",
|
| 426 |
+
"7 b07\n",
|
| 427 |
+
"8 b08\n",
|
| 428 |
+
"9 b08a\n",
|
| 429 |
+
"10 b11\n",
|
| 430 |
+
"11 b12\n",
|
| 431 |
+
"12 ndwi\n",
|
| 432 |
+
"13 ndsi\n",
|
| 433 |
+
"14 dem"
|
| 434 |
+
]
|
| 435 |
+
}
|
| 436 |
+
],
|
| 437 |
+
"metadata": {
|
| 438 |
+
"kernelspec": {
|
| 439 |
+
"display_name": ".venv",
|
| 440 |
+
"language": "python",
|
| 441 |
+
"name": "python3"
|
| 442 |
+
},
|
| 443 |
+
"language_info": {
|
| 444 |
+
"codemirror_mode": {
|
| 445 |
+
"name": "ipython",
|
| 446 |
+
"version": 3
|
| 447 |
+
},
|
| 448 |
+
"file_extension": ".py",
|
| 449 |
+
"mimetype": "text/x-python",
|
| 450 |
+
"name": "python",
|
| 451 |
+
"nbconvert_exporter": "python",
|
| 452 |
+
"pygments_lexer": "ipython3",
|
| 453 |
+
"version": "3.12.7"
|
| 454 |
+
}
|
| 455 |
+
},
|
| 456 |
+
"nbformat": 4,
|
| 457 |
+
"nbformat_minor": 5
|
| 458 |
+
}
|
code/lake_detection/superpixel_dataloader.ipynb
ADDED
|
@@ -0,0 +1,349 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": null,
|
| 6 |
+
"id": "ae6d5585",
|
| 7 |
+
"metadata": {},
|
| 8 |
+
"outputs": [],
|
| 9 |
+
"source": [
|
| 10 |
+
"import os\n",
|
| 11 |
+
"import json\n",
|
| 12 |
+
"from matplotlib import pyplot as plt\n",
|
| 13 |
+
"import numpy as np\n",
|
| 14 |
+
"from sklearn.decomposition import PCA\n",
|
| 15 |
+
"from skimage.measure import regionprops_table\n",
|
| 16 |
+
"import os\n",
|
| 17 |
+
"import numpy as np\n",
|
| 18 |
+
"import rasterio\n",
|
| 19 |
+
"from skimage.segmentation import quickshift\n",
|
| 20 |
+
"import pandas as pd\n",
|
| 21 |
+
"import tqdm "
|
| 22 |
+
]
|
| 23 |
+
},
|
| 24 |
+
{
|
| 25 |
+
"cell_type": "code",
|
| 26 |
+
"execution_count": null,
|
| 27 |
+
"id": "68a3d89e",
|
| 28 |
+
"metadata": {},
|
| 29 |
+
"outputs": [],
|
| 30 |
+
"source": [
|
| 31 |
+
"def normalize_band(img, mean, std):\n",
|
| 32 |
+
" \"\"\"Min-max normalization using mean ± 2sigma .\"\"\"\n",
|
| 33 |
+
" min_v = mean - 2 * std\n",
|
| 34 |
+
" max_v = mean + 2 * std\n",
|
| 35 |
+
" img = (img - min_v) / (max_v - min_v + 1e-6)\n",
|
| 36 |
+
" return np.clip(img, 0, 1).astype(np.float32)\n",
|
| 37 |
+
"\n",
|
| 38 |
+
"band_stats_file = \"band_stats.json\"\n",
|
| 39 |
+
"\n",
|
| 40 |
+
"if os.path.exists(band_stats_file):\n",
|
| 41 |
+
" with open(band_stats_file, \"r\") as f:\n",
|
| 42 |
+
" band_stats = json.load(f)\n",
|
| 43 |
+
"\n",
|
| 44 |
+
"def nomralize_image(s1, s2, dem, band_stats):\n",
|
| 45 |
+
" \"\"\"Normalize each band of the image using precomputed statistics.\"\"\"\n",
|
| 46 |
+
" normalized_bands = []\n",
|
| 47 |
+
" for i in range(s1.shape[2]):\n",
|
| 48 |
+
" band_mean = band_stats['S1']['mean'][i]\n",
|
| 49 |
+
" band_std = band_stats['S1']['std'][i]\n",
|
| 50 |
+
" normalized_band = normalize_band(s1[:, :, i], band_mean, band_std)\n",
|
| 51 |
+
" normalized_bands.append(normalized_band)\n",
|
| 52 |
+
"\n",
|
| 53 |
+
" for i in range(s2.shape[2]):\n",
|
| 54 |
+
" band_mean = band_stats['S2']['mean'][i]\n",
|
| 55 |
+
" band_std = band_stats['S2']['std'][i]\n",
|
| 56 |
+
" normalized_band = normalize_band(s2[:, :, i], band_mean, band_std)\n",
|
| 57 |
+
" normalized_bands.append(normalized_band)\n",
|
| 58 |
+
"\n",
|
| 59 |
+
" for i in range(dem.shape[2]):\n",
|
| 60 |
+
" band_mean = band_stats['DEM']['mean'][i]\n",
|
| 61 |
+
" band_std = band_stats['DEM']['std'][i]\n",
|
| 62 |
+
" normalized_band = normalize_band(dem[:, :, i], band_mean, band_std)\n",
|
| 63 |
+
" normalized_bands.append(normalized_band)\n",
|
| 64 |
+
"\n",
|
| 65 |
+
" return np.stack(normalized_bands, axis=-1)\n",
|
| 66 |
+
"\n",
|
| 67 |
+
"\n",
|
| 68 |
+
"def load_image(location, date, folder):\n",
|
| 69 |
+
" s1 = f\"{folder}/{location}/{date}_{location}_s1.tif\"\n",
|
| 70 |
+
" s2 = f\"{folder}/{location}/{date}_{location}_s2.tif\"\n",
|
| 71 |
+
" dem = f\"{folder}/{location}/{location}_dem.tif\"\n",
|
| 72 |
+
" \n",
|
| 73 |
+
" if not os.path.exists(s1):\n",
|
| 74 |
+
" print(f\"The file {s1} does not exist.\")\n",
|
| 75 |
+
" return None\n",
|
| 76 |
+
" if not os.path.exists(s2):\n",
|
| 77 |
+
" print(f\"The file {s2} does not exist.\")\n",
|
| 78 |
+
" return None\n",
|
| 79 |
+
" if not os.path.exists(dem):\n",
|
| 80 |
+
" print(f\"The file {dem} does not exist.\")\n",
|
| 81 |
+
" return None\n",
|
| 82 |
+
" \n",
|
| 83 |
+
" s1 = rasterio.open(s1).read()\n",
|
| 84 |
+
" s1 = np.moveaxis(s1, 0, -1)\n",
|
| 85 |
+
" s2 = rasterio.open(s2).read()\n",
|
| 86 |
+
" s2 = np.moveaxis(s2, 0, -1)\n",
|
| 87 |
+
" dem = rasterio.open(dem).read()\n",
|
| 88 |
+
" dem = np.moveaxis(dem, 0, -1)\n",
|
| 89 |
+
"\n",
|
| 90 |
+
" bands = []\n",
|
| 91 |
+
" for i in range(s1.shape[2]):\n",
|
| 92 |
+
" bands.append(s1[:, :, i])\n",
|
| 93 |
+
" for i in range(s2.shape[2]):\n",
|
| 94 |
+
" bands.append(s2[:, :, i])\n",
|
| 95 |
+
" for i in range(dem.shape[2]):\n",
|
| 96 |
+
" bands.append(dem[:, :, i])\n",
|
| 97 |
+
"\n",
|
| 98 |
+
" normalized_image = nomralize_image(s1, s2, dem, band_stats)\n",
|
| 99 |
+
"\n",
|
| 100 |
+
" # normalized_image = np.stack(bands, axis=-1)\n",
|
| 101 |
+
" return normalized_image"
|
| 102 |
+
]
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"cell_type": "code",
|
| 106 |
+
"execution_count": null,
|
| 107 |
+
"id": "647d0096",
|
| 108 |
+
"metadata": {},
|
| 109 |
+
"outputs": [],
|
| 110 |
+
"source": [
|
| 111 |
+
"\n",
|
| 112 |
+
"image = load_image(\"Aletsch\", \"20230618\", \"../dataset\")\n",
|
| 113 |
+
"# image = load_image(\"Allalin\", \"20230720\", \"../dataset\")\n",
|
| 114 |
+
"# image = load_image(\"Zmutt\", \"20230720\", \"../dataset\")\n",
|
| 115 |
+
"image = load_image(\"Saas-Tal\", \"20231016\", \"../dataset\")\n",
|
| 116 |
+
"fig, ax = plt.subplots(1, 1, figsize=(10, 10))\n",
|
| 117 |
+
"ax.imshow(image[:, :, [8, 4, 12]])\n",
|
| 118 |
+
"ax.set_title('Superpixel Boundaries on Original Image')\n",
|
| 119 |
+
"ax.axis('off')\n",
|
| 120 |
+
"plt.tight_layout()\n",
|
| 121 |
+
"plt.show()\n"
|
| 122 |
+
]
|
| 123 |
+
},
|
| 124 |
+
{
|
| 125 |
+
"cell_type": "code",
|
| 126 |
+
"execution_count": null,
|
| 127 |
+
"id": "34be574b",
|
| 128 |
+
"metadata": {},
|
| 129 |
+
"outputs": [],
|
| 130 |
+
"source": [
|
| 131 |
+
"\n",
|
| 132 |
+
"# remove nan values\n",
|
| 133 |
+
"image = np.nan_to_num(image)\n",
|
| 134 |
+
"\n",
|
| 135 |
+
"H, W, B = image.shape \n",
|
| 136 |
+
"X = image.reshape(-1, B).astype(np.float32)\n",
|
| 137 |
+
"\n",
|
| 138 |
+
"pca = PCA(n_components=3, svd_solver='randomized', whiten=False)\n",
|
| 139 |
+
"X_pca = pca.fit_transform(X)\n",
|
| 140 |
+
"image_pca = X_pca.reshape(H, W, 3)\n",
|
| 141 |
+
"\n",
|
| 142 |
+
"\n",
|
| 143 |
+
"def normalize(img):\n",
|
| 144 |
+
" img_min = img.min(axis=(0,1), keepdims=True)\n",
|
| 145 |
+
" img_max = img.max(axis=(0,1), keepdims=True)\n",
|
| 146 |
+
" return (img - img_min) / (img_max - img_min + 1e-8)\n",
|
| 147 |
+
"\n",
|
| 148 |
+
"image_pca_norm = normalize(image_pca)\n",
|
| 149 |
+
"\n",
|
| 150 |
+
"fig, ax = plt.subplots(1, 1, figsize=(10, 10))\n",
|
| 151 |
+
"ax.imshow(image_pca_norm)\n",
|
| 152 |
+
"ax.set_title('Superpixel Boundaries on PCA Image')\n",
|
| 153 |
+
"ax.axis('off')\n",
|
| 154 |
+
"plt.tight_layout()\n",
|
| 155 |
+
"plt.show()"
|
| 156 |
+
]
|
| 157 |
+
},
|
| 158 |
+
{
|
| 159 |
+
"cell_type": "code",
|
| 160 |
+
"execution_count": null,
|
| 161 |
+
"id": "34deeb23",
|
| 162 |
+
"metadata": {},
|
| 163 |
+
"outputs": [],
|
| 164 |
+
"source": [
|
| 165 |
+
"print(\"Explained variance ratio:\", pca.explained_variance_ratio_)\n",
|
| 166 |
+
"print(\"Total variance retained:\", pca.explained_variance_ratio_.sum())"
|
| 167 |
+
]
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"cell_type": "code",
|
| 171 |
+
"execution_count": null,
|
| 172 |
+
"id": "47e1d4a8",
|
| 173 |
+
"metadata": {},
|
| 174 |
+
"outputs": [],
|
| 175 |
+
"source": [
|
| 176 |
+
"def compute_pca(image, n_components=3):\n",
|
| 177 |
+
" H, W, B = image.shape \n",
|
| 178 |
+
" X = image.reshape(-1, B).astype(np.float32)\n",
|
| 179 |
+
"\n",
|
| 180 |
+
" pca = PCA(n_components=n_components, svd_solver='randomized', whiten=False)\n",
|
| 181 |
+
" X_pca = pca.fit_transform(X)\n",
|
| 182 |
+
" image_pca = X_pca.reshape(H, W, n_components)\n",
|
| 183 |
+
" \n",
|
| 184 |
+
" return image_pca"
|
| 185 |
+
]
|
| 186 |
+
},
|
| 187 |
+
{
|
| 188 |
+
"cell_type": "code",
|
| 189 |
+
"execution_count": null,
|
| 190 |
+
"id": "92fa64b6",
|
| 191 |
+
"metadata": {},
|
| 192 |
+
"outputs": [],
|
| 193 |
+
"source": [
|
| 194 |
+
"chanels = [\n",
|
| 195 |
+
" image[:, :, [4,3,2]],\n",
|
| 196 |
+
" image[:, :, [8, 4, 12]],\n",
|
| 197 |
+
" compute_pca(image, n_components=3)\n",
|
| 198 |
+
"]\n"
|
| 199 |
+
]
|
| 200 |
+
},
|
| 201 |
+
{
|
| 202 |
+
"cell_type": "code",
|
| 203 |
+
"execution_count": null,
|
| 204 |
+
"id": "670feb88",
|
| 205 |
+
"metadata": {},
|
| 206 |
+
"outputs": [],
|
| 207 |
+
"source": [
|
| 208 |
+
"\n",
|
| 209 |
+
"def extract_segment_features(image_s2, segments, mask):\n",
|
| 210 |
+
" num_bands = image_s2.shape[2]\n",
|
| 211 |
+
" rows = []\n",
|
| 212 |
+
"\n",
|
| 213 |
+
" props_table = regionprops_table(\n",
|
| 214 |
+
" segments,\n",
|
| 215 |
+
" properties=('label', 'perimeter', 'eccentricity', 'solidity')\n",
|
| 216 |
+
" )\n",
|
| 217 |
+
" props_df = pd.DataFrame(props_table).set_index('label')\n",
|
| 218 |
+
"\n",
|
| 219 |
+
" for segment_id in np.unique(segments):\n",
|
| 220 |
+
" segment_mask = segments == segment_id\n",
|
| 221 |
+
"\n",
|
| 222 |
+
" # Skip empty segments defensively\n",
|
| 223 |
+
" if not np.any(segment_mask):\n",
|
| 224 |
+
" continue\n",
|
| 225 |
+
"\n",
|
| 226 |
+
" segment_data = {'segment_id': segment_id}\n",
|
| 227 |
+
"\n",
|
| 228 |
+
" # ---- Spectral features ----\n",
|
| 229 |
+
" for band in range(num_bands):\n",
|
| 230 |
+
" band_data = image_s2[:, :, band][segment_mask]\n",
|
| 231 |
+
"\n",
|
| 232 |
+
" if band_data.size == 0:\n",
|
| 233 |
+
" continue\n",
|
| 234 |
+
"\n",
|
| 235 |
+
" segment_data[f'b{band+1}_mean'] = band_data.mean()\n",
|
| 236 |
+
" segment_data[f'b{band+1}_median'] = np.median(band_data)\n",
|
| 237 |
+
" segment_data[f'b{band+1}_std'] = band_data.std()\n",
|
| 238 |
+
" segment_data[f'b{band+1}_min'] = band_data.min()\n",
|
| 239 |
+
" segment_data[f'b{band+1}_max'] = band_data.max()\n",
|
| 240 |
+
"\n",
|
| 241 |
+
" s = pd.Series(band_data)\n",
|
| 242 |
+
" segment_data[f'b{band+1}_skew'] = s.skew()\n",
|
| 243 |
+
" segment_data[f'b{band+1}_kurtosis'] = s.kurtosis()\n",
|
| 244 |
+
"\n",
|
| 245 |
+
" segment_data[f'b{band+1}_energy'] = np.mean(band_data ** 2)\n",
|
| 246 |
+
"\n",
|
| 247 |
+
" hist, _ = np.histogram(band_data, bins=256, range=(0, 1), density=True)\n",
|
| 248 |
+
" hist = hist[hist > 0]\n",
|
| 249 |
+
" segment_data[f'b{band+1}_entropy'] = -np.sum(hist * np.log2(hist)) if hist.size else 0.0\n",
|
| 250 |
+
"\n",
|
| 251 |
+
" # ---- Shape features (once per segment) ----\n",
|
| 252 |
+
" if segment_id in props_df.index:\n",
|
| 253 |
+
" row = props_df.loc[segment_id]\n",
|
| 254 |
+
" segment_data['perimeter'] = row.perimeter\n",
|
| 255 |
+
" segment_data['eccentricity'] = row.eccentricity\n",
|
| 256 |
+
" segment_data['solidity'] = row.solidity\n",
|
| 257 |
+
" else:\n",
|
| 258 |
+
" segment_data['perimeter'] = 0.0\n",
|
| 259 |
+
" segment_data['eccentricity'] = 0.0\n",
|
| 260 |
+
" segment_data['solidity'] = 0.0\n",
|
| 261 |
+
"\n",
|
| 262 |
+
" # ---- Mask label ----\n",
|
| 263 |
+
" mask_data = mask[segment_mask]\n",
|
| 264 |
+
" if mask_data.size > 0:\n",
|
| 265 |
+
" majority = np.bincount(mask_data).argmax()\n",
|
| 266 |
+
" segment_data['mask_value'] = 0 if majority == 0 else 1\n",
|
| 267 |
+
" else:\n",
|
| 268 |
+
" segment_data['mask_value'] = 0\n",
|
| 269 |
+
"\n",
|
| 270 |
+
" rows.append(segment_data)\n",
|
| 271 |
+
"\n",
|
| 272 |
+
" return pd.DataFrame(rows)\n"
|
| 273 |
+
]
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"cell_type": "code",
|
| 277 |
+
"execution_count": null,
|
| 278 |
+
"id": "75f7c343",
|
| 279 |
+
"metadata": {},
|
| 280 |
+
"outputs": [],
|
| 281 |
+
"source": [
|
| 282 |
+
"\n",
|
| 283 |
+
"train_locs = [\"Aletsch\", \"Rhone\", \"Gorner\", \"Allalin\", \"Anzere\", \"Diablerets\", \"Gorbassiere\", \"Moiry\", \"Saas-Tal\"]\n",
|
| 284 |
+
"val_locs = [\"PleineMorte\", \"Zmutt\"]\n",
|
| 285 |
+
"\n",
|
| 286 |
+
"def create_dataset(locations, folder=\"\"):\n",
|
| 287 |
+
" df = pd.DataFrame()\n",
|
| 288 |
+
"\n",
|
| 289 |
+
" for location in locations:\n",
|
| 290 |
+
" dates = os.listdir(f\"{folder}/{location}/\")\n",
|
| 291 |
+
" dates = [date.split(\"_\")[0] for date in dates if date.endswith(\"_lake_mask.tif\")]\n",
|
| 292 |
+
" print(f\"Processing location: {location}\")\n",
|
| 293 |
+
" for date in tqdm.tqdm(dates): \n",
|
| 294 |
+
" mask_pth = f\"{folder}/{location}/{date}_{location}_lake_mask.tif\"\n",
|
| 295 |
+
" image = load_image(location, date, folder)\n",
|
| 296 |
+
" \n",
|
| 297 |
+
" image = np.nan_to_num(image)\n",
|
| 298 |
+
" image_superpixel = image[:, :, [8, 4, 12]]\n",
|
| 299 |
+
" mask = rasterio.open(mask_pth).read(1)\n",
|
| 300 |
+
" mask = mask > 1\n",
|
| 301 |
+
" mask = mask.astype(np.uint8) \n",
|
| 302 |
+
" segements = quickshift(image_superpixel, kernel_size=3, max_dist=6, ratio=0.5)\n",
|
| 303 |
+
" print(f\"Number of segments: {len(np.unique(segements))}\")\n",
|
| 304 |
+
" df_location_date = extract_segment_features(image, segements, mask)\n",
|
| 305 |
+
" df_location_date['location'] = location\n",
|
| 306 |
+
" df_location_date['date'] = date\n",
|
| 307 |
+
" df = pd.concat([df, df_location_date], ignore_index=True)\n",
|
| 308 |
+
" print(f\"Number of lakes in {location} on {date}: {df_location_date['mask_value'].sum()}\")\n",
|
| 309 |
+
" return df\n",
|
| 310 |
+
"\n",
|
| 311 |
+
"df = create_dataset(train_locs, folder=\"../dataset/\")\n",
|
| 312 |
+
"validation_df = create_dataset(val_locs, folder=\"../dataset/\")"
|
| 313 |
+
]
|
| 314 |
+
},
|
| 315 |
+
{
|
| 316 |
+
"cell_type": "code",
|
| 317 |
+
"execution_count": null,
|
| 318 |
+
"id": "17970e63",
|
| 319 |
+
"metadata": {},
|
| 320 |
+
"outputs": [],
|
| 321 |
+
"source": [
|
| 322 |
+
"# save the dataframes\n",
|
| 323 |
+
"df.to_csv(\"train_segments_features.csv\", index=False)\n",
|
| 324 |
+
"validation_df.to_csv(\"validation_segments_features.csv\", index=False)"
|
| 325 |
+
]
|
| 326 |
+
}
|
| 327 |
+
],
|
| 328 |
+
"metadata": {
|
| 329 |
+
"kernelspec": {
|
| 330 |
+
"display_name": ".venv",
|
| 331 |
+
"language": "python",
|
| 332 |
+
"name": "python3"
|
| 333 |
+
},
|
| 334 |
+
"language_info": {
|
| 335 |
+
"codemirror_mode": {
|
| 336 |
+
"name": "ipython",
|
| 337 |
+
"version": 3
|
| 338 |
+
},
|
| 339 |
+
"file_extension": ".py",
|
| 340 |
+
"mimetype": "text/x-python",
|
| 341 |
+
"name": "python",
|
| 342 |
+
"nbconvert_exporter": "python",
|
| 343 |
+
"pygments_lexer": "ipython3",
|
| 344 |
+
"version": "3.12.7"
|
| 345 |
+
}
|
| 346 |
+
},
|
| 347 |
+
"nbformat": 4,
|
| 348 |
+
"nbformat_minor": 5
|
| 349 |
+
}
|
code/lake_detection/superpixel_rlhf.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
code/lake_detection/train_segments_features.csv
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:11433f2d585317745d61da45ae9f59de362fda46ab7273ce617efb4fffe4a8f4
|
| 3 |
+
size 1764146303
|
code/lake_detection/validation_segments_features.csv
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1e274bee15ccdb4c64df5023275a48185bbb82299dedf51b313a9c8f06bf43b3
|
| 3 |
+
size 67516356
|
code/lake_detection_deep_learning/band_stats.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"S1": {"mean": [-10.275007355103828, -19.10187808404981], "std": [8.077864757293627, 7.844485108696792]}, "S2": {"mean": [5203.776225113677, 5177.932304360476, 5094.146809105275, 5347.402283155328, 5348.477004072858, 5270.95105022702, 5153.108935614604, 5121.852479570022, 2418.92716783689, 2097.1146048929945, -0.06470172436416462, 0.2634266785421579], "std": [3657.3655615311823, 3431.3825227867237, 3364.7190966576554, 3358.4156132414055, 2986.983152871217, 2827.1899896570476, 2766.966383714519, 2677.4497688979413, 1686.293892684087, 1496.7516589009574, 0.22958618236701017, 0.46373559025376304]}, "DEM": {"mean": [2783.627744911285], "std": [679.0806803913562]}, "Hillshade": {"mean": [139.7336736969706], "std": [78.18240595643589]}, "Cloudmask": {"mean": [0.45783994476789935], "std": [0.4982193590606714]}}
|
code/lake_detection_deep_learning/model_anaysis_comp.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
code/lake_detection_deep_learning/model_visulalisation.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
code/lake_detection_deep_learning/models/deeplabv3/0/deeplabv3_mae_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:546ffea0da8ea0ef376aa13d98ba3e5cabda38711294735a04045e5881f5feb7
|
| 3 |
+
size 159355614
|
code/lake_detection_deep_learning/models/deeplabv3/0/deeplabv3_mae_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_l1,train_l2,val_loss,val_l1,val_l2
|
| 2 |
+
1,0.0930,39.76M,0.1708,0.0930,0.0293,0.1179,0.0289
|
| 3 |
+
2,0.0194,39.76M,0.1022,0.0194,0.0107,0.0792,0.0107
|
| 4 |
+
3,0.0163,39.76M,0.0923,0.0163,0.0087,0.0660,0.0087
|
| 5 |
+
4,0.0130,39.76M,0.0802,0.0130,0.0135,0.0895,0.0134
|
| 6 |
+
5,0.0103,39.76M,0.0711,0.0103,0.0074,0.0626,0.0074
|
| 7 |
+
6,0.0101,39.76M,0.0706,0.0101,0.0073,0.0610,0.0073
|
| 8 |
+
7,0.0104,39.76M,0.0716,0.0104,0.0072,0.0600,0.0073
|
| 9 |
+
8,0.0114,39.76M,0.0764,0.0114,0.0062,0.0555,0.0062
|
| 10 |
+
9,0.0109,39.76M,0.0740,0.0109,0.0075,0.0614,0.0075
|
| 11 |
+
10,0.0096,39.76M,0.0694,0.0096,0.0056,0.0518,0.0056
|
| 12 |
+
11,0.0084,39.76M,0.0651,0.0084,0.0052,0.0490,0.0052
|
| 13 |
+
12,0.0093,39.76M,0.0686,0.0093,0.0065,0.0568,0.0065
|
| 14 |
+
13,0.0088,39.76M,0.0660,0.0088,0.0056,0.0536,0.0056
|
| 15 |
+
14,0.0065,39.76M,0.0555,0.0065,0.0070,0.0614,0.0070
|
| 16 |
+
15,0.0070,39.76M,0.0573,0.0070,0.0059,0.0524,0.0059
|
| 17 |
+
16,0.0064,39.76M,0.0552,0.0064,0.0046,0.0456,0.0046
|
| 18 |
+
17,0.0070,39.76M,0.0575,0.0070,0.0046,0.0446,0.0047
|
| 19 |
+
18,0.0062,39.76M,0.0546,0.0062,0.0050,0.0502,0.0050
|
| 20 |
+
19,0.0067,39.76M,0.0567,0.0067,0.0046,0.0444,0.0046
|
| 21 |
+
20,0.0064,39.76M,0.0539,0.0064,0.0044,0.0435,0.0044
|
| 22 |
+
21,0.0051,39.76M,0.0485,0.0051,0.0048,0.0445,0.0049
|
| 23 |
+
22,0.0062,39.76M,0.0525,0.0062,0.0091,0.0693,0.0091
|
| 24 |
+
23,0.0071,39.76M,0.0561,0.0071,0.0045,0.0446,0.0045
|
| 25 |
+
24,0.0053,39.76M,0.0480,0.0053,0.0041,0.0413,0.0041
|
| 26 |
+
25,0.0048,39.76M,0.0465,0.0048,0.0048,0.0496,0.0047
|
| 27 |
+
26,0.0049,39.76M,0.0469,0.0049,0.0042,0.0408,0.0041
|
| 28 |
+
27,0.0052,39.76M,0.0483,0.0052,0.0067,0.0562,0.0066
|
| 29 |
+
28,0.0052,39.76M,0.0479,0.0052,0.0046,0.0427,0.0046
|
| 30 |
+
29,0.0096,39.76M,0.0679,0.0096,0.0074,0.0601,0.0074
|
| 31 |
+
30,0.0063,39.76M,0.0541,0.0063,0.0050,0.0433,0.0049
|
code/lake_detection_deep_learning/models/deeplabv3/0/deeplabv3_mae_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for mae,632543.0625
|
| 2 |
+
Average inference time (ms) for mae,30.723791885375977
|
code/lake_detection_deep_learning/models/deeplabv3/0/deeplabv3_seg_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_iou,train_dice,train_accuracy,train_precision,train_recall,val_loss,val_iou,val_dice,val_accuracy,val_precision,val_recall
|
| 2 |
+
1,0.9957,39.76M,0.0282,0.0423,0.9856,0.2251,0.1822,0.9961,0.0000,0.0000,0.9969,0.5000,0.0000
|
| 3 |
+
2,0.8532,39.76M,0.1278,0.1721,0.9905,0.3873,0.4921,0.9667,0.0000,0.0000,0.9979,1.0000,0.0000
|
| 4 |
+
3,0.6691,39.76M,0.1803,0.2348,0.9957,0.6237,0.4547,1.0177,0.0000,0.0000,0.9965,0.5000,0.0000
|
| 5 |
+
4,0.5959,39.76M,0.1948,0.2488,0.9960,0.6569,0.4690,1.0011,0.0000,0.0000,0.9978,0.7500,0.0000
|
| 6 |
+
5,0.4623,39.76M,0.2722,0.3455,0.9970,0.7045,0.5850,1.0089,0.0000,0.0000,0.9974,0.0000,0.0000
|
| 7 |
+
6,0.4075,39.76M,0.3031,0.3805,0.9968,0.7102,0.6638,0.6652,0.1330,0.1898,0.9974,0.5291,0.5193
|
| 8 |
+
7,0.3693,39.76M,0.3121,0.3926,0.9974,0.7404,0.6694,0.8706,0.0241,0.0397,0.9980,0.9173,0.0446
|
| 9 |
+
8,0.3427,39.76M,0.3453,0.4273,0.9977,0.7535,0.6823,0.9946,0.0007,0.0013,0.9979,1.0000,0.0010
|
| 10 |
+
9,0.3288,39.76M,0.3642,0.4519,0.9978,0.7555,0.6782,0.9973,0.0078,0.0125,0.9979,0.7500,0.0032
|
| 11 |
+
10,0.2999,39.76M,0.3935,0.4841,0.9979,0.7741,0.7165,0.9526,0.0072,0.0123,0.9979,0.5000,0.0048
|
| 12 |
+
11,0.3162,39.76M,0.3768,0.4646,0.9978,0.7467,0.7111,1.0071,0.0016,0.0030,0.9979,1.0000,0.0006
|
| 13 |
+
12,0.2956,39.76M,0.4000,0.4922,0.9980,0.7781,0.7158,0.6634,0.1246,0.1802,0.9979,0.5776,0.2985
|
| 14 |
+
13,0.2900,39.76M,0.4158,0.5078,0.9981,0.7816,0.7095,0.9969,0.0039,0.0069,0.9979,1.0000,0.0016
|
| 15 |
+
14,0.2851,39.76M,0.4095,0.4969,0.9981,0.7934,0.7282,0.9224,0.0178,0.0276,0.9979,0.9662,0.0299
|
| 16 |
+
15,0.3180,39.76M,0.3734,0.4583,0.9978,0.7766,0.6950,0.9908,0.0011,0.0021,0.9979,1.0000,0.0044
|
| 17 |
+
16,0.2649,39.76M,0.4220,0.5180,0.9981,0.7844,0.7494,0.5793,0.1507,0.2080,0.9982,0.7126,0.3412
|
| 18 |
+
17,0.2389,39.76M,0.4439,0.5368,0.9983,0.8175,0.7590,0.7310,0.1117,0.1651,0.9981,0.8420,0.1680
|
| 19 |
+
18,0.2671,39.76M,0.4293,0.5196,0.9982,0.7915,0.7322,0.7777,0.0623,0.0880,0.9981,0.8093,0.1167
|
| 20 |
+
19,0.2268,39.76M,0.4410,0.5308,0.9984,0.8325,0.7654,0.8747,0.0614,0.0928,0.9980,0.9610,0.0603
|
| 21 |
+
20,0.2516,39.76M,0.4393,0.5311,0.9982,0.7929,0.7523,0.9663,0.0088,0.0162,0.9979,1.0000,0.0060
|
| 22 |
+
21,0.2887,39.76M,0.4094,0.4991,0.9981,0.8169,0.7004,0.9469,0.0491,0.0789,0.9979,0.9426,0.0238
|
| 23 |
+
22,0.2440,39.76M,0.4509,0.5461,0.9982,0.8065,0.7596,0.8190,0.0865,0.1295,0.9981,0.9706,0.0924
|
| 24 |
+
23,0.2641,39.76M,0.4557,0.5504,0.9982,0.8073,0.7421,0.9832,0.0550,0.0825,0.9979,1.0000,0.0118
|
| 25 |
+
24,0.2712,39.76M,0.4435,0.5380,0.9982,0.8142,0.7172,0.9478,0.0677,0.1011,0.9979,0.9206,0.0189
|
| 26 |
+
25,0.2721,39.76M,0.4476,0.5446,0.9982,0.7860,0.7426,0.8115,0.0643,0.0916,0.9981,0.9660,0.0909
|
| 27 |
+
26,0.2279,39.76M,0.4718,0.5672,0.9984,0.8246,0.7774,0.5698,0.2900,0.3768,0.9983,0.7093,0.3454
|
| 28 |
+
27,0.2380,39.76M,0.4742,0.5670,0.9984,0.8094,0.7615,0.8595,0.0706,0.1055,0.9980,0.9503,0.0679
|
| 29 |
+
28,0.2462,39.76M,0.4687,0.5650,0.9983,0.7917,0.7660,0.8723,0.0789,0.1238,0.9980,0.9908,0.0585
|
| 30 |
+
29,0.2412,39.76M,0.4517,0.5436,0.9982,0.8160,0.7509,0.7769,0.1720,0.2382,0.9980,0.6012,0.1566
|
| 31 |
+
30,0.2822,39.76M,0.4368,0.5318,0.9980,0.7919,0.7281,0.9388,0.0466,0.0759,0.9980,0.9556,0.0342
|
code/lake_detection_deep_learning/models/deeplabv3/0/deeplabv3_seg_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for segmentation,453143.1875
|
| 2 |
+
Average inference time (ms) for segmentation,16.075020599365235
|
code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_mae_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dcd8f5fe0c93ec76a9c94b6f7e764fd807fde9179d818a7cf793cb08327ecb33
|
| 3 |
+
size 159396318
|
code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_mae_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_l1,train_l2,val_loss,val_l1,val_l2
|
| 2 |
+
1,0.1048,39.77M,0.1979,0.1048,0.0365,0.1479,0.0366
|
| 3 |
+
2,0.0259,39.77M,0.1170,0.0259,0.0225,0.1090,0.0226
|
| 4 |
+
3,0.0216,39.77M,0.1056,0.0216,0.0189,0.0974,0.0189
|
| 5 |
+
4,0.0207,39.77M,0.1026,0.0207,0.0221,0.1020,0.0222
|
| 6 |
+
5,0.0198,39.77M,0.1010,0.0198,0.0206,0.1018,0.0206
|
| 7 |
+
6,0.0182,39.77M,0.0952,0.0182,0.0209,0.1023,0.0211
|
| 8 |
+
7,0.0187,39.77M,0.0975,0.0187,0.0184,0.0982,0.0184
|
| 9 |
+
8,0.0161,39.77M,0.0898,0.0161,0.0148,0.0863,0.0147
|
| 10 |
+
9,0.0143,39.77M,0.0840,0.0143,0.0130,0.0811,0.0130
|
| 11 |
+
10,0.0148,39.77M,0.0861,0.0148,0.0123,0.0786,0.0123
|
| 12 |
+
11,0.0132,39.77M,0.0811,0.0132,0.0116,0.0756,0.0116
|
| 13 |
+
12,0.0127,39.77M,0.0791,0.0127,0.0139,0.0877,0.0138
|
| 14 |
+
13,0.0119,39.77M,0.0759,0.0119,0.0170,0.1036,0.0170
|
| 15 |
+
14,0.0110,39.77M,0.0718,0.0110,0.0143,0.0831,0.0143
|
| 16 |
+
15,0.0109,39.77M,0.0717,0.0109,0.0096,0.0670,0.0096
|
| 17 |
+
16,0.0115,39.77M,0.0743,0.0115,0.0105,0.0716,0.0105
|
| 18 |
+
17,0.0111,39.77M,0.0732,0.0111,0.0114,0.0759,0.0115
|
| 19 |
+
18,0.0116,39.77M,0.0744,0.0116,0.0128,0.0783,0.0127
|
| 20 |
+
19,0.0126,39.77M,0.0778,0.0126,0.0116,0.0722,0.0117
|
| 21 |
+
20,0.0114,39.77M,0.0741,0.0114,0.0114,0.0775,0.0114
|
| 22 |
+
21,0.0102,39.77M,0.0689,0.0102,0.0085,0.0591,0.0085
|
| 23 |
+
22,0.0102,39.77M,0.0695,0.0102,0.0097,0.0669,0.0096
|
| 24 |
+
23,0.0105,39.77M,0.0697,0.0105,0.0096,0.0677,0.0096
|
| 25 |
+
24,0.0099,39.77M,0.0677,0.0099,0.0088,0.0620,0.0088
|
| 26 |
+
25,0.0099,39.77M,0.0675,0.0099,0.0085,0.0597,0.0084
|
| 27 |
+
26,0.0092,39.77M,0.0632,0.0092,0.0087,0.0615,0.0087
|
| 28 |
+
27,0.0095,39.77M,0.0647,0.0095,0.0141,0.0873,0.0141
|
| 29 |
+
28,0.0099,39.77M,0.0675,0.0099,0.0095,0.0674,0.0096
|
| 30 |
+
29,0.0095,39.77M,0.0656,0.0095,0.0104,0.0723,0.0105
|
| 31 |
+
30,0.0101,39.77M,0.0681,0.0101,0.0123,0.0811,0.0124
|
code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_mae_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for mae,958369.1875
|
| 2 |
+
Average inference time (ms) for mae,33.81919965744019
|
code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_seg_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a27e1f07d2e00aa8e7c5361543ed1982469c320e716b84879b288cedd7cdaa6a
|
| 3 |
+
size 159390174
|
code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_seg_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_iou,train_dice,train_accuracy,train_precision,train_recall,val_loss,val_iou,val_dice,val_accuracy,val_precision,val_recall
|
| 2 |
+
1,1.0063,39.77M,0.0260,0.0403,0.9454,0.1321,0.1915,1.0188,0.0000,0.0000,0.9629,0.0000,0.0000
|
| 3 |
+
2,0.9203,39.77M,0.1047,0.1423,0.9903,0.3363,0.4120,0.9835,0.0885,0.1341,0.9953,0.1389,0.2410
|
| 4 |
+
3,0.6990,39.77M,0.1537,0.2006,0.9956,0.6513,0.4590,1.0072,0.0000,0.0000,0.9979,0.5000,0.0000
|
| 5 |
+
4,0.5370,39.77M,0.1880,0.2384,0.9966,0.7331,0.4817,0.9484,0.0139,0.0227,0.9978,0.6851,0.0264
|
| 6 |
+
5,0.5064,39.77M,0.2269,0.2837,0.9968,0.6344,0.5377,1.0015,0.0000,0.0000,0.9978,0.5000,0.0000
|
| 7 |
+
6,0.4668,39.77M,0.2242,0.2780,0.9970,0.6938,0.5332,0.9892,0.0031,0.0060,0.9973,0.2654,0.0065
|
| 8 |
+
7,0.4505,39.77M,0.2515,0.3129,0.9970,0.6674,0.5770,0.9688,0.0080,0.0147,0.9971,0.3584,0.0176
|
| 9 |
+
8,0.4393,39.77M,0.2550,0.3177,0.9973,0.7251,0.5625,0.9255,0.0358,0.0543,0.9963,0.2972,0.0754
|
| 10 |
+
9,0.4543,39.77M,0.2480,0.3075,0.9971,0.6818,0.5534,0.9245,0.0162,0.0257,0.9977,0.4081,0.0270
|
| 11 |
+
10,0.3991,39.77M,0.2834,0.3476,0.9974,0.7204,0.6134,0.7978,0.1518,0.2141,0.9946,0.2714,0.4032
|
| 12 |
+
11,0.3529,39.77M,0.2922,0.3587,0.9977,0.7541,0.6357,0.8673,0.0522,0.0731,0.9969,0.4434,0.1025
|
| 13 |
+
12,0.4053,39.77M,0.2944,0.3618,0.9974,0.6962,0.5930,0.7722,0.1500,0.2122,0.9945,0.3511,0.4331
|
| 14 |
+
13,0.3512,39.77M,0.3010,0.3692,0.9977,0.7712,0.6251,0.8369,0.0523,0.0814,0.9980,0.7306,0.1158
|
| 15 |
+
14,0.3687,39.77M,0.3015,0.3733,0.9976,0.7257,0.6327,0.6542,0.1428,0.1951,0.9974,0.5018,0.4109
|
| 16 |
+
15,0.3719,39.77M,0.3091,0.3838,0.9972,0.7188,0.6510,0.7749,0.1001,0.1390,0.9964,0.3913,0.2999
|
| 17 |
+
16,0.3504,39.77M,0.3263,0.4016,0.9977,0.7412,0.6485,0.7917,0.0839,0.1128,0.9976,0.4541,0.1650
|
| 18 |
+
17,0.3245,39.77M,0.3465,0.4223,0.9978,0.7493,0.6769,0.6961,0.1103,0.1548,0.9978,0.5745,0.2655
|
| 19 |
+
18,0.3282,39.77M,0.3465,0.4246,0.9979,0.7669,0.6676,0.6370,0.1324,0.1845,0.9971,0.4566,0.4976
|
| 20 |
+
19,0.3426,39.77M,0.3233,0.3970,0.9977,0.7583,0.6714,0.6617,0.1482,0.2044,0.9971,0.4210,0.3996
|
| 21 |
+
20,0.3006,39.77M,0.3796,0.4607,0.9979,0.7563,0.7073,0.7973,0.0797,0.1149,0.9976,0.5464,0.1526
|
| 22 |
+
21,0.3151,39.77M,0.3585,0.4344,0.9978,0.7739,0.6749,0.6339,0.1339,0.1809,0.9980,0.6424,0.3078
|
| 23 |
+
22,0.3074,39.77M,0.3518,0.4269,0.9979,0.7825,0.6841,0.7132,0.1533,0.2201,0.9952,0.3123,0.5320
|
| 24 |
+
23,0.3091,39.77M,0.3516,0.4297,0.9979,0.7718,0.6879,0.7529,0.1196,0.1648,0.9936,0.3363,0.4369
|
| 25 |
+
24,0.2999,39.77M,0.3536,0.4302,0.9978,0.7737,0.6970,0.7280,0.1235,0.1743,0.9967,0.4304,0.3416
|
| 26 |
+
25,0.2816,39.77M,0.3742,0.4546,0.9980,0.8054,0.7002,0.6331,0.1355,0.1943,0.9979,0.6558,0.3797
|
| 27 |
+
26,0.2866,39.77M,0.3753,0.4528,0.9980,0.7748,0.7217,0.6960,0.1518,0.2144,0.9967,0.5142,0.4229
|
| 28 |
+
27,0.2805,39.77M,0.3911,0.4720,0.9982,0.7857,0.7129,0.6151,0.1350,0.1784,0.9982,0.7272,0.3081
|
| 29 |
+
28,0.2779,39.77M,0.3952,0.4767,0.9981,0.7969,0.7109,0.6651,0.1386,0.1861,0.9974,0.4863,0.3399
|
| 30 |
+
29,0.2549,39.77M,0.4047,0.4872,0.9982,0.7911,0.7503,0.6461,0.1321,0.1835,0.9981,0.6467,0.2890
|
| 31 |
+
30,0.2639,39.77M,0.4033,0.4842,0.9982,0.8018,0.7236,0.7351,0.1025,0.1391,0.9979,0.6148,0.2083
|
code/lake_detection_deep_learning/models/deeplabv3/1/deeplabv3_seg_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for segmentation,651234.4375
|
| 2 |
+
Average inference time (ms) for segmentation,22.4023681640625
|
code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_mae_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b67274116dd62c07498cdc2a16ff9b9adff8341e6ade0df565e4737cd0ed615f
|
| 3 |
+
size 159491294
|
code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_mae_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_l1,train_l2,val_loss,val_l1,val_l2
|
| 2 |
+
1,0.0724,39.79M,0.1860,0.0724,0.0376,0.1551,0.0372
|
| 3 |
+
2,0.0255,39.79M,0.1200,0.0255,0.0304,0.1341,0.0303
|
| 4 |
+
3,0.0235,39.79M,0.1141,0.0235,0.0283,0.1292,0.0282
|
| 5 |
+
4,0.0192,39.79M,0.1024,0.0192,0.0201,0.0989,0.0199
|
| 6 |
+
5,0.0170,39.79M,0.0964,0.0170,0.0169,0.0993,0.0168
|
| 7 |
+
6,0.0146,39.79M,0.0881,0.0146,0.0128,0.0817,0.0127
|
| 8 |
+
7,0.0137,39.79M,0.0863,0.0137,0.0129,0.0784,0.0128
|
| 9 |
+
8,0.0124,39.79M,0.0818,0.0124,0.0100,0.0695,0.0099
|
| 10 |
+
9,0.0112,39.79M,0.0769,0.0112,0.0119,0.0788,0.0119
|
| 11 |
+
10,0.0109,39.79M,0.0766,0.0109,0.0098,0.0703,0.0099
|
| 12 |
+
11,0.0099,39.79M,0.0719,0.0099,0.0092,0.0661,0.0091
|
| 13 |
+
12,0.0088,39.79M,0.0673,0.0088,0.0073,0.0605,0.0073
|
| 14 |
+
13,0.0093,39.79M,0.0697,0.0093,0.0086,0.0636,0.0085
|
| 15 |
+
14,0.0085,39.79M,0.0650,0.0085,0.0083,0.0629,0.0083
|
| 16 |
+
15,0.0088,39.79M,0.0667,0.0088,0.0079,0.0619,0.0079
|
| 17 |
+
16,0.0082,39.79M,0.0642,0.0082,0.0201,0.0800,0.0210
|
| 18 |
+
17,0.0089,39.79M,0.0673,0.0089,0.0066,0.0549,0.0066
|
| 19 |
+
18,0.0088,39.79M,0.0666,0.0088,0.0153,0.0930,0.0152
|
| 20 |
+
19,0.0093,39.79M,0.0688,0.0093,0.0089,0.0659,0.0089
|
| 21 |
+
20,0.0086,39.79M,0.0658,0.0086,0.0063,0.0540,0.0063
|
| 22 |
+
21,0.0080,39.79M,0.0633,0.0080,0.0065,0.0542,0.0065
|
| 23 |
+
22,0.0085,39.79M,0.0653,0.0085,0.0070,0.0559,0.0071
|
| 24 |
+
23,0.0077,39.79M,0.0611,0.0077,0.0072,0.0584,0.0073
|
| 25 |
+
24,0.0104,39.79M,0.0713,0.0104,0.2297,0.1817,0.2479
|
| 26 |
+
25,0.0121,39.79M,0.0791,0.0121,0.0104,0.0729,0.0105
|
| 27 |
+
26,0.0126,39.79M,0.0798,0.0126,1.3417,0.6292,1.3607
|
| 28 |
+
27,0.0096,39.79M,0.0697,0.0096,0.0088,0.0601,0.0083
|
| 29 |
+
28,0.0088,39.79M,0.0669,0.0088,0.0099,0.0680,0.0099
|
| 30 |
+
29,0.0092,39.79M,0.0674,0.0092,0.0107,0.0708,0.0105
|
| 31 |
+
30,0.0093,39.79M,0.0678,0.0093,0.0078,0.0589,0.0078
|
code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_mae_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for mae,905579.8125
|
| 2 |
+
Average inference time (ms) for mae,33.30994892120361
|
code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_seg_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:450a314b2a1abac7a88ae437f5a5018cdaa9e9f8b763013a62950e31f96c5ea1
|
| 3 |
+
size 159477982
|
code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_seg_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_iou,train_dice,train_accuracy,train_precision,train_recall,val_loss,val_iou,val_dice,val_accuracy,val_precision,val_recall
|
| 2 |
+
1,0.9988,39.79M,0.0144,0.0211,0.9862,0.4053,0.0611,1.0017,0.0000,0.0000,0.9955,0.2500,0.0000
|
| 3 |
+
2,0.8927,39.79M,0.1129,0.1530,0.9926,0.3495,0.4108,0.9980,0.0000,0.0000,0.9976,0.5000,0.0000
|
| 4 |
+
3,0.6802,39.79M,0.1609,0.2084,0.9963,0.6474,0.3971,0.9495,0.0193,0.0293,0.9970,0.2768,0.0316
|
| 5 |
+
4,0.6152,39.79M,0.1649,0.2110,0.9958,0.6462,0.3968,0.9470,0.0105,0.0172,0.9979,0.7500,0.0160
|
| 6 |
+
5,0.5476,39.79M,0.2049,0.2570,0.9966,0.6347,0.4700,0.9274,0.0249,0.0349,0.9974,0.5796,0.0401
|
| 7 |
+
6,0.4719,39.79M,0.2411,0.3008,0.9970,0.7160,0.5208,0.9247,0.0264,0.0363,0.9978,0.7293,0.0432
|
| 8 |
+
7,0.4587,39.79M,0.2302,0.2856,0.9975,0.7393,0.5159,0.9294,0.0294,0.0395,0.9980,0.7344,0.0484
|
| 9 |
+
8,0.4370,39.79M,0.2555,0.3165,0.9973,0.7110,0.5515,0.8592,0.0447,0.0537,0.9959,0.4057,0.0831
|
| 10 |
+
9,0.4424,39.79M,0.2469,0.3056,0.9971,0.7057,0.5485,1.0094,0.0000,0.0000,0.9975,0.7500,0.0000
|
| 11 |
+
10,0.4135,39.79M,0.2659,0.3312,0.9976,0.7654,0.5555,0.7491,0.0848,0.1155,0.9958,0.4579,0.2264
|
| 12 |
+
11,0.4003,39.79M,0.2586,0.3190,0.9974,0.7461,0.5705,0.8319,0.0830,0.1214,0.9948,0.2626,0.2416
|
| 13 |
+
12,0.3985,39.79M,0.2837,0.3459,0.9976,0.7606,0.5819,1.0163,0.0000,0.0000,0.9979,1.0000,0.0000
|
| 14 |
+
13,0.3863,39.79M,0.2851,0.3517,0.9976,0.7860,0.5943,1.0206,0.0000,0.0000,0.9979,1.0000,0.0000
|
| 15 |
+
14,0.3667,39.79M,0.2945,0.3616,0.9976,0.7585,0.6033,0.9298,0.0245,0.0349,0.9977,0.7361,0.0402
|
| 16 |
+
15,0.3710,39.79M,0.3210,0.3939,0.9978,0.7374,0.6116,0.7699,0.0691,0.1050,0.9976,0.6518,0.1659
|
| 17 |
+
16,0.3501,39.79M,0.3111,0.3815,0.9978,0.7670,0.6228,0.9048,0.0321,0.0536,0.9973,0.2696,0.0811
|
| 18 |
+
17,0.3515,39.79M,0.3094,0.3790,0.9977,0.7732,0.6205,0.8154,0.0542,0.0804,0.9981,0.8490,0.1032
|
| 19 |
+
18,0.3437,39.79M,0.3053,0.3791,0.9978,0.7710,0.6273,0.8022,0.0590,0.0859,0.9975,0.6761,0.1392
|
| 20 |
+
19,0.3335,39.79M,0.3295,0.4050,0.9978,0.7788,0.6477,0.8653,0.0767,0.1125,0.9919,0.2457,0.2024
|
| 21 |
+
20,0.3085,39.79M,0.3233,0.3937,0.9980,0.8171,0.6618,0.7271,0.0805,0.1174,0.9970,0.5838,0.2190
|
| 22 |
+
21,0.3060,39.79M,0.3527,0.4282,0.9981,0.7893,0.6769,0.8266,0.0517,0.0851,0.9979,0.6765,0.1170
|
| 23 |
+
22,0.3315,39.79M,0.3398,0.4144,0.9979,0.7888,0.6386,0.7950,0.0684,0.1045,0.9977,0.5980,0.1426
|
| 24 |
+
23,0.3047,39.79M,0.3444,0.4182,0.9979,0.8007,0.6643,1.0200,0.0000,0.0000,0.9979,1.0000,0.0000
|
| 25 |
+
24,0.3241,39.79M,0.3304,0.4038,0.9980,0.8007,0.6477,0.7929,0.0666,0.1017,0.9979,0.6882,0.1491
|
| 26 |
+
25,0.3401,39.79M,0.3353,0.4121,0.9979,0.7829,0.6399,0.8616,0.0383,0.0568,0.9979,0.7894,0.0768
|
| 27 |
+
26,0.3166,39.79M,0.3357,0.4097,0.9979,0.7924,0.6594,0.8611,0.0320,0.0551,0.9978,0.7716,0.0778
|
| 28 |
+
27,0.2941,39.79M,0.3750,0.4505,0.9981,0.7991,0.6823,0.8602,0.0399,0.0653,0.9979,0.7766,0.0882
|
| 29 |
+
28,0.3153,39.79M,0.3630,0.4395,0.9981,0.7815,0.6627,0.7844,0.0774,0.1170,0.9979,0.6894,0.1676
|
| 30 |
+
29,0.3103,39.79M,0.3668,0.4486,0.9980,0.7904,0.6661,0.9674,0.0068,0.0128,0.9979,0.9643,0.0157
|
| 31 |
+
30,0.2815,39.79M,0.3730,0.4536,0.9981,0.8077,0.7004,0.9163,0.0246,0.0393,0.9976,0.4252,0.0562
|
code/lake_detection_deep_learning/models/deeplabv3/2/deeplabv3_seg_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for segmentation,608280.9375
|
| 2 |
+
Average inference time (ms) for segmentation,19.61663703918457
|
code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_mae_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ae254c27fa9b93fc3f40932c5d4629e8bdeafe8fbbe5eaa478075cb60bfa996a
|
| 3 |
+
size 159532062
|
code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_mae_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_l1,train_l2,val_loss,val_l1,val_l2
|
| 2 |
+
1,0.0611,39.80M,0.1702,0.0611,0.0361,0.1502,0.0359
|
| 3 |
+
2,0.0241,39.80M,0.1152,0.0241,0.0258,0.1204,0.0259
|
| 4 |
+
3,0.0207,39.80M,0.1061,0.0207,0.0204,0.1069,0.0203
|
| 5 |
+
4,0.0187,39.80M,0.1000,0.0187,0.0168,0.0941,0.0168
|
| 6 |
+
5,0.0168,39.80M,0.0941,0.0168,0.0175,0.1003,0.0175
|
| 7 |
+
6,0.0164,39.80M,0.0925,0.0164,0.0134,0.0815,0.0134
|
| 8 |
+
7,0.0145,39.80M,0.0862,0.0145,0.0135,0.0823,0.0136
|
| 9 |
+
8,0.0136,39.80M,0.0832,0.0136,0.0120,0.0766,0.0121
|
| 10 |
+
9,0.0140,39.80M,0.0852,0.0140,0.0120,0.0767,0.0120
|
| 11 |
+
10,0.0128,39.80M,0.0809,0.0128,0.0116,0.0740,0.0116
|
| 12 |
+
11,0.0115,39.80M,0.0759,0.0115,0.0095,0.0659,0.0095
|
| 13 |
+
12,0.0107,39.80M,0.0731,0.0107,0.0094,0.0649,0.0093
|
| 14 |
+
13,0.0108,39.80M,0.0728,0.0108,0.0083,0.0606,0.0084
|
| 15 |
+
14,0.0101,39.80M,0.0701,0.0101,0.0082,0.0604,0.0082
|
| 16 |
+
15,0.0106,39.80M,0.0725,0.0106,0.0106,0.0673,0.0106
|
| 17 |
+
16,0.0102,39.80M,0.0704,0.0102,0.0095,0.0686,0.0095
|
| 18 |
+
17,0.0099,39.80M,0.0696,0.0099,0.0107,0.0718,0.0105
|
| 19 |
+
18,0.0103,39.80M,0.0715,0.0103,0.0096,0.0674,0.0096
|
| 20 |
+
19,0.0107,39.80M,0.0726,0.0107,0.0106,0.0732,0.0106
|
| 21 |
+
20,0.0103,39.80M,0.0708,0.0103,0.0132,0.0699,0.0132
|
| 22 |
+
21,0.0110,39.80M,0.0734,0.0110,0.0079,0.0577,0.0079
|
| 23 |
+
22,0.0104,39.80M,0.0713,0.0104,0.0092,0.0652,0.0091
|
| 24 |
+
23,0.0088,39.80M,0.0637,0.0088,0.0073,0.0567,0.0072
|
| 25 |
+
24,0.0097,39.80M,0.0677,0.0097,0.0074,0.0573,0.0074
|
| 26 |
+
25,0.0104,39.80M,0.0719,0.0104,0.0110,0.0727,0.0109
|
| 27 |
+
26,0.0115,39.80M,0.0753,0.0115,0.0385,0.1356,0.0384
|
| 28 |
+
27,0.0101,39.80M,0.0701,0.0101,0.0072,0.0561,0.0073
|
| 29 |
+
28,0.0095,39.80M,0.0671,0.0095,0.0108,0.0712,0.0108
|
| 30 |
+
29,0.0181,39.80M,0.0957,0.0181,0.0516,0.1527,0.0528
|
| 31 |
+
30,0.0166,39.80M,0.0928,0.0166,0.0473,0.1386,0.0473
|
code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_mae_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for mae,1220985.0
|
| 2 |
+
Average inference time (ms) for mae,29.702512550354005
|
code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_seg_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b2cf68a652d5b70e2bbf8e96a66e217cdf85dc652160c204e370285debb48705
|
| 3 |
+
size 159515614
|
code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_seg_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_iou,train_dice,train_accuracy,train_precision,train_recall,val_loss,val_iou,val_dice,val_accuracy,val_precision,val_recall
|
| 2 |
+
1,0.9960,39.80M,0.0156,0.0228,0.9861,0.5425,0.0832,0.9983,0.0000,0.0000,0.9978,0.7500,0.0000
|
| 3 |
+
2,0.8702,39.80M,0.1242,0.1645,0.9934,0.4416,0.4093,0.9204,0.0239,0.0395,0.9980,0.9350,0.0475
|
| 4 |
+
3,0.7131,39.80M,0.1397,0.1804,0.9954,0.5916,0.3686,0.9573,0.0257,0.0364,0.9977,0.4054,0.0433
|
| 5 |
+
4,0.7055,39.80M,0.1468,0.1919,0.9951,0.5052,0.3674,0.9093,0.0265,0.0421,0.9979,0.7670,0.0714
|
| 6 |
+
5,0.5985,39.80M,0.1729,0.2205,0.9959,0.5852,0.4380,0.8903,0.0505,0.0731,0.9977,0.3775,0.0943
|
| 7 |
+
6,0.5634,39.80M,0.1913,0.2418,0.9964,0.6228,0.4478,0.9249,0.0237,0.0343,0.9980,0.9657,0.0405
|
| 8 |
+
7,0.5515,39.80M,0.1954,0.2487,0.9959,0.5763,0.4905,0.8925,0.0415,0.0557,0.9979,0.8213,0.0754
|
| 9 |
+
8,0.4976,39.80M,0.2115,0.2679,0.9969,0.6967,0.4901,0.9243,0.0277,0.0384,0.9979,0.7279,0.0472
|
| 10 |
+
9,0.4771,39.80M,0.2152,0.2714,0.9968,0.6886,0.5303,0.9141,0.0277,0.0388,0.9980,0.9744,0.0484
|
| 11 |
+
10,0.5218,39.80M,0.2089,0.2652,0.9960,0.6408,0.5225,0.7848,0.0685,0.0794,0.9981,0.9055,0.1472
|
| 12 |
+
11,0.4836,39.80M,0.2216,0.2755,0.9968,0.7058,0.5121,0.8864,0.0364,0.0479,0.9980,0.7136,0.0642
|
| 13 |
+
12,0.4562,39.80M,0.2446,0.3030,0.9971,0.7062,0.5321,0.9178,0.0280,0.0386,0.9980,0.9672,0.0482
|
| 14 |
+
13,0.4608,39.80M,0.2372,0.2962,0.9970,0.6558,0.5454,0.9328,0.0245,0.0352,0.9979,0.8924,0.0414
|
| 15 |
+
14,0.4301,39.80M,0.2576,0.3170,0.9975,0.7541,0.5563,0.9602,0.0178,0.0277,0.9979,0.7500,0.0297
|
| 16 |
+
15,0.4440,39.80M,0.2546,0.3177,0.9974,0.7431,0.5521,0.8657,0.0472,0.0641,0.9979,0.5913,0.0965
|
| 17 |
+
16,0.4443,39.80M,0.2608,0.3239,0.9969,0.7090,0.5607,0.9726,0.0149,0.0241,0.9979,0.7500,0.0250
|
| 18 |
+
17,0.4410,39.80M,0.2538,0.3162,0.9973,0.7002,0.5466,0.8190,0.0624,0.0852,0.9980,0.6327,0.1178
|
| 19 |
+
18,0.4125,39.80M,0.2606,0.3251,0.9973,0.7134,0.5771,0.9635,0.0143,0.0236,0.9979,0.9712,0.0252
|
| 20 |
+
19,0.4123,39.80M,0.2830,0.3515,0.9972,0.7190,0.5816,0.9253,0.0260,0.0367,0.9980,0.7222,0.0444
|
| 21 |
+
20,0.4558,39.80M,0.2360,0.2943,0.9972,0.7874,0.5261,0.9354,0.0197,0.0299,0.9980,0.9849,0.0329
|
| 22 |
+
21,0.4378,39.80M,0.2494,0.3114,0.9974,0.7483,0.5553,0.9165,0.0268,0.0375,0.9980,0.9570,0.0463
|
| 23 |
+
22,0.4532,39.80M,0.2737,0.3372,0.9972,0.7422,0.5375,0.7518,0.0765,0.1089,0.9980,0.5854,0.1697
|
| 24 |
+
23,0.4491,39.80M,0.2589,0.3227,0.9973,0.7704,0.5401,0.9077,0.0346,0.0445,0.9980,0.7097,0.0589
|
| 25 |
+
24,0.4041,39.80M,0.2758,0.3417,0.9974,0.7429,0.5805,0.9280,0.0258,0.0365,0.9980,0.4801,0.0437
|
| 26 |
+
25,0.3902,39.80M,0.2788,0.3450,0.9974,0.7629,0.6011,0.8316,0.0560,0.0761,0.9980,0.5424,0.1066
|
| 27 |
+
26,0.4013,39.80M,0.2786,0.3460,0.9972,0.7334,0.5943,0.9575,0.0130,0.0218,0.9979,0.8537,0.0229
|
| 28 |
+
27,0.4105,39.80M,0.2886,0.3563,0.9975,0.7569,0.5662,0.9161,0.0221,0.0376,0.9978,0.8119,0.0539
|
| 29 |
+
28,0.3732,39.80M,0.3019,0.3687,0.9977,0.7810,0.6019,0.8453,0.0493,0.0720,0.9980,0.8526,0.0918
|
| 30 |
+
29,0.3369,39.80M,0.3237,0.3927,0.9978,0.7733,0.6428,0.9425,0.0228,0.0335,0.9980,0.9698,0.0389
|
| 31 |
+
30,0.4108,39.80M,0.2932,0.3622,0.9974,0.7254,0.5854,0.8532,0.0465,0.0671,0.9980,0.8037,0.0850
|
code/lake_detection_deep_learning/models/deeplabv3/3/deeplabv3_seg_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for segmentation,842600.1875
|
| 2 |
+
Average inference time (ms) for segmentation,29.07062087059021
|
code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_mae_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8757690bc4ff4fb60ee4a3e4aef7669639a7cdef10c886b88665b964191882c7
|
| 3 |
+
size 138972564
|
code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_mae_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_l1,train_l2,val_loss,val_l1,val_l2
|
| 2 |
+
1,0.0337,34.71M,0.1286,0.0337,0.0432,0.1673,0.0429
|
| 3 |
+
2,0.0124,34.71M,0.0779,0.0124,0.0264,0.1197,0.0262
|
| 4 |
+
3,0.0100,34.71M,0.0690,0.0100,0.0166,0.0996,0.0165
|
| 5 |
+
4,0.0069,34.71M,0.0570,0.0069,0.0231,0.1231,0.0233
|
| 6 |
+
5,0.0080,34.71M,0.0614,0.0080,0.0059,0.0532,0.0059
|
| 7 |
+
6,0.0067,34.71M,0.0563,0.0067,0.0052,0.0507,0.0052
|
| 8 |
+
7,0.0062,34.71M,0.0526,0.0062,0.0057,0.0517,0.0056
|
| 9 |
+
8,0.0056,34.71M,0.0509,0.0056,0.0196,0.1117,0.0195
|
| 10 |
+
9,0.0055,34.71M,0.0499,0.0055,0.0042,0.0413,0.0041
|
| 11 |
+
10,0.0054,34.71M,0.0496,0.0054,0.0046,0.0473,0.0046
|
| 12 |
+
11,0.0060,34.71M,0.0517,0.0060,0.0087,0.0689,0.0087
|
| 13 |
+
12,0.0051,34.71M,0.0478,0.0051,0.0049,0.0477,0.0049
|
| 14 |
+
13,0.0048,34.71M,0.0457,0.0048,0.0044,0.0430,0.0044
|
| 15 |
+
14,0.0057,34.71M,0.0518,0.0057,0.0061,0.0587,0.0061
|
| 16 |
+
15,0.0055,34.71M,0.0484,0.0055,0.0041,0.0392,0.0041
|
| 17 |
+
16,0.0043,34.71M,0.0422,0.0043,0.0052,0.0493,0.0052
|
| 18 |
+
17,0.0043,34.71M,0.0429,0.0043,0.0054,0.0538,0.0054
|
| 19 |
+
18,0.0037,34.71M,0.0394,0.0037,0.0046,0.0463,0.0047
|
| 20 |
+
19,0.0043,34.71M,0.0435,0.0043,0.0040,0.0415,0.0041
|
| 21 |
+
20,0.0036,34.71M,0.0387,0.0036,0.0041,0.0418,0.0041
|
| 22 |
+
21,0.0041,34.71M,0.0413,0.0041,0.0042,0.0435,0.0041
|
| 23 |
+
22,0.0036,34.71M,0.0380,0.0036,0.0033,0.0353,0.0034
|
| 24 |
+
23,0.0044,34.71M,0.0437,0.0044,0.0060,0.0558,0.0060
|
| 25 |
+
24,0.0040,34.71M,0.0402,0.0040,0.0075,0.0628,0.0075
|
| 26 |
+
25,0.0040,34.71M,0.0413,0.0040,0.0036,0.0388,0.0036
|
| 27 |
+
26,0.0036,34.71M,0.0382,0.0036,0.0039,0.0410,0.0039
|
| 28 |
+
27,0.0036,34.71M,0.0382,0.0036,0.0051,0.0458,0.0051
|
| 29 |
+
28,0.0035,34.71M,0.0371,0.0035,0.0052,0.0516,0.0053
|
| 30 |
+
29,0.0036,34.71M,0.0375,0.0036,0.0038,0.0387,0.0038
|
| 31 |
+
30,0.0038,34.71M,0.0392,0.0038,0.0036,0.0387,0.0036
|
code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_mae_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for mae,706715.5
|
| 2 |
+
Average inference time (ms) for mae,36.11877384185791
|
code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_seg_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8ad11e32597ffd25d4a4606f0be32fa2467e25d2de7b72f7d5cf566c6970f1de
|
| 3 |
+
size 138971412
|
code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_seg_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_iou,train_dice,train_accuracy,train_precision,train_recall,val_loss,val_iou,val_dice,val_accuracy,val_precision,val_recall
|
| 2 |
+
1,0.7977,34.71M,0.0388,0.0503,0.9912,0.9399,0.0970,0.8748,0.0690,0.1025,0.9855,0.1543,0.3553
|
| 3 |
+
2,0.4804,34.71M,0.2748,0.3439,0.9962,0.6589,0.5731,0.9936,0.0048,0.0082,0.9979,1.0000,0.0199
|
| 4 |
+
3,0.4908,34.71M,0.2946,0.3724,0.9958,0.6638,0.5803,0.8002,0.1813,0.2550,0.9954,0.2984,0.2210
|
| 5 |
+
4,0.3003,34.71M,0.4040,0.4927,0.9976,0.7477,0.7258,0.8561,0.0506,0.0613,0.9981,0.4318,0.1006
|
| 6 |
+
5,0.2543,34.71M,0.4474,0.5393,0.9981,0.7899,0.7528,0.6352,0.1301,0.1813,0.9970,0.4209,0.3759
|
| 7 |
+
6,0.2499,34.71M,0.4637,0.5528,0.9982,0.7959,0.7542,0.5971,0.3267,0.4329,0.9972,0.4390,0.4460
|
| 8 |
+
7,0.2423,34.71M,0.4871,0.5820,0.9982,0.7950,0.7773,0.7558,0.2890,0.3410,0.9982,0.7777,0.1625
|
| 9 |
+
8,0.2382,34.71M,0.4833,0.5744,0.9982,0.8005,0.7730,0.7004,0.2906,0.3827,0.9965,0.3614,0.3618
|
| 10 |
+
9,0.2464,34.71M,0.4865,0.5846,0.9982,0.7933,0.7712,0.6559,0.2463,0.3436,0.9976,0.4550,0.3128
|
| 11 |
+
10,0.2235,34.71M,0.5053,0.5993,0.9985,0.8174,0.7802,0.6264,0.3484,0.4444,0.9980,0.5948,0.2868
|
| 12 |
+
11,0.2127,34.71M,0.5234,0.6190,0.9985,0.8117,0.7998,0.6614,0.3162,0.3954,0.9982,0.7455,0.2295
|
| 13 |
+
12,0.2195,34.71M,0.5201,0.6146,0.9984,0.8302,0.7828,0.5949,0.3494,0.4406,0.9983,0.8259,0.2792
|
| 14 |
+
13,0.1998,34.71M,0.5308,0.6265,0.9985,0.8403,0.8007,0.6355,0.2887,0.3948,0.9972,0.3935,0.4306
|
| 15 |
+
14,0.2263,34.71M,0.5287,0.6224,0.9984,0.8360,0.7726,0.5344,0.3568,0.4705,0.9983,0.6630,0.3811
|
| 16 |
+
15,0.2213,34.71M,0.5382,0.6365,0.9985,0.8105,0.7952,0.6622,0.2781,0.3847,0.9977,0.4810,0.2951
|
| 17 |
+
16,0.2021,34.71M,0.5594,0.6601,0.9986,0.8272,0.8079,0.6662,0.2679,0.3653,0.9981,0.6536,0.2377
|
| 18 |
+
17,0.1839,34.71M,0.5645,0.6597,0.9987,0.8501,0.8157,0.5235,0.3585,0.4797,0.9979,0.5308,0.5250
|
| 19 |
+
18,0.1784,34.71M,0.5790,0.6759,0.9987,0.8478,0.8276,0.6857,0.3232,0.4025,0.9983,0.8185,0.2047
|
| 20 |
+
19,0.1847,34.71M,0.5792,0.6792,0.9987,0.8447,0.8226,0.7354,0.3476,0.4174,0.9982,0.7807,0.1763
|
| 21 |
+
20,0.1742,34.71M,0.5825,0.6775,0.9988,0.8645,0.8196,0.6785,0.3682,0.4522,0.9982,0.7181,0.2177
|
| 22 |
+
21,0.1631,34.71M,0.6035,0.7011,0.9988,0.8730,0.8280,0.4992,0.4253,0.5378,0.9983,0.6752,0.4367
|
| 23 |
+
22,0.2005,34.71M,0.5649,0.6613,0.9985,0.8332,0.8153,0.7134,0.3444,0.4104,0.9982,0.7613,0.1913
|
| 24 |
+
23,0.1694,34.71M,0.5868,0.6816,0.9988,0.8638,0.8262,0.4678,0.4245,0.5444,0.9983,0.6637,0.4907
|
| 25 |
+
24,0.1693,34.71M,0.6023,0.7011,0.9988,0.8499,0.8401,0.5900,0.3891,0.4930,0.9981,0.6332,0.3291
|
| 26 |
+
25,0.1734,34.71M,0.5776,0.6732,0.9988,0.8639,0.8198,0.5347,0.3886,0.5045,0.9983,0.6748,0.4008
|
| 27 |
+
26,0.1641,34.71M,0.6076,0.7060,0.9989,0.8634,0.8370,0.6811,0.2790,0.3811,0.9955,0.3142,0.5866
|
| 28 |
+
27,0.1651,34.71M,0.6066,0.7061,0.9988,0.8589,0.8410,0.4933,0.4218,0.5355,0.9982,0.6333,0.4557
|
| 29 |
+
28,0.1416,34.71M,0.6351,0.7359,0.9989,0.8872,0.8516,0.6360,0.3822,0.4756,0.9982,0.7187,0.2536
|
| 30 |
+
29,0.1528,34.71M,0.6283,0.7282,0.9989,0.8656,0.8529,0.5769,0.3925,0.5088,0.9974,0.4803,0.5375
|
| 31 |
+
30,0.1858,34.71M,0.5985,0.6995,0.9988,0.8508,0.8138,0.7314,0.3048,0.3743,0.9982,0.7989,0.1778
|
code/lake_detection_deep_learning/models/swinv2_cnn/0/swinv2_cnn_seg_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for segmentation,451821.25
|
| 2 |
+
Average inference time (ms) for segmentation,15.717907428741455
|
code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_mae_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e5fee52dead64195bb6ed141bda6fbd164bb32fb417209a0958a205f7f37be46
|
| 3 |
+
size 138992148
|
code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_mae_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_l1,train_l2,val_loss,val_l1,val_l2
|
| 2 |
+
1,0.0348,34.72M,0.1346,0.0348,0.0240,0.1198,0.0239
|
| 3 |
+
2,0.0205,34.72M,0.1011,0.0205,0.0223,0.1092,0.0222
|
| 4 |
+
3,0.0168,34.72M,0.0922,0.0168,0.0172,0.0944,0.0172
|
| 5 |
+
4,0.0127,34.72M,0.0780,0.0127,0.0151,0.0888,0.0151
|
| 6 |
+
5,0.0115,34.72M,0.0727,0.0115,0.0095,0.0634,0.0096
|
| 7 |
+
6,0.0104,34.72M,0.0682,0.0104,0.0120,0.0783,0.0119
|
| 8 |
+
7,0.0104,34.72M,0.0678,0.0104,0.0082,0.0575,0.0083
|
| 9 |
+
8,0.0096,34.72M,0.0643,0.0096,0.0078,0.0532,0.0078
|
| 10 |
+
9,0.0094,34.72M,0.0627,0.0094,0.0087,0.0579,0.0086
|
| 11 |
+
10,0.0102,34.72M,0.0665,0.0102,0.0110,0.0760,0.0110
|
| 12 |
+
11,0.0096,34.72M,0.0637,0.0096,0.0076,0.0544,0.0076
|
| 13 |
+
12,0.0090,34.72M,0.0602,0.0090,0.0086,0.0616,0.0086
|
| 14 |
+
13,0.0086,34.72M,0.0589,0.0086,0.0072,0.0502,0.0071
|
| 15 |
+
14,0.0086,34.72M,0.0572,0.0086,0.0086,0.0574,0.0086
|
| 16 |
+
15,0.0086,34.72M,0.0585,0.0086,0.0079,0.0545,0.0078
|
| 17 |
+
16,0.0084,34.72M,0.0570,0.0084,0.0073,0.0523,0.0074
|
| 18 |
+
17,0.0089,34.72M,0.0598,0.0089,0.0073,0.0516,0.0073
|
| 19 |
+
18,0.0087,34.72M,0.0592,0.0087,0.0101,0.0675,0.0101
|
| 20 |
+
19,0.0092,34.72M,0.0623,0.0092,0.0074,0.0516,0.0074
|
| 21 |
+
20,0.0081,34.72M,0.0558,0.0081,0.0070,0.0510,0.0070
|
| 22 |
+
21,0.0081,34.72M,0.0548,0.0081,0.0075,0.0531,0.0075
|
| 23 |
+
22,0.0085,34.72M,0.0580,0.0085,0.0074,0.0528,0.0073
|
| 24 |
+
23,0.0079,34.72M,0.0543,0.0079,0.0069,0.0489,0.0068
|
| 25 |
+
24,0.0077,34.72M,0.0531,0.0077,0.0089,0.0645,0.0088
|
| 26 |
+
25,0.0080,34.72M,0.0549,0.0080,0.0072,0.0497,0.0071
|
| 27 |
+
26,0.0087,34.72M,0.0592,0.0087,0.0069,0.0480,0.0069
|
| 28 |
+
27,0.0081,34.72M,0.0564,0.0081,0.0080,0.0562,0.0080
|
| 29 |
+
28,0.0083,34.72M,0.0567,0.0083,0.0098,0.0663,0.0098
|
| 30 |
+
29,0.0081,34.72M,0.0560,0.0081,0.0079,0.0545,0.0079
|
| 31 |
+
30,0.0079,34.72M,0.0542,0.0079,0.0108,0.0713,0.0109
|
code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_mae_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for mae,1030281.8125
|
| 2 |
+
Average inference time (ms) for mae,18.525068855285646
|
code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_seg_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0316be0dfab8e4fdd7ea8731e2e20463470be9a10ce38cef210fd98b5158e838
|
| 3 |
+
size 138989844
|
code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_seg_models/training_log.csv
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
epoch,loss,model_size,train_iou,train_dice,train_accuracy,train_precision,train_recall,val_loss,val_iou,val_dice,val_accuracy,val_precision,val_recall
|
| 2 |
+
1,0.7346,34.72M,0.1019,0.1300,0.9791,0.7932,0.2574,0.8963,0.0430,0.0546,0.9817,0.2620,0.1128
|
| 3 |
+
2,0.5258,34.72M,0.2011,0.2485,0.9958,0.6805,0.4981,0.8979,0.0433,0.0511,0.9980,0.9189,0.0835
|
| 4 |
+
3,0.4109,34.72M,0.2987,0.3678,0.9969,0.6834,0.6032,0.8292,0.0678,0.0914,0.9933,0.2271,0.2050
|
| 5 |
+
4,0.3192,34.72M,0.3489,0.4210,0.9978,0.7697,0.6702,0.8356,0.1229,0.1678,0.9908,0.1935,0.2858
|
| 6 |
+
5,0.3235,34.72M,0.3862,0.4691,0.9976,0.7455,0.7034,0.7201,0.1273,0.1821,0.9940,0.2660,0.5306
|
| 7 |
+
6,0.3081,34.72M,0.3981,0.4799,0.9977,0.7618,0.7107,0.6300,0.1461,0.2030,0.9980,0.5524,0.3123
|
| 8 |
+
7,0.2369,34.72M,0.4553,0.5395,0.9984,0.7998,0.7633,0.6797,0.1465,0.2085,0.9976,0.4576,0.2990
|
| 9 |
+
8,0.2253,34.72M,0.4847,0.5754,0.9984,0.8142,0.7835,0.7521,0.1196,0.1732,0.9979,0.5066,0.1860
|
| 10 |
+
9,0.2418,34.72M,0.4768,0.5667,0.9983,0.8130,0.7540,0.5446,0.2401,0.3450,0.9979,0.5324,0.4488
|
| 11 |
+
10,0.2073,34.72M,0.5054,0.5959,0.9986,0.8206,0.7981,0.7906,0.1902,0.2610,0.9982,0.7815,0.1427
|
| 12 |
+
11,0.2192,34.72M,0.5159,0.6110,0.9985,0.8351,0.7769,0.5831,0.3551,0.4594,0.9979,0.5278,0.3726
|
| 13 |
+
12,0.2110,34.72M,0.5210,0.6148,0.9986,0.8218,0.7901,0.4925,0.3928,0.5137,0.9978,0.5131,0.5912
|
| 14 |
+
13,0.1850,34.72M,0.5472,0.6387,0.9987,0.8436,0.8128,0.5882,0.2749,0.3815,0.9966,0.3599,0.6566
|
| 15 |
+
14,0.2292,34.72M,0.5148,0.6077,0.9985,0.8285,0.7736,0.5343,0.4205,0.5182,0.9981,0.5850,0.4270
|
| 16 |
+
15,0.2002,34.72M,0.5301,0.6253,0.9986,0.8297,0.8097,0.6965,0.3452,0.4156,0.9982,0.7227,0.2087
|
| 17 |
+
16,0.1882,34.72M,0.5505,0.6436,0.9987,0.8476,0.8115,0.4950,0.4034,0.5195,0.9982,0.6190,0.4808
|
| 18 |
+
17,0.1898,34.72M,0.5490,0.6423,0.9987,0.8495,0.8064,0.6550,0.3529,0.4368,0.9982,0.7202,0.2389
|
| 19 |
+
18,0.1710,34.72M,0.5688,0.6619,0.9988,0.8553,0.8315,0.4936,0.3973,0.5113,0.9977,0.4929,0.6273
|
| 20 |
+
19,0.1778,34.72M,0.5613,0.6544,0.9988,0.8517,0.8183,0.4662,0.4062,0.5233,0.9979,0.5532,0.6184
|
| 21 |
+
20,0.1930,34.72M,0.5585,0.6540,0.9987,0.8473,0.8096,0.4927,0.3945,0.5098,0.9975,0.4681,0.6660
|
| 22 |
+
21,0.2003,34.72M,0.5466,0.6387,0.9986,0.8500,0.7973,0.5629,0.3934,0.4807,0.9982,0.6636,0.3462
|
| 23 |
+
22,0.2096,34.72M,0.5366,0.6311,0.9985,0.8318,0.7965,0.6191,0.3579,0.4491,0.9979,0.5059,0.3327
|
| 24 |
+
23,0.1810,34.72M,0.5480,0.6358,0.9987,0.8531,0.8224,0.6630,0.3490,0.4312,0.9982,0.7022,0.2318
|
| 25 |
+
24,0.1664,34.72M,0.5875,0.6817,0.9988,0.8622,0.8329,0.4919,0.4149,0.5312,0.9983,0.6505,0.4507
|
| 26 |
+
25,0.1605,34.72M,0.5972,0.6937,0.9989,0.8668,0.8363,0.5276,0.3525,0.4768,0.9979,0.5312,0.4816
|
| 27 |
+
26,0.1637,34.72M,0.5929,0.6887,0.9988,0.8618,0.8353,0.5349,0.4210,0.5219,0.9984,0.7830,0.3434
|
| 28 |
+
27,0.1685,34.72M,0.6078,0.7053,0.9988,0.8554,0.8369,0.4637,0.4565,0.5646,0.9985,0.7369,0.4435
|
| 29 |
+
28,0.2357,34.72M,0.5321,0.6279,0.9985,0.8336,0.7622,0.4372,0.4531,0.5741,0.9983,0.6492,0.5590
|
| 30 |
+
29,0.1916,34.72M,0.5440,0.6393,0.9986,0.8438,0.8068,0.6431,0.3406,0.4372,0.9981,0.6134,0.2614
|
| 31 |
+
30,0.2263,34.72M,0.5323,0.6234,0.9985,0.8407,0.7784,0.7031,0.3215,0.3930,0.9983,0.7930,0.2002
|
code/lake_detection_deep_learning/models/swinv2_cnn/1/swinv2_cnn_seg_models/training_time_log.csv
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Total training time (ms) for segmentation,708791.0
|
| 2 |
+
Average inference time (ms) for segmentation,21.718547439575197
|
code/lake_detection_deep_learning/models/swinv2_cnn/2/swinv2_cnn_mae_models/epoch_best.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ecf2370fedb135027bbbb1f0a0f4809530cca4ed6a1c1ab453baf92cf470a710
|
| 3 |
+
size 139037844
|