Article Companion Code: Spatiotemporal downscaling and nowcasting of urban land surface temperatures with deep neural networks
This repository contains the code examples and experiments that accompany the article: "Spatiotemporal downscaling and nowcasting of urban land surface temperatures with deep neural networks"
Land Surface Temperature (LST) is a key variable for various applications, such as urban climate and ecology studies. Yet, existing satellite-derived LST products provide either high spatial or high temporal resolution, resulting in a fundamental trade-off between the two. To address this trade-off, we combine observations from a geostationary and a polar orbiting satellite and provide LST fields at high spatial and high temporal resolution (1 km at 15-min intervals). We demonstrate their application for intraday forecasting of LSTs.
To estimate LST fields at high spatiotemporal resolution, a U-Net model is trained to map LST fields from SEVIRI/MSG (3 km and 15 min resolution) to LST fields from Terra/Aqua MODIS (1 km, 4 overpasses per day) that are collocated in space and time.
The presented model has been trained on LSTs across large European cities with a population exceeding 1 million inhabitants, and
achieves an RMSE =
Our LST forecast model at high spatiotemporal resolution is directly applicable to operational satellite-based LST monitoring.
The repository is structured as follows:
Contains scripts related to data preparation step.
- auto_download_MODIS.py - Create a list of MODIS files that needs to be dowloaded to cover a specific set of cities Needs separate environment. Environment: mamba activate lpdaac (https://www.earthdata.nasa.gov/centers/lp-daac)
- modis_data_read.py - support script
- modis_city_match_keep_nan.py - process raw MODIS data to create regridded MODIS images for each city
- seviri_processing_add_extra_files.py - process seviri files for a downscaling model. Relies on the output from modis_city_match_keep_nan.py
- nowcasting_data_download_links_gen.py - create a list of download links for SEVIRI. This one is used for getting the data for nowcasting. Can be adapted for the downscaling as well.
- process_seviri_full_day.py - process seviri files for nowcasting models
Contains scripts for machine learning experiments.
- prepare_dataset.py - Prepare the data for machine learning.
- unet.py - perform the training of the downscaling model.
- apply_test_unet.py - apply the model on the test set.
- nowcast_convlstm.py - perform the training of the nowcasting model.
- apply_test_nowcast_convlstm.py - apply the model on the test set.
The city boundaries used in our work to spatially subset the data to patches covering each target city. We also have there the downscaling model with weights, means and standard deviations. It is needed to prepare the data for nowcasting.
pip install -r requirements.txtThe data is made available on Zenodo.
Read the full article here: 👉 http://arxiv.org/abs/2605.13566
If you use our work, please consider citing the article.
This study was conducted as part of the Horizon Europe project UrbanAIR and has received funding from the Swiss State Secretariat for Education, Research and Innovation (SERI).