İstemci kitaplığı aracılığıyla Earth Engine'a istek gönderebilmek için kimlik doğrulaması yapmanız ve Earth Engine istemcisini başlatmak üzere elde edilen kimlik bilgilerini kullanmanız gerekir.
Earth Engine Kod Düzenleyici ve JavaScript
Kimlik doğrulama ve başlatma, Kod Düzenleyici'de otomatik olarak işlenir. Kod Düzenleyici'nin sağ üst kısmındaki girişinizden istekleri bir Cloud projesi üzerinden yönlendirmeyi seçebilirsiniz.
JavaScript API'yi (Kod Düzenleyici dışında) kullanıyorsanız ee.data
'teki kimlik doğrulama yardımcılarından birini (örneğin, ee.data.authenticateViaPopup()
) ve ardından bu örnekte gösterildiği gibi ee.initialize()
öğesini kullanın.
Python ve Komut Satırı
Earth Engine Python istemci kitaplığını kullanmadan önce kimliğinizi doğrulamanız (kimliğinizi doğrulamanız) ve elde edilen kimlik bilgilerini kullanarak Python istemcisini başlatmanız gerekir. Kimlik doğrulama akışları, kimlik doğrulamak için Cloud Projects'i kullanır ve hem ücretli hem de ücretsiz (ücretsiz, ticari olmayan) kullanım için kullanılır. Kimlik doğrulaması yapmak ve başlatmak için
ee.Authenticate()
ee.Initialize(project='my-project')
Bu işlem, öncelikle ortamınız için en iyi kimlik doğrulama modunu seçer ve komut dosyalarınıza erişimi onaylamanızı ister. Mevcut kimlik bilgileri otomatik olarak yeniden kullanılır. Yeni kimlik bilgileri oluşturmak için ee.Authenticate(force=True)
komutunu çalıştırın.
İlk başlatma adımı, ee.Authenticate()
ile oluşturulan veya Google varsayılan kimlik bilgileri olarak önceden var olan geçerli kimlik bilgilerinin varlığını doğrular. Ardından, Python istemci kitaplığını arka uç sunucunun desteklediği yöntemlerle başlatır. Sahibi olduğunuz veya kullanma izni olan bir proje sağlamanız gerekir. Projeyi kaydetmek ve Earth Engine API'yi etkinleştirmek için Cloud projesi oluşturma başlıklı makaleyi inceleyin. Bu proje, tüm Earth Engine işlemlerini çalıştırmak için kullanılır.
Komut satırında eşdeğer çağrı earthengine authenticate
olur. Kimlik bilgilerinin süresi dolduysa veya geçersizse earthengine
authenticate --force
komutunu çalıştırmanız gerekebilir. Komut satırı çağrıları her çağrıda başlatılır ve projeyi ayarlamak için --project
bağımsız değişkenini kullanabilirsiniz.
Ayrıca earthengine
set_project {my-project}
komutunu çalıştırarak bir projeyi gelecekteki tüm aramalar için yapılandırabilirsiniz. Komut satırı ve ee.Initialize()
, bir proje doğrudan belirtilmediğinde bunu kullanır. gcloud
üzerinden kimlik doğrulama kullanılıyorsa (aşağıya bakın) gcloud auth application-default
set-quota-project {my-project}
tarafından ayarlanan proje nihai örnek olarak kullanılır.
Kimlik doğrulama ayrıntıları
Earth Engine kimlik doğrulama akışlarının amacı, oturum açtığınız hesabınızdan bir güvenlik "jetonu" almaktır. Bu jeton, komut dosyalarınızın verilerinize erişmesine izin vermek için saklanabilir. Güvenlik nedeniyle Google'ın kimlik doğrulama sistemi, bu tür jetonları yalnızca güvenli hale getirilebilecek sistemlere iletir. Aşağıdaki teknik notlara bakın.
İlgili sistemlerin türüne duyarlı olduğu için durumunuza bağlı olarak farklı işlemler yapmanız gerekir. Çoğu seçenek auth_mode
parametresi tarafından kontrol edilir: Komut satırında ee.Authenticate(auth_mode=...)
veya earthengine authenticate --auth_mode=...
olarak.
Ortamınızda zaten Google kimlik bilgileri varsa ee.Authenticate()
'ü aramanız gerekmeyebilir. Google Cloud sanal makineleri, App Engine ve diğer ortamlar kullanılabilir "çevresel kimlik bilgileri" sağlar ve gcloud auth
application-default login
bunları da oluşturur.
Ancak uyumluluğu en üst düzeye çıkarmak için tüm komut dosyalarının başında ee.Authenticate()
kullanılması önerilir. auth_mode
parametresi olmadan çoğu durumda çalışacak şekilde tasarlanmıştır ancak varsayılan mod çalışmazsa aşağıdaki ayrıntıları uygulayın.
Varsayılan mod aşağıdaki şekilde seçilir:
colab
(Google Colab not defterinde çalıştırılıyorsa)notebook
(Colab dışındaki diğer Jupyter not defterlerinde çalıştırılıyorsa)localhost
bir web tarayıcısı algılanırsa ve gcloud ikili dosyası yüklü değilsegcloud
, aksi takdirde. Bu mod için gcloud'u yüklemeniz gerekir.
Hızlı başvuru kılavuzu ve tablo
Bu karar kılavuzunda, ee.Authenticate()
tarafından seçilen varsayılan mod çalışmazsa kullanılabilecek seçenekler açıklanmaktadır. Örneğin, diğer not defteri ortamlarında çalışıyorsanız notebook
değerini açıkça belirtmeniz gerekebilir.
- Yerel ortam.
- "Yerel", kodunuzu önünüzdeki makinede veya daha doğrusu web tarayıcınızın çalıştığı makinede bir Python kabuğunda ya da Python not defterinde çalıştırdığınız anlamına gelir. Buna hem Python hem de tarayıcının aynı (uzak) makinede olduğu uzak masaüstü durumları da dahildir.
auth_mode=localhost
kullanmak en kolay yöntemdir ve gcloud yüklü değilse varsayılan olarak seçilir ancak komut dosyanız yalnızca yerel ortamlarda çalışır.- Hem
auth_mode=gcloud
hem deauth_mode=notebook
de kullanılabilir.
- Uzaktan ortam.
- "Uzak", tarayıcınızın bir (yerel) makinede olduğu ancak kodunuzun uzak bir iş istasyonunda veya web tabanlı bir not defterinde çalıştığı anlamına gelir.
- Colab'da
auth_mode=colab
değerini kullanın. Diğer API'leri çağırmak içinscopes
değerini ayarlamanız gerekiyorsagcloud
değerini kullanın. - gcloud'u hem uzak makineye hem de yerel makinenize yükleyebiliyorsanız
auth_mode=gcloud
seçeneğini kullanın. - Kimlik doğrulama projesi kullanabiliyorsanız (aşağıya bakın)
auth_mode=notebook
seçeneğini kullanın. - Aksi takdirde, aynı makinede bir projeyi kullanamıyor, gcloud'u yükleyemiyor, Colab'ı kullanamıyor veya tarayıcı kullanamıyorsanız:
- Proje oluşturma hakkında tekrar bir yöneticiyle görüşün. Örneğin:
- Yöneticiden sizin için bir projeyi (Sahip, Düzenleyici veya OAuth Yapılandırma Düzenleyicisi olarak) yapılandırmasını isteyin
- Dilerseniz yöneticiden proje oluşturma izni de isteyebilirsiniz.
Bu tabloda, her modda hangi özellik kombinasyonlarının desteklendiği gösterilmektedir.
Yerel mi yoksa uzaktan mı? | Proje Gerekli | Ayarlanabilir Kapsamlar | Yerel KSA gerekli | Proje Sahibi | |
---|---|---|---|---|---|
localhost |
local | Y | E | H | H |
colab |
uzaktan kumanda | Y | H | H | H |
gcloud |
her ikisi de | Y | E | H | H |
notebook |
her ikisi de | Y | E | H | Y |
Hizmet Hesapları ve Compute Engine için Kimlik Bilgileri
ee.Initialize()
, Earth Engine kimlik bilgilerini (ee.Authenticate()
, ~/.config/earthengine/credentials
içinde depolar) kullanır veya google.auth.default()
'dan kimlik bilgilerini alır. Ancak gerekirse bu varsayılanları atlayarak başka bir yerden kimlik bilgilerini kullanmak için bir credentials=
bağımsız değişkeni iletebilirsiniz.
Beklemeden çalışacak Python kodunun kimliğini doğruluyorsanız kullanıcı hesabı yerine hizmet hesabı ile kimlik doğrulama yapmak isteyebilirsiniz. Earth Engine ile hizmet hesaplarını kullanma hakkında bilgi edinmek için bu dokümanlara göz atın. Diğer yöntemler arasında Colab kimlik doğrulama modülündeki authenticate_service_account
ve Hizmet hesabı olarak kimlik doğrulamayla ilgili Cloud kılavuzunda açıklanan yöntemler yer alır.
Kodunuz bir Compute Engine sanal makinesinde çalışıyorsa ortam için ee.Initialize()
'in varsayılan olarak kullanacağı bir varsayılan hizmet hesabı oluşturulur. Sanal makinenin başlatıldığı Cloud projesi, Earth Engine ile kullanıma (ticari veya ticari olmayan) kayıtlı değilse hizmet hesabını Earth Engine'u kullanacak şekilde kaydetmeniz gerekebilir.
Modlarla ilgili ayrıntılar
auth_mode=colab. ee.Authenticate()
, gerekirse colab.auth.authenticate_user()
'ı çalıştırarak Colab tarafından desteklenen varsayılan kimlik bilgilerini oluşturur veya alır. Kimlik bilgileri her zaman cloud-platform
kapsamını kullanır ve diğer Cloud API'lerini çağırmak için de kullanılabilir.
auth_mode=gcloud. Bu, kimlik doğrulamayı gcloud aracına atar ve varsayılan Earth Engine kapsamlarıyla (earthengine, cloud-platform ve drive) veya scopes
bağımsız değişkenindeki kapsamlarla gcloud auth application-default login
çalıştırmakla aynıdır. gcloud
modu hem yerel hem de uzak durumlarda çalışır.
gcloud modu için adım adım talimatlar (yerel ve uzak durumlar)
- Yerel makinede gcloud'un yüklü olduğunu doğrulayın.
- Terminalde
gcloud help
komutunu çalıştırın. gcloud yüklü değilse gcloud'u yüklemek için bu talimatları uygulayın.
- Terminalde
- Yerel Makine Terminali
- Terminalde
earthengine authenticate
komutunu çalıştırın. - Komut çıktısı, kimlik bilgilerini almak için gcloud'un kullanıldığını gösterir.
- Hesap seçim sayfasına yönlendiren bir tarayıcı penceresi açılır. Tarayıcı otomatik olarak açılmazsa URL'yi tıklayın.
- Terminalde
- Tarayıcı: Hesap Seçimi
- Kimlik doğrulama için kullanmak istediğiniz hesabı seçin.
- Tarayıcı: İzin Ekranı
- İstenen kapsamları vermek isteyip istemediğinizi belirtin ve "İzin ver"i tıklayın.
- Tarayıcı: Onay Ekranı
- Tarayıcı, kimliğinizin doğrulandığını onaylayan bir sayfa gösterir ve terminal pencerenizdeki
earthengine authenticate
komutu "Yetkilendirme jetonu başarıyla kaydedildi" ifadesini gösterir. - Bazı durumlarda web sayfası, Python ortamına geri yapıştırmanız gereken bir kod verir.
- Tarayıcı, kimliğinizin doğrulandığını onaylayan bir sayfa gösterir ve terminal pencerenizdeki
- İlk kullanıma hazırlama işlemine devam edin.
auth_mode=localhost. Bu, gcloud'un yüklü olmadığı durumlar için gcloud benzeri bir akıştır. gcloud ile aynı adımları gerçekleştirir ancak yalnızca yerel durumda çalışır. İsteğe bağlı bir internet bağlantı noktası numarası (ör. localhost:8086
) sağlayabilir veya bir bağlantı noktasını otomatik olarak seçmek için localhost:0
kullanabilirsiniz. Varsayılan bağlantı noktası 8085'tir.
auth_mode=notebook. Bu, yerel komut satırlarının kullanılamadığı uzak durumlarda çalışmak için tasarlanmış genel amaçlı bir moddur. Bu işlem sizi, "kimlik doğrulama projesi" seçmeniz veya oluşturmanız gereken Notebook Kimlik Doğrulayıcı sayfasına yönlendirir. Ayrıntılar ve sorun giderme kılavuzu için aşağıya bakın. ee.Initialize()
işlevine iletilen projenin bu projeyle eşleşmesi gerekmez. Farklı not defterlerinde farklı projelerde çalışırken kimlik doğrulama için aynı projeyi kullanabilirsiniz. Bir projenin ee.Initialize()
'e açıkça iletilmesi önerilir ancak kimlik doğrulama projesi varsayılan olarak kullanılır.
Not defteri modu için adım adım talimatlar
- Tarayıcı: Not Defteri
- "Not defteri" modunu kullanarak bir kimlik doğrulama akışı başlatmak için bir not defteri kod hücresinde aşağıdaki kodu çalıştırın.
Not Defteri Kimlik Doğrulayıcı sayfasını yeni bir sekmede açmak için hücre çıkışındaki bağlantıyı tıklayın.import ee ee.Authenticate()
- "Not defteri" modunu kullanarak bir kimlik doğrulama akışı başlatmak için bir not defteri kod hücresinde aşağıdaki kodu çalıştırın.
- Tarayıcı: Notebook Authenticator
- Doğru kullanıcı hesabının listelendiğini doğrulayın.
- Kimlik doğrulama için kullanılacak bir Google Cloud projesi seçin. Yeni bir proje oluşturmanız gerekiyorsa "ee-xyz" adlandırma kuralını kullanmanızı öneririz. Burada xyz, normal Earth Engine kullanıcı adınızdır. (Bulut projesi seçemiyor veya oluşturamıyorsanız aşağıdaki sorun giderme bölümüne bakın.)
- Jeton Oluştur'u tıklayın.
- Tarayıcı: Hesap Seçimi
- Hesap seçim sayfası gösterilir. Not defterinden erişim izni vermek istediğiniz kullanıcı hesabını tıklayın.
- Tarayıcı: Uyarı sayfası
- Uygulamanın (yani not defterindeki kodun) Google tarafından oluşturulmadığını belirten bir uyarı sayfası gösterilir. Onaylamak için Devam'ı tıklayın.
- Tarayıcı: İzin Ekranı
- İstenen kapsamları vermek isteyip istemediğinizi belirtin ve Devam'ı tıklayın.
- Tarayıcı: Yetkilendirme Kodu Ekranı
- Yetkilendirme doğrulama kodunu kopyalama
- Tarayıcı: Not Defteri
- Not defteri sekmesine geri dönün ve doğrulama kodunu not defteri hücre çıkışına yapıştırın.
- Hücre çıkışında "Yetkilendirme jetonu başarıyla kaydedildi." ifadesi gösterilir.
- İlk kullanıma hazırlama işlemine devam edin.
Not defteri modunda nadiren kullanılan bir quiet
parametresi vardır: Ayarlanırsa "etkileşimli olmayan" şekilde çalışır ve kimlik doğrulama kodunu girmenizi istemez ve beklemez.
Bunun yerine, kodu kaydetmek için çalıştırılacak bir komut verir.
Kimlik doğrulama projeleri
Not defteri modunda kullanılan kimlik doğrulama projesinde sahip, düzenleyici veya OAuth yapılandırması düzenleyici olmanız gerekir. Özellikle küçük ekiplerde, çoğu durumda Not Defteri Kimlik Doğrulayıcı sayfasında kullandığınız kimlik doğrulama projesi, diğer çalışmalar için kullandığınız birincil projeyle aynı olabilir.
Güvenlik endişeleri nedeniyle, kimlik doğrulama projesindeki "OAuth istemci yapılandırması" tek seferlik bir kurulumdur. Siz veya diğer kullanıcılar projede başka nedenlerle bir OAuth istemcisi oluşturduysanız bu istemci kaldırılamaz ve "uyumlu olmayan OAuth2 istemci yapılandırması" hatası görürsünüz. Kimlik doğrulama için farklı bir proje kullanmanız veya yukarıdaki colab, localhost ya da gcloud modlarını kullanmanız gerekir.
Sorun giderme
Cloud projesi oluşturamazsam ne olur?
Bazı kuruluşlar kimlerin Cloud projesi oluşturabileceğini kontrol eder. Proje oluşturmaya çalışırken Notebook Kimlik Doğrulayıcı sayfasında hata alırsanız deneyebileceğiniz birkaç şey vardır:
- Gerekli izinlere sahip olup olmadığınızı onaylamak için doğrudan proje oluşturmayı deneyin.
- Proje oluşturmak için hangi süreçlerin kullanılabileceğini öğrenmek üzere kuruluşunuzun yöneticisiyle görüşün.
- Kuruluş dışı bir hesaptan proje oluşturun ve iş için kullandığınız hesabı projenin sahibi olarak ekleyin. Not: Bazı kuruluşlar, harici projelerden OAuth istemcilerine erişimi engelleyen güvenlik politikalarına sahiptir.
Hata: "Earth Engine API, XXX projesinde daha önce kullanılmadı veya devre dışı bırakıldı"
Öncelikle, ee.Initialize()
'te veya komut satırında bir proje yapılandırdığınızdan emin olun (Cloud ve Colab tarafından sağlanan varsayılan projelerde Earth Engine etkin değildir). İkinci olarak, Earth Engine API'nin projenizde
etkinleştirildiğinden emin olun.
Hata: "Proje, uyumlu olmayan bir OAuth2 istemcisi yapılandırmasına sahip"
Bulut projelerinde yalnızca bir OAuth2 istemci yapılandırması olabilir. Kimlik Bilgileri sayfasındaki OAuth 2.0 istemci kimliklerini kontrol ederek bir Bulut projesinin OAuth2 istemci yapılandırması ayarlanıp ayarlanmadığını kontrol edebilirsiniz. Notebook Kimlik Doğrulayıcı tarafından önceden ayarlanmış uyumlu bir yapılandırmaya sahip başka bir Cloud projesi seçmeniz veya OAuth2 istemcisi olmayan bir Cloud projesi seçmeniz ya da oluşturmanız gerekir. Kimlik doğrulayıcı bu projeyi otomatik olarak yapılandırır. OAuth sistemi maalesef kullanıcıların yapılandırmaları silmesine izin vermez. Bu nedenle, farklı bir proje kullanmanız gerekir. Bu projenin, diğer Earth Engine çalışmaları için kullanılan projeyle aynı olması gerekmez. Bu hatanın Colab modunda oluşmadığını unutmayın.
Hata: "gcloud failed. Lütfen yukarıdaki hataları kontrol edin ve gerekirse gcloud'u yükleyin."
Bu hata, gcloud yüklü değilse veya PATH'inizde yoksa ortaya çıkabilir. Bu durum, bir not defteri kod hücresinden ee.Authenticate(auth_mode='gcloud')
'ü çağırırsanız da ortaya çıkabilir. Bunun yerine ee.Authenticate()
değerini kullanın. Bu değer, varsayılan olarak not defteri modu kimlik doğrulamasını kullanır. Proje oluşturamıyorsanız yukarıdaki çözüme bakın.
gcloud'u yüklemek için yerel bir makineye erişimim yoksa ne olur?
Yerel bir terminale erişiminiz olmayan, yalnızca web'de çalışan bir ortamda çalışıyorsanız ve uzak bir terminal kullanmanız gerekiyorsa earthengine
authenticate --auth_mode=notebook
komutunu çalıştırarak not defteri modunu tetikleyerek komut satırı aracını yine de başlatabilirsiniz.
400 hatası: redirect_uri_mismatch
Web tarayıcısına erişmeden uzak bir makinede kimlik doğrulaması yapıyorsanız bu hatayı alabilirsiniz. Komut satırından earthengine authenticate
çalıştırıyorsanız --quiet
veya Python istemcisini kullanıyorsanız ee.Authenticate(quiet=True)
eklemeyi deneyin. Bunun için web tarayıcısına erişimi olan bir makineden gcloud
ile kimlik doğrulamanız gerekir.
Hata: "Uygulamanız, yerel uygulama varsayılan kimlik bilgilerini kullanarak kimlik doğrulaması yapıyor. earthengine.googleapis.com API'si, varsayılan olarak ayarlanmayan bir kota projesi gerektirir."
Bu hata, Earth Engine proje kimliğinizi belirleyemediğinde ortaya çıkabilir. Google Cloud sorun giderme seçenekleri işe yaramazsa earthengine set_project YOUR_PROJECT_ID
veya gcloud
auth application-default set-quota-project YOUR_PROJECT_ID
'i çalıştırmayı deneyin.
Teknik notlar
Teknik konulara meraklı olanlar için: Bu farklı kimlik bilgisi oluşturma mekanizmalarına duyulan ihtiyaç, kimlik bilgilerinin bilinen ve güvenilir bir ortama aktarılması gereğinden kaynaklanır. Yukarıdaki farklı durumlarla ilgili kısa bir tartışmayı aşağıda bulabilirsiniz.
- Eskiden, istediğiniz yere yapıştırabileceğiniz bir jeton veren bir
paste
modu vardı. Bu modun çok riskli olduğu tespit edildiğinden artık kullanılamıyor. colab
:auth.authenticate_user()
, kimlik bilgilerini "Colab" kimlik doğrulama istemciyle (not defteri ortamının kendisi) paylaşmanızı ister. Bu veriler daha sonragoogle.auth.default()
üzerinden kullanılabilir veee.Initialize()
tarafından kullanılır.localhost
: kimlik bilgileri tarayıcıdan yerel makinenizdeki bir bağlantı noktasına iletilir. Bu durumda uçtan uca güvenlik, yerel makinenizin güvenliğinin ihlal edilmemesine bağlıdır. Göreceğiniz kimlik doğrulama istemcisi "Earth Engine Kimlik Doğrulayıcısı"dır.gcloud
: Bu işlemde, gcloud referansında açıklanan--launch-browser
akışı kullanılır. Uzaktan bir makinede ise--no-launch-browser
akışı kullanılır. Kullanılan kimlik doğrulama istemcisi "Google Kimlik Doğrulama Kitaplığı"dır.notebook
: Özellikle işiniz için yeni bir kimlik doğrulama istemcisi oluştururuz. İzin sayfasında e-posta adresinizi görürsünüz. Bu istemci, eski yapıştırma modu jetonlarına izin veren özel bir durum olan "geliştirme" modunda ayarlanmıştır. Bu tür istemciler çok sayıda kullanıcıyla paylaşılamayacakları için bunun için kendi projenizi kullanmamız gerekir.