A proof of concept application for aircraft spotting using positional data from ADS-B and a PTZ IP camera.
This application receives aircraft position updates via ADS-B, calculates the azimuth and altitude to the aircraft from the camera's position and instructs the camera to point at that location.
Very basic image analysis is then performed on the video stream from the camera to highlight the aircraft.
In order to use this application you need the following:
- The camera must support the ONVIF protocol and ptz.AbsoluteMove.
- The camera must be positioned level and facing north.
- The camera should have a full view of the sky.
- You must know the latitude, longitude, and elevation of the camera.
This application depends on dump1090 to decode ADS-B.
Install it and run with --net
to enable networking.
Install it with:
pip install https://github.com/cnelson/maho/archive/master.zip
Run it:
maho \
--latitude :camera-latitude: \
--longitude :camera-longitude: \
--elevation :camera-elevation-in-meters: \
--camera-host :camera-host-or-ip \
--camera-port :camera-onvif-port: \
--camera-user :camera-username: \
--camera-pass :camera-password: \
--adsb-host :host-running-dump1090: \
--adsb-port :dump1090-raw-tcp-port:
- This application was written in an afternoon, it is not suitable for any production use.
- Some tests exist but code coverage is poor.
- Expect false positives from image analysis especially if the aircraft is near the horizon, or the sky is very cloudy.