# Cellule_GEE
 
L'objectif de ce dépôt est de partager les connaissances sur Google Earth Engine au sein de HSM.
Les utilisateurs de GEE sont encouragés à contribuer en déposant ici les codes qu'ils ont 
développés, afin d'inspirer d'autres utilisateurs potentiels. 

## Introduction à Google Earth Engine

Google Earth Engine est 
 * un portail de données géospatiales 
 * une plateforme de calcul cloud sur les données géospatiales du portail

L'accès à ces services est gratuit pour un usage académique ou de recherche. Il faut simplement 
créer un compte à partir d'une adresse email (possible avec les adresses institutionnelles). La 
procédure à suivre est disponible [ici](https://code.earthengine.google.com/register). 

### Avantages

 * gratuit
 * beaucoup de produits disponibles (voir [catalogue GEE](https://developers.google.com/earth-engine/datasets))
 * pas besoin de télécharger les données pour réaliser des analyses
 * fonctions GEE disponibles pour beaucoup d'analyses courantes
 * peu besoin de coder pour faire des analyses ou des plots

### Inconvénients

 * **"The Earth Engine API and advanced Earth Engine functionality are experimental and subject to change. "** (source: [page d'accueil GEE](https://earthengine.google.com/platform/))
 * gratuit pour l'instant, mais sans aucunes garanties pour le futur
 * catalogue
   * beaucoup de produits, mais pas exhaustif et produits pas forcément complets. Par exemple ERA5-land n'est disponible sur GEE qu'à partir de 1981 alors que le produit existe à partir de 1950.
   * téléchargement direct des données limité à des images de 25 MB
   * téléchargement d'images plus volumineuses uniquement via Google Drive (limitation à 15 Go)
   * pas d'information sur la mise à jour de produits, contrairement aux portails des producteurs de données
 * plateforme de calcul
   * seules les fonctions GEE peuvent être utilisées
   * pas d'information sur le contenu des fonctions GEE
   * impossible d'utiliser du code non-GEE sur la plateforme
   * besoin d'une connection internet permanente et stable
   
## Utilisations de GEE à HSM

GEE est utilisé à HSM à la fois pour son catalogue de données et pour sa capacité de calcul.
Des utilisateurs utilisent l'interface Javascript en ligne, d'autres utilisent l'API Python.
Des exemples d'utilisation sont disponibles dans le répertoire `codes_utilisateurs`.

## Utilisation du dépôt

Pour plus d'informations sur l'utilisation de git, voir le wiki :
 * [Introduction à GIT](https://forge.ird.fr/hsm/atelier_amiis/cellule_gee/-/wikis/Introduction%20git)
 * [Utilisation simple de GIT](https://forge.ird.fr/hsm/atelier_amiis/cellule_gee/-/wikis/git_simple)

### Téléchargement du dépôt

Toute personne qui peut accéder à cette page peut télécharger le dépôt.

Pour cloner le dépôt localement dans le répertoire courant depuis un terminal :

```
git clone  git@forge.ird.fr:hsm/atelier_amiis/cellule_gee.git
```

Il est également possible de ne télécharger qu'un fichier à la fois, en utilisant directement l'interface graphique de Gitlab.

### Participation

Tous les utilisateurs de GEE sont encouragés à participer en ajoutant leurs codes au dépôt. Tous les codes sont les
bienvenus, sans exigence de qualité, reproductibilité etc. La seule requête est d'avoir des codes commentés un
minimum afin que d'autres puissent comprendre ce dont il s'agit. Dans le cas de partage de Jupyter notebook, il est 
demandé de ne partager que des notebook dont les outputs ont été supprimés, donc avec uniquement les cellules de code.

Seuls les utilisateurs membres du repository ont l'autorisation de modifier le dépôt, et donc d'y ajouter des 
fichiers. Pour demander un accès au dépôt, il faut cliquer sur `Request access` en haut de cette page ou demander 
à un des membres du repo de les inviter. La liste des membres est accessible via le menu sur la partie gauche de cette 
page : Project Information > Members.

Pour pouvoir déposer des fichiers, il faut avoir préalablement déjà cloné le repository en local, voir ci-dessus.

Une fois le dépôt cloné, il faut :
 * ajouter le fichier au dépôt local (ie commiter) :

``` 
git add mycode.xx
git commit -m "Ajout code XXX"
```
 * synchroniser le dépôt local avec le dépôt distant (ie pusher) :

```
git push
```

Le mot de passe Forge IRD sera demandé lors du push vers le répo distant.

Pour se connecter sans mot de passe, voir 
[la page Wiki "clés SSH""](https://forge.ird.fr/hsm/atelier_amiis/cellule_gee/-/wikis/Cl%C3%A9s%20SSh).