I need to convert angles that are in radians from Due east to arithmetic degrees for Creating arrows based on GPS velocities to show displacement

The Radians definition for my data is:

enter image description here

Degrees definition:

enter image description here

I tried using "degrees = !radians! * 180 / math.pi" in field calculalotr

But this gives negative values which are no higher than -/+ 180


Or maybe this Python Function will be useful to some.

def UnitCircleRadiansToTrueNorthAzimuth(theta):
'''Converts Radians (East = 0 then counter-clockwise)
    to Geographic Degrees (North = 0 then clockwise).'''
    import math
    theta = math.degrees(theta)
    theta = theta - 90.0
    if theta < 0:
        theta = theta + 360.0
    theta = -1*(theta * 2 * math.pi / 360.0)
    return 360.0 + math.degrees(theta)
  • This worked to convert it to degrees with 0 as North, then I just have to convert to arithmetic degrees. – JGIS Jan 21 at 0:21
  • I converted from geographic degrees to artithmetic degrees using "(450 - !Geographic_Degrees!) % 360" – JGIS Jan 21 at 0:40

I had a workaround to do this with a few conditions. it works and keeps the angle as you want between 0 and 180, transfering Geographic angles (Azimuth in this line of code) to your Arithmetric angle:

if(450-Azimuth<180, 450-Azimuth, if(450-Azimuth>360, 450-Azimuth-360, 450-Azimuth-180))

  • 1
    I used an if block the first time I tried this, too, but the real answer is to reverse the sign, with an offset: arith_deg = 90-azimuth_deg. Changing the range is then just addition of i*360. Of course, the question includes radians, so the answer should address that. – Vince Jan 21 at 0:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.