https://github.com/databricks-industry-solutions/ship2ship-transfers
Ship-to-Ship Transfer Identification using Geospatial Analytics
https://github.com/databricks-industry-solutions/ship2ship-transfers
databricks-industry-solutions geospatial mfg pubsec
Last synced: 5 months ago
JSON representation
Ship-to-Ship Transfer Identification using Geospatial Analytics
- Host: GitHub
- URL: https://github.com/databricks-industry-solutions/ship2ship-transfers
- Owner: databricks-industry-solutions
- License: other
- Created: 2022-08-06T03:28:32.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-05-01T17:58:34.000Z (about 3 years ago)
- Last Synced: 2024-01-29T09:36:35.606Z (over 2 years ago)
- Topics: databricks-industry-solutions, geospatial, mfg, pubsec
- Language: Python
- Homepage: https://medium.com/@timo.roest/ship-to-ship-transfer-detection-b370dd9d43e8
- Size: 63.5 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# Ship2Ship Transfer Detection
Ship Overlap

## Introduction
This is an algorithmic implementation to detect Ship to Ship transfers at scale using Databricks. It was presented at the [Data and AI Summit 2022](https://www.youtube.com/watch?v=XQNflqbgP7Q).
This Mosaic example explores a novel, algorithmic approach to detecting Ship to Ship transfers at scale using AIS data. In particular it aims to surpass existing, naive implementations that are just based on a particular distance radius like the one shown below:

Although the naive approach can be optimised with indices to be quite performant, additional improvements can be made. This is quite apparent if we look at the following data points below:
Naive Approach with buffers

According to our naive approach, where we buffer around our LAT/LONG points, the two vessels would not intersect. However, if we construct the actual path the vessels took, our algorithmic implementation would detect an overlap between the two paths, as shown below:
Path Line Strings approach

This model is expanded upon in the course of the attached notebooks. It shows how to ingest AIS data, how to process it at scale leveraging Mosaic in Databricks, and provides examples of how to extend the analysis to incorporate additional sources.
*created by [@tiems90](https://github.com/tiems90)*
| library | description | license | source |
|----------------------------------------|-------------------------|---------------------|-----------------------------------------------------|
| mosaic | library | Databricks License | https://github.com/databrickslabs/mosaic |
To run this accelerator, clone this repo into a Databricks workspace. Attach the RUNME notebook to any cluster running a DBR 11.0 or later runtime, and execute the notebook via Run-All. A multi-step-job describing the accelerator pipeline will be created, and the link will be provided. Execute the multi-step-job to see how the pipeline runs.
The job configuration is written in the RUNME notebook in json format. The cost associated with running the accelerator is the user's responsibility.