Air quality bot

Ahoj,

od roku 2021 existuje na Xku bot jménem Air Quality Prague @prague_air Jana Hynka, který informuje o současné kvalitě ovzduší v Praze (lze použít i pro jiná města) vždy ráno a večer. Od srpna 2023 se hlášky bota generují za přispění GPT, celý kód a výchozí texty najdete na GitHub - johnnyheineken/prague_air_quality: Twitter bot to report on Prague's air quality. Data o aktuální situaci vzduchu pocházejí z IQ Air, tedy to jsou oficiální data, která ČHMÚ (Český hydrometeorologický ústav) předává ven pro EU. Jedná se o tříhodinové průměry, totožná data, které se používají pro výpočet IKO (Index kvality ovzduší). Bot má v současnosti něco přes 1k followers. Běží na Keboola. Honza mě snad ještě doplní.

struktura tweetu:
V tweetu bot nejprve vypíše AQI (Air Quality Index) - podle US AQI - a chatgpt přidá nějakou hlášku. Plus někdy vypíše hladinu překročení polutantů.

příklad tweetu:
AQI v Praze nyní stouplo na 60. Zvláště tyto hodnoty jsou nad doporučenými limitůmi WHO: NO₂ (0.4x), PM₂.₅ (0.4x) a PM₁₀ (0.2x). Špatný vzduch může zhoršit výkon traderů až o 7%. Buďte opatrní :mask:.

proč:
Zvedám toto téma jako jeden z nápadů, které padly v průběhu akcelerace v Česko.Digital (teď již ukončené) s našim spolkem Senzor vzduchu. Po domluvě s autorem bychom chtěli bota předělat, možná zahrnout nové zdroje, grafiku a celkově zlepšit dojem generovaných hlášek.

moje poznatky:

  1. bot svými hláškami často repetitivními působí směšně
  2. údaje z oficiálních stanic jsou staré neplní real time ochranu (když jdu běhat, s dětmi ven atd.)
  3. údaje ze stanic nejsou platné pro celou Prahu, jedná se o průměr AQI i polutantů pro celou Prahu, hodnota neřekne nic uživateli o situaci v jeho bezprostřední blízkosti. (Situace může být na Praze 10 naprosto rozdílná než na např. na Praze 6)
  4. Xko samotné - má cenu investovat naše úsilí do této sítě? Portnout to na Mastodon, kde je méně uživatelů? Jiné kanály?

Tímto zvu k diskuzi, co vy byste očekávali od bota, který vás má informovat o aktuální kvalitě vzduchu. Děkuji za vaše připomínky a nápady.

Přídavkem přidávám podobné účty ze zahraničí pro inspiraci:
https://x.com/Troposfera/status/1797876974695932294
https://x.com/BCN_EspaiPublic/status/1797916211331715141
https://x.com/DefraUKAir/status/1797859675561472336
https://x.com/LondonAir/status/1797793281042223108
https://x.com/AQMD/status/1797712140998189435

3 Likes

Tohle je – společně s tím zpožděním údajů – deal breaker, ne? Jde to nějak spravit?

Ano lze obejít, můžeme používat hodinový json přímo z hydráku https://www.chmi.cz/files/portal/docs/uoco/web_generator/actual_hour_data_cze.json
Ale pak se musí vypočítat aqi…

Plus můžeme přidat data z amatérskych senzorů z Prahy: https://data.sensor.community/airrohr/v1/filter/area=50.08333,14.46667,10

1 Like

Ahoj všem,

jojo, chci potvrdit co Michael napsal. Rád ten Twitter účet poskytnu a přemigruju svoje postování kdyžtak někam jinam:)
Pro co největší engagement by ale bylo potřeba, aby na něm bylo co nejvíce unikátního contentu.

aktuální kód je dostupný tady, akorát jsem to updatoval a kód je identický, který běží na Keboole.


Vrátím se ještě k motivaci, co bylo cílem a co bych si přál zachovat.

  1. O kvalitu vzduchu jsem se začal zajímat ve chvíli, kdy jsem byl několikrát v Asii a zažil dny, kdy se nedalo dýchat. To mě vedlo ke stažení IQ Air, a tam jsem začal kvalitu vzduchu sledovat. Jejich AQI se pro mě stalo referenční hodnotou, proto jsem ji reportoval.
  2. Cílem bylo přiblížit toto AQI širšímu publiku. Aby více lidí pochopilo, co vlastně znamená.
  3. Tím se to lišilo od dřívějších Michaelových pokusů, kde jsem vnímal celkem vysokou “barrier to entry” k pochopení.
  4. Myslím si, že snadná pochopitelnost a co nejvyšší relevance by měla být cílem celého snažení. Tam vnímám, že je určitě velký prostor pro zlepšení

Co mě napadá, od boku:

  1. teď se nikam neukládají poslední tweety do databáze. Kdyby se přidávaly poslední tweety do kontextu, myslím si, že by bylo možné udělat tweety variabilnější (nevím, jestli ale méně směšné)
  2. myslím si, že ať se rozhodneme pro jakoukoli síť, obrázky budou mít největší engagement. Rád bych začal vytvářet mapy Prahy.
  3. Myslím si, že by bylo dobré cca následující:
    a) každý den v týdnu jiný content
    b) aktuální “výstrahy”, když by to bylo relevantní
    c) někdy klidně vysázet tweetu více, do threadu
    d) generovat podrobné reporty na novém webu, a zájemce odkazovat na detailní informace tam
  4. co se týče platformy, já bych navrhoval, ať to je multiplatformní. Nemyslím si, že dodělat integraci do Threads, bluesky (tam jsem a tam chodím), mastodon už by byl velký problém.

Okomentuji ještě nasdílené účty:
https://x.com/Troposfera/status/1797876974695932294

  • tohle se mi celkem líbí, nelíbí se mi výběr podkladové mapy. hexagony, co mají sensor.community jsou podle mě skvělý
    x.com
  • tohle je dobrý. líbí se mi i účet, kombinují to i s dalšími relevantními tématy. Ale přijde mi spíše více manuální.
    x.com
  • podobný účet byl přesně důvod, proč jsem se rozhodl jít jinou cestou a zapojit nakonec i chatgpt. tohle nikdo nečte.
    x.com
  • tohle mi taky přijde dobrý, ale taky dost manuální

Z toho mi vyplývá otázka: jak moc to má být automatické, a jak moc v tom má být vlastní content?

1 Like

Když se bavíme o podobě výstupu, tak na Mastodonu engagement nehraje žádnou roli – síť s viditelností těch příspěvků nijak nešachuje.

Celkově by mně dávalo největší smysl zpřístupnit ve strojově čitelné podobě přes API ta data, integrace na různé sítě nebo i další kanály pak IMO lidi rádi dodělají.

2 Likes

Mně tweet přijde takový málo zajímavý - aneb jako předpověď počasí pro ČR - že v Praze má pršet nás v Ostravě moc nezajímá (max., že sem to přijde o půl dne později) :slight_smile: Jako propagace-povědomí o tématu je pravidelný tweet fajn - jde to lajkovat, sdílet… Ale pro reálné rozhodování “mám jít ven” stejně chci čerstvá a lokalizovaná data, tj. žádné průměry za čas ani lokality = tweet by musel být pro každou měřící stanici. Aktuální stav potřebuju ukázat vedle teploměru (doma mám na ePaper počasí a nejbližší stanici ČHMÚ), ideálně i s předpovědí za půl den až den nebo aspoň s trendem. Jedinou vyjímkou jsou viditelně smogová období, kdy je smrádek od Katowic až po Přerov a několik dnů je v podstatě jedno, kdo-kde-co naměřil :slight_smile:
Jinak souhlas se zoulem - zveřejňovat detailní strojová data, propagovat, a nechat na komunitě, co z nich vyrobí - widget na plochu v telefonu, integraci do meteostanic apod.

1 Like

Díky za reakce!

ad Zoul:“Celkově by mně dávalo největší smysl zpřístupnit ve strojově čitelné podobě přes API ta data, integrace na různé sítě nebo i další kanály pak IMO lidi rádi dodělají”.

Vývoj takovéhle API je nad naše síly. Navíc, podle mých informací ČHMÚ bude v “dohledné” době aktualizovat stránky a pricipy správy a přístupu k datovým sadám. Proto bych raději počkal až to dokončí.

ad Honza Stefanides:“Ale pro reálné rozhodování “mám jít ven” stejně chci čerstvá a lokalizovaná data, tj. žádné průměry za čas ani lokality = tweet by musel být pro každou měřící stanici.”

Proto bych navrhoval se tedy soustředit na Mapu Prahy - vyřeší se tím lokalizace a blízkost uživatele k nejbližší stanici, mohou být použita buď oficiální trojhodinová data z ČHMÚ nebo od IQ Air. Dále Předpověď - IQ Air má předpoveď na API pokud se nepletu. Také databázi týdenních hlášek a ukládání, aby se zvýšila uvěřitelnost a rozmanitost.
Co vy na to? Jak mohu pomoci @Jan_Hynek a možná @sigy přidá víc?

IQ Air vypadá zajímavě - prodávají vlastní senzory (vč. CE), do mapy mají integrované i ty od ČHMÚ, mají pěknou mobilní aplikaci vč. widgetů, předpověď do budoucna, API mají taky hotové https://api-docs.iqair.com/, jen teda komerční… (IQAir | First in Air Quality) - za mně ideální kandidát domů i do té školy/obce a velká konkurence pro vás? (mít to v češtině a lokálního prodejce+podporu…) :slight_smile:
Ad tweety - sám píšeš, že P10 může být jiná než P6 - tj. ukazovat stav za celou Prahu mi přijde trochu nepoužitelné. Aneb pořádně bych definoval cílovku pro ty tweety - např. ta propagace a vzdělávání spíš, než pravidelné hlídání “můžu jít ven na P6?”. To pak pomůže i ve směrování konkrétních textů pro tweety :slight_smile:

2 Likes

@honza.stefanides

  • IQAir už je v botovi implementovaný, jen teda free community tier. Ta dovoluje requesty na city level. Na vyšší granularitu (station level) je API za 4k EUR ročně - no thank you. Ale můžeme zkusit poslat mail, jestli se nesmilují.
  • Alternativně existuje Air Pollution - OpenWeatherMap - nejsem si teď jistý, jaká je granularita, myslím si, že ta je i per stanice dokonce, ale bez AQI. Muselo by se spočítat, ale to mě přijde jako menší problém. Tohle už je taky implementovaný. AFAIK teď beru asi data z jedné stanice na P1? Je to už dlouho, a moje dokumentace je skromná.
  • Ještě vím o v Polsku populárním Air Quality Map - Check air pollution in your area - MyAirly Tady jsem se k pricingu nedostal, ale afaik si myslím že jsem jim inquiry psal, jestli by mi data neposlali pro bota zdarma. Myslím si, že to zůstalo bez odpovědi.

Byl bych rád, abychom ale měli ideálně ze stanic naši vlastní API. Rád bych s tím kdyžtak @Michael_Lazan pomohl.

  • Ale co teď rychle googluji, vypadá to, že někdo už udělal tu práci za nás: https://api-sensor-community.bessarabov.com
    Dávám teda té API tak 3/10, ale pracovat se s tím dá.
  • Taky jsem si vzpomněl, že API pro Pražské CHMU stanice už vystavěli na Golemio & pražská opendata: Open data hlavního města Prahy | Stav ovzduší – AMS ČHMÚ - API
    Opět AFAIK jem to zkoušel kdysi dávno a vím, že tam byl problém s tím, že jsem se dostal jen k datům cca půl roku starým. Třeba se to změnilo, ale možná by stálo za to lidi z golemia (Ben Kotmel a spol.) kontaktovat, jestli se s tím nedá něco udělat.

Abych se vrátil k samotnému botovi a contentu, jak teď vnímám diskuzi:

a) stávající funkcionalita

  • něco by se mělo udělat se zprávama (asi nemusí být vždy, nějaký jiný formát)
  • rozhodně se klaním k tomu, že cílem by měla bejt propragace a vzdělávání. Z vlastní zkušenosti jsem rád, že vím, jaká je kvalita vzduchu venku, ale vlastní plány kvůli tomu nyní neměním. Celkově je ten bot stále myšlen jako politický push, než cokoli jiného.

b) nová funkcionalita

  • mapa prahy

cílem je lepší cílení na lidi - větší granularita


Co teda můžeme udělat:

quickwins:

  • změnit formát současnejch zpráv
  • udělat třeba i lokální verze (třeba pro Pardubice, Ostravu)
  • prozkoumat líp openweather API a stavět vlastní AQI
  • začít dělat osvětový thready
  • zkusit někde vyprosit nějakou lepší API
  • integrace na jiný platformy (Threads, Bluesky)

medium-term

  • implementovat lepší API
  • mapy, grafický content
  • propagovat další vzdělávání, setkávání
  • S grafickým contentem integrace na Instagram

long-term

  • oficiální CHMI API

Jestli Vás napadají nějaké další kroky, co můžeme ještě udělat, budu rád

3 Likes

Asi jsem úplně nepochopil - co očekáváte od toho “lepšího API”? Data vašich senzorů jsou v sensor.community a tam už API je (ať už bessarabov.com nebo přímo APIs · opendata-stuttgart/meta Wiki · GitHub), ČHMÚ nějaký strojový formát má-vždycky bude mít. Co ještě by mělo umět takové API - když nemáte žádná vlastní data a všichni můžou jít rovnou k původnímu zdroji? :slight_smile:

Golemio funguje dobře, tahám si tam průměry NO2, data jsou aktuální.

no právě proto jsem to chtěl hodit na mapu, aby to ukazovalo (barevně) stav na jednotlivých stanicích chmi

z toho důvodu mi připadá stavět vlastní API jako práce navíc s nejistým výstupem. Zvlášť teď, když se do toho bude tlačit AI. Jako třeba Aurora od Microsoftu Superfast Microsoft AI is first to predict air pollution for the whole world

Na obrázek jo - jen pak se na jednotlivé části moc nedá odkázat v textu? :slight_smile: “nechoďte běhat na P2, P4 a P10, jinde můžete…”

Jj, na predikce bude určitě někdo lepší než vy. A stavět API bez vlastních dat spíš nedává smysl… :slight_smile:

Ahoj a omlouvám se za prodlevu…

Já tam vidím tahle témata:

  1. Zdroje dat – abychom se někam posunuli, můžeme udělat jednoduchý přehled (včetně frekvence, aktuálnosti, spolehlivosti, granularity…), ať je snadno vidět, co je k dispozici? Pokud má nějaká data Golemio, stálo by imho za to se s nimi spojit na přímo, minimálně budou rádi za jakékoliv další využití, kterým se můžou chlubit.

  2. Kanály a lokalita – to je pro začátek, myslím, úplně jedno. Pokud je to jednodušší vytvořit pro Prahu a Twitter, pojďme to nejprve doladit tam. Pokud to bude fungovat, můžeme pak špekulovat, jak to naškálovat (ideálně plně automatizovaně) na další sítě, kraje, města…

  3. Cíl – Moje původní pointa byla, že stávající bot se zabývá zajímavým tématem, ale plácá koniny. Za mě by bylo úplně v pohodě, pokud bychom mohli i třeba zpětně (klidně na týdenní bázi) shrnout, co významného se dělo a v souvislosti s tím lidi směrovat na další informace.

Tj. např.:

Tento týden byla ve středu velmi výjimečná koncentrace PM2.5, dosahovala až hodnot XY. V takové koncentraci WHO doporučuje zavřít okna a vyhnout se venkovním aktivitám (obzvlášť pro lidi s astmatem). + MAPA
Chcete se naučit, kde najít aktuální stav vzduchu nebo se dokonce sami zapojit do měření? www.XY.cz

Nebo ty sledující vybízet k vysvětlování, čím by to mohlo být. Nebo rovnou dávat do kontextu dopady a data (kolika lidí se to týká, odkaz na symptomy…). Zkrátka srozumitelně a přehledně shrnovat výjimečné stavy, vybízet lidi k zájmu o téma obecně nebo o tu danou lokalitu.

Dává to takhle smysl?

3 Likes

Cau, super, diky za smerovani. Prijde mi to jako dobry smer, a naprogramovat to zvladnu. Dam tomu par veceru v budoucnu a budu updatovat progress.

a) zdroje: vykopnul jsem google doc, kde jsem shrnul zdroje z predchoziho prispevku: Sources of Air Quality data - Google Sheets

Prosim, doplnte me. Budu rad. Prihodme tam klidne pocasi, dopravni vytizenost, “aktualni ekonomickou aktivitu”, … - cokoli, co by mohlo ovlivnovat aktualni cistotu vzduchu. Kdyz budeme postupne sbirat dostatek zdroju, muzeme delat zajimavejsi insighty. A samozrejme to zaintegruju.


b) placa koniny:
engagement. K cemu je jakykoli podobny bot, kdyz nedostane zadne views. Soucasny status quo je ten, ze engagement dostanou bud a) rage baity, ktere tam hodim, nebo b) ve dnech se spatnou kvalitou vzduchu.

Prosim, tohle bych neztracel z pozoru. Neverim tomu, ze by jeden tweet tydne v danem tvaru adekvatni engagement dostal.

Navrhuju zde sidestep:

  • udelat seznam zajimavych zdroju
  • udelat jednoducheho bota, ktery pomocit gpt udela thread o danem zdroji (tohle se da automatizovat!)

c) task at hand:

  • za me to znamena prekopat celou aplikaci. Doted jsem si usnadnil praci - kdyz se psal prispevek, tak se i stahovaly data. Tohle prestane platit.
  • zaklad:
    • navrhuju, ze pristi verze bude stahovat data as-is - treba petkrat denne (keboola to zvladne, furt bych se mel vejit do free tieru).
    • je potreba vytvorit tabulku pro kazdy zdroj.
    • pak 1x tejdne sql do db, najit minima/maxima (idealne per ctvrt, treba).
      ukazat nejhorsi casy.
    • rict, co takove casy muzou znamenat a co s tim clovek muze delat
    • i wish: identifikovat zdroje a duvody (inverze, …)
    • mapa

co ted identifikuju za tasky:

a) rozpojit download dat a generovani tweetu
b) ulozeni do db
c) ziskani dat relevantnich pro tweet
d) vytvoreni tweetu
e) vytvoreni mapy

Chcete se nekdo neceho ujmout? Ja si pro zacatek beru a) a b). Do kebooly vas snadno pridam, github pipeline nemam stale nastavenou.

2 Likes

Mluvil jsem s Petrem Šimečkem z Keboola. Rádi nás podpoří (máme poslat číslo projektu v PAYG). Mention potěší, ale moc rádi by feedback, jestli všechno funguje jak má?

2 Likes

Skvělý! Pardon za prodlevu (dovča), dopsal jsem do zdrojů https://opendata.chmi.cz/
Můžu se tedy kouknout na kód, ale já programátor fakt nejsem😉 Kde probíhá vývoj? Znám jen GitHub - johnnyheineken/prague_air_quality: Twitter bot to report on Prague's air quality ale to asi nebude ono. :wave: