2 votos

Traducir JavaScript a Python API GEE

He encontrado este código de Google Earth Engine.

/*
Author: Sofia Ermida (sofia.ermida@ipma.pt; @ermida_sofia)

this function mask clouds and cloud shadow using the Quality band

to call this function use:

var cloudmask = require('users/sofiaermida/landsat_smw_lst:modules/cloudmask.js')
var TOAImageMasked = cloudmask.toa(image)
var SRImageMasked = cloudmask.sr(image)
or
var TOAcollectionMasked = ImageCollection.map(cloudmask.toa)
var SRcollectionMasked = ImageCollection.map(cloudmask.sr)

INPUTS:
        - image: <ee.Image>
                image for which clouds are masked 
OUTPUTS:
        - <ee.Image>
          the input image with updated mask
*/

// cloudmask for TOA data
exports.toa = function(image) {
  var qa = image.select('BQA');
  var mask = qa.bitwiseAnd(1 << 4).eq(0);
  return image.updateMask(mask);
};

// cloudmask for SR data
exports.sr = function(image) {
  var qa = image.select('pixel_qa');
  var mask = qa.bitwiseAnd(1 << 3)
    .or(qa.bitwiseAnd(1 << 5))
  return image.updateMask(mask.not());
};

Estoy interesado en utilizarlo a través de la API de Python, pero tengo un problema en la comprensión de la sintaxis. Soy totalmente novato trabajando en JavaScript - Node JS y tengo problemas sobre cómo implementar este tipo de declaración: exports.sr = function(image) en Python. ¿Cuál sería la equivalencia en la API de Python?

3voto

Suresh Puntos 11

Traduciendo la sintaxis de la definición de la función, JS

exports.sr = function(image) {
  ...
  return image.updateMask(mask.not());
};

corresponde a Python

def sr(image):
    ...
    return image.updateMask(mask.Not())

Tenga en cuenta que aquí hay una consideración especial: not es una palabra clave en Python, lo que significa que no puede utilizarse como nombre de método, por lo que la API del motor terrestre utiliza la palabra en mayúsculas Not en lugar de not . Esto también se aplica a los nombres and y or ; otros métodos de la API están escritos con el mismo caso en JavaScript y Python.

(En caso de que te lo preguntes, no hay un equivalente directo a exports. en Python, porque cuando se usan módulos en Python, no existe tal cosa como un símbolo no exportado; todo lo que se define en el nivel superior del archivo se "exporta" como parte del módulo).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X