Нет описания

pvl.py 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. #Entwickler: Martin Mittrenga und Nico Hessler
  2. import sys #importieren saemtlicher Module
  3. import os
  4. import random as rdm
  5. import re as re #regular express fuer Bibo regulaerer ausdruecke
  6. from math import sin, cos, sqrt, atan2, radians #Teilelemente aus math fuer mathematische Ausdruecke
  7. #Begruessung
  8. os.system("clear") #loeschen des Bildschirms
  9. print ("-")*50
  10. print ("Luftlinienberechner")
  11. print ("Erstellt von Niko Hessler und Martin Mittrenga")
  12. print ("-")*50
  13. #========================================================================
  14. #Datei einlesen
  15. datenbank = open("/data/share/nhessler/pvl/DE.tab", "r").readlines() #Einlesen der Datei
  16. #========================================================================
  17. #Startpunkt Auswahl
  18. startpunkt = (raw_input("Geben sie Ihren Startpunkt an: "))
  19. print ("-")*50
  20. idee = []
  21. for line in datenbank:
  22. if re.search(startpunkt, line):
  23. idee.append(line.split()) #Schreiben als liste
  24. for a in range(len(idee)):
  25. print "%i. idee:%s"%(a+1,idee[a])
  26. print ("-")*50
  27. choice = int(raw_input("Welche Option aus der Liste ist gewuenscht? "))-1
  28. print idee[choice]
  29. latitudestart = idee[choice][4]
  30. longitudestart = idee[choice][5]
  31. print ("-")*50
  32. #Endpunkt Auswahl
  33. endpunkt = (raw_input("Geben sie Ihren Endpunkt an: "))
  34. print ("-")*50
  35. idee = [] #leeren der Liste
  36. for line in datenbank:
  37. if re.search(endpunkt, line):
  38. idee.append(line.split()) #Schreiben als liste
  39. for a in range(len(idee)):
  40. print "%i. idee:%s"%(a+1,idee[a]) #%s string eingefuegt #%i dezimal/int
  41. print ("-")*50
  42. choice = int(raw_input("Welche Option aus der Liste ist gewuenscht? "))-1
  43. latitudeende = idee[choice][4]
  44. longitudeende = idee[choice][5]
  45. #========================================================================
  46. print "-"*50
  47. print "Zwischenausgabe der vier uebergebenen Variablen zur Berechnung:"
  48. print latitudestart
  49. print longitudestart
  50. print latitudeende
  51. print longitudeende
  52. print "-"*50
  53. #Berechnung
  54. R = 6373.0 #Radius der Erde in Kilometer
  55. #Startpunkt
  56. lat1 = radians(float(latitudestart))
  57. lon1 = radians(float(longitudestart))
  58. #Endpunkt
  59. lat2 = radians(float(latitudeende))
  60. lon2 = radians(float(longitudeende))
  61. #Differenz
  62. dlon = lon2-lon1
  63. dlat = lat2-lat1
  64. a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2
  65. c = 2*atan2(sqrt(a), sqrt(1-a))
  66. distance = R * c
  67. print "-"*50
  68. print ("Ihre Entfernung betraegt:"), distance, ("Kilometer. Gute Fahrt!")
  69. print "-"*50
  70. #======================================================================
  71. while True: #Sicherheitsabfrage ob wirklich beendet werden soll
  72. eingabe=raw_input("Wollen Sie Wirklich beenden? Bitte 'J' oder 'N' eingeben: ")
  73. if eingabe=="N":
  74. bed= False
  75. break
  76. elif eingabe=="J":sys.exit()
  77. else:
  78. print"Falsche Eingabe!"