LST, Urban Heat Island Effect, and UTFVI Analysis using Google Earth Engine and Landsat dataset
HTML-код
- Опубликовано: 8 фев 2025
- In this tutorial, we will explore the powerful capabilities of the Google Earth Engine for evaluating Land Surface Temperature (LST), analyzing the Urban Heat Island (UHI) effect, and calculating the Urban Thermal Field Variance Index(UTFVI) using the Landsat dataset.
UHI has emerged as a greater threat in recent years, affecting the resident's health. Additionally, UHI leads to higher energy demands for cooling, increased heat-related health risks for urban populations, and environmental impacts on local ecosystems. Understanding and mitigating this phenomenon is crucial for creating sustainable, resilient, and livable cities. Therefore through this workshop, I aim to simplify the process of evaluating the high-stress UHI regions, for effective heat stress mitigation 🏙️🌡️
Links for the resources mentioned in the video:
🔗 Website: waleedgeo.com/
🔗 LinkedIn: / waleedgeo
🔗 GitHub: github.com/wal...
🔗 Publications: waleedgeo.com/...
Code Links for this tutorial:
🔗 LST UHI and UTFVI Project Page: waleedgeo.com/...
🔗 JavaScript Code used in the workshop: github.com/wal...
If you found this tutorial helpful, please subscribe to my channel for more geospatial analysis tutorials and tips. Don't forget to hit the bell icon to get notified about our future uploads. You can also follow us on (i.e. LinkedIn) for updates and additional content.
Tags:
#googleearthengine #GEE #earthengine #remotesensing #geospatial #landsurfacetemperature #LST #urbanheatisland #UHI #urbanthermalfieldvarianceindex #UTFVI #urbanclimate #heatwaves #spatialanalysis #tutorial #landsat #opencourseware #opensource
Thank you all for the overwhelming response to this tutorial!
I sincerely apologize for not being able to continue this series or respond to every comment due to my busy schedule. However, if you encounter any specific issues with the code, feel free to open an issue on the project's repository on GitHub.
Update: There was a minor issue with the handling of unit values in the thermal expression, which has now been resolved. You can find the detailed explanation and the corrected code here:
GitHub Issue #1: Thermal Expression Correction (github.com/waleedgeo/EarthEngineProjects/issues/1)
Thank you for your continued support and engagement!
Thank you for this tutorial. Please keep them coming
Mashallah you are good. please make.more videos
Very educative video, thank you so much.
Thankyou so much for this tutorial, it's helpme so much
MashaAllah good work .
Thank you for this tutorial and script
great👍, i did this on ENVI couple of years ago, but in GEE loading raster data is not a pain
Great ! Tahnks you for tutorial
Thank you!! amazing video!
Great tutorial brother. Loved it. Miles to go… 🎉
thank you very much sir
Keep up the good work
Thank you very much for this video, and all the additional data you have provided!! I have a question that has been hunting me lately and maybe you could help me out. Isnt the ST_B10 band in the LANDSAT/LC08/C02/T1_L2 collection already a LST product?
Yes. Then you must follow these steps: ST Kelvin = (ST band × Scale) + Offset ST Celsius = ST Kelvin − 273... The Scale and Offset values to transform the pixel value from DN to Kelvin are 0.00341802 and 149, respectively.
super bhaiya
Congrats for the video. Do you know If The Landsat 8 Collection 2 Tier 1 TOA Reflectance works with this script, but without the scaling factors? or Is it necessary include other parameter settings?
Thanks for your tutorial Brother ❣️
For calculating Lst, which image should need to pick: TOA or surface reflectance?
It depends. I chose the SR, but you can also try it with TOA.
Really amazing ❤
28:19 The standard deviation of the lst seems very low no?
Please, land cover/supervised classification tutorial
which algthirm you used do analisis
23:43 UHI
Hi, Great Video. Thank you for this one. I have a query. What does UHI -4 to +4 mean? Is it temperature difference from mean to actual? How did you select the range? What does a UHI value of 2 at a pixel tell me?
Hi, thank you for the feedback.
+-4 is the range in this case (might be different for different areas). Yes through standard deviation, we evaluate the variation in between urban and nearby non urban regions characterized by high temperature difference.
UHI itself has no scale and is not necessarily dependent on the temperature, but we can say that 2 UHI means the pixel temperature is 2 degree C higher then average temperature (please cross check this from literature).
@@mwaleedgeo Thank you for your reply.
Great thanx
Do you have the same video with landsat5
Hi, do you recommend any publications or sources explaining why NDVI is added to the analysis of surface temperature? Thank you
Hi, we add NDVI as it accounts for the vegetation fraction for that area, though you can exclude it. For details check following sources:
1) doi.org/10.1111/j.1745-5871.2010.00686.x
2) www.mdpi.com/2071-1050/15/2/1416
3) link.springer.com/chapter/10.1007/978-981-99-3675-5_4
4) doi.org/10.3390/rs12091471
@@mwaleedgeo Hi, thank you so much for taking the time to answer me! I have read the linked sources. Your publications and blog have been a great help for me and the project I'm working on :)
Ist of all Thank you so much for this beautiful explaination,
but i have a query regarding cloud and cloud shadow bit mask is it 5,3 or 3,4 as in properties plz help me out and correct me here?
It depends on the properties of landsat collection. Please check with the dataset properties page in catalog.
Can you please explain, in this expression, var lst = thermal.expression(
'(tb / (1 + (0.00115 * (tb/0.48359547432)) * log(em))) - 273.15',
{'tb':thermal.select('thermal'),
'em': em}).rename('LST')., how can you calculate 0.00115 . and is it same for Landsat 5?
Thank you for identifying this important issue. This has been corrected and described in detailed in my github issue no 1 here (github.com/waleedgeo/EarthEngineProjects/issues/1)
I have a question, since ST_B10 band is already surface temperature (in Kelvin) for the Landsat 8 Product (specifically, "LANDSAT/LC08/C02/T1_L2") is computing for fractional vegetation and emissivity considered redundant?
Why would we still need to (re)compute land surface temperature with FV and EM?
The ST_B10 band provides surface temperature with generic emissivity corrections, which may not capture localized variability in heterogeneous landscapes like urban or mixed land cover areas. Recomputing LST with fractional vegetation (FV) and emissivity (EM) ensures tailored emissivity corrections, improving accuracy for specific surface conditions and aligning with methodologies in research studies. It’s not redundant but enhances precision where required. If general temperature data suffices, ST_B10 alone can be used.
also for some areas LST is not generating for selected months, showing "ComputedObject (Error)
Image.select: Pattern 'ST_B6' did not match any bands." message. since temporal resolution of landsat is 16 days, so why are these images not available?
Have you checked if the band of satellite image you are using has correct band name like ST_B6?
what parameters do we have to change if we want to use landsat 5 series? I changed the band numbers for red and NIR as SR_B3 and SR_B4 respectively..and thermal band as ST_B6. are there any other modifications we have to do? and Thank you for this amazing video, this is just what I needed!
also check for cloud bit mask parameters
@@dilarabusradurmus5011 I think they are same for landsat 5 and 8. please correct me if I'm wrong
I'd like to know abou it as well
best thanks
Hi great work , can you also derive Urban Heat Island Effect, and UTFVI from MODIS11A1 LST???
Yes using this same method, UHI and UTFVI can be calculated from MODIS.
il faut laisser aussi un modèle de script dans les commentaires pour que nous puissions l'utiliser
Hello, I was very inspired after watching your video. Can you share the code?😃
already available here: github.com/waleedgeo/EarthEngineProjects/blob/main/projects/p3-lst-uhi/main.JS
how to get the timestamp/ date information for the image that we use?
you can initially print the image collection, and can get the images and their dates from title.
Do we need to mask out the waterbodies, as the LST of water bodies is very less and thus UHI is coming weird..
Better to mask using NDVI threshold.
@@mwaleedgeo Haan that can also be the case.. NDVI < 0 to be removed
Hi!
How to compute night light?
Check this dataset
developers.google.com/earth-engine/datasets/catalog/NOAA_DMSP-OLS_NIGHTTIME_LIGHTS
Hi , i am using this code in my study area for Durban , KZN, South Africa , however for certain regions of my study area there is no lst thus uhi . Please can someone help me understand why.
Have you checked the data availability in your region for these dates? If so try searching again with broader date range, and cloud threshold filter.
Hello, when I use the code you provided, the calculated image will have some patches that are empty (it shows masked in inspector), what is the reason for this?Thank you
I think pixels having cloud cover are getting masked.
@@abhinavupadhyay3669 Thank you
Ap say contact kaisy ho skta hai?
The exact same thing is happening to me , and it is not the mask , because the ndvi is fine and so is the true image . It is just the thermal bands. Did you figure out what the issue is and please help me if you did . Karishtab@gmail.com
how can i export the images to qgis plse help me
export the images to google drive, then from there you can download.
Can someone please answer, if we need to perform corrections when we already use Landsat - 8 Collection 2, level 2 Data? ,
The ST_B10 band provides surface temperature with generic emissivity corrections, which may not capture localized variability in heterogeneous landscapes like urban or mixed land cover areas. Recomputing LST with fractional vegetation (FV) and emissivity (EM) ensures tailored emissivity corrections, improving accuracy for specific surface conditions and aligning with methodologies in research studies. It’s not redundant but enhances precision where required. If general temperature data suffices, ST_B10 alone can be used.
@@mwaleedgeo Thank you for answering my query.
Man you make a calculation 1.438^-2, it is wrong(?), correcting: is 1.438*10^-2 = 1.438/100
He used log insead of ln ! I m bit confused
Yes there was an issue which has been solved and explained here: github.com/waleedgeo/EarthEngineProjects/issues/1
@@nasreensultana1363 please check here: github.com/waleedgeo/EarthEngineProjects/issues/1
Also earth engine does not support ln syntax, and thus expacts it to be applied to an image using ee.Image.log() method.