[Talk-it] Statistiche
Diego Guidotti - Aedit s.r.l.
guidotti at aedit.it
Mon Jun 1 12:04:26 BST 2009
Ciao,
per generare le statistiche carico tutte le mappe italiane sul db postgres e
poi con una query spaziale spezzo tutti gli elemementi lineari usando il
tematismo dei limiti amministrativi comunali ISTAT.
Dopo averle spezzate calcolo, per unità amministrativa, la lunghezza dei
sentimenti.
Ecco i comandi (sistema operativo linux, con Postgres/Postgis e osm2pgsql
per caricare i dati):
1) Script che scarica il db OSM italiano e lo carica su postgis creando una
tabella che si chiama italy_20090530_line (la data ovviamente cambia)
dt=`date +"%Y%m%d"`
wget http://download.geofabrik.de/osm/europe/italy.osm.bz2
# oppure wget http://downloads.cloudmade.com/europe/italy/italy.osm.bz2
bunzip2 italy.osm.bz2
osm2pgsql -l -p italy_$dt italy.osm
2) SQL da eseguire per spezzare le linee -> genera la tabella
osm_stat_20090530 con le geometrie spezzate
create table osm_stat_20090530 as select c.cod_reg, c.pro_com, l.highway,
l.ref, l.name , intersection (l.way, transform(c.geom,4326)) FROM
italy_20090530_line l, it_comuni c
WHERE l.highway <>'' AND l.way && transform(c.geom,4326)
AND intersects(l.way , transform(c.geom,4326))
3) query
--per le statistiche regionali
SELECT c.nome_reg, sum(c.pop2001),
sum(length(transform(s.intersection,3395))) AS highw
FROM it_comuni c LEFT JOIN osm_stat_20090530 s ON c.pro_com = s.pro_com
GROUP BY c.nome_reg order by nome_reg
-- numero di comuni mappati per regione
select p.nome_regione, count(p.cod_pro), count(p.highw) FROM
( SELECT r.nome_regione, c.cod_pro, c.pro_com, c.geom, c.nome_com,
c.pop2001, min(s.cod_reg) AS highw
FROM it_comuni c LEFT JOIN osm_stat_20090503 s ON c.pro_com = s.pro_com,
it_prov_name p, it_reg_name r
where p.cod_pro =c.cod_pro AND p.cod_reg=r.cod_reg
GROUP BY r.nome_regione, c.cod_pro, c.pro_com, c.geom, c.nome_com,
c.pop2001
) p GROUP BY p.nome_regione;
4) esporto i dati in excel e li sistemo
Ciao,
Diego
2009/5/25 David Paleino <d.paleino at gmail.com>
> Ciao *,
> ho letto
>
> http://wiki.openstreetmap.org/index.php/WikiProject_Italy/Stats
>
> e sembra che i dati siano quantomeno "datati" :)
>
> Come sono stati generati quei dati? Qualche script?
>
> In particolare, mi interesserebbe creare delle sottopagine "Stats" dei
> sottoprogetti cui partecipo attivamente (Mazara del Vallo, Palermo,
> Sicilia),
> così da avere più granularità.
>
> Ciao,
> David
>
> --
> . ''`. Debian maintainer | http://wiki.debian.org/DavidPaleino
> : :' : Linuxer #334216 --|-- http://www.hanskalabs.net/
> `. `'` GPG: 1392B174 ----|---- http://snipr.com/qa_page
> `- 2BAB C625 4E66 E7B8 450A C3E1 E6AA 9017 1392 B174
>
> _______________________________________________
> Talk-it mailing list
> Talk-it at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-it
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/talk-it/attachments/20090601/91fe9e5d/attachment.html>
More information about the Talk-it
mailing list