Intensidade da mudança de ocorrência de água

A camada de dados "Intensidade da mudança de ocorrência de água" fornece uma medida de como a água da superfície mudou entre duas épocas: 1984 a 1999 e 2000 a 2015. A camada calcula a média da mudança em pares homólogos de meses das duas épocas. Consulte o Guia para usuários de dados (v2) para mais detalhes sobre essa camada.

Esta seção do tutorial vai:

  1. adicionar uma camada de mapa estilizada para visualizar a intensidade da mudança na ocorrência de água; e
  2. Resumir a intensidade da mudança em uma região de interesse especificada usando um histograma.

Visualização

Assim como a camada de ocorrência de água, vamos começar adicionando uma visualização básica da intensidade da mudança de ocorrência ao mapa e depois melhorar isso. 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 variável que defina como a camada será estilizada. Esse estilo mostra em vermelho/verde as áreas em que a ocorrência de água na superfície diminuiu/aumentou. As áreas em que a ocorrência de água na superfície não mudou muito 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 "Camadas do mapa" do código, 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'
});
mudar a intensidade
Figura 6. Captura de tela da intensidade de mudança da água superficial do rio Ucayali perto de Pucallpa, uma cidade na floresta amazônica do leste do Peru. Vermelho/verde indica uma diminuição/aumento na ocorrência de água na superfície entre as épocas.

Resumir a mudança em uma região de interesse

Nesta seção, vamos resumir a quantidade de mudança em uma região de interesse especificada. Para especificar uma região de interesse, clique na ferramenta de desenho de polígonos, que é uma das Ferramentas de geometria. Isso cria uma nova camada de importações de geometria, chamada "geometry" por padrão. Para mudar o nome, clique no ícone de engrenagem à 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 (para região de interesse ou ROI). Em seguida, clique em uma série de pontos no mapa para definir uma região de interesse em forma de polígono.

região de interesse
Figura 7. Captura de tela do Rio Ucayali perto de Pucallpa, Peru, com uma região de interesse criada usando a ferramenta de desenho de polígonos.

Agora que nossa região de interesse está definida e armazenada em uma variável, podemos usá-la para calcular um histograma da intensidade de mudança para a região de interesse. Adicione o seguinte código à 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 no ROI, com amostragem em uma escala de 30 minutos. O segundo imprime o objeto resultante na guia "Console" do editor de código. É possível expandir a árvore de objetos para ver os valores dos intervalos do histograma. Os dados numéricos estão lá, mas há maneiras melhores de visualizar os resultados.

valores de histograma
Figura 8. Resultados da guia "Console", mostrando valores de histograma da intensidade da mudança na água da superfície.

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.

histograma
Figura 9. Resultados da guia "Console", mostrando um histograma da intensidade da mudança na água da superfície.

Para explorar 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 criada com as ferramentas 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 melhor como a água mudou ao longo do tempo trabalhando com a camada transição da classe de água.