/enmap-box

EnMAP-Box source code repository. See https://enmap-box.readthedocs.io for documentation

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

EnMAP-Box 3

Logo

The EnMAP-Box is free and open source QGIS Plugin to visualize and process remote sensing raster data. It is particularly developed to handle imaging spectroscopy data, as from the upcoming EnMAP sensor.

Screenshot

Highlights:

  • an easy-to-use graphical user interface for the visualization of vector and raster data sources in parallel and in spatially linked maps.

  • collection and visualisation of spectral profiles spectral libraries. Spectral profiles can come from different sources, e.g. raster images, field spectrometer or table-sheets.

  • enhances the QGIS Processing Framework with many algorithms commonly used in remote sensing and imaging spectroscopy, e.g. support vector machines or random forest based raster classification, regression, cluster approaches from the scikit-learn library.

  • applications specific to imaging spectroscopy and the EnMAP program, e.g. a simulation of spectral profiles (IIVM), atmospheric correction of EnMAP data, mapping of geological classes from EnMAP data and more...

Documentation: http://enmap-box.readthedocs.io

Git Repository: https://github.com/EnMAP-Box/enmap-box

How to clone

Use the following commands to clone the EnMAP-Box and update its submodules:

TL;DR:

git clone --recurse-submodules git@github.com:EnMAP-Box/enmap-box.git
# alternatively, but not recommended, you can use https as well:
# git clone --recurse-submodules https://github.org:EnMAP-Box/enmap-box.git

cd enmap-box
git config --local include.path ../.gitconfig

# compile the EnMAP-Box resource files and download QGIS resource files to display icons  
python scripts/setup_repository.py

# start the EnMAP-Box
python enmapbox

Detailed description

In the following we refer to the EnMAP-Box repository https://github.com/EnMAP-Box/enmap-box.git Replace it with your own EnMAP-Box fork from which you can create pull requests.

  1. Ensure that your environment has git available and can start QGIS by calling qgis.

  2. Clone the EnMAP-Box repository.

    git clone git@bitbucket.org:hu-geomatics/enmap-box.git

    You might also use the url https://github.com/EnMAP-Box/enmap-box.git instead. However, ssh access is preferred.

  3. Initialize submodules and pull their code, which is hosted in different repositories

    cd enmapbox
    git submodule update --init --remote --recursive
  4. Once initialized, you can update submodules at any later point by:

    git submodule update --remote

    Of course cloning and submodule updating can be done in one step:

    git clone --recurse-submodules git@bitbucket.org:hu-geomatics/enmap-box.git

    At any later point, you can pull in submodule updates by

    git submodule update --remote

    Doing so automatically when pulling the EnMAP-Box project can be enabled by:

    git config --set submodule.recurse true

    This setting (and maybe more in future) is already defined in the .gitconfig. You can enable it for your local repository by:

    git config --local include.path ../.gitconfig

    If you have writing access to a submodule's repository, you can push changes upstream by:

    cd <submodule>
    git add .
    git commit -m "my changes"
    git push origin HEAD:master

    Finally, announce changes in a submodule to the EnMAP-Box (super) project by:

    cd <EnMAP-Box root>
    git add <submodule path>
    git commit -m "added submodule updates"
    git push
  5. Compile resource files and download the test data:

    python scripts/setup_repository.py
  6. Now you can start the EnMAP-Box from shell by:

    python enmapbox

How to contribute

Our online documentation at http://enmap-box.readthedocs.io describes how you can support the development of the EnMAP-Box.

Please keep the code in a good shape.

You might use flake8 to check if the EnMAP-Box code applies to the rules defined in .flake8:

flake8 

To check staged files only, run:

flake8 $(git status -s | grep -E '\.py$' | cut -c 4-)

License

The EnMAP-Box is released under the GNU Public License (GPL) Version 3 or above. A copy of this licence can be found in the LICENSE.txt file that is part of the EnMAP-Box plugin folder and the EnMAP-Box repository, and also at http://www.gnu.org/licenses/

Developing the EnMAP-Box under this license means that you can (if you want to) inspect and modify the source code and guarantees that you will always have access to an EnMAP-Box software that is free of cost and can be freely modified.

Support

You can get support in the following ways: