Hướng dẫn dùng radian meter python



Hàm radians() trong Python chuyển đổi góc x từ độ thành radian.


Cú pháp

Cú pháp của radians() trong Python:

import math
math.radians(x)

Ghi chú: Hàm này không có thể truy cập trực tiếp, vì thế chúng ta cần import math module và sau đó chúng ta cần gọi hàm này bởi sử dụng đối tượng math.

Các tham số:

  • x: Đây phải là một giá trị số.


Ví dụ sau minh họa cách sử dụng của hàm radians() trong Python.

import math
print ("radians(60) : ",  math.radians(60))
print ("radians(-60) : ",  math.radians(-60))
print ("radians(0) : ",  math.radians(0))
print ("radians(math.pi) : ",  math.radians(math.pi))
print ("radians(math.pi/2) : ",  math.radians(math.pi/2))
print ("radians(math.pi/4) : ",  math.radians(math.pi/4))

Chạy chương trình Python trên sẽ cho kết quả:

radians(60) :  1.0471975511965976
radians(-60) :  -1.0471975511965976
radians(0) :  0.0
radians(math.pi) :  0.05483113556160755
radians(math.pi/2) :  0.027415567780803774
radians(math.pi/4) :  0.013707783890401887



Tôi muốn có thể ước tính khoảng cách giữa hai điểm (vĩ độ, kinh độ). Tôi muốn rút ngắn, vì điều này sẽ dành cho tìm kiếm đồ thị A * và tôi muốn nó nhanh chóng . Các điểm sẽ cách nhau tối đa 800 km.

  • python
  • math
  • maps
  • mapping
  • latitude-longitude

61 hữu ích 5 bình luận 90k xem chia sẻ

answer

42

Hướng dẫn dùng radian meter python

Vì khoảng cách tương đối nhỏ, bạn có thể sử dụng ước lượng khoảng cách hình tam giác. Phép tính gần đúng này nhanh hơn so với sử dụng công thức Haversine. Vì vậy, để có khoảng cách từ điểm tham chiếu của bạn (lat1 / lon1) đến điểm bạn đang kiểm tra (lat2 / lon2), hãy sử dụng công thức dưới đây. Lưu ý quan trọng: bạn cần chuyển đổi tất cả các điểm vĩ độ / kinh độ sang radian:

R = 6371  // radius of the earth in km
x = (lon2 - lon1) * cos( 0.5*(lat2+lat1) )
y = lat2 - lat1
d = R * sqrt( x*x + y*y )

Vì 'R' tính bằng km nên khoảng cách 'd' sẽ tính bằng km.

Tham khảo: http://www.movable-type.co.uk/scripts/latlong.html

42 hữu ích 4 bình luận chia sẻ

answer

8

Hướng dẫn dùng radian meter python

Một ý tưởng cho tốc độ là chuyển đổi tọa độ dài / vĩ độ thành tọa độ 3D (x, y, z). Sau khi xử lý trước các điểm, hãy sử dụng khoảng cách Euclide giữa các điểm dưới dạng tính toán nhanh của khoảng cách thực.

8 hữu ích 3 bình luận chia sẻ

answer

4

Hướng dẫn dùng radian meter python

Nếu khoảng cách giữa các điểm tương đối nhỏ (phạm vi hàng mét đến vài km) thì một trong những cách tiếp cận nhanh có thể là

from math import cos, sqrt
def qick_distance(Lat1, Long1, Lat2, Long2):
    x = Lat2 - Lat1
    y = (Long2 - Long1) * cos((Lat2 + Lat1)*0.00872664626)  
    return 111.319 * sqrt(x*x + y*y)

Lat, Long tính bằng radian, khoảng cách tính bằng km.

Độ lệch so với khoảng cách Haversine là 1%, trong khi tốc độ tăng là hơn ~ 10 lần.

0,00872664626 = 0,5 * pi / 180,

111,319 - là khoảng cách tương ứng với 1độ tại Xích đạo, bạn có thể thay thế nó bằng giá trị trung bình của mình như tại đây https://www.cartographyunchained.com/cgsta1/ hoặc thay thế nó bằng một bảng tra cứu đơn giản.

4 hữu ích 2 bình luận chia sẻ

answer

3

Hướng dẫn dùng radian meter python

Để có tốc độ tối đa, bạn có thể tạo thứ gì đó giống như bảng cầu vồng cho các khoảng cách tọa độ. Có vẻ như bạn đã biết lĩnh vực mà bạn đang làm việc, vì vậy có vẻ như việc tính toán trước chúng có thể khả thi. Sau đó, bạn có thể tải kết hợp gần nhất và chỉ cần sử dụng kết hợp đó.

Ví dụ, ở lục địa Hoa Kỳ, kinh độ là khoảng 55 độ và vĩ độ là 20, sẽ là 1100 điểm số nguyên. Khoảng cách giữa tất cả các kết hợp có thể có là một bài toán bắt tay được trả lời bằng (n-1) (n) / 2 hoặc khoảng 600k kết hợp. Điều đó có vẻ khá khả thi để lưu trữ và truy xuất. Nếu bạn cung cấp thêm thông tin về yêu cầu của mình, tôi có thể nói cụ thể hơn.

3 hữu ích 0 bình luận chia sẻ

answer

1

Hướng dẫn dùng radian meter python

Bạn có thể sử dụng cdisttừ scipylớp khoảng cách không gian:

Ví dụ :

from scipy.spatial.distance import cdist 
df1_latlon = df1[['lat','lon']]
df2_latlon = df2[['lat', 'lon']]
distanceCalc = cdist(df1_latlon, df2_latlon, metric=haversine)

1 hữu ích 0 bình luận chia sẻ

answer

0

Hướng dẫn dùng radian meter python

Để tính toán khoảng cách hasrsine giữa 2 điểm, bạn chỉ cần sử dụng thư viện mpu.haversine_distance () , như sau:

>>> import mpu
>>> munich = (48.1372, 11.5756)
>>> berlin = (52.5186, 13.4083)
>>> round(mpu.haversine_distance(munich, berlin), 1)
>>> 504.2

0 hữu ích 0 bình luận chia sẻ

answer

-1

Hướng dẫn dùng radian meter python

Vui lòng sử dụng mã sau.

def distance(lat1, lng1, lat2, lng2):
    #return distance as meter if you want km distance, remove "* 1000"
    radius = 6371 * 1000 

    dLat = (lat2-lat1) * math.pi / 180
    dLng = (lng2-lng1) * math.pi / 180

    lat1 = lat1 * math.pi / 180
    lat2 = lat2 * math.pi / 180

    val = sin(dLat/2) * sin(dLat/2) + sin(dLng/2) * sin(dLng/2) * cos(lat1) * cos(lat2)    
    ang = 2 * atan2(sqrt(val), sqrt(1-val))
    return radius * ang

-1 hữu ích 1 bình luận chia sẻ

Hướng dẫn dùng radian meter python

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Hướng dẫn dùng radian meter python