123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- #Entwickler: Martin Mittrenga und Nico Hessler
- import sys #importieren saemtlicher Module
- import os
- import random as rdm
- import re as re #regular express fuer Bibo regulaerer ausdruecke
- from math import sin, cos, sqrt, atan2, radians #Teilelemente aus math fuer mathematische Ausdruecke
- #Begruessung
- os.system("clear") #loeschen des Bildschirms
- print ("-")*50
- print ("Luftlinienberechner")
- print ("Erstellt von Niko Hessler und Martin Mittrenga")
- print ("-")*50
- #========================================================================
- #Datei einlesen
- datenbank = open("/data/share/nhessler/pvl/DE.tab", "r").readlines() #Einlesen der Datei
- #========================================================================
- #Startpunkt Auswahl
- startpunkt = (raw_input("Geben sie Ihren Startpunkt an: "))
- print ("-")*50
- Vorschlag = []
- for line in datenbank:
- if re.search(startpunkt, line):
- Vorschlag.append(line.split()) #Schreiben als liste
- for a in range(len(Vorschlag)):
- print "%i. Vorschlag: %s"%(a+1,Vorschlag[a][3])
- print ("-")*50
- choice = int(raw_input("Welche Option aus der Liste ist gewuenscht? "))-1
- latitudestart = Vorschlag[choice][4]
- longitudestart = Vorschlag[choice][5]
- print ("-")*50
- #Endpunkt Auswahl
- endpunkt = (raw_input("Geben sie Ihren Endpunkt an: "))
- print ("-")*50
- Vorschlag = [] #leeren der Liste
- for line in datenbank:
- if re.search(endpunkt, line):
- Vorschlag.append(line.split()) #Schreiben als liste
- for a in range(len(Vorschlag)):
- print "%i. Vorschlag: %s"%(a+1,Vorschlag[a][3]) #%s string eingefuegt #%i dezimal/int
- print ("-")*50
- choice = int(raw_input("Welche Option aus der Liste ist gewuenscht? "))-1
- latitudeende = Vorschlag[choice][4]
- longitudeende = Vorschlag[choice][5]
- #========================================================================
- print ("-")*50
- print
- print
- print
- print "="*50
- print "ACHTUNG! Hier muessen vier Gradeinheiten als (Float-Wert stehen)."
- print "Sollte dies nicht der Fall sein, stuertzt das Programm ab."
- print "Zwischenausgabe der vier uebergebenen Variablen zur Berechnung:"
- print
- print latitudestart
- print longitudestart
- print latitudeende
- print longitudeende
- print "="*50
- print
- #Berechnung
- R = 6373.0 #Radius der Erde in Kilometer
- #Startpunkt
- lat1 = radians(float(latitudestart))
- lon1 = radians(float(longitudestart))
- #Endpunkt
- lat2 = radians(float(latitudeende))
- lon2 = radians(float(longitudeende))
- #Differenz
- dlon = lon2-lon1
- dlat = lat2-lat1
- a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2
- c = 2*atan2(sqrt(a), sqrt(1-a))
- distance = R * c
- print "-"*50
- print ("Ihre Entfernung betraegt:"), distance, ("Kilometer. Gute Fahrt!")
- print "-"*50
- print
- print
- print
- print
- print
- print
- #======================================================================
- while True: #Sicherheitsabfrage ob wirklich beendet werden soll
- eingabe=raw_input("Wollen Sie Wirklich beenden? Bitte 'J' oder 'N' eingeben: ")
- if eingabe=="N":
- bed= False
- break
- elif eingabe=="J":sys.exit()
- else:
- print"Falsche Eingabe!"
|