Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

integrace dat ze sčítačů cyklistů #1

Open
washeck opened this issue Jun 18, 2012 · 8 comments
Open

integrace dat ze sčítačů cyklistů #1

washeck opened this issue Jun 18, 2012 · 8 comments

Comments

@washeck
Copy link
Contributor

washeck commented Jun 18, 2012

TSK provozuje automatické sčítače cyklistů s veřejně přístupnými daty na http://unicam.camea.cz/Discoverer/BikeCounter/map. Data z jednotlivých sčítačů za vybrané období je možné stáhnout ve formátu CSV.

Bylo by užitečné integrovat data ze sčítačů do PNK tak, aby bylo možné

  1. u jednotlivých sčítačů v mapě ukazovat aktuální stav za daný den a případně graf z historických dat místo v současnosti ručně zadaných hodnot za pár vybraných dní (viz třeba http://mapa.prahounakole.cz/misto/15/)

  2. na hlavní stránce PNK (ve wordpressu) ukázat součet zaznamenaných průjezdů za všechny sčítače

Idealní by bylo stahovat data každou hodinu, ale je třeba dát pozor, abychom nezpůsobili nějaké výpadky sčítačů (a nedošlo k jejich uzavření veřejnosti)

@aleszoulek
Copy link
Contributor

Ahoj,

chteli bychom se na to kouknout se studentikama na zitrejsim django-cs sprintu.

Jedno z moznych reseni by bylo udelat to pres ScraperWiki. Mohlo by to byt rychle hotove a rozjete bez reseni cronu (nebo jinych scheduleru) na strane pnk serveru, kluci by se do toho rychle dostali a integrace do pnk (nebo jinam) by byl jen jednoduchy JS, ktery se bude ptat ScraperWiki (bez zatezovani TSK), a pujde dat lehce jak do mapy, tak do WordPressu. Hlavni nevyhoda je, ze by se poustel jen jednou denne.

Zkusil bych to teda zatim rychle udelat takhle (treba jako proof of concept) a pokud bude potreba a nebude to vyhovovat, tak to presunout ze scraper do PNK a poustet do po hodinach.

@washeck
Copy link
Contributor Author

washeck commented Jul 10, 2012

Super, díky. ScraperWiki neznám, představoval jsem si přidat do PNK 1 django model a pravidelně ho plnit přes cron nebo celery, ale pokud to bude funkční takhle, proč ne.

@aleszoulek
Copy link
Contributor

Hmm....

Ty URL pro CSV soubory se generujou nejak desne divoce. Netusis, jak to tam je? Nebo budu muset odesilat a parsovat ten form s datama pred tim? Grrr...

A.

@washeck
Copy link
Contributor Author

washeck commented Jul 12, 2012

To bohužel nevím. Koukal jsem na to jen chvilku a přišlo mi, že se bude muset něco poslat POSTem. Ale detaily fakt nevím.

@aleszoulek
Copy link
Contributor

Jasny. No problemo.

Ja jen doufal, ze primo to CSV URL bude v nejakym rozumnym formatu. Diky moc,

A.

@aleszoulek
Copy link
Contributor

Hola,

tak po dlouhy odmlce jsem si nasel trochu casu, abych s timhle pohnul. Napsal jsem jednoduchej script na scrapovani ten cykloscitacu. Bezi jednou denne a vzdy updatuje dva dny zpet. Zkousel jsem i vic, ale to presahne povolenej CPU time ve free uctu scraperwiki. Navic 2 dny zpet snad v pohode dostacuje.

Zatim mam jednoduchou tabulku datetime (zaohkrouhlenej na cely hodiny, ID scitace, pocet). Viz

https://scraperwiki.com/scrapers/pnk/

Pozn.: Scitac je konkretni pocitadlo s ohledem na smer. Tzn na Vytoni jsou dva scitace (do centra a ven).

Mozna bych tam doplnil par jednoduchejch lookup tabulek, ktery budou vazat scitace na stejnem miste. Popr jejich "human readable nazev".

Druha vec je, ze ID sctacu maji ve zdrojovem HTML nekdy s BC_ prefixem, nekdy bez. Sice je to pro konkretni scitac vzdy stejne, ale bylo by asi hezky to pri parsovani odstranovat.

Zatim jde ID scitace desifrovat jednoduse rucne. Staci se podivat jak vypadaji odkazy zde:
https://unicam.camea.cz/Discoverer/BikeCounter/Index

Napr Podolske nabrezi ma na konci kod BC_PN-VYBR. Kod je slozenina BC_[MISTO]_SMER1SMER2. V tomto pripade PN = Podolske nabrezi, VY = Smer vyton, BR = Smer branik. Scitace budou tedy v tabulce pod kodem PN-VY a PN-BR (popr. BC_PN-VY a BC_PN-BR).

TODO:

  • Odstranit BC_ prefixy, kde jsou
  • Pridat lookup tabulky vazaci scitace k mistum
  • Pridelat nejaky demo, jak data cist.

@aleszoulek
Copy link
Contributor

Co se tyce dotazovani primo z PNK stranek, viz

wget 'https://api.scraperwiki.com/api/1.0/datastore/sqlite?format=jsondict&name=pnk&query=select * fromswdatalimit 10' -O -

Popr dalsi doc zde:
https://scraperwiki.com/docs/api

a priklad zde
https://scraperwiki.com/docs/python/ajax_topic_guide/

@aleszoulek
Copy link
Contributor

Hola. Tak jsem tam pridal ty lookup tabulky.

Takze jdou takovyhle dotazy. Tzn znas ID toho jmena, definujes si rozsah datumu a vrati ti to casy a hodnoty v obou smerech.

wget 'https://api.scraperwiki.com/api/1.0/datastore/sqlite?format=jsondict&name=pnk&query=select places.name as place_name, directions.name as direction_name, swdata.count, swdata.datetime from places left join directions on (places.place_id = directions.place_id) left join swdata on (directions.direction_id = swdata.direction) where directions.place_id = "BC_VK-MOKO" and swdata.datetime between "2013-04-15T00:00:00" and "2013-04-16T00:00:00"' -O -

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants