Welcome to the BOATMAN repository!
This project is a boat monitoring system that uses satellite imagery from the Copernicus Program to track and display the location of boats in a geographic information system (GIS).
The system is composed of a frontend, the GIS, and a backend, the server. The frontend is built using JavaScript, specifically the Leaflet library, which allows us to create interactive maps that can display and update the position of boats in real time. The backend is built using Python and the library FastAPI, which allows it to handle the interactions with the frontend. The server is also where we download and process the Sentinel-1 data from the Copernicus Program.
When launching the GIS for the first time, you will face a map of the word. The view is interactive and aims to be user-friendly. You can move the map and zoom with usual mouse usages.
Using the layer button on the top right, you can add main harbors of the world.
Now, with the buttons on the left side, you can select a region.
By pressing, the "Run Analysis" button, the GIS will interact with the server to retrieve boat position.
We also have the ability to change the map background and use OpenStreetMap instead of Google Satellite.
This project uses SNAP, however its installation will be done automatically by conda.
To access SNAP
through python, we use snapista
, a conda package.
Unfortunately, very specific version of python packages are needed to install it.
To ease the installation, we provide an yml
file for conda to create a clean environment.
You can install it with:
conda env create -f environment.yml
The new environment will be called snap
, documentation to change this can be found here.
Don't forget to activate the environment with:
conda activate snap
This project uses data from the Copernicus Open Access Hub. Like most Data Hubs, it requires authentication. In order to be able to download data from the Copernicus Open Access Hub, you will need to enter your credentials in a file .netrc in your user home directory in the following form:
machine apihub.copernicus.eu
login <your_username>
password <your_password>
Getting a 401 Unauthorized
error means your credentials are wrong or not yet active.
This project uses NodeJS
and npm
to run on your local computer.
To run the code, simply clone the github repository and install the dependencies using npm
:
npm install
npm start
This will install the necessary dependencies and start the server. Once the server is running, you can access the GIS by navigating to http://localhost:portnumber in your web browser.
This project uses a formatter and a linter on the codebase. Therefore, it is greatly recommended to use git hooks to enforce this behavior.
To do so, we use the pre-commit
package, you just need to execute this command to get started:
pre-commit install