Тёмный

Flood Mapping Google Earth Engine Using Sentinel SAR Satellite Imagery 

CreateByte
Подписаться 235
Просмотров 12 тыс.
50% 1

In this video, we explore the powerful capabilities of Google Earth Engine and Sentinel SAR dataset for flood mapping and assessment. Using remote sensing data and advanced techniques, we demonstrate how to quickly and accurately identify flooded areas, estimate flood extent and analyze flood dynamics over time.
We begin by introducing the basics of Sentinel SAR data and Google Earth Engine, and then move on to applying these tools for flood mapping and assessment. We showcase several examples of how these techniques have been used in real-world scenarios, such as during natural disasters and for environmental monitoring.
Our step-by-step guide will help you to gain a deeper understanding of how to use Google Earth Engine and Sentinel SAR data to analyze and visualize flood patterns. We also discuss the importance of accurate flood mapping and how it can help to mitigate the impact of floods on local communities.
Whether you are a researcher, student or someone interested in learning more about flood mapping and assessment, this video is a must-watch. Join us on this journey as we uncover the potential of Google Earth Engine and Sentinel SAR data for flood analysis.
-check comments for the Function code and links for feature boundary!!

Опубликовано:

 

8 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 37   
@createbyte
@createbyte Год назад
-Get Feature Boundary from: data.humdata.org/dataset/pakistan-union-council-boundaries-along-with-other-admin-boundaries-dataset -Functions code: //declared function to convert the images types and perform the functions // Function to convert from d function toNatural(img) { return ee.Image(10.0).pow(img.select(0).divide(10.0)); } //Function to convert to dB function toDB(img) { return ee.Image(img).log10().multiply(10.0); } //Apllying a Refined Lee Speckle filter as coded in the SNAP 3.0 S1TBX: //github.com/senbox-org/s1tbx/blob/master/s1tbx-op-sar-processing/src/main/java/org/esa/s1tbx/sar/gpf/filtering/SpeckleFilters/RefinedLee.java //Adapted by Guido Lemoine // by Guido Lemoine function RefinedLee(img) { // img must be in natural units, i.e. not in dB! // Set up 3x3 kernels var weights3 = ee.List.repeat(ee.List.repeat(1,3),3); var kernel3 = ee.Kernel.fixed(3,3, weights3, 1, 1, false); var mean3 = img.reduceNeighborhood(ee.Reducer.mean(), kernel3); var variance3 = img.reduceNeighborhood(ee.Reducer.variance(), kernel3); // Use a sample of the 3x3 windows inside a 7x7 windows to determine gradients and directions var sample_weights = ee.List([[0,0,0,0,0,0,0], [0,1,0,1,0,1,0],[0,0,0,0,0,0,0], [0,1,0,1,0,1,0], [0,0,0,0,0,0,0], [0,1,0,1,0,1,0],[0,0,0,0,0,0,0]]); var sample_kernel = ee.Kernel.fixed(7,7, sample_weights, 3,3, false); // Calculate mean and variance for the sampled windows and store as 9 bands var sample_mean = mean3.neighborhoodToBands(sample_kernel); var sample_var = variance3.neighborhoodToBands(sample_kernel); // Determine the 4 gradients for the sampled windows var gradients = sample_mean.select(1).subtract(sample_mean.select(7)).abs(); gradients = gradients.addBands(sample_mean.select(6).subtract(sample_mean.select(2)).abs()); gradients = gradients.addBands(sample_mean.select(3).subtract(sample_mean.select(5)).abs()); gradients = gradients.addBands(sample_mean.select(0).subtract(sample_mean.select(8)).abs()); // And find the maximum gradient amongst gradient bands var max_gradient = gradients.reduce(ee.Reducer.max()); // Create a mask for band pixels that are the maximum gradient var gradmask = gradients.eq(max_gradient); // duplicate gradmask bands: each gradient represents 2 directions gradmask = gradmask.addBands(gradmask); // Determine the 8 directions var directions = sample_mean.select(1).subtract(sample_mean.select(4)).gt(sample_mean.select(4).subtract(sample_mean.select(7))).multiply(1); directions = directions.addBands(sample_mean.select(6).subtract(sample_mean.select(4)).gt(sample_mean.select(4).subtract(sample_mean.select(2))).multiply(2)); directions = directions.addBands(sample_mean.select(3).subtract(sample_mean.select(4)).gt(sample_mean.select(4).subtract(sample_mean.select(5))).multiply(3)); directions = directions.addBands(sample_mean.select(0).subtract(sample_mean.select(4)).gt(sample_mean.select(4).subtract(sample_mean.select(8))).multiply(4)); // The next 4 are the not() of the previous 4 directions = directions.addBands(directions.select(0).not().multiply(5)); directions = directions.addBands(directions.select(1).not().multiply(6)); directions = directions.addBands(directions.select(2).not().multiply(7)); directions = directions.addBands(directions.select(3).not().multiply(8)); // Mask all values that are not 1-8 directions = directions.updateMask(gradmask); // "collapse" the stack into a singe band image (due to masking, each pixel has just one value (1-8) in it's directional band, and is otherwise masked) directions = directions.reduce(ee.Reducer.sum()); //var pal = ['ffffff','ff0000','ffff00', '00ff00', '00ffff', '0000ff', 'ff00ff', '000000']; //Map.addLayer(directions.reduce(ee.Reducer.sum()), {min:1, max:8, palette: pal}, 'Directions', false); var sample_stats = sample_var.divide(sample_mean.multiply(sample_mean)); // Calculate localNoiseVariance var sigmaV = sample_stats.toArray().arraySort().arraySlice(0,0,5).arrayReduce(ee.Reducer.mean(), [0]); // Set up the 7*7 kernels for directional statistics var rect_weights = ee.List.repeat(ee.List.repeat(0,7),3).cat(ee.List.repeat(ee.List.repeat(1,7),4)); var diag_weights = ee.List([[1,0,0,0,0,0,0], [1,1,0,0,0,0,0], [1,1,1,0,0,0,0], [1,1,1,1,0,0,0], [1,1,1,1,1,0,0], [1,1,1,1,1,1,0], [1,1,1,1,1,1,1]]); var rect_kernel = ee.Kernel.fixed(7,7, rect_weights, 3, 3, false); var diag_kernel = ee.Kernel.fixed(7,7, diag_weights, 3, 3, false); // Create stacks for mean and variance using the original kernels. Mask with relevant direction. var dir_mean = img.reduceNeighborhood(ee.Reducer.mean(), rect_kernel).updateMask(directions.eq(1)); var dir_var = img.reduceNeighborhood(ee.Reducer.variance(), rect_kernel).updateMask(directions.eq(1)); dir_mean = dir_mean.addBands(img.reduceNeighborhood(ee.Reducer.mean(), diag_kernel).updateMask(directions.eq(2))); dir_var = dir_var.addBands(img.reduceNeighborhood(ee.Reducer.variance(), diag_kernel).updateMask(directions.eq(2))); // and add the bands for rotated kernels for (var i=1; i
@geykum_shakeshigh
@geykum_shakeshigh Месяц назад
Thank you for the video and the code sir, I appreciate it
@PlannerSajad
@PlannerSajad 7 месяцев назад
Wonderful Sir, this video helped me a lot for my class report on "Impact of Flood and their mitigation strategies in Sindh " thank you Sir for your guidelines..... i really appreciate it....
@createbyte
@createbyte 6 месяцев назад
All the best
@mirwado1384
@mirwado1384 6 месяцев назад
​@@createbytesir i have to do research on the topic (pre and post flood water quality analysis in sindh ) so plz sir can u guide me
@simbarashethondhlana8327
@simbarashethondhlana8327 Год назад
Well presented. Thank you so much.
@jovin.thazhal
@jovin.thazhal 6 дней назад
mine showing zero size and boundary is not adding in the layer what can i do
@geykum_shakeshigh
@geykum_shakeshigh Месяц назад
Can I ask a question here mate, am sure you'all have encountered an issue where you have to clip a DEM file for a small area it shows pixels, just pixels, can this be Improved like using GEE to have the exact scale for proper representation of the map?
@dhiazahira6846
@dhiazahira6846 8 месяцев назад
Hello sir, thanks for the video. I wanna ask you how to determine the min max value?
@elsysielatchom
@elsysielatchom Год назад
Good morning Sir thanks for this kind explanation. Please can you share script with us?
@createbyte
@createbyte Год назад
Will upload soon
@dhiazahira6846
@dhiazahira6846 8 месяцев назад
Sir, what the name of methodh that you use, change detection or something else?
@siyadabdirahmansiyad379
@siyadabdirahmansiyad379 Год назад
thanks for your kind sharing bro, How can get other countries feature boundaries?
@createbyte
@createbyte 11 месяцев назад
Yes . Just search for your country boundary shape files
@facts_tv6343
@facts_tv6343 7 месяцев назад
Which code can we use to output the final map result. please can you reply below. Thank you
@createbyte
@createbyte 6 месяцев назад
map.layer and then include the layer you want add
@mindbenders3035
@mindbenders3035 2 месяца назад
i'm getting same value of in inspector of good and flood filter its all same as you
@birhanukifle517
@birhanukifle517 Год назад
It is Nice
@GISHacks
@GISHacks 5 месяцев назад
Thank you so much. Would you please share the code?
@jyotiprakashhati4058
@jyotiprakashhati4058 Год назад
The code says toDB is not defined.
@createbyte
@createbyte Год назад
Check the comments section and description I have pinned the toDB function there You can simply copy paste that into your editor
@SocialAnalyst33
@SocialAnalyst33 Год назад
Asslamualikum Sir. Thanks for This video, Can you share the flood report ! i need it
@createbyte
@createbyte Год назад
pdma.gos.pk/flood-2022-in-sindh/ Download the pdf from here brother
@ZeeshanZafarzams706
@ZeeshanZafarzams706 4 месяца назад
But this code shows a lot of water bodies on the eastern side, which we all know is a huge desert. I think its mixing sand with water.
@eeshacrafts6122
@eeshacrafts6122 Год назад
Good say sir, please i stuck 😢. My good state size is printing as zero, what do i do?
@eeshacrafts6122
@eeshacrafts6122 Год назад
Please I would appreciate getting a response as soon as possible
@createbyte
@createbyte 11 месяцев назад
Is your issue fixed ?
@kingkhan-qb5rj
@kingkhan-qb5rj 6 месяцев назад
Is it possible to calculate total flood area of Pakistan?
@createbyte
@createbyte 6 месяцев назад
yes
@razirajpoot200
@razirajpoot200 Месяц назад
can i get coding?
@usamakhatab8989
@usamakhatab8989 5 месяцев назад
flood water should be more than simple water. but in this analysis simple water is more. why?
@geologistdinesh
@geologistdinesh Год назад
could you send me code of this anaysis
@createbyte
@createbyte Год назад
Even if I share you the code It wont run because you wont have the imported assets , which are non shareable at the moment by Earth engine
@geologistdinesh
@geologistdinesh Год назад
Non-satisfied your answer, we want to see ce script, otherwise no explanation is required
@createbyte
@createbyte Год назад
Will surely try to work on that in upcoming videos
@user-sn4hk5nx2i
@user-sn4hk5nx2i Год назад
bang bagi codingnya bang
@skrosni836
@skrosni836 3 месяца назад
T
Далее
Webinar 7 - Flood Mapping with Sentinel 1 data
1:20:27
Mark Rober vs Dude Perfect- Ultimate Robot Battle
19:00
▼ЮТУБ ВСЁ, Я НА ЗАВОД 🚧⛔
30:49
Просмотров 377 тыс.
Прохожу маску ЭМОЦИИ🙀 #юмор
00:59
Build Your Own Drone Tracking Radar:  Part 1
20:08
Просмотров 525 тыс.
We built the Biggest iPhone in the World.
23:30
Просмотров 3,2 млн
Sentinel-1 flood mapping with SNAP
8:32
Просмотров 17 тыс.