内容简介:A case study showing how you can use deep learning to monitor the daily progression of fires from satellite imagery in 5 simple stepsIn this story, I show how to use
A case study showing how you can use deep learning to monitor the daily progression of fires from satellite imagery in 5 simple steps
Apr 28 ·5min read
T he extreme extent of 2019–20 Australian bushfires made headlines around the world at the beginning of 2020. Extreme events like these are expected to become more frequent in a warming climate . Monitoring the extent of the fires is very important to assess the damage and for a wide range of applications ranging from forest management to fire carbon emission and air pollution . Daily satellite images with resolution up to about 500m per pixel allow monitoring the burned regions. It is however not a simple task as clouds and smoke are often present in the images. As an image-based problem, monitoring the daily progression of burned areas is a well-suited task for the computer vision domain.
In this story, I show how to use BA-Net model (of which I’m one of the authors) to map the fires in Australia, and how you can do the same for virtually anywhere on Earth, with the open-source code and pre-trained models provided in this Github repository as a Python package named banet .
If you are only interested in the results you can jump straight to the “ Visualizing the results ” section, after the 5 steps.
Step 1. Defining the study region
The Region class in banet.geo should be used as follows, where the bbox argument receives a list with the left, bottom, right and top boundaries of the region. The pixel_size should be kept as 0.01º (about 1 km) to be close to the resolution of the satellite data that will be used here.
r = Region(name='Australia', bbox=[146, -39, 154, -26], pixel_size=0.01)
r.export('data/regions/R_Australia.json')
Step 2. Download VIIRS Active Fires data
VIIRS Active Fires is a product that provides near-real-time estimations of the radiative power of fires that are active during the satellite passage. These polar orbit satellites view most of the points on Earth twice a day. The data can be downloaded from this page : following “Create New Request”; selecting the region; selecting “VIIRS S-NPP”; selecting the time-range starting one month before and ending one month after the study period (or at least 15 days). As for the file format, it should be selected CSV. After submitting the request it should be processed shortly. Data can then be downloaded and saved as “hotspots{name}.csv”, using the “name” defined in Step 1.
Plotting all the active fire events results in the figure above where colours represent the day of burning starting the count at Jan 1st, 2019.
Step 3.Downloading VIIRS image data
The following bash code makes use of the banet command-line utility to download the data from Nasa Earth Data .
#!/bin/bash -l
region="Australia"
tstart="2019-08-01 00:00:00"
tend="2020-02-17 23:59:59"
path_save="/data/Australia/rawdata"
regions_path="/data/regions"
banet_viirs750_download $region "$tstart" "$tend" $path_save $regions_path
The region variable needs to be set to the name defined in Step 1 and the regions_path to the respective directory where the JSON file was saved.
Step 4. Data preprocessing
For this step, another utility function is provided in banet package. The procedure consists on reading the raw data (in HDF format) as downloaded in Step 3, and saving a MAT file for each day with:
- Red, near-infrared (NIR) and middle infrared (MIR) reflectances;
- Gridded active fire data.
#!/bin/bash -l
region="Australia"
viirs_path="/data/Australia/rawdata"
save_path="/data/Australia/dataset"
fires_path="/data/ActiveFires"
regions_path="/data/regions"
banet_create_dataset $region $viirs_path $fires_path $save_path $regions_path
Notice that fires_path should be set to the directory in which the CSV file obtained in Step 2 was saved.
Step 5. Use BA-Net to generate burned area maps
Once again, banet package provides a utility command line function to process this step. This procedure consists in loading 64-day sequences and cropping the large images into 128x128 tiles, feed each to the model and merge back the tiles to get the results for the entire image.
#!/bin/bash -l
region="Australia"
tstart="2019-08-01 00:00:00"
tend="2020-02-17 23:59:59"
input_path="/data/Australia/dataset"
output_path="/data/Australia/output"
regions_path="/data/regions"
banet_predict_times $region "$tstart" "$tend" $input_path $output_path $regions_path
Notice that the input_path should correspond to the save_path of Step 4 — the directory where the dataset is stored.
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
编程的修炼(中英双语)
[荷]Edsger W. Dijkstra / 裘宗燕 / 电子工业出版社 / 2013-7 / 79.00元
本书是图灵奖获得者Edsger W. Dijkstra在编程领域里的经典著作中的经典。作者基于其敏锐的洞察力和长期的实际编程经验,对基本顺序程序的描述和开发中的许多关键问题做了独到的总结和开发。书中讨论了顺序程序的本质特征、程序描述和对程序行为(正确性)的推理,并通过一系列从简单到复杂的程序的思考和开发范例,阐释了基于严格的逻辑推理开发正确可靠程序的过程。 本书写于20世纪70年代中后期,但......一起来看看 《编程的修炼(中英双语)》 这本书的介绍吧!