python - poner - convertir grados a radianes arcgis
Python: convirtiendo radianes a grados (5)
Python convierte radianes a grados o grados a radianes:
¿Qué son los radianes y qué problema resuelve ?:
Los radianes y los grados son dos unidades de medida separadas que ayudan a las personas a expresar y comunicar cambios precisos en la dirección. Wikipedia tiene una gran intuición con sus infografías sobre cómo se define un Radian en relación con los grados:
https://en.wikipedia.org/wiki/Radian
Ejemplos de Python usando bibliotecas calculando grados de radianes:
>>> import math
>>> math.degrees(0) #0 radians == 0 degrees
0.0
>>> math.degrees(math.pi/2) #pi/2 radians is 90 degrees
90.0
>>> math.degrees(math.pi) #pi radians is 180 degrees
180.0
>>> math.degrees(math.pi+(math.pi/2)) #pi+pi/2 radians is 270 degrees
270.0
>>> math.degrees(math.pi+math.pi) #2*pi radians is 360 degrees
360.0
Ejemplos de Python usando bibliotecas calculando radianes a partir de grados:
>>> import math
>>> math.radians(0) #0 degrees == 0 radians
0.0
>>> math.radians(90) #90 degrees is pi/2 radians
1.5707963267948966
>>> math.radians(180) #180 degrees is pi radians
3.141592653589793
>>> math.radians(270) #270 degrees is pi+(pi/2) radians
4.71238898038469
>>> math.radians(360) #360 degrees is 2*pi radians
6.283185307179586
Fuente: https://docs.python.org/3/library/math.html#angular-conversion
La notación matemática:
Puede hacer la conversión de grado / radián sin bibliotecas:
Si transfiere su propio convertidor de grado / radianes, debe escribir su propio código para manejar casos extremos.
Los errores aquí son fáciles de hacer, y le dolerá al igual que a los desarrolladores del orbitador Marte 1999 que se hundieron $ 125 millones de dólares al estrellarse contra Marte debido a casos de borde no intuitivos aquí.
Vamos a bloquear ese orbitador y rodar nuestros propios radianes a grados:
Los radianes no válidos como entrada devuelven la salida de basura.
>>> 0 * 180.0 / math.pi #0 radians is 0 degrees
0.0
>>> (math.pi/2) * 180.0 / math.pi #pi/2 radians is 90 degrees
90.0
>>> (math.pi) * 180.0 / math.pi #pi radians is 180 degrees
180.0
>>> (math.pi+(math.pi/2)) * 180.0 / math.pi #pi+(pi/2) radians is 270 degrees
270.0
>>> (2 * math.pi) * 180.0 / math.pi #2*pi radians is 360 degrees
360.0
Grados a radianes:
>>> 0 * math.pi / 180.0 #0 degrees in radians
0.0
>>> 90 * math.pi / 180.0 #90 degrees in radians
1.5707963267948966
>>> 180 * math.pi / 180.0 #180 degrees in radians
3.141592653589793
>>> 270 * math.pi / 180.0 #270 degrees in radians
4.71238898038469
>>> 360 * math.pi / 180.0 #360 degrees in radians
6.283185307179586
Expresando múltiples rotaciones con grados y radianes
Los valores radian válidos de una sola rotación están entre 0 y 2 * pi. Los valores de grado de rotación simple están entre 0 y 360. Sin embargo, si desea expresar rotaciones múltiples, los valores válidos de radian y de grado están entre 0 e infinito.
>>> import math
>>> math.radians(360) #one complete rotation
6.283185307179586
>>> math.radians(360+360) #two rotations
12.566370614359172
>>> math.degrees(12.566370614359172) #math.degrees and math.radians preserve the
720.0 #number of rotations
Contraer rotaciones múltiples:
Puede contraer rotaciones de múltiples grados / radianes en una sola rotación modificando el valor de una rotación. Para grados, mod por 360, para radianes tu módulo por 2 * pi.
>>> import math
>>> math.radians(720+90) #2 whole rotations plus 90 is 14.14 radians
14.137166941154069
>>> math.radians((720+90)%360) #14.1 radians brings you to
1.5707963267948966 #the end point as 1.57 radians.
>>> math.degrees((2*math.pi)+(math.pi/2)) #one rotation plus a quarter
450.0 #rotation is 450 degrees.
>>> math.degrees(((2*math.pi)+(math.pi/2))%(2*math.pi)) #one rotation plus a quarter
90.0 #rotation brings you to 90.
Protip
La academia de Khan tiene un contenido excelente para solidificar la intuición en torno a la trigonometría y las matemáticas angulares: https://www.khanacademy.org/math/algebra2/trig-functions/intro-to-radians-alg2/v/introduction-to-radians
En la biblioteca de matemáticas python.org, solo pude encontrar math.cos(x)
, con cos / sin / tan / acos / asin / atan. Esto devuelve la respuesta en radianes. ¿Cómo puedo obtener la respuesta en grados?
Aquí está mi código:
import math
x = math.cos(1)
y = x * 180 / math.pi
print y
30.9570417874
Mi calculadora, en grados, me da:
cos(1)
0.9998476...
-fix- porque quiere cambiar de radianes a grados, en realidad es rad = deg * math.pi / 180 y no deg * 180 / math.pi
import math
x=1 # in deg
x = x*math.pi/180 # convert to rad
y = math.cos(x) # calculate in rad
print y
en 1 línea puede ser así
y=math.cos(1*math.pi/180)
Python incluye dos funciones en el paquete de math
; radians
convierte grados a radianes, y degrees
convierte radianes a grados.
Para que coincida con el resultado de su calculadora necesita:
>>> math.cos(math.radians(1))
0.9998476951563913
Tenga en cuenta que todas las funciones trigonométricas se convierten entre un ángulo y la proporción de dos lados de un triángulo. cos, sen y tan toman un ángulo en radianes como entrada y devuelven la relación; acos, asin y atan toman una relación como entrada y devuelven un ángulo en radianes. Solo convierte los ángulos, nunca las relaciones.
Simplemente puede convertir su resultado de radianes a grado mediante el uso de
math.degrees y redondear apropiadamente a los lugares decimales requeridos
por ejemplo
>>> round(math.degrees(math.asin(0.5)),2)
30.0
>>>
También me gusta definir mis propias funciones que toman y devuelven argumentos en grados en lugar de radianes. Estoy seguro de que hay una capitalización más pura a la que no le gustan mis nombres, pero solo uso una primera letra en mayúscula para mis funciones personalizadas. Las definiciones y el código de prueba están debajo.
#Definitions for trig functions using degrees.
def Cos(a):
return cos(radians(a))
def Sin(a):
return sin(radians(a))
def Tan(a):
return tan(radians(a))
def ArcTan(a):
return degrees(arctan(a))
def ArcSin(a):
return degrees(arcsin(a))
def ArcCos(a):
return degrees(arccos(a))
#Testing Code
print(Cos(90))
print(Sin(90))
print(Tan(45))
print(ArcTan(1))
print(ArcSin(1))
print(ArcCos(0))
Tenga en cuenta que he importado matemáticas (o numpy) en el espacio de nombres con
from math import *
También tenga en cuenta que mis funciones están en el espacio de nombres en el que se definieron. Por ejemplo,
math.Cos(45)
no existe.