Code Monkey home page Code Monkey logo

amnesica / belugaproject Goto Github PK

View Code? Open in Web Editor NEW
51.0 4.0 10.0 242.79 MB

Application that displays one or multiple, local ADS-B feeders along with additional information on a map interface in the browser

License: GNU General Public License v3.0

Java 26.14% JavaScript 0.17% TypeScript 39.10% CSS 2.03% HTML 17.85% SCSS 1.10% Shell 12.68% Dockerfile 0.12% Python 0.42% PLpgSQL 0.40%
adsb adsb-receiver angular spring-boot openlayers flight-tracking flight-tracker opensky-network ads-b flightradar24

belugaproject's Introduction

The Beluga Project

GitHub version

Spring Boot Angular web application that displays one or multiple, local ADS-B feeders along with additional information on a map interface in the browser.

Currently you can use this application out of the box with Flightradar24, tar1090, AirSquitter or VirtualRadarServer (Rebroadcast Server only) feeders. Other ADS-B feeders can be added aswell.

It is possible to run the application only with data from the OpenSky-Network, if you have an account there. Besides you can use data from Airplanes.live. So you need no local feeders to try out the app.

Additional information about the aircraft are added through a PostgreSQL database with content from OpenSky-Network, Mictronics, OurAirports, Virtual Radar Server standing-data. Mictronics data is used with Open Data Commons Attribution License (ODC-By) v1.0.

The ISS (International Space Station) is displayed by default with information from the "Where the ISS at?" API.

The Beluga Project uses aircraft icons from this repository by RexKramer1. 3D models from this repository are used.

Motivation

We started our ADS-B experience with an AirSquitter receiver. We got good results but because of the antenna position the range was limited to only a half circle around our house. So we added another receiver (Raspberry Pi) with a separate antenna to cover the second half of the circle. This works great. Unfortunately we found no application which can show the aircraft from both receivers in one map. So we decided to create a new one - The Beluga Project.

Features

  • View the application on your desktop or mobile (for the android app see folder "android_app")
  • Display aircraft and airports on a 2D map in the browser
    • Aircraft from your local ADS-B feeders (like tar1090, AirSquitter, fr24feeder, vrs)
    • Aircraft from OpenSky-Network (update interval is 5 seconds)
    • Aircraft from Airplanes.live (update interval is 5 seconds)
    • The ISS (International Space Station)
    • Airport information from OurAirports
  • Display selected aircraft on a 3D map (Cesium Ion, account registration is required to use this feature)
    • Show animated aircraft model and flight path
    • Show Google photogrammetry or OSM 3D buildings
    • Cockpit mode (with or without cockpit model), Follow-Plane mode
    • High Quality mode, HDR, clouds
  • See additional information about tracked aircraft like model and type, country of registration, operator callsign and more
  • Track flight progress with route information (origin, destination)
  • Display aircraft picture from planespotters.net
  • Show range data of your feeders on the map
  • Show weather information (current, forecast, clouds) from Rainviewer
  • Filter option for military planes
  • Choose one of several map styles (2D/3D map, for some of the 2D maps an API key from Geoapify is required)
  • Display aircraft in a sortable table
  • Display a list of photos for selected aircraft in your webbrowser (by generated Search-URL)
  • Show server logfiles
  • Photographers / Spotters can see the „Point of Minimum Distance“ (POMD) for selected aircraft and get ETA, remaining time, remaining distance, distance to aircraft at POMD and view direction at POMD. The yellow point (see image below) shows the „POMD“. The black point is your current position (or antenna position by default). Calculations are based on current track and speed of selected aircraft and are updated permanently.

POMD feature


Note: At the moment The Beluga Project is meant to be used in a local network. It is not recommended to publish it on the web due to security and performance reasons.


Screenshots

Web view

Web View

Mobile view

App View

General structure of the project

Backend

Frontend

Our Setup

The application runs on a Raspberry Pi 4B in the local network. We can access the map in the browser on desktop computers (Windows and Linux) and on mobile devices. For our mobile devices we use the mobile app.

App View

Installation/Update

Execute the following command on your Raspberry Pi (or any debian-based system). We recommend using a Pi >=4B with 64 bit OS version.

$ sudo bash -c "$(wget -nv -O - https://github.com/amnesica/BelugaProject/raw/master/install.sh)"

Important: If you already have a version < 4.0.0 of the Beluga Project installed, first execute the following commands and then use the install script with the link below.

$ cd BelugaProject
$ sudo ./run.sh docker-rm
$ cd .. && sudo rm -r BelugaProject BelugaProject.zip

If you get any error messages have take a look into TROUBLESHOOTING.md.

Update standing data

BelugaProject comes with standing data (aircraft data, airport data, flightroute data) which may be outdated meanwhile. So you should update them with command

$ sudo ./run.sh update-db

This will take some time. On an RaspberryPi 4B update database takes about 10 minutes.

belugaproject's People

Contributors

alienmaster avatar amnesica avatar rexkramer1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

belugaproject's Issues

Cannot invoke "java.lang.Double.doubleValue()" because the return value of "com.amnesica.belugaproject.config.Configuration.getLatFeeder()" is null

Hi @amnesica,

Can you please help me resolving attached issue?

java.lang.NullPointerException: Cannot invoke "java.lang.Double.doubleValue()" because the return value of "com.amnesica.belugaproject.config.Configuration.getLatFeeder()" is null
at com.amnesica.belugaproject.services.aircraft.AircraftService.setValuesToAircraft(AircraftService.java:476) ~[!/:4-0-0]
at com.amnesica.belugaproject.services.aircraft.AircraftService.createNewRemoteAircraft(AircraftService.java:88) ~[!/:4-0-0]
at com.amnesica.belugaproject.services.aircraft.OpenskyService.processOpenskyAircraftJsonArray(OpenskyService.java:80) ~[!/:4-0-0]
at com.amnesica.belugaproject.services.aircraft.OpenskyService.fetchAircraftData(OpenskyService.java:63) ~[!/:4-0-0]
at com.amnesica.belugaproject.services.aircraft.RemoteService.getPlanesFromRemote(RemoteService.java:73) ~[!/:4-0-0]
at jdk.internal.reflect.GeneratedMethodAccessor73.invoke(Unknown Source) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
at org.springframework.scheduling.support.ScheduledMethodRunnable.runInternal(ScheduledMethodRunnable.java:130) ~[spring-context-6.1.1.jar!/:6.1.1]
at org.springframework.scheduling.support.ScheduledMethodRunnable.lambda$run$2(ScheduledMethodRunnable.java:124) ~[spring-context-6.1.1.jar!/:6.1.1]
at io.micrometer.observation.Observation.observe(Observation.java:499) ~[micrometer-observation-1.12.0.jar!/:1.12.0]
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:124) ~[spring-context-6.1.1.jar!/:6.1.1]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-6.1.1.jar!/:6.1.1]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]`

maven version

maven 3.8.5 no more exist
please update to 3.8.6 in dependencies script

No Virtual Radar Server (VRS) Support

Have installed only to find no support for Virtual Radar Server (VRS) Feeders.
Is this something you may be adding in the future. Virtual Radar Server - AircraftList.json or Basestation formats?

Port 8080?

Hi,
just wanted to test that project and after I run install.sh it could not start because port 8080 is already in use. I tought 8090 will be used for web service? Is 8080 used internally? Is it possible to change it anywhere?
Best regards
Ludger

Failed to determine a suitable driver class

Hi @amnesica,
As I am trying to run this outside the docker, it shows error for server as shown. Maybe there is an issue related to Database but as I am new to Spring, I am not able to figure it out. Please help me to resolve this error. Thanks in advance.


APPLICATION FAILED TO START


Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

Action:

Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

How to talk to project owner?

I have tried installing this multiple times as described on Ubuntu 20.04 with no Luck. I currently run another Flight-tracking website with ten of thousands of planes and would really like to put beluga to the test as it looks like i software that i might to be keen to replace my current software with. Sorry for posting in this area but i'm fairly new to github and dont know how to contact project owners.

Any chance of a tutorial or install instruction to install on Ubuntu 20.04?

Would very much appreciate it!
Best of Regard's,
http://flight-tracker.nz

Aircraft Stats (speed,height) not showing

Hello.
I have just installed the BelugaProject on one of my pi as a test
I am feeding from a local tar1090 instance and I am seeing aircraft on the screen. I believe that I've set up the feed correctly in the .env

image

Please can you advise, as I expect that I have done something wrong.
Many thanks

Beluga Project behind ngnix reverse proxy

Hello
Do you have any guidance as to how to have this project running behind a reverse webproxy?
Currently all I am getting is... https://cornwallvrs.com/beluga/
I have added

location /beluga/ {
    proxy_pass http://192.168.1.156:8090/;
}

to the locations.conf of my ngnix reverse proxy set up, but I am wondering if I need more to pass anything else, or if I am missing some setting somewhere or do I need to change the PROD_BASE_URL_WEBAPP from IP to IP/belgua e.g.

PROD_BASE_URL_WEBAPP=192.168.1.156

to

PROD_BASE_URL_WEBAPP=192.168.1.156/beluga

Many thanks

Mouse over Details on Airports

Just a Suggestion, Also a key: to flight altitude colors and what the different colors markers mean on the map. (Mouseover Airports, Helipads, etc would be great!

Firstly, Please Help me with a feed config for AircraftList.json for Virtual Radar Server.. This will be the decider weather i run with Beluga on my website or not.. Virtual Radar Server has a slightly different AircraftList format that standard.

Devs: I'm sure you could bang this together in no time.
Once again Love the Project, Works great outside the Lan (Fully SSL Secured) just cant move forward without some help here as i;m not in any way a programmer :(

Secondly, Is it possible to turn on trails when an OpenSky Feed?
Thanks Team

@amnesica can you give me some guidance please?

Hi Installed The Beluga Project and up is running nicely. Unfortunately i can only connect 2 feeders and use OpenSky.

Is there some other forums/platform where we can chat by Private Message and i can ask some questions please.

Im on discord, facebook take your pick.

Thanks

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.