matplotlib / matplotlib/basemap
Numerical precision issue in rotate_vector
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 817
- Fork
- 395
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Hi,
I ran into a numerical precision issue when using the rotate_vector function with 32bit floats as input data. In this case, the lat/lon increments used to determine the relative rotation between map projection and the lat/lon grid is chosen too small. The result was a cristalline structure in the plotted wind barbs which patches of barbs pointing in the exact same direction.
https://github.com/matplotlib/basemap/blob/decfa95124dab76499734145d03b002b9db27477/lib/mpl_toolkits/basemap/__init__.py#L3118
Converting the input to 64bit floats solves the issue for me, as did an increase of the increment to 1.0e-4.
Best regards,
Clemens
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu tại lib/mpl_toolkits/basemap/__init__.py, ở xung quanh phần triển khai rotate_vector được issue đề cập. Tái hiện hiện tượng lỗi của wind-barb với các đầu vào số thực 32-bit, so sánh với các đầu vào 64-bit và increment lớn hơn đã được đề cập, đồng thời xác minh rằng mẫu dạng tinh thể được loại bỏ mà không thay đổi hành vi xoay dự kiến.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- matplotlib, python
- Lĩnh vực
- data-visualization
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 48/100