[Gfoss] buffer quale sw utilizzare

>> *Compito: creare uno shapefile attraverso un'operazione di buffer in*
>> *base ad un campo numerico (intero) di uno shapefile lineare (archi di*
>> *strade).*
>>
>> *Lo shape è corposo 160000 linee ~ 45MiB (infrastrutture stradali di una*
>> *intera regione)*
>>
>
>è un bel botto di roba: e l'algoritmo di buffering
>è una brutta bestia: preparati ad usare tanta calma

>e molta pazienza :-)
>oppure, segmenti il problema ed elabori un
>migliaio di linee alla volta.

>Sicuramente SpatiaLite e PostGIS usano GEOS.
>A spanne, non mi aspetterei grosse differenze

>di velocità tra i due.
>Io personalmente eviterei di usare uno strumento 
>GUI: ti rallenta di sicuro, e non ti da nessun 
>valore aggiunto.
>Usa piuttosto un DBMS via SQL: SPlite o PostGis,

>quello che conosci meglio e con il quale hai
>maggiore familiarità.

Conta molto la query che imposti,
e come pensi di esportare in shapefile dalla tabella.
SPlite ha delle funzioni sue, postgis, anche ma sono piu' uggiose, 

se opti per postgis usa gdal/ogr per estrarre da postgis, e' molto buono e versatile. 
Io lo uso sempre e ci tiro fuori anche archivi da 80-900 Mbytes ciascuno.

Poi stai attento alla query sql.
Non ho chiaro se devi fare un semplice buffer brutale su tutti gli elementi o se devi fare qalcosa di piu' raffinato.

Infatti il buffer ti provochera' delle sovrapposizioni nelle zone di contatto delle strade, e non credo che questo sia un effetto gradito.
Infatti di solito nei dati dei grafi nelle zone di contatto si fanno dei raccordi tra le strade "a punta" o "a quadrato" o anche in altro modo,

ma sempre evitando la sovrapposizione delle aree. In ogni caso questo tipo di raccordi non si ottengono con il semplice "buffer".

Facendo il buffer normale avrai delle sovrapposizioni nelle zone di contatto.

E non e' detto che questo alla fine di faccia gioco.
Magari scopri che dovrai fare della elaborazione spaziale piu' sofisticata che non un semplice buffer.
Se sei in questa situazione, allora ti consiglio di usare postgis, che su questo fronte e' piu' versatile.

Saluti,

-- 


Andrea Peri
. . . . . . . . .
qwerty àèìòù

On Thu, 24 Jun 2010 10:58:54 +0200, Giovanni Pasini wrote

Compito: creare uno shapefile attraverso un'operazione di buffer in
base ad un campo numerico (intero) di uno shapefile lineare (archi
di strade).
Lo shape è corposo 160000 linee ~ 45MiB (infrastrutture stradali di
una intera regione)

Il giorno Thu, 24 Jun 2010 14:03:17 +0200
Andrea Peri <aperi2007@gmail.com> ha scritto:

Conta molto la query che imposti

su questa affermazione mi puoi dare delle indicazioni aggiuntive o
riferimenti?

e come pensi di esportare in shapefile dalla tabella.
SPlite ha delle funzioni sue, postgis, anche ma sono piu' uggiose,
se opti per postgis usa gdal/ogr per estrarre da postgis, e' molto
buono e versatile.
Io lo uso sempre e ci tiro fuori anche archivi da 80-900 Mbytes
ciascuno.

anche questa è una cosa molto importante da valutare..., grazie

Poi stai attento alla query sql.
Non ho chiaro se devi fare un semplice buffer brutale su tutti gli
elementi o se devi fare qalcosa di piu' raffinato.
Infatti il buffer ti provochera' delle sovrapposizioni nelle zone di
contatto delle strade, e non credo che questo sia un effetto gradito.
Infatti di solito nei dati dei grafi nelle zone di contatto si fanno
dei raccordi tra le strade "a punta" o "a quadrato" o anche in altro
modo,
ma sempre evitando la sovrapposizione delle aree. In ogni caso questo
tipo di raccordi non si ottengono con il semplice "buffer".

Facendo il buffer normale avrai delle sovrapposizioni nelle zone di
contatto. E non e' detto che questo alla fine di faccia gioco.
Magari scopri che dovrai fare della elaborazione spaziale piu'
sofisticata che non un semplice buffer.
Se sei in questa situazione, allora ti consiglio di usare postgis, che
su questo fronte e' piu' versatile.

per il caso specifico mi basta il bruto buffer con tutte le
sovrapposizioni, ma in un discorso più generale (anche non legato a
infrastrutture viarie e alla rigorosità dei grafi stradali) il risultato
a cui tendere come "minimo" potrebbe essere un buffer con dissoluzione
delle aree sovrapposte.
In questo caso come si può fare? quale la maniera per ottimizzare e
quali le funzioni da utilizzare (credo Union?), avete esempi
pratici? Scusate se la domanda è banale, ma sono alle prime armi con
questo tipo di approccio.

Per esempio nella generazione delle mappe OSM quali strumenti vengono
adoperati per le strade? (o l'esempio non calza?)

Qualcuno di voi ha mai fatto confronti con sw proprietari (di tipo
desktop intendo e quindi anche solo limitati a dati non
particolarmente corposi) a questo riguardo, relativamente alla velocità
dell'operazione di buffer su identici dati e macchine? Mi piacerebbe
capire se questo punto possa rappresentare un deficit o un vantaggio da
parte dei sw floss.

Intanto grazie a tutti per le indicazioni, ancora non ho iniziato a
metterle in pratica sui dati "corposi" ma presto proverò, per ora ho
fatto delle prove ricognitive con SpatiaLite con buoni risultati.

Grazie,
giovanni