Mapowanie danych API

Integracja danych z usług sieciowych za pomocą MapForce to popularna i sprawdzona strategia pozyskiwania aktualnych informacji do analizy lub generowania czytelnych raportów. W poprzednim wpisie pokazaliśmy, jak mapować dane z API w prognozach pogody na 5 dni dla ruchliwych portów handlowych, odczytując dane z usług sieciowych w formacie JSON i przekształcając je do arkuszy kalkulacyjnych Excel w bogatym formacie. API pogodowe, którego używaliśmy, jest udostępniane przez OpenWeather, dostawcę danych historycznych, aktualnych i prognoz pogody.

Integracja danych z dowolnego API to nie zadanie, które można wykonać raz i zapomnieć. Kiedy tworzymy rozwiązanie oparte na danych zewnętrznych, musimy szybko reagować, gdy struktura tych danych ulega zmianie. W naszym pierwotnym projekcie integracyjnym, firma OpenWeather zmodyfikowała dane dostarczane przez ich API. Obecnie API zawiera prognozy porywów wiatru w oddzielnej właściwości JSON, niezależnie od prędkości wiatru. Ponieważ porywy wiatru są podejrzewane jako przyczyna niedawnego zablokowania Kanału Sueskiego, te nowe dane są bardzo istotne dla naszej aplikacji! Na szczęście, zarówno mapowanie danych w MapForce, jak i arkusz kalkulacyjny Excel, można łatwo zmodyfikować, aby dodać nowe dane.

Zanim będziemy mogli zmodyfikować mapowanie danych w API, musimy zrozumieć zmiany, które zaszły w nowym formacie danych eksportowanych do Excela. Nowy fragment głównej tabeli prognozy na 5 dni jest przedstawiony poniżej:

Twórca arkusza kalkulacyjnego dodał nową kolumnę pomiędzy kolumnami "Prędkość wiatru" i "Kierunek wiatru", aby wyświetlać prognozowane porywy wiatru dla każdej prognozy.

W sekcji nagłówkowej arkusza kalkulacyjnego wprowadzono również kilka zmian. Do wykresu wiatru dodano linię wskazującą maksymalną prędkość podmuchów, dodano współrzędne geograficzne portu, a także podano maksymalną prędkość podmuchów w prognozie pogody na 5 dni.

Nowy, interaktywny przycisk w arkuszu kalkulacyjnym, oznaczony jako "Wyświetl aktualną aktywność portu", otwiera stronę internetową. Wszystkie statki handlowe są wyposażone w transpondery systemu automatycznej identyfikacji (AIS), które nieustannie transmitują pozycję statku w celu uniknięcia kolizji i tworzenia map nawigacyjnych. MyShipTracking.com jest jedną z wielu stron internetowych i przedsiębiorstw, które wykorzystują technologię AIS do raportowania danych AIS w czasie rzeczywistym oraz do lepszego zrozumienia, jak statki poruszają się po całym świecie.

Kliknięcie przycisku w arkuszu kalkulacyjnym otwiera stronę na stronie myshiptracking.com, która wyświetla aktywność w pobliżu określonej lokalizacji geograficznej:

Potrzebujemy jedynie kilku poprawek w mapowaniu danych, aby zaimplementować te ulepszenia w wynikowym raporcie. Konieczne jest wstawienie danych dotyczących nagłych podmuchów w odpowiednim miejscu w tabeli oraz przypisanie współrzędnych geograficznych.

Najpierw ręcznie uruchomiliśmy interfejs API pogodowego w oknie przeglądarki, aby uzyskać nowy przykład odpowiedzi, zawierający dane dotyczące porywów wiatru. Następnie wygenerowaliśmy nowy schemat JSON w programie XMLSpy dla wyników API. Zapisanie nowego schematu JSON pod oryginalną nazwą pliku automatycznie dodaje pozycję "Gust" (poryw wiatru) do mapowania danych w API.

Etykiety przypisane do oryginalnych współrzędnych danych ułatwiają znalezienie odpowiedniego miejsca, w którym można wstawić nową kolumnę "Gust" w arkuszu kalkulacyjnym Excel:

Wybór opcji "Dodaj komórkę przed" z menu kontekstowego otwiera okno dialogowe, w którym można wprowadzić szczegóły dotyczące nowej komórki

Program MapForce automatycznie utrzymuje połączenia mapowań dla kolumn K i L, dzięki czemu musimy połączyć tylko kolumnę J.

Nowe współrzędne geograficzne, dotyczące szerokości i długości geograficznej, znajdują się w arkuszu kalkulacyjnym w komórkach G5 i I5. Współrzędne dla każdego portu znajdują się już na liście portów, ponieważ wykorzystujemy je do pobierania danych pogodowych z interfejsu API. Dodaliśmy te adresy komórek na końcu docelowej listy.

Oto widok zaktualizowanego mapowania w panelu mapowania MapForce, z nowym połączeniem do prognozowania porywów wiatru, które zostało wyróżnione:

Na koniec, aby jeszcze bardziej udoskonalić listę, dodaliśmy więcej portów, w tym Kanał Sueski oraz kilka dużych portów morskich w Europie. Dodaliśmy nowe porty, edytując oryginalny plik JSON zawierający listę żądań, korzystając z programu XMLSpy. Poniżej znajduje się nowy plik JSON z żądaniami dotyczącymi portów, który można wykorzystać jako dane wejściowe do mapowania danych w API, wyświetlane w formie tabeli w programie XMLSpy:

Kliknięcie przycisku "Wyjście" znajdującego się na dole panelu mapowania uruchamia proces mapowania i otwiera widok "Wyjście", wyświetlając pierwszy plik wynikowy. Jeśli na systemie zainstalowano Excel 2007 lub nowszą wersję, MapForce automatycznie otwiera Excel, aby wyświetlić wynik:

Wyniki zostały wygenerowane dla każdego portu znajdującego się na liście źródłowej. Możemy wybrać dowolny plik Excel, aby wyświetlić jego zawartość:

Kliknięcie przycisku "Wyświetl aktualną aktywność portu" w oknie podglądu działa dokładnie tak samo, jak w przypadku otwarcia pliku bezpośrednio w programie Excel:

Wynik jest obliczany na podstawie współrzędnych geograficznych portu (szerokość i długość geograficzna)

Każdy punkt na mapie reprezentuje statek wyposażony w transponder AIS, który przesyła dane w czasie rzeczywistym. Aby dodatkowo potwierdzić nasze wyniki, możemy wyświetlić dowolny inny plik wynikowy i sprawdzić odnośnik do innego portu. Poniżej znajduje się mapa portu w Hamburgu, w Niemczech:

Czerwone kropki oznaczają tankowce, a zielone kropki – statki transportowe. Możemy kliknąć dowolny punkt, aby wyświetlić szczegółowe informacje o danym statku:

Dogonijcie [[web-service-data-integration|kogoś/coś] [oryginalny wpis na temat integracji usług internetowych]], obejrzyj szybko demonstracja wideo programu MapForce, lub Pobierz bezpłatną wersję próbną w tym samouczki, pomoc i wiele przykładów, które pomogą rozpocząć pracę nad własnym projektem związanym z mapowaniem danych API, a także nad innymi zadaniami integracji, konwersji i transformacji danych!