Perfect-Air Labs

Měníme pohled na vzduch, který dýcháme

Perfect-Air je startup, který vyrábí senzory k měření kvalitu ovzduší, koncentraci nejrůznějších pylů, plynů a také prachových částic ve vzduchu kolem nás. Důraz klade hlavně na lokálnost dat a jejich relevantnost pro každého jednoho uživatele.

Cílem spolupráce bylo zobrazit hodnoty z těchto senzorů na mapě Evropy společně se satelitními údaji a informacemi z profesionálních meteorologických stanic, aby uživatel dostal komplexní přehled o aktuálním stavu kvality ovzduší a jeho přívětivosti.

Odvětví

Ekologie

Klient

Perfect-Air Labs s.r.o.

Systém

Web, Mobile

Výzva

Velkou výzvou realizace bylo najít kvalitní zdroje dat, které by doplňovaly Perfect-Air senzory a poskytovaly data v dostatečné hustotě tak, aby šlo vytvořit heatmapu. Sám klient na začátku projektu nevěděl, které zdroje bude používat.

Jednotlivé datové zdroje bylo také potřeba vhodně zkombinovat. Konkrétně jsme museli vyřešit, jak vzájemně interpolovat pravidelná hustá a nepravidelná řídká data v různých časových okamžicích, a pro každý tento okamžik vytvořit požadovanou heatmapu. Pro takové množství dat bylo zapotřebí založit spolehlivé úložiště a nad tím systém, který by s ním pracoval a zpřístupňoval data webové i mobilní aplikaci zároveň.

Také bylo potřeba vymyslet, jak rychle a efektivně v obou aplikacích velký objem dat zpracovat a zobrazovat, a to i například při práci uživatele se zoomem či napříč časem. Aplikace měly být graficky konzistentní a měly by umožnit interakci s mapou podobným způsobem, a to i přes rozdílné systémy a rozměry obrazovek.

Dalším oříškem, který vyžadoval unikátní řešení, bylo hodnocení kvality ovzduší pro alergiky. To znamená zodpovědět otázku, jak jednoduše vizualizovat, zda alergici mohou bez obav vyjít ven či nikoliv.

1

Problém

Problém spočíval ve vizualizaci kvality ovzduší (prachu i pylu), aby to bylo názorné a jednoduché na pochopení a orientaci. Další výzvou bylo zajistit dostupnost dat na každém místě, kde se uživatel nachází – tedy i mimo oblast pokrytou měřícími stanicemi.

Perfect-Air potřeboval vytvořit webovou aplikaci a především také mobilní aplikaci, kterou by měl uživatel stále při ruce. Hlavní částí těchto aplikací měla být heatmapa, která by zobrazovala jednotlivé aspekty kvality ovzduší nejen v přítomnosti, ale měla nabízet i pohled do minulosti a blízké budoucnosti.

Předchozí řešení i časté varianty konkurence zobrazovaly na mapě pouze bodové hodnoty senzorů, kterých je po Evropě jen několik desítek. Navíc poskytovaly pouze data o koncentraci prachových částic, zatímco data o pylech a plynech měřit neuměly. Mimo to také ukazovaly pouze aktuální stav, což představovalo značný limit. Jinými slovy, samotná data ze senzorů nebyla dostatečná.

2

Výzva

Velkou výzvou realizace bylo najít kvalitní zdroje dat, které by doplňovaly Perfect-Air senzory a poskytovaly data v dostatečné hustotě tak, aby šlo vytvořit heatmapu. Sám klient na začátku projektu nevěděl, které zdroje bude používat.

Jednotlivé datové zdroje bylo také potřeba vhodně zkombinovat. Konkrétně jsme museli vyřešit, jak vzájemně interpolovat pravidelná hustá a nepravidelná řídká data v různých časových okamžicích, a pro každý tento okamžik vytvořit požadovanou heatmapu. Pro takové množství dat bylo zapotřebí založit spolehlivé úložiště a nad tím systém, který by s ním pracoval a zpřístupňoval data webové i mobilní aplikaci zároveň.

Také bylo potřeba vymyslet, jak rychle a efektivně v obou aplikacích velký objem dat zpracovat a zobrazovat, a to i například při práci uživatele se zoomem či napříč časem. Aplikace měly být graficky konzistentní a měly by umožnit interakci s mapou podobným způsobem, a to i přes rozdílné systémy a rozměry obrazovek.

Dalším oříškem, který vyžadoval unikátní řešení, bylo hodnocení kvality ovzduší pro alergiky. To znamená zodpovědět otázku, jak jednoduše vizualizovat, zda alergici mohou bez obav vyjít ven či nikoliv.

3

Řešení

Nejprve demo, následně analýza implementace zdrojů, změna technologie a finálně produkt

Ve velmi krátkém období (3 týdny) se nám podařilo vytvořit hlavní části demo aplikace, tj. ukázku heatmapy, která interpolovala snadno dostupná data z otevřených zdrojů. Kromě dat z Perfect-Air senzorů jsme přidali dva zdroje dat prachových částic z pozemních senzorů – konkrétně se jednalo o Český hydrometeorologický ústav, který má nejrelevantnější data na území České republiky, a službu OpenAQ, která poskytuje stejně kvalitní data mimo dosah ČHMÚ.

Klient tak získal funkční aplikaci, na které mohl ověřovat požadavky uživatelů, user testing, a v neposlední řadě i ukázku pro investory, aby získal dotace na další rozvoj.
Na vytvoření dema jsme využili naše mainstreamové technologie Node.js a React.js.

Po dokončení dema a ujasnění business požadavků jsme přistoupili k dalšímu rozvoji aplikace, a to především získání relevantních dat pro místa mimo měřící stanice. Zde jsme byli postaveni před problém ohledně získání dat prachových částic, plynů a pylových částic. Museli jsme najít světově zdroje s dostupným pricingem a relevancí dat. Volba padla na data ze služby CAMS, kterou provozuje Evropská vesmírná agentura ESA v rámci programu Copernicus. To nám zajistilo požadovanou kvalitu a hustotu heatmapy a zároveň zpřístupnilo satelitní data v mřížce o hustotě pouhých pár kilometrů. To se týkalo jak historických dat, tak současných i předpovídaných. Pro data o takové velikosti se pak muselo vytvořit adekvátní úložiště a zajistit archivační procesy.

Následně jsme zjistili, že dosud používané technologie javascriptu nejsou nejlepší volbou pro automatizované získávání a zpracování meteorologických dat v binárních systémech. Našli jsme proto efektivnější řešení – změnili jsme stack na Python a C#, které jsou vhodnější pro náročné matematické výpočty. Díky tomu se nám podařilo automatizovat stahování dat a jejich parsování na potřebné údaje a zobrazení do mapy.

Systém Copernicus, jakožto náš hlavní zdroj, poskytuje data ve formátu, který není podporovaný mnoha moderními programovacími jazyky. Z dostupných možností jsme zvolili Python, který má rozsáhlou podporu matematických a geografických operací. Právě ty byly nezbytné pro interpolaci a georeferenci dat pro heatmapu. Rozhodli jsme se oddělit stahování dat z jednotlivých zdrojů a jejich kombinaci do nezávislých „modulů”, které budou komunikovat pouze s jedním společným systémem – backendovou cloudovou aplikací, kterou jsme se rozhodli napsat v C#. Tento backend by měl také poskytovat data webové a mobilní aplikaci.

Webovou aplikaci jsme se rozhodli psát ve frameworku React a mobilní aplikaci v React Native, který podporuje vývoj jak pro iOS, tak pro Android. Podobnost obou frameworků nám umožnila sdílet velké kusy kódu napříč oběma aplikacemi, a byla tak udržena jejich UI/UX konzistence. Interaktivní heatmapu jsme implementovali pomocí knihovny Mapbox GL, která pro vykreslení používá standardní protokoly jako například Mercatorovo síťované zobrazení.

Proces

Projekt byl jedinečný nejen svou technologickou náročností ohledně získávání a zpracování dat, ale také způsobem a dobou realizace.

Klient nejdříve získal funkční demo aplikaci, aby si dokázal zajistit financování. To se podařilo na dostatečně dlouhou, avšak pouze omezenou dobu. Velkou část projektu jsme věnovali především výzkumné a prototypovací část, která měla vysokou míru složitosti a nakonec vyžadovala změnu technologií a dalších prvků.

Po dokončení prototypovací části a připojení na zdroje dat jsme získali 100% jistotu o realizovatelnosti projektu. V rámci zbývajícího rozpočtu a termínu jsme maximalizovali užitečnost a náročnost jednotlivých funkcionalit, a ty s největším přínosem se nám podařilo dokončit v termínu.

Technologie

Frontend

React.js, React Native

Backend

C#, AWS, MongoDB, Python

Výsledek

Výsledné řešení se skládá z mobilní aplikace, webové aplikace a systému API endpointů, na který se může připojit další systém. Pro tento systém můžeme rovněž poskytnout data – ať už všechna nebo pouze vybraná.

Výsledné aplikace obsahují devět různých heatmap rozdělených do dvou skupin – kvalita ovzduší a pyly. V rámci kvality ovzduší jsou k dispozici heatmapy indexu znečištění ovzduší (CAQI), oxidu siřičitého a oxidu dusičitého. Ve skupině pylů pak lze nalézt heatmapy pylového indexu, břízy, olše, pelyňku, trávy a ambrozie. Všechny tyto heatmapy si může uživatel prohlédnout v animované časové ose, několik dní zpět a několik hodin dopředu. Po kliknutí na libovolné místo na mapě se zobrazí informace o jednotlivých složkách znečištění ovzduší v dané lokalitě, a to včetně předpovědi a zdravotních doporučení pro aktuální hodnoty.

Mapa CAQI kombinuje satelitní data s daty pozemních senzorů. Perfect Air senzory zobrazuje jako barevné body na mapě, které si lze rozkliknout a podívat se na detailní informace o měření. V mobilní i webové aplikaci je samozřejmostí zobrazení aktuální uživatelské polohy na mapě. Mobilní aplikace kromě obvyklých nastavení, jako je jazyková lokalizace, dark mode nebo osobní výchozí nastavení, navíc umožňuje uložit si oblíbená místa, pro která zobrazuje přehledy kvalit.

Mapy se aktualizují každou hodinu na základě nových dat z datových zdrojů, které se průběžně stahují, kombinují a ukládají. Tato data jsou pak poskytována skrze REST API oběma klientským aplikacím a jsou připravena pro přeprodej třetím stranám.

Také chcete úspěšnou aplikaci?Napište Nám