|2020-06-04|
GIS, Software
Wiedza na wagę zdrowia - FME pomaga zebrać dane o COVID-19
Skąd i w jaki sposób pobierać naprawdę aktualne i wiarygodne dane o kolejnych przypadkach zachorowania na COVID-19? Jak wykorzystać w tym celu narzędzia FME, wyjaśniają specjaliści z warszawskiej firmy Globema.
Mapa John Hopkins University
|
|
rys. 1
|
|
rys. 2
|
|
rys. 3
|
|
|
Czy epidemia COVID-19 jest już za nami? Nie łudźmy się – nie. Jednak poszczególne kraje podejmują decyzje o stopniowym i obwarowanym szczegółowymi warunkami otwieraniu granic. Zwłaszcza przed wakacjami wiedza o tym, gdzie wciąż notowane są przypadki zachorowań, a gdzie jest ich mniej, może być wiedzą na wagę zdrowia. Są kraje, gdzie ogłoszono już koniec pandemii (jak np. Słowenia czy Nowa Zelandia), inne biją smutne rekordy w liczbie zachorowań i zgonów. Skąd i w jaki sposób pobierać naprawdę aktualne i wiarygodne dane o kolejnych przypadkach?
Ponieważ każdy kraj raportuje je osobno, analiza poszczególnych zestawów danych bywa trudna. Zwłaszcza że każdy z krajów ma inny interwał publikowania danych: dzienne raporty pojawiają się raz lub wiele razy dziennie, w różnych godzinach. Sytuacji nie ułatwia to, że organizacje czy serwisy internetowe wykorzystują różne metodyki zbierania oraz potwierdzania informacji o pandemii. Istnieją na przykład rozbieżności pomiędzy polskim Ministerstwem Zdrowia, World Health Organization czy danymi publikowanymi przez Johns Hopkins University Center for Systems Science and Engineering oraz Otwarty Portal Danych UE.
W Polsce raporty przedstawiane są przez Ministerstwo Zdrowia zazwyczaj dwa razy dziennie. Informacje o nowych przypadkach, zgonach czy wyleczonych osobach w pierwszej kolejności zamieszczane są na oficjalnym profilu Ministerstwa na Twitterze, stronie internetowej resortu oraz na GOV.PL.
W zebraniu danych i uporządkowaniu ich według klucza chronologicznego i geograficznego pomoże FME – popularna platforma integracji danych z różnych źródeł i systemów. FME to oprogramowanie kanadyjskiej firmy Safe Software. Jego wyłącznym dystrybutorem na polskim rynku jest Globema. Aby ułatwić pracę zdalną oraz wspierać walkę z koronawirusem, Safe Software zdecydowało o udostępnieniu licencji FME całkowicie za darmo.
A zatem: w jaki sposób zintegrować dane o zachorowalności i porównać je ze sobą, aby były jak najbardziej aktualne? Przejdźmy przez kilka ścieżek, używając specjalnego skryptu.
Portal Otwartych Danych UE
FME to oprogramowanie z wbudowanymi funkcjami, tzw. transformerami, które umożliwiają „rozmowę” z bankami danych. Jednym z nich jest właśnie wspomniany wyżej portal UE. Przyda nam się także repozytorium danych przestrzennych – w tym przypadku mapa świata udostępniona przez Centrum ArcGIS HUB.
Aby skorzystać z informacji umieszczonych w Portalu Otwartych Danych, użyjemy transformera HTTPCaller – narzędzia umożliwiającego dostęp i wysyłanie zapytań do praktycznie każdego API lub strony z danymi. Wystarczy odpowiednio sformułować zapytanie „Request URL” (rys. 1).
Dane z OPD UE można pobrać na kilka sposobów, m.in. poprzez zapisanie pliku w formacie XML bądź JSON. Ułatwi nam to skrypt, dzięki któremu wykonamy serię czynności krok po kroku.
Pobieramy pliki w formatach XML lub JSON, zarówno poprzez zapis do pliku, jak i otrzymanie wyniku w wartości atrybutu „_response_body”. Dane pobrane z OPD UE posiadają tylko wartości opisowe, bez atrybutu przestrzennego, dlatego dodajemy dostępne on-line mapy świata, żeby lepiej przedstawić dystrybucję danych.
Geometrie krajów pobieramy z wykorzystaniem bezpośredniej wtyczki do „Esri ArcGIS Server Feature Service” w Centrum ArcGIS Hub.
Dodajemy połączone po kluczu nazwy krajów. Możliwe, że nie wszystkie kraje zostały zmapowane. Powodem są różnice w nazwach pomiędzy dwoma zbiorami danych. Na szczęście transformery zawarte w pakiecie FME dają możliwość mapowania wartości atrybutów np. poprzez AttributeValueMapper. W skrypcie zmapowaliśmy część nazw dla lepszego przedstawienia problemu COVID-19 w najbardziej dotkniętych epidemią krajach.
FME umożliwia dalsze prace na statystykach, dlatego w łatwy sposób można wyodrębnić TOP-10 najbardziej dotkniętych krajów lub podzielić dane na pożądane zakresy. Czy tak pobrane dane mogą być wkładem do zasilenia innego systemu GIS lub danych raportowych? Z FME jest to możliwe – platforma wspiera ponad 450 formatów.
Po wykonaniu wszystkich powyższych kroków, ścieżka w FME wygląda tak jak na rys. 2.
Dane z John Hopkins University Center for Systems Science and Engineering
Od początku epidemii raportowano jej stan w sieci, używając mapy stworzonej przez John Hopkins University Center for Systems Science and Engineering. Źródłem przetwarzanych tam danych są codzienne informacje ze stron rządowych lub od organizacji pozarządowych. Końcowym etapem jest ekstrakt danych w postaci plików CSV: albo do GitHuba, albo do innych pokrewnych serwisów, jak np. Humanitarian Data Exchange. W pliku CSV można znaleźć zestawienie zbiorcze dzień po dniu lub dane zagregowane do danego dnia.
Nasz skrypt może skierować bezpośrednie zapytanie do repozytorium GitHuba, w którym zamieszczane są ekstrakty danych, ale też do Humanitarian Data Exchange. W obu przypadkach interesuje nas pobranie pliku CSV. Znowu zastosujemy transformer HTTPCaller.
W efekcie otrzymujemy możliwość bezpośredniego zaczytania zawartości plików. Można zagregować wyniki do całości krajów, ponieważ niektóre z nich posiadają dane w rozbiciu na jednostki administracyjne (np. USA).
Finalnie wygląda to tak jak na rys. 3.
Twitter
Aby pobrać dane publikowane na Twitterze, FME może połączyć się bezpośrednio z jego API. Twitter udostępnia w jego ramach m.in. możliwość wyszukiwania w historii tweetów poprzez konkretne zapytanie o treść. W podstawowej wersji można to zrobić w treściach do 7 dni wstecz. W wyższych pakietach można przejrzeć zawartość serwisu do 30 dni czy nawet od 2006 roku. Jednak w tym przypadku pakiet STANDARD jest wystarczający.
FME pozwala na wykorzystanie gotowych transformerów odwołujących się do twitterowego API, m.in. TweetSearcher. Pozwala on na przeszukanie serwisu na przykład przez frazy czy liczbę iteracji zwracającej zapytanie. Można posłużyć się również innym kryterium, np. czy tweet był dodany w ostatnim czasie lub czy należy do najpopularniejszych pod względem udostępnień, reakcji czy komentarzy. Aby skorzystać z TweetSearcher, wystarczy mieć konto na Twitterze i ustawić je w FME jako konto WebConnections.
Jak już wspomnieliśmy, w Polsce dane ukazują się najszybciej na oficjalnym twitterowym profilu Ministerstwa Zdrowia. W tej chwili są one publikowane dwa razy dziennie: około 8:00 oraz 17:00. Ich struktura jest zunifikowana i powtarzalna: możemy w nich znaleźć informacje o nowych przypadkach, aktualny stan w każdym z województw oraz sumaryczny wynik dla całego kraju.
W skrypcie zamieściliśmy zatem dwie informacje do wyszukania – raport na temat nowych przypadków w Polsce oraz ich podsumowanie w porównaniu do dnia ubiegłego. W obu przypadkach szukamy stałej frazy odnoszącej się do codziennego raportowania polskiego MZ. Bazuje ona na poszukiwaniu tweetów z oficjalnego konta Ministerstwa oraz szuka standardowej frazy: „liczba nowych przypadków/potwierdzone zgony”. Posługujemy się wspomnianym wyżej transformerem TweetSearcher. Skrypt będzie zwracał najlepsze dane na koniec dnia, czyli po drugim ogłoszeniu dziennego raportu MZ.
Raporty Ministerstwa Zdrowia
Możemy też pobrać informacje z oficjalnej strony Rzeczpospolitej Polskiej. Dane aktualizowane są po każdym nowym raporcie Ministerstwa Zdrowia.
Mamy tu możliwość odpytania strony i uzyskania interesujących nas danych bezpośrednio z treści HTML. Znany nam już HTTPCaller pozwala na zwrócenie zawartości strony bezpośrednio do atrybutu „_response_body”. Jedna z linijek kodu zawiera sumarycznie zbiór odnoszący się do całości kraju oraz poszczególnych województw. Wystarczy wydobyć te informacje, używając składni wyrażeń regularnych, aby w prosty sposób otrzymać listę z rozbiciem na poszczególne województwa. Znając stałe pozycje każdej z danych, transferujemy je do pożądanych atrybutów, jak „Liczba_Zachorowań” czy „Liczba_Zgonów”. Ponieważ dane pobrane ze strony nie zawierają komponentu przestrzennego, wykorzystamy dowolny zbiór danych udostępnionych nieodpłatnie w internecie. Poprzez klucz nazwy województwa jesteśmy w stanie połączyć dane atrybutowe z konkretnymi granicami administracyjnym Polski.
Mamy nadzieję, że dzięki powyższym przykładom przekonaliśmy was, jaka moc tkwi w FME. Nie zawsze trzeba mieć kompletny zbiór danych przestrzennych oraz opisowych, aby w prosty sposób przedstawić każde zagadnienie, nawet przebieg epidemii COVID-19 w różnych krajach. Wystarczy dobra aplikacja z możliwością połączenia się z bankami danych.
W tekście tym kilkakrotnie odwoływaliśmy się do skryptu i kroków, które trzeba w nim wykonać. Przypomnijmy, że skrypt możecie pobrać stąd.
Globema
|