Google Earth Engine (GEE) sebagai domain publik untuk geodata besar

Di artikel terakhir, Google Earth Engine (GEE) sebagai superkomputer publik, membahas tentang bekerja di editor awan GEE, di mana Anda hanya perlu memiliki email Google untuk mengakses. Jika kebutuhan terbatas pada tugas satu kali dan gigabyte data yang dapat dipulihkan, maka ini sudah cukup. Tetapi untuk otomatisasi banyak tugas yang bahkan kecil, editor awan bukanlah cara terbaik untuk bekerja, dan terlebih lagi bila Anda perlu berulang kali menerima raster dengan ukuran total terabyte. Dalam kasus seperti itu, alat lain akan diperlukan dan hari ini kita akan melihat kemungkinan akses dari shell konsol dan skrip Python dan notebook Python Jupyter.









Dalam tangkapan layar laptop Python Jupyter, di mana raster dengan data kepadatan populasi untuk tahun 2020 dari Katalog data Earth Engine: Data Populasi Proyek Global WorldPop ditampilkan di OpenStreetMap







pengantar



, . , Google Earth Engine (GEE), , . , . , GEE , . , , , (, ). , (ML) , ! , โ€” GEE, Compute Engine . , , .







Google



Google Cloud SDK google-cloud-sdk. ( ) . :







$ gcloud auth list
Credentialed accounts:
 - youremail@gmail.com (active)
To set the active account, run
 $ gcloud config set account <account>
      
      





:







$ gcloud config set account <account>
      
      





:







$ gcloud auth login
      
      







buckets Google Drive, GEE GEE. , API .







C GEE buckets Export.table.toCloudStorage Export.image.toCloudStorage , Google Compute Engine. gsutil, :







$ gsutil du -h gs://gcp-pdp-osm-dev-earth-engine
      
      





(. -h). gsutil , (cp, rm,...), .







GEE Google Drive Export.table.toDrive Export.image.toDrive, - . Google Drive .







GEE API



Google Earth Engine (GEE) my-service-account@...iam.gserviceaccount.com: Create and register a service account to use Earth Engine. GEE KEYS JSON , Register a new service account. Python :







import ee
service_account = 'my-service-account@...iam.gserviceaccount.com'
credentials = ee.ServiceAccountCredentials(service_account, 'privatekey.json')
ee.Initialize(credentials)
      
      





Python API ee.Authenticate() .







$ earthengine earthengine --ee_config
      
      





, Python GDAL:







import os
from osgeo import gdal

os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "my-service-account.json"
      
      





GDAL:







export GOOGLE_APPLICATION_CREDENTIALS=my-service-account.json
      
      





GEE



API Method: projects.assets.getPixels , 32MB. , GDAL API, .







GDAL Python. WorldPop/GP/100m/pop 2020 . , :







export GOOGLE_APPLICATION_CREDENTIALS=my-service-account.json

# fetch collection
ogrinfo -ro -al "EEDA:" -oo COLLECTION=projects/earthengine-public/assets/WorldPop/GP/100m/pop -where "year=2020" 
# show one raster info
gdalinfo "EEDAI:projects/earthengine-public/assets/WorldPop/GP/100m/pop/ZWE_2020"
# fetch one raster to local drive
gdal_translate "EEDAI:projects/earthengine-public/assets/WorldPop/GP/100m/pop/ZWE_2020" ZWE_2020.tif
      
      





Python:







import os
from osgeo import ogr, gdal

# define service account key
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "my-service-account.json"
# fetch collection
driver = ogr.GetDriverByName('EEDA')
ds = driver.Open('EEDA:projects/earthengine-public/assets/WorldPop/GP/100m/pop')
layer = ds.GetLayer()
# filter collection by attribute
layer.SetAttributeFilter('year=2020')
# select 1st raster
for feature in layer:
    name = feature.GetField("name")
    crs = feature.GetField("band_crs")
    print ('raster name and crs:',name, crs)
    break
# fetch 1st raster from the collection to array
ds = gdal.Open(f'EEDAI:{name}')
band = ds.GetRasterBand(1)
array = band.ReadAsArray()
print ('raster shape:', array.shape)
      
      







ยซยป Google Earth Engine. GEE , Python Jupyter , . , ยซยป โ€” GEE. , GDAL .







Saya akan tertarik untuk mendapatkan umpan balik dari pembaca: apakah perlu membahas topik yang lebih kompleks, atau apakah ini sudah di luar cakupan minat audiens berbahasa Rusia? Saya tahu banyak pembaca di sini yang menggunakan Google Transtale dan penerjemah serupa, mungkin Anda harus segera menulis dalam bahasa Inggris di LinkedIn, seperti yang sudah saya lakukan dengan publikasi tentang geofisika.







Tautan



EEDAI - Gambar API Data Google Earth Engine







Tutorial Raster API







Lapisan vektor







Menggunakan GDAL / OGR untuk Pengolahan dan Analisis Data







Lapisan Raster







Penanganan dataset raster (gridded)







DARI GEE HINGGA NUMPY HINGGA GEOTIFF







Cara memuat file GeoJSON ke BigQuery GIS








All Articles