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.pale...@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@openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-it
>
>
_______________________________________________
Talk-it mailing list
Talk-it@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-it

Rispondere a