Code Monkey home page Code Monkey logo

kpler's Introduction

The Problem of Ship-To-Ship Cargo Transfer

In this project, we try to find STS transfers based on ship positions and speed. Algorithm: compute a score of STS for each couple of vessels based on ship positions and speed. We discretize time in order to have regular snapshots. for each snapshot, we compute score of STS.

Requirements

  • Git 2.17.1 or later
  • python 3.7 or later

see requirements.txt for detailed packages

Local Installation

You need to clone project into your local machine using:
git clone https://github.com/firas16/kpler.git

Create virtualenv and Install requirements.

The project contains two main scripts:

  • main.py: use to extract possible STS based on input CSV file containing ship data.
  • viz.py: use to visualize ship coordinates on the map

Configuration

You can play with the algorithm settings by changing parameters in conf.yaml:

  • global_score_threshold: global score threshold above which we consider the possibility of an STS
  • time_frame: time discretization parameter. (default 15min)
  • distance_threshold: distance under which distance score takes 1. (default 10m)
  • mid_distance_coefficient: defines distance of average score. (default 3)
  • mid_distance_score: mid distance score. (default 0.5)
  • distance_weight: distance score weight in global score. (default 0.7)
  • speed_weight: speed score weight in global score. (default 0.3)

Possible Enhancements

  • Use ship status to filter data before applying algorithm (For example status 7 engaged in fishing)
  • Use ship status in STS score
  • Improve distance score calculation: current function very simple constant piecewise
  • Improve positionning accuracy based on speed, course and heading
  • Improve global scoring function: should be based not only on snapshot but on multiple snapshots
  • Ameliorate code decoupling and test coverage

kpler's People

Contributors

firas16 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.