In welcher Höhe fliegen Flugzeuge?

Erstellt am 27. Mai 2017 von It_berater

Mich hat mal die Frage interessiert, in welcher Höhe die meisten Flugzeuge aktuell so fliegen.

Also habe ich mal ein kleines Java Programm geschrieben, welches in Echtzeit die Daten von The OpenSky Network abfragen kann. Es werden also mal alle Flugzeuge die Transponser haben und von The OpenSky Network erfasst sind berücksichtigt.

Hier das Ergebnis von 3048 Flugzeugen:

Das ist die vom Programm ermittelte Datenbasis:

Hier das JUnit Testprogramm:

package de.wenzlaff.tools;

import java.util.Collection;

import org.junit.Test;
import org.opensky.api.OpenSkyApi;
import org.opensky.model.OpenSkyStates;
import org.opensky.model.StateVector;

/**
 * Klasse ausgeben der Flughöhen.
 * 
 * http://blog.wenzlaff.de/?p=8198
 * 
 * @author Thomas Wenzlaff
 *
 */
public class FlugAltitudeTest {

	@Test
	public void testPrintFlugAltitude() throws Exception {

		OpenSkyApi api = new OpenSkyApi();
		OpenSkyStates os = api.getStates(0, null);
		Collection<StateVector> states = os.getStates();

		FlugAltitude.printFlugHoehen(states);
	}

}

Und hier die Klasse das die Ausgabe erzeugt:

package de.wenzlaff.tools;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

import org.opensky.model.StateVector;

/**
 * Klasse zum ausgeben der Flughöhen
 * 
 * http://blog.wenzlaff.de/?p=8198
 * 
 * @author Thomas Wenzlaff
 *
 */
public class FlugAltitude {

	private static Collection<StateVector> svParken = new ArrayList<>();
	private static Collection<StateVector> sv1Bis500 = new ArrayList<>();
	private static Collection<StateVector> sv500Bis1000 = new ArrayList<>();
	private static Collection<StateVector> sv1000Bis2000 = new ArrayList<>();
	private static Collection<StateVector> sv2000Bis3000 = new ArrayList<>();
	private static Collection<StateVector> sv3000Bis4000 = new ArrayList<>();
	private static Collection<StateVector> sv4000Bis5000 = new ArrayList<>();
	private static Collection<StateVector> sv5000Bis6000 = new ArrayList<>();
	private static Collection<StateVector> sv6000Bis7000 = new ArrayList<>();
	private static Collection<StateVector> sv7000Bis8000 = new ArrayList<>();
	private static Collection<StateVector> sv8000Bis9000 = new ArrayList<>();
	private static Collection<StateVector> sv9000Bis10000 = new ArrayList<>();
	private static Collection<StateVector> sv10000Bis110000 = new ArrayList<>();
	private static Collection<StateVector> sv110000Bis12000 = new ArrayList<>();
	private static Collection<StateVector> sv120000Bis13000 = new ArrayList<>();
	private static Collection<StateVector> svUeber13000 = new ArrayList<>();

	/**
	 * Print der Flughöhen.
	 * 
	 * @param states
	 */
	public static void printFlugHoehen(Collection<StateVector> states) {

		for (StateVector stateVector : states) {
			setAltitude(stateVector);
		}

		ausgabe(states);
	}

	private static void ausgabe(Collection<StateVector> states) {

		System.out.println("Parken      ; " + svParken.size());
		System.out.println("   1-500    ; " + sv1Bis500.size());
		System.out.println(" 500-1000   ; " + sv500Bis1000.size());
		System.out.println("1000-2000   ; " + sv1000Bis2000.size());
		System.out.println("2000-3000   ; " + sv2000Bis3000.size());
		System.out.println("3000-4000   ; " + sv3000Bis4000.size());
		System.out.println("4000-5000   ; " + sv4000Bis5000.size());
		System.out.println("5000-6000   ; " + sv5000Bis6000.size());
		System.out.println("6000-7000   ; " + sv6000Bis7000.size());
		System.out.println("7000-8000   ; " + sv7000Bis8000.size());
		System.out.println("8000-9000   ; " + sv8000Bis9000.size());
		System.out.println("9000-10000  ; " + sv9000Bis10000.size());
		System.out.println("10000-11000 ; " + sv10000Bis110000.size());
		System.out.println("11000-12000 ; " + sv110000Bis12000.size());
		System.out.println("12000-13000 ; " + sv120000Bis13000.size());
		System.out.println("über 13000  ; " + svUeber13000.size());

		System.out.println("Summme      ; " + states.size());
		System.out.println("Zeitpunkt   ; " + new Date());
		System.out.println("Quelle      ; The OpenSky Network, http://www.opensky-network.org");
	}

	private static void setAltitude(StateVector vector) {

		Double hoehe = vector.getAltitude();

		if (hoehe == null || hoehe <= 0) {
			svParken.add(vector);
		} else if (hoehe >= 1 & hoehe <= 500) {
			sv1Bis500.add(vector);
		} else if (hoehe >= 500 & hoehe <= 1000) {
			sv500Bis1000.add(vector);
		} else if (hoehe >= 1000 & hoehe <= 2000) {
			sv1000Bis2000.add(vector);
		} else if (hoehe >= 2000 & hoehe <= 3000) {
			sv2000Bis3000.add(vector);
		} else if (hoehe >= 3000 & hoehe <= 4000) {
			sv3000Bis4000.add(vector);
		} else if (hoehe >= 4000 & hoehe <= 5000) {
			sv4000Bis5000.add(vector);
		} else if (hoehe >= 5000 & hoehe <= 6000) {
			sv5000Bis6000.add(vector);
		} else if (hoehe >= 6000 & hoehe <= 7000) {
			sv6000Bis7000.add(vector);
		} else if (hoehe >= 7000 & hoehe <= 8000) {
			sv7000Bis8000.add(vector);
		} else if (hoehe >= 8000 & hoehe <= 9000) {
			sv8000Bis9000.add(vector);
		} else if (hoehe >= 9000 & hoehe <= 10000) {
			sv9000Bis10000.add(vector);
		} else if (hoehe >= 10000 & hoehe <= 11000) {
			sv10000Bis110000.add(vector);
		} else if (hoehe >= 11000 & hoehe <= 12000) {
			sv110000Bis12000.add(vector);
		} else if (hoehe >= 12000 & hoehe <= 13000) {
			sv120000Bis13000.add(vector);
		} else if (hoehe >= 13000) {
			svUeber13000.add(vector);
		}
	}
}

Nun mal eine neue Auswertung nur mit den Flugzeugen die mein Raspberry Pi so mit DUMP1090 empfängt:

Und mal zwei Messungen übereinander gelegt:

Also ist die Frage beantwortet. Es fliegen die meisten Flugzeuge in 10 Km bis 11 Km Höhe.

Ähnliche Artikel:

  1. OpenSky Java API to KML für Google Earth – Teil 1
  2. Raspberry Pi Transponder Datenauswertung – Fluglärm: Ab welcher Höhe und wie lange sind Flugzeuge aus EDDV (HAJ) bei mir in Langenhagen hörbar?
  3. Java Rätsel des Monats