matplotlib / matplotlib/basemap
Numerical precision issue in rotate_vector
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 817
- Forks
- 395
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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.
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
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie in lib/mpl_toolkits/basemap/init.py bei der im Issue referenzierten rotate_vector-Implementierung. Reproduzieren Sie das Wind-Barb-Artefakt mit 32-Bit-Gleitkommaeingaben, vergleichen Sie es mit 64-Bit-Eingaben und dem erwähnten größeren Inkrement und verifizieren Sie, dass das kristalline Muster eliminiert wird, ohne das erwartete Rotationsverhalten zu ändern.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- matplotlib, python
- Bereich
- data-visualization
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100