Introdução ao JavaScript para o Earth Engine

Este tutorial aborda apenas o suficiente de JavaScript para você começar a escrever scripts do Earth Engine. Para tutoriais mais completos sobre JavaScript, consulte estes recursos para desenvolvedores da Mozilla. Para uma introdução à programação, com exemplos em JavaScript, consulte Eloquent JavaScript. Para sugestões sobre o estilo de programação em JavaScript, consulte o Guia de estilo do Google para JavaScript. Neste tutorial, você vai escrever JavaScript no Editor de código do Earth Engine. Antes de começar, use o guia do Editor de Código para se familiarizar com o ambiente do Editor de Código.

Hello World!

É hora de escrever seu primeiro JavaScript para o Earth Engine. No navegador Chrome, acesse code.earthengine.google.com e copie o seguinte para o Editor de código:

Editor de código (JavaScript)

print('Hello World!');

Clique em Run e observe que "Hello world!" é exibido na guia Console. A linha acima é uma instrução JavaScript. Em JavaScript, as instruções terminam com um ponto e vírgula. Os programas do Earth Engine são compostos por um conjunto de instruções como esta. É possível impedir que o código seja executado sem excluí-lo, basta comentá-lo. Uma das maneiras de comentar o código é colocar duas barras // antes do código que você não quer executar. Exemplo:

Editor de código (JavaScript)

// print('Hello World!');

É uma boa prática colocar muitos comentários no código para descrever o que você está tentando fazer. Também é bom excluir o código comentado que não faz mais nada. Essas duas práticas vão melhorar a legibilidade do código.

Tipos de dados básicos do JavaScript

Strings

O uso de variáveis para armazenar objetos e primitivos ajuda na legibilidade do código. Por exemplo, uma variável que armazena um objeto de string é definida por aspas simples ' ou duplas " (mas não as misture), com aspas simples preferenciais. Crie uma nova string e armazene-a em uma variável chamada greetString:

Editor de código (JavaScript)

// Use single (or double) quotes to make a string.
var greetString = 'Ahoy there!';
// Use parentheses to pass arguments to functions.
print(greetString);

Números

As variáveis são definidas com a palavra-chave var. As variáveis também podem armazenar números:

Editor de código (JavaScript)

// Store a number in a variable.
var number = 42;
print('The answer is:', number);

Neste exemplo, observe que, quando print() recebe dois argumentos separados por vírgulas, cada argumento é impresso em uma linha diferente.

Listas

Defina listas com colchetes []. Uma lista de números, por exemplo:

Editor de código (JavaScript)

// Use square brackets [] to make a list.
var listOfNumbers = [0, 1, 1, 2, 3, 5];
print('List of numbers:', listOfNumbers);

As listas também podem armazenar strings ou outros objetos. Exemplo:

Editor de código (JavaScript)

// Make a list of strings.
var listOfStrings = ['a', 'b', 'c', 'd'];
print('List of strings:', listOfStrings);

Objetos

Os objetos em JavaScript são dicionários de pares key: value. Crie um objeto (ou dicionário) usando chaves {}, por exemplo:

Editor de código (JavaScript)

// Use curly brackets {} to make a dictionary of key:value pairs.
var object = {
  foo: 'bar',
  baz: 13,
  stuff: ['this', 'that', 'the other thing']
};
print('Dictionary:', object);
// Access dictionary items using square brackets.
print('Print foo:', object['foo']);
// Access dictionary items using dot notation.
print('Print stuff:', object.stuff);

É possível receber um valor de um dicionário fornecendo a chave. Este exemplo mostra como fazer isso para objetos JavaScript. Mais adiante, você vai aprender a fazer isso para dicionários que estão no servidor do Earth Engine.

Funções

As funções são outra maneira de melhorar a legibilidade e a reutilização do código, agrupando conjuntos de operações. Defina uma função com a palavra-chave function. Os nomes de funções começam com uma letra e têm um par de parênteses no final. As funções geralmente usam parâmetros que dizem à função o que fazer. Esses parâmetros ficam entre parênteses (). O conjunto de instruções que compõem a função fica entre chaves. A palavra-chave return indica qual é a saída da função. Há várias maneiras de declarar uma função, mas aqui vamos usar algo assim:

Editor de código (JavaScript)

var myFunction = function(parameter1, parameter2, parameter3) {
  statement;
  statement;
  statement;
  return statement;
};

Vamos analisar as linhas uma por uma. A primeira linha cria uma nova função e a atribui à variável myFunction. Essa variável poderia ter qualquer nome. Ela define como chamar a função mais tarde. Os termos entre parênteses após o nome da função (ou seja, parameter1, parameter2, parameter3) são os nomes dos parâmetros e também podem ser nomeados de qualquer forma, embora seja uma boa prática dar a eles nomes exclusivos que sejam diferentes do código fora da função. Seja qual for o nome que você der, esses são os nomes que a função vai usar para se referir aos valores transmitidos para ela quando for chamada. O valor de um parâmetro, depois de ser transmitido para uma função, é chamado de argumento. Embora as funções possam usar variáveis declaradas fora delas (variáveis globais), os argumentos de função não são visíveis fora da função. As funções podem receber quantos parâmetros forem necessários, até mesmo nenhum. Veja um exemplo simples de uma função que apenas retorna o argumento:

Editor de código (JavaScript)

// The reflect function takes a single parameter: element.
var reflect = function(element) {
  // Return the argument.
  return element;
};
print('A good day to you!', reflect('Back at you!'));

Este é um exemplo de função definida pelo usuário. Há também muitas funções integradas do Earth Engine. Confira a guia Docs do Editor de Código para saber mais sobre essas funções integradas. Veja um exemplo muito simples de uma função do Earth Engine:

Editor de código (JavaScript)

var aString = ee.Algorithms.String(42);

Na próxima seção, saiba mais sobre os objetos e métodos do Earth Engine.