A camada de dados de intensidade da mudança na ocorrência de água fornece uma medida de como a água superficial mudou entre duas épocas: 1984-1999 e 2000-2015. A camada calcula a média da mudança entre pares homólogos de meses das duas épocas. Consulte o Guia do usuário de dados (v2) para mais detalhes sobre essa camada.
Nesta seção do tutorial, você vai:
- adicionar uma camada do mapa estilizada para visualizar a intensidade da mudança na ocorrência de água; e
- resumir a intensidade da mudança em uma região de interesse especificada usando um histograma.
Visualização
Assim como na camada de ocorrência de água, vamos começar adicionando ao mapa uma visualização básica da intensidade da mudança de ocorrência e, em seguida, vamos melhorá-la. A intensidade da mudança de ocorrência é fornecida de duas maneiras, como valores absolutos e normalizados. Vamos usar os valores absolutos neste tutorial. Comece selecionando a camada de intensidade de mudança de ocorrência absoluta na imagem do GSW:
Editor de código (JavaScript)
var change = gsw.select("change_abs");
Na seção "Constants" do código, adicione uma instrução que crie uma nova variável para definir como a camada será estilizada. Esse estilo mostra áreas em que a ocorrência de água de superfície diminuiu/aumentou em vermelho/verde. As áreas em que a ocorrência de água de superfície está relativamente inalterada são mostradas em preto.
Editor de código (JavaScript)
var VIS_CHANGE = { min:-50, max:50, palette: ['red', 'black', 'limegreen'] };
No final da seção de código "Camadas do mapa", adicione uma instrução que inclua uma nova camada ao mapa.
Editor de código (JavaScript)
Map.setCenter(-74.4557, -8.4289, 11); // Ucayali River, Peru Map.addLayer({ eeObject: change, visParams: VIS_CHANGE, name: 'occurrence change intensity' });
Resumo de mudanças em uma região de interesse
Nesta seção, vamos resumir a quantidade de mudanças em uma região de interesse específica. Para especificar uma região de interesse, clique na ferramenta de desenho de polígono, que é uma das ferramentas de geometria. Isso vai criar uma nova camada de importações de geometria, que é chamada de "geometry" por padrão. Para mudar o nome, clique no ícone de engrenagem localizado à direita do nome da camada. Talvez seja necessário colocar o cursor sobre o nome da camada para que ele apareça.
Mude o nome da camada para roi (região de interesse ou ROI, na sigla em inglês). Em seguida, podemos clicar em uma
série de pontos no mapa para definir uma região de interesse do polígono.
Agora que nossa região de interesse está definida e armazenada em uma variável, podemos usá-la para calcular um histograma da intensidade da mudança para a ROI. Adicione o código a seguir à seção Calculations do script.
Editor de código (JavaScript)
// Calculate a change intensity for the region of interest. var histogram = change.reduceRegion({ reducer: ee.Reducer.histogram(), geometry: roi, scale: 30, bestEffort: true, }); print(histogram);
A primeira instrução calcula um histograma de valores de intensidade de mudança de ocorrência na ROI, com amostragem em uma escala de 30 m. A segunda imprime o objeto resultante na guia "Console" do Editor de Código. É possível expandir a árvore de objetos para ver os valores dos buckets do histograma. Os dados numéricos estão lá, mas há maneiras melhores de visualizar os resultados.
Para melhorar isso, podemos gerar um gráfico de histograma. Substitua a instrução que define o objeto de histograma pelas seguintes instruções:
Editor de código (JavaScript)
// Generate a histogram object and print it to the console tab. var histogram = ui.Chart.image.histogram({ image: change, region: roi, scale: 30, minBucketWidth: 10 }); histogram.setOptions({ title: 'Histogram of surface water change intensity.' });
Essas instruções criam um objeto de gráfico de histograma, que substitui a árvore de objetos de histograma
na guia "Console" por um gráfico. O método de gráfico contém vários argumentos, incluindo
scale, que define a escala espacial, em metros, em que a região de interesse
é amostrada, e
minBucketWidth, que é usado para controlar a largura dos buckets
do histograma.
Para analisar os valores do gráfico de forma interativa, coloque o cursor sobre as barras do histograma.
Script final
O script completo desta seção está listado abaixo. O script inclui instruções
para definir uma geometria de polígono (roi), que é comparável à geometria que
você criou usando as ferramentas de geometria do Editor de Código.
Editor de código (JavaScript)
////////////////////////////////////////////////////////////// // Asset List ////////////////////////////////////////////////////////////// var gsw = ee.Image('JRC/GSW1_0/GlobalSurfaceWater'); var occurrence = gsw.select('occurrence'); var change = gsw.select("change_abs"); var roi = /* color: 0B4A8B */ee.Geometry.Polygon( [[[-74.17213, -8.65569], [-74.17419, -8.39222], [-74.38362, -8.36980], [-74.43031, -8.61293]]]); ////////////////////////////////////////////////////////////// // Constants ////////////////////////////////////////////////////////////// var VIS_OCCURRENCE = { min:0, max:100, palette: ['red', 'blue'] }; var VIS_CHANGE = { min:-50, max:50, palette: ['red', 'black', 'limegreen'] }; var VIS_WATER_MASK = { palette: ['white', 'black'] }; ////////////////////////////////////////////////////////////// // Calculations ////////////////////////////////////////////////////////////// // Create a water mask layer, and set the image mask so that non-water areas are transparent. var water_mask = occurrence.gt(90).mask(1); // Generate a histogram object and print it to the console tab. var histogram = ui.Chart.image.histogram({ image: change, region: roi, scale: 30, minBucketWidth: 10 }); histogram.setOptions({ title: 'Histogram of surface water change intensity.' }); print(histogram); ////////////////////////////////////////////////////////////// // Initialize Map Location ////////////////////////////////////////////////////////////// // Uncomment one of the following statements to center the map on // a particular location. // Map.setCenter(-90.162, 29.8597, 10); // New Orleans, USA // Map.setCenter(-114.9774, 31.9254, 10); // Mouth of the Colorado River, Mexico // Map.setCenter(-111.1871, 37.0963, 11); // Lake Powell, USA // Map.setCenter(149.412, -35.0789, 11); // Lake George, Australia // Map.setCenter(105.26, 11.2134, 9); // Mekong River Basin, SouthEast Asia // Map.setCenter(90.6743, 22.7382, 10); // Meghna River, Bangladesh // Map.setCenter(81.2714, 16.5079, 11); // Godavari River Basin Irrigation Project, India // Map.setCenter(14.7035, 52.0985, 12); // River Oder, Germany & Poland // Map.setCenter(-59.1696, -33.8111, 9); // Buenos Aires, Argentina\ Map.setCenter(-74.4557, -8.4289, 11); // Ucayali River, Peru ////////////////////////////////////////////////////////////// // Map Layers ////////////////////////////////////////////////////////////// Map.addLayer({ eeObject: water_mask, visParams: VIS_WATER_MASK, name: '90% occurrence water mask', shown: false }); Map.addLayer({ eeObject: occurrence.updateMask(occurrence.divide(100)), name: "Water Occurrence (1984-2015)", visParams: VIS_OCCURRENCE, shown: false }); Map.addLayer({ eeObject: change, visParams: VIS_CHANGE, name: 'occurrence change intensity' });
Na próxima seção, você vai analisar como a água mudou ao longo do tempo, trabalhando com a camada de transição da classe de água.