内容简介: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.
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
区块链技术驱动金融
阿尔文德·纳拉亚南、约什·贝努、爱德华·费尔顿、安德鲁·米勒、史蒂文·戈德费德 / 林华、王勇 / 中信出版社,中信出版集团 / 2016-8-25 / CNY 79.00
从数字货币及智能合约技术层面,解读了区块链技术在金融领域的运用。“如果你正在寻找一本在技术层面解释比特币是如何运作的,并且你有一定计算机科学和编程的基本知识,这本书应该很适合你。” 《区块链:技术驱动金融》回答了一系列关于比特币如何运用区块链技术运作的问题,并且着重讲述了各种技术功能,以及未来会形成的网络。比特币是如何运作的?它因何而与众不同?你的比特币安全吗?比特币用户如何匿名?区块链如何......一起来看看 《区块链技术驱动金融》 这本书的介绍吧!