
Projekt: Incydenty z rekinami • 2000-2024
Narzędzia: Tableau, MySQL (ETL), DBeaver
Opis: Niezależna, pro bono analiza oparta na Global Shark Attack File (GSAF) – od importu i czyszczenia
danych (ETL w MySQL) po budowę interaktywnego dashboardu w Tableau.
Cel: Edukacja i kontekst, nie strach – podkreślenie sezonowości, aktywności człowieka i geografii (z
jasnymi definicjami: fatal vs non-fatal oraz unprovoked).
Dane: Global Shark Attack File (GSAF) • snapshot 2025-09-24 • incydenty 2000–2024
Repozytorium:
Zobacz na GitHub
Wprowadzenie
Rekiny od zawsze budziły emocje – a dane pomagają te emocje przekuć w zrozumienie. Ten projekt powstał jako moja wolontariacka współpraca z Global Shark Attack File (GSAF). Moim celem było przedstawienie tej historii w sposób spokojny i odpowiedzialny – pokazanie, że większość incydentów nie kończy się śmiercią, a ryzyko zależy głównie od pory roku, rodzaju aktywności i lokalizacji, a nie od „niebezpiecznych gatunków”.
To nie była tylko analiza danych, ale także proces poprawy ich jakości i praktyka etycznej wizualizacji. Dashboard został zaprojektowany tak, aby był przejrzysty, minimalistyczny i pozbawiony sensacyjności.
Dane
- Źródło: Global Shark Attack File (GSAF)
- Zakres lat: 2000-2024 (snapshot)
- Pola zawarte w danych: data i lokalizacja incydentu, aktywność człowieka, gatunek rekina (jeśli znany), status (śmiertelny / nieśmiertelny), typ (sprowokowany / niesprowokowany), pora roku, kraj.
- Uwaga: zbiór danych zawiera historyczne wpisy, które mogą różnić się szczegółowością lub dokładnością w zależności od sposobu i miejsca zgłoszenia incydentów. Celem projektu była klarowność i struktura, nie sensacyjny przekaz.
Proces
1) Przygotowanie danych (MySQL)
- Zaimportowanie pliku źródłowego i utworzenie kopii zapasowych.
- Usunięcie duplikatów i pustych wierszy, ujednolicenie wielkości liter i formatów.
- Parsowanie dat z różnych formatów (YYYY-MMM-DD, DD-MMM-YY, MMM-YYYY); w przypadku braku dnia miesiąca zastosowano wartość domyślną – 15.
- Standaryzacja nazw krajów i stanów (kody ISO, aliasy), oczyszczenie niespójnych nazw lokalizacji.
- Utworzenie pól pochodnych, takich jak IsFatal, IsProvoked, ActivityCategory oraz SpeciesCategory.
- Wykonanie kontroli jakości w celu zapewnienia logicznych zakresów i spójnej liczby rekordów.
2) Wizualizacja (Tableau)
- KPIs: liczba incydentów ogółem, nieśmiertelne, niesprowokowane oraz kraj z największą liczbą zdarzeń.
- Wykres trendu 2000-2024 (śmiertelne vs nieśmiertelne vs nieznane).
- Udział poszczególnych aktywności (np. sporty deskowe, pływanie, wędkarstwo).
- Sezonowość według miesięcy, z filtrami dla kraju, aktywności i typu incydentu.
- Tooltips zawierające definicje i opis metodologii.
- Paleta kolorów i układ skupione na przejrzystości i równowadze – bez dramatyzmu.
Technologie i narzędzia: MySQL, DBeaver, Tableau, SQL/ETL, dokumentacja metodologii.
Wyniki
- Większość incydentów nie kończy się śmiercią.
- Sezonowość: więcej zdarzeń występuje latem oraz w miejscach o dużej aktywności wodnej.
- Aktywność ma znaczenie: sporty deskowe, pływanie i wędkarstwo są najczęściej wymieniane w raportach.
- Wskaźnik śmiertelności nie wzrósł w latach 2000-2024.
- Interaktywny dashboard umożliwia łatwe badanie trendów w czasie, według aktywności i geografii.
Refleksje
- Jakość danych przede wszystkim: najbardziej czasochłonną częścią było ujednolicenie lokalizacji. Wiele raportów zawierało opisowe nazwy miejsc (plaże, zatoki, rafy, regiony), których Tableau nie rozpoznawało automatycznie. Zastosowałam reguły regex (normalizacja pisowni, usuwanie skrótów/znaków, standaryzacja formatu), aby zharmonizować nazwy krajów, stanów i lokalizacji, dzięki czemu mapa wyświetla się poprawnie.
- Jasne definicje zapobiegają błędnej interpretacji: rozróżnienie między incydentami sprowokowanymi i niesprowokowanymi oraz śmiertelnymi i nieśmiertelnymi jest kluczowe dla odpowiedzialnej analizy.
- Etyczna wizualizacja: stonowane kolory, czytelne etykiety i brak rankingów „najbardziej niebezpiecznych rekinów” sprawiają, że przekaz jest informacyjny, a nie alarmistyczny.
- Świadome ograniczenia: wyniki zależą od sposobu raportowania incydentów w poszczególnych regionach – liczby zawsze należy interpretować w odpowiednim kontekście.