Giter Site home page Giter Site logo

gee-community / qgis-earthengine-plugin Goto Github PK

View Code? Open in Web Editor NEW
429.0 429.0 112.0 996 KB

Integrates Google Earth Engine and QGIS using Python API

Home Page: http://qgis-ee-plugin.appspot.com

License: MIT License

Python 93.81% Makefile 2.78% Batchfile 2.48% QML 0.94%

qgis-earthengine-plugin's People

Contributors

gena avatar hcwinsemius avatar jdbcode avatar kant avatar siggyf avatar xaviercll avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qgis-earthengine-plugin's Issues

Failure to install on QGIS 3.10 Windows

Couldn't load plugin 'ee_plugin' due to an error when calling its classFactory() method

Exception: Problem requesting tokens. Please try again. HTTP Error 400: Bad Request b'{\n "error": "invalid_grant",\n "error_description": "Bad Request"\n}'
Traceback (most recent call last):
File "C:/Users/Timothy.Macqueen/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
ee.Initialize()
File "C:\Users\Timothy.Macqueen\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_init_.py", line 123, in Initialize
ApiFunction.initialize()
File "C:\Users\Timothy.Macqueen\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\apifunction.py", line 154, in initialize
signatures = data.getAlgorithms()
File "C:\Users\Timothy.Macqueen\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 952, in getAlgorithms
return send_('/algorithms', {}, 'GET')
File "C:\Users\Timothy.Macqueen\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 1797, in send_
'Server returned HTTP code: %d' % response.status)
ee.ee_exception.EEException: Server returned HTTP code: 404

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\Timothy.Macqueen\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\oauth.py", line 79, in request_token
parse.urlencode(request_args).encode()).read().decode()
File "C:\PROGRA1\QGIS31.10\apps\Python37\lib\urllib\request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "C:\PROGRA1\QGIS31.10\apps\Python37\lib\urllib\request.py", line 531, in open
response = meth(req, response)
File "C:\PROGRA1\QGIS31.10\apps\Python37\lib\urllib\request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
File "C:\PROGRA1\QGIS31.10\apps\Python37\lib\urllib\request.py", line 569, in error
return self._call_chain(*args)
File "C:\PROGRA1\QGIS31.10\apps\Python37\lib\urllib\request.py", line 503, in _call_chain
result = func(*args)
File "C:\PROGRA1\QGIS31.10\apps\Python37\lib\urllib\request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:/PROGRA1/QGIS31.10/apps/qgis/./python\qgis\utils.py", line 334, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Users/Timothy.Macqueen/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin_init
.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "C:/PROGRA1/QGIS31.10/apps/qgis/./python\qgis\utils.py", line 744, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Users/Timothy.Macqueen/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in
ee_plugin.ee_auth.init()
File "C:/Users/Timothy.Macqueen/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 21, in init
authenticate()
File "C:/Users/Timothy.Macqueen/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 48, in authenticate
ee.oauth._obtain_and_write_token(token.strip())
File "C:\Users\Timothy.Macqueen\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\oauth.py", line 128, in _obtain_and_write_token
token = request_token(auth_code)
File "C:\Users\Timothy.Macqueen\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\oauth.py", line 83, in request_token
(e, e.read()))
Exception: Problem requesting tokens. Please try again. HTTP Error 400: Bad Request b'{\n "error": "invalid_grant",\n "error_description": "Bad Request"\n}'

Python version: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
QGIS version: 3.10.2-A Coruña A Coruña, d4cd3cfe5a

Python Path:
C:/PROGRA1/QGIS31.10/apps/qgis/./python
C:/Users/Timothy.Macqueen/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/Timothy.Macqueen/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA1/QGIS31.10/apps/qgis/./python/plugins
C:\PROGRA1\QGIS31.10\apps\Python37
C:\PROGRA1\QGIS31.10\apps\Python37\Scripts
C:\Program Files\QGIS 3.10\bin\python37.zip
C:\PROGRA1\QGIS31.10\apps\Python37\DLLs
C:\PROGRA1\QGIS31.10\apps\Python37\lib
C:\Program Files\QGIS 3.10\bin
C:\PROGRA1\QGIS31.10\apps\Python37\lib\site-packages
C:\PROGRA1\QGIS31.10\apps\Python37\lib\site-packages\win32
C:\PROGRA1\QGIS31.10\apps\Python37\lib\site-packages\win32\lib
C:\PROGRA1\QGIS31.10\apps\Python37\lib\site-packages\Pythonwin
C:/Users/Timothy.Macqueen/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:\Users\Timothy.Macqueen\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\mmqgis/forms
D:/2019-2020/Projects/Kartoza GIS training
C:\Users\Timothy.Macqueen\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows

Python error in first run (bug in Map.setCenter)

Dear @gena,

Thank you very much for this really great and usefull QGIS plugin!

I'm testing it in QGIS 3.10.0 on Windows 10, and in the first run of the code I always get an error.

For instance, using the landsat_median.py example:

import ee
from ee_plugin import Map
collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')\
    .filter(ee.Filter.eq('WRS_PATH', 44))\
    .filter(ee.Filter.eq('WRS_ROW', 34))\
    .filterDate('2014-01-01', '2015-01-01')
median = collection.median()
Map.setCenter(-122.3578, 37.7726, 12)
Map.addLayer(median, {"bands": ['B4', 'B3', 'B2'], "max": 0.3}, 'median')

I get:

--- Logging error ---
Traceback (most recent call last):
  File "C:\OSGEO4~1\apps\Python37\lib\logging\__init__.py", line 985, in emit
    stream.write(msg)
AttributeError: 'NoneType' object has no attribute 'write'
Call stack:
  File "C:/OSGEO4~1/apps/qgis-rel-dev/./python\console\console_sci.py", line 435, in keyPressEvent
    self.entered()
  File "C:/OSGEO4~1/apps/qgis-rel-dev/./python\console\console_sci.py", line 603, in entered
    self.runCommand(self.currentCommand())
  File "C:/OSGEO4~1/apps/qgis-rel-dev/./python\console\console_sci.py", line 631, in runCommand
    more = self.runsource(src)
  File "C:/OSGEO4~1/apps/qgis-rel-dev/./python\console\console_sci.py", line 661, in runsource
    return super(ShellScintilla, self).runsource(source, filename, symbol)
  File "C:\OSGEO4~1\apps\Python37\lib\code.py", line 74, in runsource
    self.runcode(code)
  File "C:\OSGEO4~1\apps\Python37\lib\code.py", line 90, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
  File "C:/Users/PedroVenancio/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\Map.py", line 52, in addLayer
    ee_plugin.utils.add_or_update_ee_image_layer(image, name, shown, opacity)
  File "C:/Users/PedroVenancio/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\utils.py", line 77, in add_or_update_ee_image_layer
    add_ee_image_layer(image, name, shown, opacity)
  File "C:/Users/PedroVenancio/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\utils.py", line 30, in add_ee_image_layer
    check_version()
  File "C:/Users/PedroVenancio/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\utils.py", line 92, in check_version
    qgis.utils.plugins['ee_plugin'].check_version()
  File "C:/Users/PedroVenancio/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 104, in check_version
    latest_version = requests.get('https://qgis-ee-plugin.appspot.com/get_latest_version').text
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\requests\api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\requests\sessions.py", line 512, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\requests\sessions.py", line 622, in send
    r = adapter.send(request, **kwargs)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\requests\adapters.py", line 445, in send
    timeout=timeout
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\urllib3\connectionpool.py", line 588, in urlopen
    conn = self._get_conn(timeout=pool_timeout)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\urllib3\connectionpool.py", line 248, in _get_conn
    return conn or self._new_conn()
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\urllib3\connectionpool.py", line 823, in _new_conn
    self.num_connections, self.host, self.port or "443")
Message: 'Starting new HTTPS connection (%d): %s:%s'
Arguments: (1, 'qgis-ee-plugin.appspot.com', 443)
--- Logging error ---
Traceback (most recent call last):
  File "C:\OSGEO4~1\apps\Python37\lib\logging\__init__.py", line 985, in emit
    stream.write(msg)
AttributeError: 'NoneType' object has no attribute 'write'
Call stack:
  File "C:/OSGEO4~1/apps/qgis-rel-dev/./python\console\console_sci.py", line 435, in keyPressEvent
    self.entered()
  File "C:/OSGEO4~1/apps/qgis-rel-dev/./python\console\console_sci.py", line 603, in entered
    self.runCommand(self.currentCommand())
  File "C:/OSGEO4~1/apps/qgis-rel-dev/./python\console\console_sci.py", line 631, in runCommand
    more = self.runsource(src)
  File "C:/OSGEO4~1/apps/qgis-rel-dev/./python\console\console_sci.py", line 661, in runsource
    return super(ShellScintilla, self).runsource(source, filename, symbol)
  File "C:\OSGEO4~1\apps\Python37\lib\code.py", line 74, in runsource
    self.runcode(code)
  File "C:\OSGEO4~1\apps\Python37\lib\code.py", line 90, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
  File "C:/Users/PedroVenancio/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\Map.py", line 52, in addLayer
    ee_plugin.utils.add_or_update_ee_image_layer(image, name, shown, opacity)
  File "C:/Users/PedroVenancio/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\utils.py", line 77, in add_or_update_ee_image_layer
    add_ee_image_layer(image, name, shown, opacity)
  File "C:/Users/PedroVenancio/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\utils.py", line 30, in add_ee_image_layer
    check_version()
  File "C:/Users/PedroVenancio/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\utils.py", line 92, in check_version
    qgis.utils.plugins['ee_plugin'].check_version()
  File "C:/Users/PedroVenancio/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 104, in check_version
    latest_version = requests.get('https://qgis-ee-plugin.appspot.com/get_latest_version').text
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\requests\api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\requests\sessions.py", line 512, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\requests\sessions.py", line 622, in send
    r = adapter.send(request, **kwargs)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\requests\adapters.py", line 445, in send
    timeout=timeout
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\urllib3\connectionpool.py", line 393, in _make_request
    httplib_response.length)
Message: '%s://%s:%s "%s %s %s" %s %s'
Arguments: ('https', 'qgis-ee-plugin.appspot.com', 443, 'GET', '/get_latest_version', 'HTTP/1.1', 200, 5)

and the layer is not loaded.

After this error show up in Python console, if I just center the map again with

Map.setCenter(-122.3578, 37.7726, 12)

everything goes ok
imagem

After this, if I test another images, everything run smoothly, without any error.
imagem

Any hint about this issue?

Thank you very much!

Best regards,
Pedro

QGIS Earth Engine Plugin does not work on Mac

Following Error
Couldn't load plugin 'ee_plugin' due to an error when calling its classFactory() method

urllib.error.URLError:
Traceback (most recent call last):
File "/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/ee/data.py", line 218, in get_persistent_credentials
tokens = json.load(open(oauth.get_credentials_path()))
FileNotFoundError: [Errno 2] No such file or directory: '/Users/sahirpatel/.config/earthengine/credentials'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/ee_auth.py", line 19, in init
ee.Initialize()
File "/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/ee/init.py", line 112, in Initialize
credentials = data.get_persistent_credentials()
File "/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/ee/data.py", line 229, in get_persistent_credentials
'Please authorize access to your Earth Engine account by '
ee.ee_exception.EEException: Please authorize access to your Earth Engine account by running

earthengine authenticate

in your command line, and then retry.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/urllib/request.py", line 1317, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/http/client.py", line 1229, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/http/client.py", line 1275, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/http/client.py", line 1224, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/http/client.py", line 1016, in _send_output
self.send(msg)
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/http/client.py", line 956, in send
self.connect()
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/http/client.py", line 1392, in connect
server_hostname=server_hostname)
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/ssl.py", line 412, in wrap_socket
session=session
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/ssl.py", line 853, in _create
self.do_handshake()
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/ssl.py", line 1117, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 334, in _startPlugin
plugins[packageName] = package.classFactory(iface)
File "/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/init.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 744, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/ee_plugin.py", line 26, in
ee_plugin.ee_auth.init()
File "/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/ee_auth.py", line 21, in init
authenticate()
File "/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/ee_auth.py", line 48, in authenticate
ee.oauth._obtain_and_write_token(token.strip())
File "/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/ee/oauth.py", line 128, in _obtain_and_write_token
token = request_token(auth_code)
File "/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/ee/oauth.py", line 79, in request_token
parse.urlencode(request_args).encode()).read().decode()
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/urllib/request.py", line 543, in _open
'_open', req)
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/urllib/request.py", line 1360, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/urllib/request.py", line 1319, in do_open
raise URLError(err)
urllib.error.URLError:

Python version: 3.7.3 (default, Mar 27 2019, 09:23:15) [Clang 10.0.1 (clang-1001.0.46.3)]
QGIS version: 3.10.1-A Coruña A Coruña, 1e6b1a3eda

Python Path:
/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/WaterNetAnalyzer-master
/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python
/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python
/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins
/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/plugins
/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/site-packages
/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python37.zip
/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7
/Applications/QGIS3.10.app/Contents/Resources/python
/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/site-packages/geos
/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/lib-dynload
/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python
/Users/sahirpatel/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin

couldn't activate the plugin

Hi,
I just installed the plugin but when I wanted to activate it, I faced this error:

Couldn't load plugin 'ee_plugin' due to an error when calling its classFactory() method 

TypeError: get_authorization_url() missing 1 required positional argument: 'code_challenge' 
Traceback (most recent call last):
  File "C:\Users\javad\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 230, in get_persistent_credentials
    tokens = json.load(open(oauth.get_credentials_path()))
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\javad/.config/earthengine/credentials'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/javad/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
    ee.Initialize()
  File "C:\Users\javad\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\__init__.py", line 114, in Initialize
    credentials = data.get_persistent_credentials()
  File "C:\Users\javad\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 241, in get_persistent_credentials
    'Please authorize access to your Earth Engine account by '
ee.ee_exception.EEException: Please authorize access to your Earth Engine account by running

earthengine authenticate

in your command line, and then retry.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/PROGRA~1/QGIS3~1.12/apps/qgis/./python\qgis\utils.py", line 334, in _startPlugin
    plugins[packageName] = package.classFactory(iface)
  File "C:/Users/javad/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 25, in classFactory
    from .ee_plugin import GoogleEarthEnginePlugin
  File "C:/PROGRA~1/QGIS3~1.12/apps/qgis/./python\qgis\utils.py", line 744, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:/Users/javad/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in 
    ee_plugin.ee_auth.init()
  File "C:/Users/javad/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 21, in init
    authenticate()
  File "C:/Users/javad/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 32, in authenticate
    auth_url = ee.oauth.get_authorization_url()
TypeError: get_authorization_url() missing 1 required positional argument: 'code_challenge'


Python version: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] 
QGIS version: 3.12.0-București București, cd141490ec 

Python Path:
C:/PROGRA~1/QGIS3~1.12/apps/qgis/./python
C:/Users/javad/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/javad/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA~1/QGIS3~1.12/apps/qgis/./python/plugins
C:\PROGRA~1\QGIS3~1.12\apps\Python37
C:\PROGRA~1\QGIS3~1.12\apps\Python37\Scripts
C:\PROGRA~1\QGIS3~1.12\bin\python37.zip
C:\PROGRA~1\QGIS3~1.12\apps\Python37\DLLs
C:\PROGRA~1\QGIS3~1.12\apps\Python37\lib
C:\PROGRA~1\QGIS3~1.12\bin
C:\Users\javad\AppData\Roaming\Python\Python37\site-packages
C:\PROGRA~1\QGIS3~1.12\apps\Python37\lib\site-packages
C:\PROGRA~1\QGIS3~1.12\apps\Python37\lib\site-packages\win32
C:\PROGRA~1\QGIS3~1.12\apps\Python37\lib\site-packages\win32\lib
C:\PROGRA~1\QGIS3~1.12\apps\Python37\lib\site-packages\Pythonwin
C:/Users/javad/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/javad/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis2web
C:\Users\javad\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins
C:/Users/javad/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis_resource_sharing
C:\Users\javad\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\qgis_resource_sharing
C:\Users\javad\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\qgis_resource_sharing\ext_libs
.
D:/javad/Documents/Work/hydrotech toos/QuickOSM-municipality
C:\Users\javad\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows

EE_Plugin doesn't starts from QGIS 3.10

Hi all,
I noticed that EE plugin don't starts by QGIS 3.10

Versione di QGIS 3.10.0-A Coruña build QGIS 5a8dfa62fe running on Windows 7.
at QGIS startup the token appear but when I past authorization code It come out with the following error message
I Tried to run earthengine by conda and It run succesfully

Impossibile caricare il plugin 'ee_plugin' a causa di un errore chiamando il metodo classFactory()

ee.ee_exception.EEException: Server returned HTTP code: 404
Traceback (most recent call last):
File "C:/Users/XW4400/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
ee.Initialize()
File "C:\Users\XW4400\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_init_.py", line 123, in Initialize
ApiFunction.initialize()
File "C:\Users\XW4400\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\apifunction.py", line 154, in initialize
signatures = data.getAlgorithms()
File "C:\Users\XW4400\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 952, in getAlgorithms
return send_('/algorithms', {}, 'GET')
File "C:\Users\XW4400\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 1797, in send_
'Server returned HTTP code: %d' % response.status)
ee.ee_exception.EEException: Server returned HTTP code: 404

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:/OSGEO41/apps/qgis-rel-dev/./python\qgis\utils.py", line 334, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Users/XW4400/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin_init
.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "C:/OSGEO4
1/apps/qgis-rel-dev/./python\qgis\utils.py", line 744, in import
mod = builtin_import(name, globals, locals, fromlist, level)
File "C:/Users/XW4400/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in
ee_plugin.ee_auth.init()
File "C:/Users/XW4400/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 22, in init
ee.Initialize() # retry initialization once the user logs in
File "C:\Users\XW4400\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_init
.py", line 123, in Initialize
ApiFunction.initialize()
File "C:\Users\XW4400\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\apifunction.py", line 154, in initialize
signatures = data.getAlgorithms()
File "C:\Users\XW4400\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 952, in getAlgorithms
return send
('/algorithms', {}, 'GET')
File "C:\Users\XW4400\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 1797, in send_
'Server returned HTTP code: %d' % response.status)
ee.ee_exception.EEException: Server returned HTTP code: 404

Versione Python: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
Versione di QGIS: 3.10.0-A Coruña A Coruña, 5a8dfa62fe

Best Regards
Antonio

Cannot install google earth engine plugin

I use QGIS 3.12 on Windows 7
I install GEE plugin, but when I paste the authentication code into the verification box, I get error:

Couldn't load plugin 'ee_plugin' due to an error when calling its classFactory() method

ee.ee_exception.EEException: Server returned HTTP code: 404

Traceback (most recent call last):
File "C:/Users/USER/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
ee.Initialize()
File "C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_init_.py", line 123, in Initialize
ApiFunction.initialize()
File "C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\apifunction.py", line 154, in initialize
signatures = data.getAlgorithms()
File "C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 952, in getAlgorithms
return send_('/algorithms', {}, 'GET')
File "C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 1797, in send_
'Server returned HTTP code: %d' % response.status)
ee.ee_exception.EEException: Server returned HTTP code: 404

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:/PROGRA1/QGIS31.12/apps/qgis/./python\qgis\utils.py", line 334, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Users/USER/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin_init
.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "C:/PROGRA1/QGIS31.12/apps/qgis/./python\qgis\utils.py", line 744, in import
mod = builtin_import(name, globals, locals, fromlist, level)
File "C:/Users/USER/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in
ee_plugin.ee_auth.init()
File "C:/Users/USER/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 22, in init
ee.Initialize() # retry initialization once the user logs in
File "C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_init
.py", line 123, in Initialize
ApiFunction.initialize()
File "C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\apifunction.py", line 154, in initialize
signatures = data.getAlgorithms()
File "C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 952, in getAlgorithms
return send
('/algorithms', {}, 'GET')
File "C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 1797, in send_
'Server returned HTTP code: %d' % response.status)
ee.ee_exception.EEException: Server returned HTTP code: 404

Python version: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)]
QGIS version: 3.12.0-București București, cd141490ec

Python Path:

C:/PROGRA1/QGIS31.12/apps/qgis/./python
C:/Users/USER/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/USER/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA1/QGIS31.12/apps/qgis/./python/plugins
C:\PROGRA1\QGIS31.12\apps\Python37
C:\PROGRA1\QGIS31.12\apps\Python37\Scripts
C:\Program Files\QGIS 3.12\bin\python37.zip
C:\PROGRA1\QGIS31.12\apps\Python37\DLLs
C:\PROGRA1\QGIS31.12\apps\Python37\lib
C:\Program Files\QGIS 3.12\bin
C:\PROGRA1\QGIS31.12\apps\Python37\lib\site-packages
C:\PROGRA1\QGIS31.12\apps\Python37\lib\site-packages\win32
C:\PROGRA1\QGIS31.12\apps\Python37\lib\site-packages\win32\lib
C:\PROGRA1\QGIS31.12\apps\Python37\lib\site-packages\Pythonwin
C:/Users/USER/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\HCMGIS/forms
C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows

Please help me to resolve this issue,

Thank you in advance,

Thi

Accept image collections in Map.addLayer

Add support for image collections in Map.addLayer

import ee
from ee_plugin import Map
image = ee.ImageCollection('NOAA/VIIRS/DNB/MONTHLY_V1/VCMCFG') \
  .filterDate('2017-01-01', '2017-01-02')\
  .select('avg_rad')
vis = {'bands': ['avg_rad'], 'min': 0.0, 'max': 30.0, 'palette': ['000004', '160b39', '400a67', '69166e', '902568', 'd94d3d', 'f1711f', 'fb9d07', 'f8cd37', 'fcffa4']}
Map.addLayer(image, vis, 'image')
Map.setCenter(37.7743, 48.0121, 13)

The 'google-api-core' distribution was not found and is required by the application

After installing the plugin, I get this message, I did tests in several versions of Qgis and the message persists


No se pudo cargar el complemento 'ee_plugin' debido a un error al llamar a su método classFactory()

pkg_resources.DistributionNotFound: The 'google-api-core' distribution was not found and is required by the application
Traceback (most recent call last):
File "C:/PROGRA1/QGIS31.16/apps/qgis/./python\qgis\utils.py", line 334, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Users/SIGYURY/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin_init
.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "C:/PROGRA1/QGIS31.16/apps/qgis/./python\qgis\utils.py", line 792, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Users/SIGYURY/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 22, in
import ee
File "C:/PROGRA1/QGIS31.16/apps/qgis/./python\qgis\utils.py", line 792, in _import
mod = builtin_import(name, globals, locals, fromlist, level)
File "C:\Users\SIGYURY\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_init
.py", line 17, in
from . import batch
File "C:/PROGRA1/QGIS31.16/apps/qgis/./python\qgis\utils.py", line 792, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:\Users\SIGYURY\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\batch.py", line 15, in
from . import _cloud_api_utils
File "C:/PROGRA1/QGIS31.16/apps/qgis/./python\qgis\utils.py", line 792, in _import
mod = builtin_import(name, globals, locals, fromlist, level)
File "C:\Users\SIGYURY\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_cloud_api_utils.py", line 22, in
from googleapiclient import discovery
File "C:/PROGRA1/QGIS31.16/apps/qgis/./python\qgis\utils.py", line 792, in import
mod = builtin_import(name, globals, locals, fromlist, level)
File "C:\Users\SIGYURY\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\googleapiclient\discovery.py", line 49, in
import google.api_core.client_options
File "C:/PROGRA1/QGIS31.16/apps/qgis/./python\qgis\utils.py", line 792, in import
mod = builtin_import(name, globals, locals, fromlist, level)
File "C:\Users\SIGYURY\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\google\api_core_init
.py", line 23, in
version = get_distribution("google-api-core").version
File "C:\PROGRA1\QGIS31.16\apps\Python37\lib\site-packages\pkg_resources_init
.py", line 472, in get_distribution
dist = get_provider(dist)
File "C:\PROGRA1\QGIS31.16\apps\Python37\lib\site-packages\pkg_resources_init
.py", line 344, in get_provider
return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
File "C:\PROGRA1\QGIS31.16\apps\Python37\lib\site-packages\pkg_resources_init
.py", line 892, in require
needed = self.resolve(parse_requirements(requirements))
File "C:\PROGRA1\QGIS31.16\apps\Python37\lib\site-packages\pkg_resources_init
.py", line 778, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'google-api-core' distribution was not found and is required by the application

Versión de Python: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
Versión de QGIS: 3.16.0-Hannover Hannover, 43b64b13f3

Ruta de Python:
C:/PROGRA1/QGIS31.16/apps/qgis/./python
C:/Users/SIGYURY/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/SIGYURY/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA1/QGIS31.16/apps/qgis/./python/plugins
C:\PROGRA1\QGIS31.16\apps\Python37
C:\PROGRA1\QGIS31.16\apps\Python37\Scripts
C:\Program Files\QGIS 3.16\bin\python37.zip
C:\PROGRA1\QGIS31.16\apps\Python37\DLLs
C:\PROGRA1\QGIS31.16\apps\Python37\lib
C:\Program Files\QGIS 3.16\bin
C:\PROGRA1\QGIS31.16\apps\Python37\lib\site-packages
C:\PROGRA1\QGIS31.16\apps\Python37\lib\site-packages\win32
C:\PROGRA1\QGIS31.16\apps\Python37\lib\site-packages\win32\lib
C:\PROGRA1\QGIS31.16\apps\Python37\lib\site-packages\Pythonwin
C:/Users/SIGYURY/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:\Users\SIGYURY\AppData\Local\acatama\python37
C:\Users\SIGYURY\AppData\Local\acatama\python37\lib\site-packages
C:\Users\SIGYURY\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows

Release v0.0.3

There have been important bugfixes since v0.0.2 affecting new users

v0.0.3

  • EE raster layer inspector
  • Show some useful EE properties (bands, value types) in QGIS layer properties dialog
  • Fix GEE url authentication function if the credentials is not exists #63
  • Fix crash if the authentication dialog is cancelled or not filled by the user
  • Init the Google Earth Engine user authorization system only when the user is going to use the plugin
  • Fixed the authentication dialog when the url shortener doesn't work by any reason #66
  • Fix loading extra python dependencies to the plugin, fix #62

Getting error while installing ee plugin

Couldn't load plugin 'ee_plugin' due to an error when calling its classFactory() method

pkg_resources.DistributionNotFound: The 'google-api-core' distribution was not found and is required by the application
Traceback (most recent call last):
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 334, in _startPlugin
plugins[packageName] = package.classFactory(iface)
File "/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python/plugins/ee_plugin/init.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 792, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python/plugins/ee_plugin/ee_plugin.py", line 22, in
import ee
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 792, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python/plugins/ee_plugin/extlibs_darwin/ee/init.py", line 17, in
from . import batch
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 792, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python/plugins/ee_plugin/extlibs_darwin/ee/batch.py", line 15, in
from . import _cloud_api_utils
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 792, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python/plugins/ee_plugin/extlibs_darwin/ee/_cloud_api_utils.py", line 22, in
from googleapiclient import discovery
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 792, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python/plugins/ee_plugin/extlibs_darwin/googleapiclient/discovery.py", line 49, in
import google.api_core.client_options
File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 792, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python/plugins/ee_plugin/extlibs_darwin/google/api_core/init.py", line 23, in
version = get_distribution("google-api-core").version
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/pkg_resources/init.py", line 482, in get_distribution
dist = get_provider(dist)
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/pkg_resources/init.py", line 358, in get_provider
return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/pkg_resources/init.py", line 901, in require
needed = self.resolve(parse_requirements(requirements))
File "/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/pkg_resources/init.py", line 787, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'google-api-core' distribution was not found and is required by the application

Python version: 3.7.7 (default, Sep 22 2020, 10:25:18) [Clang 12.0.0 (clang-1200.0.32.2)]
QGIS version: 3.16.0-Hannover Hannover, 4af1cbfb97

Python Path:
/Applications/QGIS.app/Contents/MacOS/../Resources/python
/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python
/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python/plugins
/Applications/QGIS.app/Contents/MacOS/../Resources/python/plugins
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/click_plugins-1.1.1-py3.7.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/GDAL-3.1.2-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/geopandas-0.8.1-py3.7.egg
/Applications/QGIS.app/Contents/MacOS/lib/python37.zip
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/numba-0.50.1-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/pandas-1.1.0-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/rasterio-1.1.5-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/statsmodels-0.11.1-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/netCDF4-1.5.3-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/Fiona-1.8.13.post1-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/cftime-1.2.1-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/lib-dynload
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/Pillow-7.2.0-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/matplotlib-3.3.0-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/Rtree-0.9.4-py3.7.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/opencv_contrib_python-4.3.0.36-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/patsy-0.5.1-py3.7.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/numpy-1.19.1-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/pyproj-2.6.0-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/affine-2.3.0-py3.7.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/snuggs-1.4.7-py3.7.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7/site-packages/scipy-1.5.1-py3.7-macosx-10.13.0-x86_64.egg
/Applications/QGIS.app/Contents/MacOS/lib/python3.7
/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python
/Users/rahulgour/Library/Application Support/QGIS/QGIS3/profiles/RahulK/python/plugins/ee_plugin/extlibs_darwin

GSOC 2020 QGIS earthengine plugin

Hello Everyone,

I dont have any issues. I just want to contribute to this QGIS earth engine plugin. Is there any way I can contribute through Google Summer of Code(GSOC)?

Plugin fails to initialize with AttributeError: module 'six.moves' has no attribute 'collections_abc'

I have installed the current version (0.0.2) of the plugin. When starting QGIS, I get a window that says:

Couldn't load plugin 'ee_plugin' due to an error when calling its classFactory() method
AttributeError: module 'six.moves' has no attribute 'collections_abc'
Traceback (most recent call last):
File "/Applications/QGIS3.12.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 334, in _startPlugin
plugins[packageName] = package.classFactory(iface)
File "/Users/marius/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/init.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "/Applications/QGIS3.12.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 744, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/Users/marius/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/ee_plugin.py", line 26, in
ee_plugin.ee_auth.init()
File "/Users/marius/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/ee_auth.py", line 19, in init
ee.Initialize()
File "/Users/marius/Library/Python/3.7/lib/python/site-packages/ee/init.py", line 123, in Initialize
http_transport=http_transport)
File "/Users/marius/Library/Python/3.7/lib/python/site-packages/ee/data.py", line 210, in initialize
_install_cloud_api_resource()
File "/Users/marius/Library/Python/3.7/lib/python/site-packages/ee/data.py", line 287, in _install_cloud_api_resource
http_transport=_http_transport)
File "/Users/marius/Library/Python/3.7/lib/python/site-packages/ee/_cloud_api_utils.py", line 149, in build_cloud_resource
model=alt_model)
File "/Users/marius/Library/Python/3.7/lib/python/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
return wrapped(*args, **kwargs)
File "/Users/marius/Library/Python/3.7/lib/python/site-packages/googleapiclient/discovery.py", line 288, in build
adc_key_path=adc_key_path,
File "/Users/marius/Library/Python/3.7/lib/python/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
return wrapped(*args, **kwargs)
File "/Users/marius/Library/Python/3.7/lib/python/site-packages/googleapiclient/discovery.py", line 466, in build_from_document
if isinstance(client_options, six.moves.collections_abc.Mapping):
AttributeError: module 'six.moves' has no attribute 'collections_abc' `

Python version: 3.7.3 (default, Mar 27 2019, 09:23:15) [Clang 10.0.1 (clang-1001.0.46.3)]
QGIS version: 3.12.2-București București, 8a1fb33634

Python Path:
/Applications/QGIS3.12.app/Contents/MacOS/../Resources/python
/Users/marius/Library/Application Support/QGIS/QGIS3/profiles/default/python
/Users/marius/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins
/Applications/QGIS3.12.app/Contents/MacOS/../Resources/python/plugins
/Applications/QGIS3.12.app/Contents/Resources/python
/Applications/QGIS3.12.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7
/Applications/QGIS3.12.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python37.zip
/Applications/QGIS3.12.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/site-packages
/Applications/QGIS3.12.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/lib-dynload
/Users/marius/Library/Python/3.7/lib/python/site-packages
/Applications/QGIS3.12.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/site-packages/geos
/Users/marius/Library/Application Support/QGIS/QGIS3/profiles/default/python
/Users/marius/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin

I get the same error when typing
import ee
ee.Initialize()
in the QGIS Python console.

I authenticated the Python API in Terminal, similar to how asuhag did it here. In Terminal the API works fine. I use QGIS 3.12.2 and Python 3.7.3 on MacOS 10.15.6. I have updated six to the current version (1.15.0) and confirmed in the documentation that six does in fact have an attribute called collections_abc. What could be the cause of that error?

Add authentication for plugin

Currently, the plugin expects the user to be authenticated using python EE library, it would be better to add check if the user needs to be authenticated once the plugin is installed. Maybe it makes sense to support some functionality even without requiring to login (e.g. use a service account to run some read-only operations).

Error in Installing the qgis-earthengine-plugin

Trying to install qgis-earthengine-plugin, this is what i get. Can anyone explain what is happening and help out?

Couldn't load plugin 'qgis-earthengine-plugin-master' due to an error when calling its classFactory() method

ImportError: cannot import name 'provider' from 'ee_plugin' (C:/Users/Lenovo/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin_init_.py)
Traceback (most recent call last):
File "C:/OSGEO41/apps/qgis/./python\qgis\utils.py", line 334, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Users/Lenovo/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis-earthengine-plugin-master_init
.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "C:/OSGEO4
1/apps/qgis/./python\qgis\utils.py", line 744, in _import
mod = builtin_import(name, globals, locals, fromlist, level)
File "C:/Users/Lenovo/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis-earthengine-plugin-master\ee_plugin.py", line 26, in
from ee_plugin import provider
ImportError: cannot import name 'provider' from 'ee_plugin' (C:/Users/Lenovo/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin_init
.py)

Python version: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
QGIS version: 3.12.2-București București, 8a1fb33634

Python Path:
C:/OSGEO41/apps/qgis/./python
C:/Users/Lenovo/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/Lenovo/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/OSGEO4
1/apps/qgis/./python/plugins
C:\OSGEO41\apps\Python37
C:\OSGEO4
1\apps\Python37\Scripts
C:\OSGeo4W64\bin\python37.zip
C:\OSGEO41\apps\Python37\DLLs
C:\OSGEO4
1\apps\Python37\lib
C:\OSGeo4W64\bin
C:\OSGEO41\apps\Python37\lib\site-packages
C:\OSGEO4
1\apps\Python37\lib\site-packages\win32
C:\OSGEO41\apps\Python37\lib\site-packages\win32\lib
C:\OSGEO4
1\apps\Python37\lib\site-packages\Pythonwin
C:/Users/Lenovo/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/Lenovo/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\CloudMasking\libs
C:\Users\Lenovo\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows
C:/Users/Lenovo/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\excel_sync\libs\xlrd-1.2.0-py2.py3-none-any.whl
C:/Users/Lenovo/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\excel_sync\libs\xlwt-1.3.0-py2.py3-none-any.whl
C:\Users\Lenovo\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\qgis-earthengine-plugin-master\extlibs_windows
C:\Users\Lenovo\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\qgis-earthengine-plugin-master\extlibs_windows

syntax or compile error on trying to call authentication for plugin on qgis 3.16?

Here are various traces when trying command in python console qgis to authenticate.
There was not a pop up for authentication at anypoint after plugin installation so I tried the python editor which aslo did not work for me. This is on windows 10 with QGIS 3.6 and I have bitdefender if that matters.

2020-12-12T15:50:42 CRITICAL Traceback (most recent call last):
File "C:\Users\lewis\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 230, in get_persistent_credentials
tokens = json.load(open(oauth.get_credentials_path()))
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\lewis/.config/earthengine/credentials'

         During handling of the above exception, another exception occurred:
         
         Traceback (most recent call last):
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
          ee.Initialize()
          File "C:\Users\lewis\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\__init__.py", line 114, in Initialize
          credentials = data.get_persistent_credentials()
          File "C:\Users\lewis\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 241, in get_persistent_credentials
          'Please authorize access to your Earth Engine account by '
         ee.ee_exception.EEException: Please authorize access to your Earth Engine account by running
         
         earthengine authenticate
         
         in your command line, and then retry.
         
         During handling of the above exception, another exception occurred:
         
         Traceback (most recent call last):
          File "C:/PROGRA~1/QGIS3~1.16/apps/qgis/./python\qgis\utils.py", line 334, in _startPlugin
          plugins[packageName] = package.classFactory(iface)
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 25, in classFactory
          from .ee_plugin import GoogleEarthEnginePlugin
          File "C:/PROGRA~1/QGIS3~1.16/apps/qgis/./python\qgis\utils.py", line 792, in _import
          mod = _builtin_import(name, globals, locals, fromlist, level)
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in 
          ee_plugin.ee_auth.init()
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 21, in init
          authenticate()
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 32, in authenticate
          auth_url = ee.oauth.get_authorization_url()
         TypeError: get_authorization_url() missing 1 required positional argument: 'code_challenge'

2020-12-12T15:55:08 CRITICAL Traceback (most recent call last):
File "C:\Users\lewis\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 230, in get_persistent_credentials
tokens = json.load(open(oauth.get_credentials_path()))
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\lewis/.config/earthengine/credentials'

         During handling of the above exception, another exception occurred:
         
         Traceback (most recent call last):
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
          ee.Initialize()
          File "C:\Users\lewis\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\__init__.py", line 114, in Initialize
          credentials = data.get_persistent_credentials()
          File "C:\Users\lewis\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 241, in get_persistent_credentials
          'Please authorize access to your Earth Engine account by '
         ee.ee_exception.EEException: Please authorize access to your Earth Engine account by running
         
         earthengine authenticate
         
         in your command line, and then retry.
         
         During handling of the above exception, another exception occurred:
         
         Traceback (most recent call last):
          File "C:/PROGRA~1/QGIS3~1.16/apps/qgis/./python\qgis\utils.py", line 334, in _startPlugin
          plugins[packageName] = package.classFactory(iface)
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 25, in classFactory
          from .ee_plugin import GoogleEarthEnginePlugin
          File "C:/PROGRA~1/QGIS3~1.16/apps/qgis/./python\qgis\utils.py", line 792, in _import
          mod = _builtin_import(name, globals, locals, fromlist, level)
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in 
          ee_plugin.ee_auth.init()
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 21, in init
          authenticate()
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 32, in authenticate
          auth_url = ee.oauth.get_authorization_url()
         TypeError: get_authorization_url() missing 1 required positional argument: 'code_challenge'

2020-12-12T15:55:27 CRITICAL Traceback (most recent call last):
File "C:\Users\lewis\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 230, in get_persistent_credentials
tokens = json.load(open(oauth.get_credentials_path()))
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\lewis/.config/earthengine/credentials'

         During handling of the above exception, another exception occurred:
         
         Traceback (most recent call last):
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
          ee.Initialize()
          File "C:\Users\lewis\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\__init__.py", line 114, in Initialize
          credentials = data.get_persistent_credentials()
          File "C:\Users\lewis\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 241, in get_persistent_credentials
          'Please authorize access to your Earth Engine account by '
         ee.ee_exception.EEException: Please authorize access to your Earth Engine account by running
         
         earthengine authenticate
         
         in your command line, and then retry.
         
         During handling of the above exception, another exception occurred:
         
         Traceback (most recent call last):
          File "C:/PROGRA~1/QGIS3~1.16/apps/qgis/./python\qgis\utils.py", line 334, in _startPlugin
          plugins[packageName] = package.classFactory(iface)
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 25, in classFactory
          from .ee_plugin import GoogleEarthEnginePlugin
          File "C:/PROGRA~1/QGIS3~1.16/apps/qgis/./python\qgis\utils.py", line 792, in _import
          mod = _builtin_import(name, globals, locals, fromlist, level)
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in 
          ee_plugin.ee_auth.init()
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 21, in init
          authenticate()
          File "C:/Users/lewis/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 32, in authenticate
          auth_url = ee.oauth.get_authorization_url()
         TypeError: get_authorization_url() missing 1 required positional argument: 'code_challenge'

Authentification

Hi,

I found this qgis plugin in the new plugin section and I think that is a powerfull tool.
I try to start this plugin with the "Hello word" examplo and I'cant run google earth engine app, always open authentification tab and show me a sign in code but don´t start this simple hello word example.

image

help me please

Add CI

Not sure how this kind of QGIS plugins can be tested automatically, but it would be good to enforce TDD for this plugin development, e.g. TravisCI or other.

Map.centerObject() function not accepting Geometry

It seems the Map.centerObject() function only accepts a FeatureCollection as a parameter. It would be nice if it can also accept a Geometry as a parameter. In this way, it behaves the same way as the JavaScript version.

import ee 
from ee_plugin import Map 

# Create a geodesic polygon.
polygon = ee.Geometry.Polygon([
  [[-5, 40], [65, 40], [65, 60], [-5, 60], [-5, 60]]
])

# Create a planar polygon.
planarPolygon = ee.Geometry(polygon, {}, False)

# polygon = ee.FeatureCollection(polygon)
# planarPolygon = ee.FeatureCollection(planarPolygon)

# Display the polygons by adding them to the map.
Map.centerObject(polygon)
Map.addLayer(polygon, {'color': 'FF0000'}, 'geodesic polygon')
Map.addLayer(planarPolygon, {'color': '000000'}, 'planar polygon')

Python libs conflicts

To avoid python libraries' conflict between system and plugin, try to use the libraries in the system before using the libs inside the plugin. Related #67

Displaying FeatureCollection

It seems the Map.addLayer() function renders FeatureCollection differently than the GEE Code Editor. By default, the FeatureCollection is display as all black, which makes it difficult to distinguish individual features within a FeatureCollection. See below.

import ee
from ee_plugin import Map

fc = ee.FeatureCollection('TIGER/2018/States')

image = ee.Image().paint(fc, 0, 2)
Map.setCenter(-99.844, 37.649, 5)
Map.addLayer(image, {'palette': 'FF0000'}, 'TIGER/2018/States')
Map.addLayer(fc, {}, 'US States')  # This layer is all black

GEE script

Map.addLayer() resulting in KeyError: 'ee_plugin'

1. Problem description
When i run the fellow code, everything is OK:

# -*- coding:utf-8 -*-
import ee
from ee_plugin import Map

image = ee.Image('USGS/SRTMGL1_003').unitScale(0, 5000)

but KeyError: 'ee_plugin' error occured after execlute Map.addLayer():

Map.addLayer(image, {'palette': ['blue', 'red'], 'min': 0, 'max': 1000}, 'dem', True)

KeyError: 'ee_plugin' error

2. Enviorment

OS: Win 10 x64
QGIS: 3.10.1
Python: 3.7.0

mac os cannot load the plugin, but the earthengine authenticate has been successfully verified

I can download the plugin, but it can't work. This is the error.

Unable to load plugin "ee_plugin" due to an error when calling its classFactory() method

TimeoutError: [Errno 60] Operation timed out
Traceback (most recent call last):
File "/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 334, in _startPlugin
plugins[packageName] = package.classFactory(iface)
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/init.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 744, in import
mod = builtin_import(name, globals, locals, fromlist, level)
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/ee_plugin.py", line 26, in
ee_plugin.ee_auth.init()
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/ee_auth.py", line 19, in init
ee.Initialize()
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/ee/init.py", line 123, in Initialize
ApiFunction.initialize()
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/ee/apifunction.py", line 154, in initialize
signatures = data.getAlgorithms()
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/ee/data.py", line 952, in getAlgorithms
return send
('/algorithms', {}, 'GET')
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/ee/data.py", line 1762, in send

response, content = send_with_backoff()
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/ee/data.py", line 1753, in send_with_backoff
url, method=opt_method, body=payload, headers=headers)
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/google_auth_httplib2.py", line 187, in request
self._request, method, uri, request_headers)
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/google/auth/credentials.py", line 124, in before_request
self.refresh(request)
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/google/oauth2/credentials.py", line 152, in refresh
self._scopes,
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/google/oauth2/_client.py", line 241, in refresh_grant
response_data = _token_endpoint_request(request, token_uri, body)
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/google/oauth2/_client.py", line 105, in _token_endpoint_request
response = request(method="POST", url=token_uri, headers=headers, body=body)
File "/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin/google_auth_httplib2.py", line 116, in call
url, method=method, body=body, headers=headers, **kwargs)
File "/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/httplib2/init.py", line 1926, in request
cachekey,
File "/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/httplib2/init.py", line 1595, in _request
conn, request_uri, method, body, headers
File "/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/httplib2/init.py", line 1501, in _conn_request
conn.connect()
File "/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/httplib2/init.py", line 1356, in connect
raise socket_err
File "/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/httplib2/init.py", line 1289, in connect
sock.connect((self.host, self.port))
TimeoutError: [Errno 60] Operation timed out

Python版本: 3.7.3 (default, Mar 27 2019, 09:23:15) [Clang 10.0.1 (clang-1001.0.46.3)]
QGIS版本: 3.10.6-A Coruña A Coruña, ec80021f49

Python路径:
/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/geohey_toolbox
/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python
/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python
/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins
/Applications/QGIS3.10.app/Contents/MacOS/../Resources/python/plugins
/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/lib-dynload
/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7
/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python37.zip
/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/site-packages
/Applications/QGIS3.10.app/Contents/Resources/python
/Applications/QGIS3.10.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.7/site-packages/geos
/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python
/Users/mty/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ee_plugin/extlibs_darwin

Enable GitHub Pages

Hi Gena, I don't have access in the settings, please could you enable the GitHub Pages in settings -> options and enable /docs folder similar to this:

image

Authentication Error

Couldn't load plugin 'ee_plugin' due to an error when calling its classFactory() method

TypeError: get_authorization_url() missing 1 required positional argument: 'code_challenge'
Traceback (most recent call last):
File "C:\Users\udith\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 230, in get_persistent_credentials
tokens = json.load(open(oauth.get_credentials_path()))
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\udith/.config/earthengine/credentials'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:/Users/udith/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
ee.Initialize()
File "C:\Users\udith\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_init_.py", line 114, in Initialize
credentials = data.get_persistent_credentials()
File "C:\Users\udith\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 241, in get_persistent_credentials
'Please authorize access to your Earth Engine account by '
ee.ee_exception.EEException: Please authorize access to your Earth Engine account by running

earthengine authenticate

in your command line, and then retry.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:/PROGRA1/QGIS31.14/apps/qgis/./python\qgis\utils.py", line 334, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Users/udith/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin_init
.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "C:/PROGRA1/QGIS31.14/apps/qgis/./python\qgis\utils.py", line 743, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Users/udith/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in
ee_plugin.ee_auth.init()
File "C:/Users/udith/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 21, in init
authenticate()
File "C:/Users/udith/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 32, in authenticate
auth_url = ee.oauth.get_authorization_url()
TypeError: get_authorization_url() missing 1 required positional argument: 'code_challenge'

Python version: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
QGIS version: 3.14.0-Pi Pi, 9f7028fd23

Python Path:
C:/PROGRA1/QGIS31.14/apps/qgis/./python
C:/Users/udith/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/udith/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA1/QGIS31.14/apps/qgis/./python/plugins
C:\PROGRA1\QGIS31.14\apps\Python37
C:\PROGRA1\QGIS31.14\apps\Python37\Scripts
C:\Program Files\QGIS 3.14\bin\python37.zip
C:\PROGRA1\QGIS31.14\apps\Python37\DLLs
C:\PROGRA1\QGIS31.14\apps\Python37\lib
C:\Program Files\QGIS 3.14\bin
C:\PROGRA1\QGIS31.14\apps\Python37\lib\site-packages
C:\PROGRA1\QGIS31.14\apps\Python37\lib\site-packages\win32
C:\PROGRA1\QGIS31.14\apps\Python37\lib\site-packages\win32\lib
C:\PROGRA1\QGIS31.14\apps\Python37\lib\site-packages\Pythonwin
C:/Users/udith/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:\Users\udith\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows

qgis-earthengine-plugin cannot be use

Hi, I just met the problem, and the qgis-earthengine-plugin cannot be use.
When the plugin had been installed, the problem appeared.
My OS and QGIS version are Windows 10, QGIS 3.10 'A Coruña'.

I thought that it may be caused by different directory definition (/ or ), but when I change to the Mac, the same problem still appear.

The detailed information is showed as bellow.

Couldn't load plugin 'ee_plugin' due to an error when calling its classFactory() method

ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接 (The remote host forcibly close an existing connection)。
Traceback (most recent call last):
File "C:\Users\DongjieFu\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 218, in get_persistent_credentials
tokens = json.load(open(oauth.get_credentials_path()))
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\DongjieFu/.config/earthengine/credentials'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:/Users/DongjieFu/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
ee.Initialize()
File "C:\Users\DongjieFu\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_init_.py", line 112, in Initialize
credentials = data.get_persistent_credentials()
File "C:\Users\DongjieFu\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 229, in get_persistent_credentials
'Please authorize access to your Earth Engine account by '
ee.ee_exception.EEException: Please authorize access to your Earth Engine account by running

earthengine authenticate

in your command line, and then retry.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "d:/Program Files/QGIS 3.10/apps/qgis/./python\qgis\utils.py", line 334, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Users/DongjieFu/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin_init
.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "d:/Program Files/QGIS 3.10/apps/qgis/./python\qgis\utils.py", line 737, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Users/DongjieFu/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in
ee_plugin.ee_auth.init()
File "C:/Users/DongjieFu/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 21, in init
authenticate()
File "C:/Users/DongjieFu/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 45, in authenticate
'URL: ' + tiny_url(auth_url))
File "C:/Users/DongjieFu/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 27, in tiny_url
tinyurl = urllib.request.urlopen(apiurl + url).read()
File "d:\Program Files\QGIS 3.10\apps\Python37\lib\urllib\request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "d:\Program Files\QGIS 3.10\apps\Python37\lib\urllib\request.py", line 525, in open
response = self._open(req, data)
File "d:\Program Files\QGIS 3.10\apps\Python37\lib\urllib\request.py", line 543, in _open
'_open', req)
File "d:\Program Files\QGIS 3.10\apps\Python37\lib\urllib\request.py", line 503, in _call_chain
result = func(*args)
File "d:\Program Files\QGIS 3.10\apps\Python37\lib\urllib\request.py", line 1345, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "d:\Program Files\QGIS 3.10\apps\Python37\lib\urllib\request.py", line 1320, in do_open
r = h.getresponse()
File "d:\Program Files\QGIS 3.10\apps\Python37\lib\http\client.py", line 1321, in getresponse
response.begin()
File "d:\Program Files\QGIS 3.10\apps\Python37\lib\http\client.py", line 296, in begin
version, status, reason = self._read_status()
File "d:\Program Files\QGIS 3.10\apps\Python37\lib\http\client.py", line 257, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "d:\Program Files\QGIS 3.10\apps\Python37\lib\socket.py", line 589, in readinto
return self._sock.recv_into(b)
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

Python version: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
QGIS version: 3.10.0-A Coruña A Coruña, 6ffa89eb3e

Python Path:
d:/Program Files/QGIS 3.10/apps/qgis/./python
C:/Users/DongjieFu/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/DongjieFu/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
d:/Program Files/QGIS 3.10/apps/qgis/./python/plugins
D:\Program Files\QGIS 3.10\bin\python37.zip
d:\Program Files\QGIS 3.10\apps\Python37\DLLs
d:\Program Files\QGIS 3.10\apps\Python37\lib
D:\Program Files\QGIS 3.10\bin
d:\Program Files\QGIS 3.10\apps\Python37
d:\Program Files\QGIS 3.10\apps\Python37\lib\site-packages
d:\Program Files\QGIS 3.10\apps\Python37\lib\site-packages\win32
d:\Program Files\QGIS 3.10\apps\Python37\lib\site-packages\win32\lib
d:\Program Files\QGIS 3.10\apps\Python37\lib\site-packages\Pythonwin
C:/Users/DongjieFu/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:\Users\DongjieFu\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows

Please, update earthengine python api.

Please, update earthengine python api.
Google says:
"Earth Engine servers now require client library v0.1.215, released March 11. Please update to the latest Python"
So, it is possible that soon the plug in does not work anymore.

GEE Authentication problem when re-installing the plugin

Dear Genna,

I have uninstalled the old version 0.0.1 and installed the new one 0.0.2

I immediately get this error in the pop-up window:

Couldn't load plugin 'ee_plugin' due to an error when calling its classFactory() method

google.auth.exceptions.RefreshError: ('invalid_grant: Token has been expired or revoked.', '{\n "error": "invalid_grant",\n "error_description": "Token has been expired or revoked."\n}')
Traceback (most recent call last):
File "C:/PROGRA1/QGIS31.12/apps/qgis/./python\qgis\utils.py", line 334, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Users/Alfonso Sanchez-Paus/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin_init
.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "C:/PROGRA1/QGIS31.12/apps/qgis/./python\qgis\utils.py", line 744, in _import
mod = builtin_import(name, globals, locals, fromlist, level)
File "C:/Users/Alfonso Sanchez-Paus/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in
ee_plugin.ee_auth.init()
File "C:/Users/Alfonso Sanchez-Paus/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
ee.Initialize()
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_init
.py", line 123, in Initialize
http_transport=http_transport)
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 210, in initialize
_install_cloud_api_resource()
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 287, in _install_cloud_api_resource
http_transport=_http_transport)
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_cloud_api_utils.py", line 149, in build_cloud_resource
model=alt_model)
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\googleapiclient_helpers.py", line 134, in positional_wrapper
return wrapped(*args, **kwargs)
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\googleapiclient\discovery.py", line 246, in build
requested_url, discovery_http, cache_discovery, cache, developerKey
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\googleapiclient\discovery.py", line 305, in _retrieve_discovery_doc
resp, content = http.request(actual_url)
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\google_auth_httplib2.py", line 187, in request
self._request, method, uri, request_headers)
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\google\auth\credentials.py", line 124, in before_request
self.refresh(request)
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\google\oauth2\credentials.py", line 183, in refresh
self._scopes,
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\google\oauth2_client.py", line 248, in refresh_grant
response_data = _token_endpoint_request(request, token_uri, body)
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\google\oauth2_client.py", line 124, in _token_endpoint_request
_handle_error_response(response_body)
File "C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\google\oauth2_client.py", line 60, in _handle_error_response
raise exceptions.RefreshError(error_details, response_body)
google.auth.exceptions.RefreshError: ('invalid_grant: Token has been expired or revoked.', '{\n "error": "invalid_grant",\n "error_description": "Token has been expired or revoked."\n}')

Python version: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
QGIS version: 3.12.1-București București, 121cc00ff0

Python Path:
C:/PROGRA1/QGIS31.12/apps/qgis/./python
C:/Users/Alfonso Sanchez-Paus/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/Alfonso Sanchez-Paus/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA1/QGIS31.12/apps/qgis/./python/plugins
C:\PROGRA1\QGIS31.12\apps\Python37
C:\PROGRA1\QGIS31.12\apps\Python37\Scripts
C:\Program Files\QGIS 3.12\bin\python37.zip
C:\PROGRA1\QGIS31.12\apps\Python37\DLLs
C:\PROGRA1\QGIS31.12\apps\Python37\lib
C:\Program Files\QGIS 3.12\bin
C:\PROGRA1\QGIS31.12\apps\Python37\lib\site-packages
C:\PROGRA1\QGIS31.12\apps\Python37\lib\site-packages\win32
C:\PROGRA1\QGIS31.12\apps\Python37\lib\site-packages\win32\lib
C:\PROGRA1\QGIS31.12\apps\Python37\lib\site-packages\Pythonwin
C:/Users/Alfonso Sanchez-Paus/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:\Users\Alfonso Sanchez-Paus\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows

Error during installation: 'google-api-core' distribution not found

During installation of the plugin i get the following error:

Couldn't load plugin 'ee_plugin' due to an error when calling its classFactory() method 

pkg_resources.DistributionNotFound: The 'google-api-core' distribution was not found and is required by the application 
Traceback (most recent call last):
  File "E:/Programs/OSGeo4Win/apps/qgis-ltr/./python\qgis\utils.py", line 334, in _startPlugin
    plugins[packageName] = package.classFactory(iface)
  File "C:/Users/XXX/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 25, in classFactory
    from .ee_plugin import GoogleEarthEnginePlugin
  File "E:/Programs/OSGeo4Win/apps/qgis-ltr/./python\qgis\utils.py", line 744, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:/Users/XXX/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 22, in 
    import ee
  File "E:/Programs/OSGeo4Win/apps/qgis-ltr/./python\qgis\utils.py", line 744, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\Users\XXX\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\__init__.py", line 17, in 
    from . import batch
  File "E:/Programs/OSGeo4Win/apps/qgis-ltr/./python\qgis\utils.py", line 744, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\Users\XXX\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\batch.py", line 15, in 
    from . import _cloud_api_utils
  File "E:/Programs/OSGeo4Win/apps/qgis-ltr/./python\qgis\utils.py", line 744, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\Users\XXX\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\_cloud_api_utils.py", line 22, in 
    from googleapiclient import discovery
  File "E:/Programs/OSGeo4Win/apps/qgis-ltr/./python\qgis\utils.py", line 744, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\Users\XXX\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\googleapiclient\discovery.py", line 49, in 
    import google.api_core.client_options
  File "E:/Programs/OSGeo4Win/apps/qgis-ltr/./python\qgis\utils.py", line 744, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\Users\XXX\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\google\api_core\__init__.py", line 23, in 
    __version__ = get_distribution("google-api-core").version
  File "E:\Programs\OSGeo4Win\apps\Python37\lib\site-packages\pkg_resources\__init__.py", line 482, in get_distribution
    dist = get_provider(dist)
  File "E:\Programs\OSGeo4Win\apps\Python37\lib\site-packages\pkg_resources\__init__.py", line 358, in get_provider
    return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
  File "E:\Programs\OSGeo4Win\apps\Python37\lib\site-packages\pkg_resources\__init__.py", line 901, in require
    needed = self.resolve(parse_requirements(requirements))
  File "E:\Programs\OSGeo4Win\apps\Python37\lib\site-packages\pkg_resources\__init__.py", line 787, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'google-api-core' distribution was not found and is required by the application


Python version: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] 
QGIS version: 3.10.6-A Coruña A Coruña, ec80021f49

(updated also to 3.10.7 - same error)

when i try fix that with

python -m pip install "google-core-api"

in a qgis python console, i feel like i am getting into an installation mess i would rather try to avoid. The plugin loader is then complaining about more stuff ("google-api-python-client not found", "ee.exception not found in ee"...).

i didnt found any prerequisite documention for the installation and i feel like there is something wrong if its not a transient error.

Error

Hello,

on the first installation attempt, the error appeared below. Then, I clicked on reinstall complement, apparently it is installed, but I reproduce here the error as it appeared:

Impossível carregar complemento 'ee_plugin' Devido a um erro ao chamar o método Class Factory().

TypeError: get_authorization_url() missing 1 required positional argument: 'code_challenge'
Traceback (most recent call last):
File "C:\Users\vinic\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 230, in get_persistent_credentials
tokens = json.load(open(oauth.get_credentials_path()))
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\vinic/.config/earthengine/credentials'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:/Users/vinic/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 19, in init
ee.Initialize()
File "C:\Users\vinic\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee_init_.py", line 114, in Initialize
credentials = data.get_persistent_credentials()
File "C:\Users\vinic\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows\ee\data.py", line 241, in get_persistent_credentials
'Please authorize access to your Earth Engine account by '
ee.ee_exception.EEException: Please authorize access to your Earth Engine account by running

earthengine authenticate

in your command line, and then retry.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:/PROGRA1/QGIS31.10/apps/qgis-ltr/./python\qgis\utils.py", line 334, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "C:/Users/vinic/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin_init
.py", line 25, in classFactory
from .ee_plugin import GoogleEarthEnginePlugin
File "C:/PROGRA1/QGIS31.10/apps/qgis-ltr/./python\qgis\utils.py", line 743, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "C:/Users/vinic/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_plugin.py", line 26, in
ee_plugin.ee_auth.init()
File "C:/Users/vinic/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 21, in init
authenticate()
File "C:/Users/vinic/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\ee_auth.py", line 32, in authenticate
auth_url = ee.oauth.get_authorization_url()
TypeError: get_authorization_url() missing 1 required positional argument: 'code_challenge'

Versão do Python: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
Versão do QGIS: 3.10.8-A Coruña A Coruña, d09a4f2388

Caminho do Python:
C:/PROGRA1/QGIS31.10/apps/qgis-ltr/./python
C:/Users/vinic/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/vinic/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA1/QGIS31.10/apps/qgis-ltr/./python/plugins
C:\PROGRA1\QGIS31.10\apps\Python37
C:\PROGRA1\QGIS31.10\apps\Python37\Scripts
C:\Program Files\QGIS 3.10\bin\python37.zip
C:\PROGRA1\QGIS31.10\apps\Python37\DLLs
C:\PROGRA1\QGIS31.10\apps\Python37\lib
C:\Program Files\QGIS 3.10\bin
C:\PROGRA1\QGIS31.10\apps\Python37\lib\site-packages
C:\PROGRA1\QGIS31.10\apps\Python37\lib\site-packages\win32
C:\PROGRA1\QGIS31.10\apps\Python37\lib\site-packages\win32\lib
C:\PROGRA1\QGIS31.10\apps\Python37\lib\site-packages\Pythonwin
C:/Users/vinic/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:\Users\vinic\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ee_plugin\extlibs_windows

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.