Lagani letnji #opendata blog

Da vas čujem, poznavaoci sela i zaselaka, koje je načešće ime naselja u Srbiji? Jeste ovo trivia, ali ne pišem blog zbog tog posebno važnog fakta nego zbog velikih mogućnosti metoda da do tog (otvorenog) podatka dođemo elegantno. Open data rulz!

Na Portalu otvorenih podataka RS postoji csv tabela Spisak naselja. Dovoljno je da tabelu uvezemo u R (ili Python ako neko baš voli) i pitamo sve što nam padne na pamet. Evo primera jednostavnog kôda za tako nešto.

(Ako nemate instaliran R, probajte na nekom free online serveru, npr. https://jupyter.org/try. Radi čak i na telefonu.)

f="http://opendata.stat.gov.rs/data/WcfJsonRestService.Service1.svc/dataset/SIFNAS/1/csv"
a=read.csv(file=f,header=T,encoding = "UTF-8",sep=";")
# obratite pažnju na enkoding UTF-8 zbog ćirilice i separator koji čak ni 
# u comma-separated-value nije comma (zbog decimalnog zareza)
t=table(a$nNAS)
h=tail(sort(t),28)
dotchart(as.vector(h),labels=names(h),cex=.8,xlim=c(1,22))

I evo šta dobijamo: od ukupno 6170 naselja u Srbiji ime Novo Selo ima čak 21 naselje, Slatina 17, Kamenica 13…

Znam da ste ovo mogli da pitate i Google, ali ne zna on baš sve. Tamo je indeksirano samo ono što je neko već „sažvakao“ i postavio na net. Evo, na primer, ovo nećete naći na netu, a nije teško da se utvrdi kad imate otvorene podatke. Koja su imena naselja u Srbiji imaju samo tri slova? (Sa dva slova, to znamo svi iz ukrštenih reči, imamo samo Ba i Ub.)

b=sapply(as.character(a$nNAS), nchar)
names(which(b==3))

Sa tri slova u imenu dobijamo 45 naselja od čega su dva Trna i čak četiri Luga. Nedostaje Niš koji je u spisku razložen na opštine, odnosno na Niš (Palilula), Niš (Medijana), itd. pa ga zato nchar vidi kao nešto duže od tri karaktera. Dodaću ga „ručno“. Dakle, 46 mesta ukupno.

Ада, Аде, Бач, Бец, Боб, Бор, Врх, Вус, Гај, Гоч, Деч, Дол, Дољ, Дуб, Дуз, Душ, Жач, Жуб, Жур, Жуч, Каћ, Кош, Лез, Лис, Лок, Луг, Луг, Луг, Луг, Љиг, Мол, Мур, Нец, Ниш, Пећ, Рам, Рти, Саш, Сот, Трн, Трн, Ујз, Хум, Чар, Џеп, Шид

Toliko za ovaj blog. Za vežbu možete da nađete npr. koliko ima naselja koja u imenu imaju gornji/gornja/gornje i donji/donja/donje. (Spoiler: Ima više gornjih.)

Leave a Reply

Your email address will not be published. Required fields are marked *