1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
# jiplib
jiplib is a C++ library with a Python wrapper for image processing for geospatial data implemented in JRC Ispra. Python users are encouraged to use [pyjeo](https://github.com/ec-jrc/jeolib-pyjeo) that is built upon this library.
# License
jiplib is released under the [GPLv3](https://www.gnu.org/licenses) license.
# Dependencies
## libraries:
* gdal: MIT/X style https://gdal.org/license.html
* PROJ: MIT https://proj.org/about.html
* GNU compiler selection (gcc/g++): GPL v.3 https://gcc.gnu.org/onlinedocs/libstdc++/manual/license.html
* cmake: BSD 3 https://cmake.org/licensing/
* GNU Scientific library: GPL https://www.gnu.org/software/gsl/
* FANN: LGPL http://leenissen.dk/fann/wp/
* libsvm: modified BSD license https://www.csie.ntu.edu.tw/~cjlin/libsvm/COPYRIGHT
* libLAS: BSD https://liblas.org/
* jsoncpp: MIT https://github.com/open-source-parsers/jsoncpp/blob/master/LICENSE
* doxygen: GPL v.2 https://github.com/doxygen/doxygen/blob/master/LICENSE
* boost: BSD/MIT like https://www.boost.org/users/license.html
* SWIG: GPL v.3 http://www.swig.org/Release/LICENSE
* Python: Python Software Foundation License https://docs.python.org/3/license.html
* numpy: BSD https://numpy.org/license.html
* scipy: BSD https://www.scipy.org/scipylib/license.html
* Sphinx: BSD http://www.sphinx-doc.org/en/master/
# Installation procedure
## Install dependency libraries (example for Debian based system using apt)
```
sudo apt install -yq \
build-essential \
cmake \
libgsl-dev \
libfann-dev \
libgdal-dev \
libjsoncpp-dev \
libpython3-dev \
python3-numpy \
python3-pip \
libboost-filesystem-dev \
libboost-serialization-dev \
swig
```
## Build and install miallib
Get the source code from [miallib](https://github.com/ec-jrc/jeolib-miallib), to create the library:
```
git clone https://github.com/ec-jrc/jeolib-miallib.git
cd jeolib-miallib
mkdir build
cd build
cmake ..
```
or without sudo rights, replace the last command with:
```
cmake -DCMAKE_INSTALL_PREFIX=/home/user/install/miallib ..
```
Build the [miallib](https://github.com/ec-jrc/jeolib-miallib) library:
```
cmake --build .
```
Install the [miallib](https://github.com/ec-jrc/jeolib-miallib) library (remove sudo to install without sudo rights):
```
sudo cmake --install .
```
## Build and install jiplib
Get the source code from [jiplib](https://github.com/ec-jrc/jeolib-jiplib):
```
git clone https://github.com/ec-jrc/jeolib-jiplib.git
cd jeolib-jiplib
mkdir build
cd build
cmake ..
```
or without sudo rights, replace the last command with:
```
cmake -DCMAKE_PREFIX_PATH=/home/user/install/miallib -DCMAKE_INSTALL_PREFIX=/home/user/install/jiplib ..
```
Build the [jiplib](https://github.com/ec-jrc/jeolib-jiplib) library and create a python wheel:
```
cmake --build .
```
Install the [jiplib](https://github.com/ec-jrc/jeolib-jiplib) library:
```
cmake --install .
```
To only install the Python bindings using the wheel that has been built:
```
cmake --install . --component wheels
```
# Test the installation
From the build directory, run:
```
ctest .
```
# Build documentation (deprecated, users are encouraged to use pyjeo documentation)
Go to directory `doc` and run `make html`.
```
cd doc
make html
```
|