Is anyone aware of a tool/script available to calculate the proper Latitude/Longitude values for any FAA obstruction evaluation submittals? The specific format is in bold below.
Latitude (DD-MM-SS.SS) | Latitude must be in NAD83, numeric, separated by hyphen and must be entered in whole numbers as degrees, minutes and seconds to the hundredth of a second. Note: If you do not follow this format specifically your import will fail to load your project | Must be positive integer. 2 digit-2 digit-4 digit (2 digit decimal 2 digit) | DO NOT LEAVE BLANK | ||
Longitude (DD-MM-SS.SS) | Longitude must be in NAD83, numeric, separated by hyphen and must be entered in whole numbers as degrees, minutes and seconds to the hundredth of a second. Note: If you do not follow this format specifically your import will fail to load your project | Must be positive integer. Up to 3 digits-2 digit-4 digit (2 digit decimal 2 digit) | DO NOT LEAVE BLANK |
Thanks,
I totally don't like the leave out the negative sign in the longitude, but I have flags in there to check for it and keep it more general
def dd_mm_ss(dd, cal_long=True, deg_sign="", use_quad=False):
"""decimal degrees to deg dec min"""
if deg_sign != "":
deg_sign = u'\N{DEGREE SIGN}'
deg = int(dd)
if deg < 0:
quad = ['S', 'W'][cal_long]
deg = abs(deg)
else:
quad = ['N', 'E'][cal_long]
if not use_quad:
quad = ""
mins, secs = divmod(dd*3600, 60)
degs, mins = divmod(mins, 60)
frmt = "{}{}-{:0.0f}-{:05.2f}{}".format(deg, deg_sign, mins, secs, quad)
return frmt
To use, set up the field calculator with the python parser and provide a field name which is used for 'dd' and cal_long
ie for latitude
dd_mm_ss(!LatField!, cal_long=False) and
dd_mm_ss(!LongField!, cal_long=True
you can ignore the other two flags unless you need negative signs and/or the N,S,E,W quadrants.
Thanks, Dan. I noticed that ESRI has a Military Tool, in particular it has a conversion tool, but none of them actually convert to the FAA format. Thanks again!
Glad it could be of use... If there are any modifications you need, let me know