O FORMA é um sistema de alerta de desmatamento quinzenal de 500 x 500 metros baseado no MODIS para as florestas tropicais úmidas. O conjunto de dados FORMA 500 no Earth Engine é uma imagem com alertas que começaram em janeiro de 2006 e são atualizados mensalmente. Cada alerta tem um
horário associado a ele em uma única banda chamada alert_date
em unidades de
segundos de época. Filtrar o FORMA por datas e calcular alertas em áreas de interesse são duas das ações mais importantes que você pode realizar com o conjunto de dados do FORMA.
Filtrar o FORMA por data
Para mostrar apenas os alertas que ocorreram em 2012, encontre pixels com horários entre o primeiro dia de 2012 e o primeiro dia de 2013, expressos em segundos desde a meia-noite de 1º de janeiro de 1970:
Editor de código (JavaScript)
// Convert dates from milliseconds to seconds. var start = ee.Date('2012-01-01').millis().divide(1000); var end = ee.Date('2013-01-01').millis().divide(1000); // Load the FORMA 500 dataset. var forma = ee.Image('FORMA/FORMA_500m'); // Create a binary layer from the dates of interest. var forma2012 = forma.gte(start).and(forma.lte(end)); Map.setCenter(15.87, -0.391, 7); Map.addLayer( forma2012.mask(forma2012), {palette: ['FF0000']}, 'FORMA alerts in 2012' );
Neste exemplo, forma2012
é uma imagem binária que contém apenas os pixels com horários em 2012. Todos os outros pixels são mascarados.
Contagem de alertas do FORMA em uma região de interesse
Como fizemos na seção anterior com os dados de Hansen et al., podemos começar contando o número de alertas (pixels) do FORMA em uma área de interesse. Por exemplo, para contar o número de alertas em áreas protegidas da República do Congo em 2012, use o exemplo anterior da seguinte forma:
Editor de código (JavaScript)
// Load country features from Large Scale International Boundary (LSIB) dataset. var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017'); // Subset the Congo Republic feature from countries. var congo = ee.Feature( countries .filter(ee.Filter.eq('country_na', 'Rep of the Congo')) .first() ); // Subset protected areas to the bounds of the congo feature // and other criteria. Clip to the intersection with congo. var protectedAreas = ee.FeatureCollection('WCMC/WDPA/current/polygons') .filter(ee.Filter.and( ee.Filter.bounds(congo.geometry()), ee.Filter.neq('IUCN_CAT', 'VI'), ee.Filter.neq('STATUS', 'proposed'), ee.Filter.lt('STATUS_YR', 2010) )) .map(function(feat){ return congo.intersection(feat); }); // Display protected areas on the map. Map.addLayer( protectedAreas, {color: '000000'}, 'Congo Republic protected areas' ); // Calculate the number of FORMA pixels in protected // areas of the Congo Republic, 2012. var stats = forma2012.reduceRegion({ reducer: ee.Reducer.sum(), geometry: protectedAreas.geometry(), scale: 500 }); print('Number of FORMA pixels, 2012: ', stats.get('constant'));
Como contar alertas do FORMA em várias regiões de interesse
Até agora, calculamos estatísticas em uma única região por vez. Para calcular estatísticas em várias regiões ao mesmo tempo, use reduceRegions()
. Novamente, com base no exemplo anterior:
Editor de código (JavaScript)
var regionsStats = forma2012.reduceRegions({ collection: protectedAreas, reducer: ee.Reducer.sum(), scale: forma2012.projection().nominalScale() }); print(regionsStats);
Examine o objeto impresso no console e observe que a saída de
reduceRegions()
é outro FeatureCollection
. Cada região na coleção de áreas protegidas da República do Congo agora tem uma propriedade adicional, sum
, nomeada após o redutor. O valor dessa propriedade é a saída do
reducer ou o número de alertas de 2012 nas áreas protegidas.
Comparação dos conjuntos de dados da FORMA e de Hansen et al.
Para comparar os conjuntos de dados da FORMA e de Hansen et al., use operadores lógicos. Saiba mais sobre operações lógicas. Especificamente, queremos criar uma imagem em que os pixels marcados como desmatamento por FORMA e pelos dados de Hansen et al. sejam 1, e o restante seja zero. Esse código cria uma imagem desse tipo para 2012 e a mostra com outras camadas de desmatamento previstas:
Editor de código (JavaScript)
// Convert dates from milliseconds to seconds. var start = ee.Date('2012-01-01').millis().divide(1000); var end = ee.Date('2013-01-01').millis().divide(1000); var region = ee.Geometry.Rectangle([-59.81163, -9.43348, -59.27561, -9.22818]); // Load the FORMA 500 dataset. var forma = ee.Image('FORMA/FORMA_500m'); // Create a binary layer from the dates of interest. var forma2012 = forma.gte(start).and(forma.lte(end)); // Load Hansen et al. data and get change in 2012. var gfc = ee.Image('UMD/hansen/global_forest_change_2015'); var gfc12 = gfc.select(['lossyear']).eq(12); // Create an image which is one where the datasets // both show deforestation and zero elsewhere. var gfc_forma = gfc12.eq(1).and(forma2012.eq(1)); // Display data on the map. Map.setCenter(-59.58813, -9.36439, 11); Map.addLayer(forma.updateMask(forma), {palette: '00FF00'}, 'Forma (green)'); Map.addLayer(gfc12.updateMask(gfc12), {palette: 'FF0000'}, 'Hansen (red)'); Map.addLayer( gfc_forma.updateMask(gfc_forma), {palette: 'FFFF00'}, 'Hansen & FORMA (yellow)' );
Isso conclui a visão geral dos conjuntos de dados de mudança florestal no Earth Engine. Estamos ansiosos para ver o que você vai criar com eles!