Earth Engine Nesneleri

JavaScript'i öğrendiğinize göre, JavaScript nesnelerini ve temel öğelerini sunucuya göndermek ve Google'da işlemek için Earth Engine kapsayıcılarına nasıl yerleştireceğinizi öğrenin.

Dize

Örneğin, bir dize tanımlayın ve ardından Earth Engine'e gönderilecek ee.String() kapsayıcısına yerleştirin:

Kod Düzenleyici (JavaScript)

// Define a string, then put it into an EE container.
var aString = 'To the cloud!';
var eeString = ee.String(aString);
print('Where to?', eeString);

ee.Thing, sunucuda bulunan bir öğenin kapsayıcısıdır. Bu örnekte, dize önce tanımlanır, ardından kapsayıcıya yerleştirilir. Kapsayıcıyı ve içeriğini tek seferde de tanımlayabilirsiniz. Örneğin:

Kod Düzenleyici (JavaScript)

// Define a string that exists on the server.
var serverString = ee.String('This is on the server.');
print('String on the server:', serverString);

print() işlevinin ilk bağımsız değişkeni istemcide yalnızca bir dize olsa da ikinci bağımsız değişken aslında değerlendirilmek üzere sunucuya gönderilir ve ardından geri gönderilir.

Numbers

Sunucuda sayı nesneleri oluşturmak için ee.Number() kullanın. Örneğin, sunucuda sabit bir değer oluşturmak için Math.E JavaScript yöntemini kullanın:

Kod Düzenleyici (JavaScript)

// Define a number that exists on the server.
var serverNumber = ee.Number(Math.E);
print('e=', serverNumber);

ee.String() ve ee.Number() yöntemleri oluşturuculardır. Oluşturucu, bağımsız değişkenini (ve muhtemelen diğer parametreleri) alır, bir kapsayıcıya yerleştirir ve kapsayıcıyı ve içeriğini kodunuzda değiştirebileceğiniz bir Earth Engine nesnesi olarak döndürür. ee ile başlayan tüm oluşturucular bir Earth Engine nesnesi döndürür.

Earth Engine nesnelerindeki yöntemler

Earth Engine nesnesi oluşturduktan sonra, bu nesneyi işlemek için Earth Engine yöntemlerini kullanmanız gerektiğini unutmayın. Bu örnekte, Earth Engine nesnesini işlemek için JavaScript'in Math.log() işlevini kullanamazsınız. ee.Number için tanımlanan eşdeğer yöntemi kullanmanız gerekir:

Kod Düzenleyici (JavaScript)

// Use a built-in function to perform an operation on the number.
var logE = serverNumber.log();
print('log(e)=', logE);

Bu örnekte log(), bir ee.Number nesnesi için kullanılan yöntemdir. (Her Earth Engine nesne türünün tüm yöntemlerinin listesini görmek için kod düzenleyicinin sol tarafındaki Docs sekmesini kullanın (ör. ee.Number > log()). Earth Engine nesnelerinin yöntemlerinin diğer Earth Engine nesnelerini döndürdüğünü unutmayın.

Listeler

JavaScript listesini sunucuda ee.List nesnesine dönüştürmek için JavaScript sabit değerini sayılar ve dizeler gibi bir kapsayıcıya yerleştirebilirsiniz. Earth Engine, sayı dizileri oluşturmak için sunucu tarafı kolaylık yöntemleri de sağlar. Örneğin:

Kod Düzenleyici (JavaScript)

// Make a sequence the hard way.
var eeList = ee.List([1, 2, 3, 4, 5]);
// Make a sequence the easy way!
var sequence = ee.List.sequence(1, 5);
print('Sequence:', sequence);

ee.List nesneleri yalnızca sunucuda bulunduğundan bunlarla etkileşim kurmak için Earth Engine tarafından sağlanan işlevleri kullanın. Örneğin, listeden bir öğe almak için ee.List nesnesinin get() yöntemini kullanın:

Kod Düzenleyici (JavaScript)

// Use a method on an ee.List to extract a value.
var value = sequence.get(2);
print('Value at index 2:', value);

Yayınlama

Bazen Earth Engine, bir yöntemden döndürülen nesnenin türünü bilmez. Programcı olarak, önceki örnekteki value değişkeninin bir sayı nesnesi olduğunu bilirsiniz. Ancak bir ee.Number nesnesinin add() yöntemini kullanmaya çalışırsanız aşağıdaki gibi bir hata alırsınız:

Bu durum, her türlü Earth Engine nesnesini döndürebilen get() işlevinde yaygındır. Bu sorunu düzeltmek için ee.Number oluşturucusunu kullanarak sonucu dönüştürün:

Kod Düzenleyici (JavaScript)

// Cast the return value of get() to a number.
print('No error:', ee.Number(value).add(3));

Sözlükler

Dizeler, sayılar ve listelerde olduğu gibi JavaScript nesnesinden Earth Engine Dictionary oluşturabilirsiniz. Oluşturma sırasında Earth Engine nesnesini ilk kullanıma hazırlamak için JavaScript işlevini kullanabilirsiniz. Bu durumda, ee.Dictionary doğrudan bir JavaScript değişmez nesnesinden oluşturulur:

Kod Düzenleyici (JavaScript)

// Make a Dictionary on the server.
var dictionary = ee.Dictionary({
  e: Math.E,
  pi: Math.PI,
  phi: (1 + Math.sqrt(5)) / 2
});

// Get some values from the dictionary.
print('Euler:', dictionary.get('e'));
print('Pi:', dictionary.get('pi'));
print('Golden ratio:', dictionary.get('phi'));

// Get all the keys:
print('Keys: ', dictionary.keys());

Bu örnekte, ee.Dictionary nesnesini aldıktan sonra değerleri almak için ee.Dictionary nesnesindeki yöntemleri kullanmanız gerektiğini görebilirsiniz (önceki dersteki JavaScript sözlüğünden farklı olarak). Özellikle get(key), key ile ilişkili değeri döndürür. get() tarafından döndürülen nesne türü herhangi bir şey olabileceğinden, nesneyi yazdırmak dışında bir işlem yapacaksanız doğru türe dönüştürmeniz gerekir. Ayrıca, keys() yönteminin bir ee.List döndürdüğünü unutmayın.

Tarihler

Date nesneleri, Earth Engine'in zamanı temsil etme şeklidir. Önceki örneklerde olduğu gibi, JavaScript Date nesnesi ile Earth Engine ee.Date nesnesi arasındaki farkı anlamak önemlidir. Bir dizeden, JavaScript Date nesnesinden veya ee.Date sınıfı tarafından sağlanan statik yöntemleri kullanarak ee.Date oluşturun. (Ayrıntılar için Belgeler sekmesindeki Tarih bölümüne bakın). Bu örnekte, dizelerden veya 1 Ocak 1970 gece yarısından bu yana geçen milisaniyeleri temsil eden bir JavaScript tarihinden tarihlerin nasıl oluşturulduğu gösterilmektedir:

Kod Düzenleyici (JavaScript)

// Define a date in Earth Engine.
var date = ee.Date('2015-12-31');
print('Date:', date);

// Get the current time using the JavaScript Date.now() method.
var now = Date.now();
print('Milliseconds since January 1, 1970', now);

// Initialize an ee.Date object.
var eeNow = ee.Date(now);
print('Now:', eeNow);

Tarihler, koleksiyonları filtrelemek için (özellikle filterDate() yönteminin bağımsız değişkenleri olarak) kullanışlıdır. Koleksiyonları sıralama hakkında daha fazla bilgi için Başlangıç sayfasının bu bölümüne bakın.

Konu dışı: Parametreleri ada göre iletme

Earth Engine yöntemlerinin bağımsız değişkenleri sırayla iletilebilir. Örneğin, yıl, ay ve günden bir ee.Date oluşturmak için fromYMD() statik yönteminin parametrelerini yıl, ay, gün sırasıyla iletebilirsiniz:

Kod Düzenleyici (JavaScript)

var aDate = ee.Date.fromYMD(2017, 1, 13);
print('aDate:', aDate);

Alternatif olarak, parametreleri ada göre herhangi bir sırada iletebilirsiniz. Daha fazla kod yazmanız gerekse de bu yöntem okunabilirliği ve yeniden kullanılabilirliği artırabilir. Parametreleri ada göre iletmek için, nesnenin anahtarlarının yöntem parametrelerinin adları ve değerlerin yöntemin bağımsız değişkenleri olduğu bir JavaScript nesnesi iletin. Örneğin:

Kod Düzenleyici (JavaScript)

var theDate = ee.Date.fromYMD({
  day: 13,
  month: 1,
  year: 2017
});
print('theDate:', theDate);

Nesne özelliklerinin adlarının (anahtarlar), ee.Date.fromYMD() belgelerinde belirtilen adlarla eşleştiğini unutmayın. Ayrıca, bağımsız değişken olarak iletilen nesnenin, JavaScript nesnesi örneğinde gösterildiği gibi yeniden kullanılmak üzere bir değişkene kaydedilebileceğini unutmayın.

Artık Earth Engine'i kullanmaya başlamak için yeterli düzeyde JavaScript bilgisine sahipsiniz. JavaScript ve Earth Engine nesnelerinin daha ayrıntılı bir açıklaması için İstemci ve Sunucu sayfasını inceleyin.

Sonraki bölümde, Earth Engine'da for döngülerini, if/else koşullarını ve iterasyonları etkili bir şekilde kullanmak için işlevsel programlama kavramları hakkında daha fazla bilgi edineceksiniz.