JavaScript'i kullanmaya alıştığınıza göre, sunucuya göndermek ve Google'da işlemek için JavaScript nesnelerini ve temel öğelerini Earth Engine kapsayıcılarına nasıl yerleştireceğinizi öğrenin.
Yaylı çalgılar
Örneğin, bir dize tanımlayın, ardından bunu 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
öğesini, sunucuda bulunan bir öğenin kapsayıcısı olarak düşünebilirsiniz. Bu örnekte, dize önce tanımlanır, ardından kapsayıcıya yerleştirilir. Ayrıca, 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()
öğesini 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. Bir 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ı ile 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
Bir Earth Engine nesnesi oluşturduktan sonra, bu nesneyi işlemek için Earth Engine yöntemlerini kullanmanız gerektiğini unutmayın. Bu örnekte, söz konusu Earth Engine nesnesini işlemek için JavaScript'in Math.log()
işlevini kullanamazsınız. Bir 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
nesnesinin yöntemidir. (Her Earth Engine nesne türü için tüm yöntemlerin listesini görmek üzere kod düzenleyicinin sol tarafındaki Docs sekmesini kullanın. Örneğin, 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 sayı ve dizelerde olduğu gibi bir JavaScript değişmezini kapsayıcıya yerleştirebilirsiniz. Earth Engine, sayı dizileri oluşturmak için sunucu tarafında kolaylık sağlayan yöntemler de sunar. Ö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'in sağladığı işlevleri kullanın. Örneğin, listeden bir öğe çıkarmak için get()
nesnesinin ee.List
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 biliyorsunuz. Ancak bir add()
yöntemini kullanmaya çalışırsanız şu gibi bir hata alırsınız:ee.Number
Bu durum, her türlü Earth Engine nesnesini döndürebilen get()
işlevinde yaygındır. 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, bir JavaScript nesnesinden Earth Engine Dictionary
oluşturabilirsiniz. Oluşturma sırasında, Earth Engine nesnesini başlatmak 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, bir ee.Dictionary
oluşturduktan sonra değerleri almak için ee.Dictionary
üzerinde yöntemler kullanmanız gerektiğini (önceki dersteki JavaScript sözlüğünün aksine) unutmayın. Daha net bir ifadeyle, 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, nesneyle yazdırma dışında bir işlem yapacaksanız nesneyi doğru türe dönüştürmeniz gerekir. Ayrıca, keys()
yönteminin ee.List
döndürdüğünü de 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ında ayrım yapmak önemlidir. Bir dizeden, bir JavaScript Date
öğesinden veya ee.Date
sınıfının sağladığı statik yöntemleri kullanarak ee.Date
oluşturun. (Ayrıntılar için Dokümanlar sekmesindeki Tarih bölümüne bakın). Bu örnekte, 1 Ocak 1970'te gece yarısından itibaren geçen milisaniyeleri temsil eden bir JavaScript tarihi veya dizelerden tarihlerin oluşturulması 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, özellikle filterDate()
yöntemine bağımsız değişken olarak koleksiyonları filtrelemek için kullanışlıdır. Koleksiyonları sıralama hakkında daha fazla bilgi için Başlarken sayfasının bu bölümüne bakın.
Konu dışı: Parametreleri ada göre iletme
Earth Engine yöntemlerine bağımsız değişkenler sırayla iletilebilir. Örneğin, yıl, ay ve günden 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 herhangi bir sırada ada göre iletebilirsiniz. Daha fazla kod yazmanız gerekse de 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ğerlerinin 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 de unutmayın.
Artık Earth Engine'i kullanmaya başlamak için yeterli JavaScript bilgisine sahipsiniz. JavaScript ve Earth Engine nesneleri arasındaki farklarla ilgili daha ayrıntılı açıklama için İstemci ve Sunucu sayfası'na bakın.
Bir sonraki bölümde, Earth Engine'de for döngülerini, if/else koşullarını ve yinelemeleri etkili bir şekilde kullanmak için işlevsel programlama kavramları hakkında daha fazla bilgi edinin.