From 2ed9134b5019cc78dbe91d78f4df5f8ca26d928d Mon Sep 17 00:00:00 2001 From: Vincent Delbar Date: Thu, 19 Feb 2026 14:18:19 +0100 Subject: [PATCH 1/7] Ignore build files --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f20d4add..e4bd4fef 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,7 @@ *.dbf *.png *.pyc -*.ipynb_checkpoints \ No newline at end of file +*.ipynb_checkpoints +build/ +*.egg-info +__pycache__/* From 2c647320e6e549dd6a9151c0a879efde2acf5686 Mon Sep 17 00:00:00 2001 From: Vincent Delbar Date: Thu, 19 Feb 2026 14:55:51 +0100 Subject: [PATCH 2/7] Keep "Dev" dependencies in a separate group, bump GDAL minor version and add missing dep pytz for SunMapGen --- pyproject.toml | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 11fae77f..5d51618a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,13 +19,16 @@ classifiers = [ ] [project.optional-dependencies] -NightOsmReg = [ +Test = [ "pytest", - "pytest-cov", + "pytest-cov" +] +NightOsmReg = [ "pyyaml", "numpy", - "gdal==3.11.0", - "fiona==1.9.6", + "pandas<3", + "gdal==3.11.5", + "fiona", "pyogrio", "shapely>=2", "geopandas", @@ -36,32 +39,33 @@ NightOsmReg = [ "matplotlib" ] SunMapGen = [ - "pytest", - "pytest-cov", "pyyaml", - "gdal==3.5.0", - "numpy<2", + "gdal==3.9.3", + "georastertools", + "rasterio", + "numpy==1.26.4", "timezonefinder", - "ephem" + "ephem", + "pytz" ] DetecOrCult = [ - "pytest", - "pytest-cov", "pyyaml", - "geopandas==0.12.2", - "fiona==1.9.6", + "numpy==1.26.4", + "fiona", "rasterio", - "gdal==3.11.0", - "scikit-learn", - "opencv-contrib-python", + "gdal==3.11.5", + "pandas==1.5.3", + "geopandas==0.14.4", "rasterstats", - "numpy==1.26.4", - "pandas==1.5.3" + "scikit-learn", + "opencv-python", + "opencv-contrib-python" ] [project.urls] homepage = "https://github.com/CNES/eolabtools" repository = "https://github.com/CNES/eolabtools" +documentation = "https://eolabtools.readthedocs.io" [project.scripts] night_osm_image_registration = "eolabtools.night_osm_registration.register_image:main" From 4299dac9d82b69e0edbc31cf1c44b6ca20a89bd2 Mon Sep 17 00:00:00 2001 From: Vincent Delbar Date: Thu, 19 Feb 2026 15:00:11 +0100 Subject: [PATCH 3/7] Update the docs with recommended conda install commands --- README.md | 14 +++++++------- docs/source/install.rst | 15 ++++++++------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 5be660a2..671f6a85 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,9 @@ Eolabtools allows to use various tools for satellite imagery analysis. To install DetectionOrientationCulture, please launch the following commands : ```bash -conda create -n orcult_env python=3.12 libgdal=3.11.0 -c conda-forge -c defaults -y +conda create -n orcult_env -c conda-forge python=3.11 numpy=1.26.4 gdal=3.11.5 pandas=1.5.3 geopandas=0.14.4 rasterio fiona scikit-learn opencv pyyaml conda activate orcult_env -pip install eolabtools[DetecOrCult] +pip install opencv-contrib-python "eolabtools[DetecOrCult]" ``` ## Usage @@ -52,9 +52,9 @@ This tool performs night visible data registration based on OSM reference. To install NightOsmRegistration, please launch the following commands : ```bash -conda create -n nightosm_env python=3.12 libgdal=3.11.0 markupsafe -c conda-forge +conda create -n nightosm_env -c conda-forge python=3.12 gdal=3.11.5 pyrosm rasterio numpy pyogrio geopandas opencv matplotlib pyyaml fiona scikit-image conda activate nightosm_env -pip install eolabtools[NightOsmReg] +pip install "eolabtools[NightOsmReg]" ``` ## Using night_osm_image_registration @@ -120,10 +120,10 @@ given as input. The tool will manage the shadow impact on adjacent tiles. To install SunMapGeneration, please launch the following commands : ```bash -conda create -n sunmap_env python=3.12 libgdal=3.5.0 -c conda-forge -c defaults -y +conda create -n sunmap_env -c conda-forge python=3.12 numpy=1.26.4 gdal=3.9.3 rasterio timezonefinder pytz ephem pyyaml click geopandas kiwisolver matplotlib fiona scipy pyscaffold tqdm conda activate sunmap_env -pip install georastertools --no-binary rasterio -pip install eolabtools[SunMapGen] --force-reinstall --no-cache-dir +pip install georastertools +pip install "eolabtools[SunMapGen]" ``` ## Usage diff --git a/docs/source/install.rst b/docs/source/install.rst index 58ea98c9..36a0ce63 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -15,10 +15,10 @@ To install SunMapGeneration, please launch the following commands : .. code-block:: console - conda create -n sunmap_env python=3.12 libgdal=3.5.0 -c conda-forge -c defaults -y + conda create -n sunmap_env -c conda-forge python=3.12 numpy=1.26.4 gdal=3.9.3 rasterio timezonefinder pytz ephem pyyaml click geopandas kiwisolver matplotlib fiona scipy pyscaffold tqdm conda activate sunmap_env - pip install georastertools --no-binary rasterio - pip install eolabtools[SunMapGen] --force-reinstall --no-cache-dir + pip install georastertools + pip install "eolabtools[SunMapGen]" NightOsmRegistration installation @@ -28,9 +28,10 @@ To install NightOsmRegistration, please launch the following commands : .. code-block:: console - conda create -n nightosm_env python=3.12 libgdal=3.11.0 markupsafe -c conda-forge + conda create -n nightosm_env -c conda-forge python=3.12 gdal=3.11.5 pyrosm rasterio numpy pyogrio geopandas opencv matplotlib pyyaml fiona scikit-image conda activate nightosm_env - pip install eolabtools[NightOsmReg] + pip install "eolabtools[NightOsmReg]" + DetectionOrientationCulture installation ================================= @@ -39,6 +40,6 @@ To install DetectionOrientationCulture, please launch the following commands : .. code-block:: console - conda create -n orcult_env python=3.12 libgdal=3.11.0 -c conda-forge -c defaults -y + conda create -n orcult_env -c conda-forge python=3.11 numpy=1.26.4 gdal=3.11.5 pandas=1.5.3 geopandas=0.14.4 rasterio fiona scikit-learn opencv pyyaml conda activate orcult_env - pip install eolabtools[DetecOrCult] \ No newline at end of file + pip install opencv-contrib-python "eolabtools[DetecOrCult]" From 807cef92b680543dc38d19332c69f3c8969ff8a2 Mon Sep 17 00:00:00 2001 From: Vincent Delbar Date: Thu, 19 Feb 2026 15:40:52 +0100 Subject: [PATCH 4/7] Single pip install command --- docs/source/install.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/source/install.rst b/docs/source/install.rst index 36a0ce63..4e8e2cc6 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -17,8 +17,7 @@ To install SunMapGeneration, please launch the following commands : conda create -n sunmap_env -c conda-forge python=3.12 numpy=1.26.4 gdal=3.9.3 rasterio timezonefinder pytz ephem pyyaml click geopandas kiwisolver matplotlib fiona scipy pyscaffold tqdm conda activate sunmap_env - pip install georastertools - pip install "eolabtools[SunMapGen]" + pip install georastertools "eolabtools[SunMapGen]" NightOsmRegistration installation From 40cea480f571352e6a5222bf5f286350e3588d3b Mon Sep 17 00:00:00 2001 From: Vincent Delbar Date: Thu, 19 Feb 2026 16:27:41 +0100 Subject: [PATCH 5/7] Rename "Test" group to "Dev" --- pyproject.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 5d51618a..1ede510f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,9 +19,10 @@ classifiers = [ ] [project.optional-dependencies] -Test = [ +Dev = [ "pytest", - "pytest-cov" + "pytest-cov", + "sphinx" ] NightOsmReg = [ "pyyaml", From c7656886d3a3b5d2436b80d584aad66d6ef8ffd8 Mon Sep 17 00:00:00 2001 From: Vincent Delbar Date: Thu, 19 Feb 2026 16:31:45 +0100 Subject: [PATCH 6/7] Add docs link in the README --- README.md | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 671f6a85..18290ca8 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,14 @@ # Eolabtools - Eolabtools allows to use various tools for satellite imagery analysis. -# Detection Orientation Culture +## Documentation + +Full documentation available at [eolabtools.readthedocs.io](https://eolabtools.readthedocs.io). + +## Detection Orientation Culture -## Installation procedure +### Installation procedure To install DetectionOrientationCulture, please launch the following commands : @@ -15,7 +18,7 @@ conda activate orcult_env pip install opencv-contrib-python "eolabtools[DetecOrCult]" ``` -## Usage +### Usage To obtain the crop orientation in a shapefile format, please use the following command. The method implemented uses the fld library from openCV. @@ -43,11 +46,11 @@ plots are calculated. supplied as input.- ``--osm-config`` : Path to the OSM configuration file with tags to keep in binary raster -# Night OSM Registration +## Night OSM Registration This tool performs night visible data registration based on OSM reference. -## Installation procedure +### Installation procedure To install NightOsmRegistration, please launch the following commands : @@ -57,7 +60,7 @@ conda activate nightosm_env pip install "eolabtools[NightOsmReg]" ``` -## Using night_osm_image_registration +### Using night_osm_image_registration Use the command ``night_osm_image_registration`` with the following arguments : @@ -80,7 +83,7 @@ Arguments are the following : - ``--osm-config`` : Path to the OSM configuration file with tags to keep in binary raster -## Using night_osm_vector_registration +### Using night_osm_vector_registration Use the command ``night_osm_vector_registration`` with the following arguments : @@ -102,7 +105,7 @@ Arguments are the following : - ``-n``, ``--name`` : Basename for the output file. -# Sun Map Generation +## Sun Map Generation SunMapGeneration generates a map per date with the percentage of sun exposure over the time range, as well as a vector file that gives the transition times from shade to sun (and sun to shade) for each pixel at the first date. @@ -114,7 +117,7 @@ Shadow masks can also be produced at each step. If the area of interest is important, the DSM should be divided into tiles beforehand (typically 1km*1km). The list of tiles is given as input. The tool will manage the shadow impact on adjacent tiles. -## Installation procedure +### Installation procedure To install SunMapGeneration, please launch the following commands : @@ -126,7 +129,7 @@ pip install georastertools pip install "eolabtools[SunMapGen]" ``` -## Usage +### Usage To launch SunMapGeneration, please use the following command : @@ -160,14 +163,14 @@ sun_map_generation --digital_surface_model /path_to_input_files/input_files.lst - ``--save_masks`` : To save shadow masks calculated at each time step -# Tests +## Tests The project comes with a suite functional tests. To run them, launch the command ``pytest tests``. To run a specific test, execute ``pytest tests/test_toolname.py::test_name``. The tests perform comparisons between generated files and reference files. -# Documentation generation +## Documentation generation To generate the documentation, run in an environment that contains `sphinx_rtd_theme` and `sphinxcontrib.bibtex` : From 38c436b5dcfeba282f324a04068b252ce4a598f4 Mon Sep 17 00:00:00 2001 From: Vincent Delbar Date: Thu, 19 Feb 2026 17:49:29 +0100 Subject: [PATCH 7/7] Remove small docs section --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 18290ca8..f6b27763 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,7 @@ # Eolabtools -Eolabtools allows to use various tools for satellite imagery analysis. - -## Documentation - -Full documentation available at [eolabtools.readthedocs.io](https://eolabtools.readthedocs.io). +Eolabtools allows to use various tools for satellite imagery analysis. +Full documentation is available at [eolabtools.readthedocs.io](https://eolabtools.readthedocs.io). ## Detection Orientation Culture