Skip to content

Commit

Permalink
feat: update gee folder and new sepal_pre_release
Browse files Browse the repository at this point in the history
  • Loading branch information
dfguerrerom committed Jun 25, 2024
1 parent 7603c7e commit ebb52fa
Show file tree
Hide file tree
Showing 12 changed files with 115 additions and 25 deletions.
28 changes: 28 additions & 0 deletions .github/workflows/unit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Build
# To test with act: gh act --secret-file $ENV_FILE --workflows .github/workflows/unit.yml
on:
push:
branches:
- main
pull_request:

env:
EARTHENGINE_TOKEN: ${{ secrets.EARTHENGINE_TOKEN }}

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python "3.10"
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install sepal_ui
run: python -m pip install "git+https://github.com/12rambau/sepal_ui.git@sepal_pre_release"
- name: Build with sepal_ui venv
run: module_venv
- name: Install nox
run: python -m pip install nox
- name: set entry point and run tests
run: nox -s test_ui
2 changes: 0 additions & 2 deletions component/scripts/bfast_preanalysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
from .helpers import *
from .cloud_masking import cloud_mask_S2

ee.Initialize()


def analysis(aoi, start, end, sensors, t2, sr):
coll = None
Expand Down
2 changes: 0 additions & 2 deletions component/scripts/cloud_masking.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import ee
import math

ee.Initialize()


def cloud_mask_S2(image):

Expand Down
3 changes: 0 additions & 3 deletions component/scripts/display.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@
from component import parameter as pm


ee.Initialize()


def display_result(ee_aoi, dataset, m, vis, measure, annual):
"""
Display the results on the map
Expand Down
6 changes: 2 additions & 4 deletions component/scripts/exports.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
from .gdrive import *
from .download import digest_tiles

ee.Initialize()


def export_to_asset(aoi_model, dataset, filename, scale, output):
"""
Expand All @@ -29,7 +27,7 @@ def export_to_asset(aoi_model, dataset, filename, scale, output):
"""
# get the root folder of the user
folder = Path(ee.data.getAssetRoots()[0]["id"])
folder = Path(f"projects/{ee.data._cloud_api_user_project}/assets/")
asset_name = folder.joinpath(filename)

# check if the asset already exist
Expand Down Expand Up @@ -82,7 +80,7 @@ def export_to_sepal(aoi_model, dataset, filename, scale, output):
output.add_live_msg(cm.download.start_download)

# get the root folder of the user
folder = Path(ee.data.getAssetRoots()[0]["id"])
folder = Path(f"projects/{ee.data._cloud_api_user_project}/assets/")
asset_name = folder.joinpath(filename)

# load the drive_handler
Expand Down
1 change: 0 additions & 1 deletion component/scripts/gdrive.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

class gdrive(object):
def __init__(self):
self.initialize = ee.Initialize()
self.credentials = ee.Credentials()
self.service = discovery.build(
serviceName="drive",
Expand Down
4 changes: 2 additions & 2 deletions component/scripts/gee.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from pathlib import Path
import time

import ee

ee.Initialize()
from component.message import cm


Expand Down Expand Up @@ -66,7 +66,7 @@ def is_asset(asset_id):
"""

# get the asset list
folder = ee.data.getAssetRoots()[0]["id"] # maybe not the most elegant way
folder = Path(f"projects/{ee.data._cloud_api_user_project}/assets/")
assets = ee.data.listAssets({"parent": folder})
asset_ids = [asset["id"] for asset in assets["assets"]]

Expand Down
1 change: 0 additions & 1 deletion component/scripts/helpers.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import ee

ee.Initialize()
from .cloud_masking import cloudMaskLsatTOA, cloudMaskLsatSR


Expand Down
2 changes: 0 additions & 2 deletions component/tile/export.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
# it will help you to have control over their fonctionalities using object oriented programming
import ee

ee.Initialize()

from sepal_ui import sepalwidgets as sw
import ipyvuetify as v

Expand Down
77 changes: 77 additions & 0 deletions noxfile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
"""All the process that can be run using nox.
The nox run are build in isolated environment that will be stored in .nox. to force the venv update, remove the .nox/xxx folder.
"""

from pathlib import Path
import nbformat
from nbconvert.preprocessors import ExecutePreprocessor
from jupyter_client.kernelspec import KernelSpecManager
import nox


@nox.session(reuse_venv=True)
def lint(session):
"""Apply the pre-commits."""
session.install("pre-commit")
session.run("pre-commit", "run", "--a", *session.posargs)


@nox.session(reuse_venv=True)
def app(session):
"""Run the application."""

entry_point = str(Path("ui.ipynb"))

# Duplicate the entry point file
session.run("cp", entry_point, "nox_ui.ipynb")

# change the kernel name in the entry point
session.run("entry_point", "--test", "nox_ui.ipynb")

session.run("jupyter", "trust", entry_point)
session.run(
"voila", "--show_tracebacks=True", "--template=sepal-ui-base", "nox_ui.ipynb"
)


@nox.session()
def test_ui(session):
"""Run the application."""

ksm = KernelSpecManager()
kernel_names = list(ksm.get_all_specs())
print(kernel_names)

# get the current path
root_folder = Path(__file__).parent
repo_name = root_folder.name

# Copy the ui.ipynb to test_ui.ipynb
session.run("cp", root_folder / "ui.ipynb", root_folder / "nox_ui.ipynb")

session.run("entry_point", "--test", root_folder / "nox_ui.ipynb")

test_notebooks = [root_folder / "nox_ui.ipynb"]

for notebook in test_notebooks:
with open(notebook) as ff:
nb_in = nbformat.read(ff, nbformat.NO_CONVERT)

print("Running notebook", notebook)

try:
ep = ExecutePreprocessor(timeout=600, kernel_name=f"test-{repo_name}")

nb_out = ep.preprocess(nb_in)
except Exception as e:
print("########### Error running notebook", notebook)
raise e


@nox.session(reuse_venv=True)
def jupyter(session):
"""Run the application."""
session.install("-r", "requirements.txt")
session.run("jupyter", "trust", "no_ui.ipynb")
session.run("jupyter", "notebook", "no_ui.ipynb")
4 changes: 3 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ git+https://github.com/12rambau/sepal_ui.git@sepal_pre_release

# custom libs
matplotlib
rasterio
rasterio

# rebuild environment
10 changes: 3 additions & 7 deletions ui.ipynb
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center><h1 class=\"text-center h3\" id=\"loading-app\">Setting things up for you... Thanks for waiting!</h1></center>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sepal_ui.scripts.utils import init_ee\n",
"init_ee()\n",
"from sepal_ui import sepalwidgets as sw\n",
"from component.message import cm\n",
"from sepal_ui import aoi\n",
Expand Down Expand Up @@ -159,6 +154,7 @@
"pygments_lexer": "ipython3",
"version": "3.10.12"
},
"title": "Coverage analysis",
"voila": {
"theme": "dark"
}
Expand Down

0 comments on commit ebb52fa

Please sign in to comment.