Last active
March 31, 2017 10:37
-
-
Save CoryLR/e061b9846d1bfa28fc88d8a03f753dd0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Cory Leigh Rahman | |
#GEOG469: Python with Dr. Bortolot | |
#Python 2.7.8 | |
#This Python program converts coordinates from Degrees Minutes Seconds to Decimal Degrees and vice versa. | |
def end():# Class which allows the program to end | |
print "Thanks for using Cory's Latitude/Longitude Conversion Program! Goodbye." | |
def startover():# Class which appears at the end of calculation, allowing startover without having to rerun the program | |
startoverx=raw_input("Start Over? Yes(1) or No, End Program(2): ") | |
startover_int=float(startoverx) | |
if startover_int==1: | |
print "**Starting Over**" | |
start() | |
elif startover_int==2: | |
end() | |
elif startover_int<1 or startover_int>2 or startover_int>1 and startover_int<2: | |
print "*Invalid Input*" | |
startover() | |
def start():# First class to run | |
conversion=raw_input("Please Select a conversion from the options below:" | |
'\n' "Conversion 1: Decimal Degrees to Degrees/Minutes/Seconds" | |
'\n' "Conversion 2: Degrees/Minutes/Seconds to Decimal Degrees" | |
'\n' "Conversion (1 or 2):") | |
conversion_int=int(conversion) | |
#DD>>DMS | |
if conversion_int==1: | |
print "***Decimal Degrees >>> Degrees/Minutes/Seconds***" | |
#Inputs | |
dns=raw_input("Input Latitude: ") | |
dew=raw_input("Input Longitude: ") | |
#Variables | |
dns_float=float(dns) | |
dns_degrees_int=int(dns_float) | |
dns_minutes=(dns_float-dns_degrees_int)*60 | |
dns_seconds_float=float(dns_minutes) | |
dns_seconds_int=int(dns_seconds_float) | |
dns_seconds=(dns_seconds_float-dns_seconds_int)*60 | |
dew_float=float(dew) | |
dew_degrees_int=int(dew_float) | |
dew_minutes=(dew_float-dew_degrees_int)*60 | |
dew_seconds_float=float(dew_minutes) | |
dew_seconds_int=int(dew_seconds_float) | |
dew_seconds=(dew_seconds_float-dew_seconds_int)*60 | |
dew_minutes_int=int(dew_minutes) | |
dns_minutes_int=int(dns_minutes) | |
ns_indicator="NORTH" | |
ew_indicator="EAST" | |
if dns_degrees_int<0: | |
dns_degrees_int=dns_degrees_int*(-1) | |
dns_minutes_int=dns_minutes_int*(-1) | |
dns_seconds=dns_seconds*(-1) | |
ns_indicator="SOUTH" | |
elif dew_degrees_int<0: | |
dew_degrees_int=dew_degrees_int*(-1) | |
dew_minutes_int=dew_minutes_int*(-1) | |
dew_seconds=dew_seconds*(-1) | |
ew_indicator="WEST" | |
#Results | |
print "Results:" | |
print "Latitude:",dns_degrees_int,"Degrees,",dns_minutes_int,"Minutes,",dns_seconds,"Seconds",ns_indicator | |
print "Longitude:",dew_degrees_int,"Degrees,",dew_minutes_int,"Minutes,",dew_seconds,"Seconds",ew_indicator | |
startover() | |
#DMS>>DD | |
elif conversion_int==2: | |
def latitude(): | |
global dns_float_a | |
global mns_float_a | |
global sns_float_a | |
print "***Degrees/Minutes/Seconds >>> Decimal Degrees***" | |
print "Input Latitude" | |
#Variables | |
dns_a=raw_input("Degrees: ") | |
mns_a=raw_input("Minutes: ") | |
sns_a=raw_input("Seconds: ") | |
ns=raw_input("North (1) or South (2): ") | |
dns_float_a=float(dns_a) | |
mns_float_a=float(mns_a) | |
sns_float_a=float(sns_a) | |
ns_float=float(ns) | |
#south | |
if ns_float==2: | |
dns_float_a=dns_float_a*(-1) | |
mns_float_a=mns_float_a*(-1) | |
sns_float_a=sns_float_a*(-1) | |
#north | |
elif ns_float==1: | |
dns_float_a=dns_float_a*1 | |
mns_float_a=mns_float_a*1 | |
sns_float_a=sns_float_a*1 | |
elif ns_float<1 or ns_float>2 or ns_float>1 and ns_float<2: | |
print "*Invalid Input*" | |
latitude() | |
def longitude(): | |
global dns_float_b | |
global mns_float_b | |
global sns_float_b | |
print "Input Longitude" | |
#Variables | |
dns_b=raw_input("Degrees: ") | |
mns_b=raw_input("Minutes: ") | |
sns_b=raw_input("Seconds: ") | |
ns=raw_input("East (1) or West (2): ") | |
dns_float_b=float(dns_b) | |
mns_float_b=float(mns_b) | |
sns_float_b=float(sns_b) | |
ns_float=float(ns) | |
#south | |
if ns_float==2: | |
dns_float_b=dns_float_b*(-1) | |
mns_float_b=mns_float_b*(-1) | |
sns_float_b=sns_float_b*(-1) | |
#north | |
elif ns_float==1: | |
dns_float_b=dns_float_b*1 | |
mns_float_b=mns_float_b*1 | |
sns_float_b=sns_float_b*1 | |
elif ns_float<1 or ns_float>2 or ns_float>1 and ns_float<2: | |
print "*Invalid Input*" | |
longitude() | |
latitude() | |
longitude() | |
#(d/m/s)ns_float_a | |
decimal_degrees_latitude=(dns_float_a)+(mns_float_a/60)+(sns_float_a/3600) | |
#(d/m/s)ns_float_b | |
decimal_degrees_longitude=(dns_float_b)+(mns_float_b/60)+(sns_float_b/3600) | |
print "Results:" | |
print "Latitude: ", decimal_degrees_latitude | |
print "Longitude: ", decimal_degrees_longitude | |
startover() | |
else: | |
print "*Invalid Input*" | |
start() | |
print "Welcome to Cory's Latitude/Longitude Conversion Program!" # First print | |
start() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment