Cosims implementation
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)
-
app/build_json.py :
- 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.
-
app/build_json.py :
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 ##############################