Skip to content

Cosims implementation

Rémi Jugier requested to merge cosims_implementation into develop

Modifs scientifiques :

  • ajout de la possibilité de générer des produits fsc (pour COSIMS):
    • app/build_json.py :
      • ajout du groupe de paramètre fsc : reçoit un raster de Tree cover density en entrée
    • python/s2snow/snow_detector.py : python/s2snow/snow_detector.py
      • ajout de la procédure passfsc
      • changement de la valeur nodata à 255 dans passfsc lorsque mode_cosims activé (nécessaire pour produits COSIMS)
  • ajout de la possibilité de masquer des données avant le calcul :
    • app/build_json.py :
      • ajout du groupe de paramètres water_mask : reçoit un raster de masque d'eau ou un shapefile en entrée
    • python/s2snow/snow_detector.py : python/s2snow/snow_detector.py
      • init : ajout de l'application du masque d'eau sur les GeoTiff temporaires des bandes [green, red, swir] resamplées, lorsque cette option est activée.
    • python/s2snow/utils.py :
      • ajout des fonctions edit_raster_from_raster et edit_raster_from_shapefile qui permettent de masquer les valeurs dans un GeoTiff à partir d'un masque d'eau issu d'un GeoTiff ou d'un shapefile.

Modifs informatiques :

  • passage python 3 : utilisation de 2to3 sur toutes les fonctions python : ça corrige les print en print() et les bla.keys() en list(bla.keys()) et c'est à peu près tout
  • migration sur OTB7 : ParameterType_Empty n'existe plus et on a eu des soucis pour utiliser ParameterType_Bool à la place donc on a mis un entier = 0 ou 1 (ParameterType_Int) pour faire l'interface python/c++.

Example d'installation fonctionnelle (docker)

Ci-dessous un example de Dockerfile qui configure un environnement OTB7 + LIS + python3 fonctionnel. Il faut dans le répertoire du Dockerfile:

  • OTB :
    • le git de l'OTB en branche master compressé otb.tar.gz => il doit s'extraire en un dossier otb
    • les packages OTB superbuild pour OTB 7 SuperBuild-archives.tar.bz2
  • LIS :
    • le git de LIS compressé lis.tar.gz => il doit s'extraire en un dossier let-it-snow

Dockerfile :

FROM ubuntu:18.04 MAINTAINER Rémi Jugier "remi.jugier@magellium.fr"

#basic system installs RUN apt-get update

RUN apt-get install -y build-essential tar file python3 python3-pip #the following packages are necessary for package compilation (mostly OTB) => they can be removed for final docker image RUN apt-get install -y cmake unzip git freeglut3 freeglut3-dev libpng-dev libxrandr-dev libxi-dev xorg-dev libboost-all-dev qttools5-dev swig

#python packages RUN pip3 install numpy scipy shapely pyproj fiona pyyaml lxml

#make python3 the default python => needs to be done after the installation of system packages responsible for installing python2 RUN rm -f /usr/bin/python; ln -s /usr/bin/python3 /usr/bin/python

#create necessary directories RUN mkdir src install work

#install programs from source WORKDIR /src ############################## #install OTB COPY otb.tar.gz otb.tar.gz RUN tar -zxvf otb.tar.gz COPY SuperBuild-archives.tar.bz2 SuperBuild-archives.tar.bz2 RUN mkdir archive; cd archive; tar -xvf ../SuperBuild-archives.tar.bz2 RUN rm -f SuperBuild-archives.tar.bz2 otb.tar.gz RUN mkdir otb_build WORKDIR /src/otb_build RUN cmake -DDOWNLOAD_LOCATION:PATH=/src/archive
-DCMAKE_INSTALL_PREFIX:PATH=/install/otb
-DOTB_WRAP_PYTHON:BOOL=ON
-DOTB_USE_MUPARSER:BOOL=ON
-DOTB_USE_MUPARSERX:BOOL=ON
../otb/SuperBuild RUN make -j 6 #add gdal path ENV PYTHONPATH=$PYTHONPATH:/install/otb/lib/python3/dist-packages:/install/otb/lib/otb/python ENV OTB_APPLICATION_PATH=/install/otb/lib/otb/applications ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.:/install/otb/lib WORKDIR /src RUN rm -R -f otb*

#install LIS WORKDIR /src COPY lis.tar.gz /src/ RUN tar -zxvf lis.tar.gz; mv let-it-snow lis RUN mkdir lis_build WORKDIR lis_build RUN cmake -DCMAKE_PREFIX_PATH=/install/otb -DCMAKE_INSTALL_PREFIX=/install/lis /src/lis RUN make -j 6 RUN make install WORKDIR /src RUN rm -R -f lis* RUN chmod u+x /install/lis/app/* ENV PATH=/install/lis/app:/install/lis/bin:$PATH ENV OTB_APPLICATION_PATH=$OTB_APPLICATION_PATH:/install/lis/lib ENV PYTHONPATH=$PYTHONPATH:/install/lis/app:/install/lis/lib/python3.6/site-packages ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/install/lis/lib ##############################

Edited by Rémi Jugier

Merge request reports