Come bufferizzare una linea con diverse distanze per i lati sinistro / destro


14

Come posso bufferizzare una linea in QGIS usando un attributo per il lato sinistro della linea e un attributo per il lato destro della linea? Sto cercando di bufferizzare un fiume con la sua larghezza della sponda, che è diversa sul lato destro e sinistro.


hai provato ad usare il buffer JTS da QGIS? lin-ear-th-inking.blogspot.it/2010/11/...
Julien

Risposte:


8

La definizione del lato di una linea è piuttosto semplice su una superficie orientabile , che è un piano 2D in un GIS. Se si definisce un punto iniziale e un punto finale per una linea, è possibile definire in modo inequivocabile i lati "sinistra" e "destra". Questo è il caso anche se la linea si incrocia.

Da un punto di vista più pratico, un semplice flusso di lavoro per la creazione di un buffer unilaterale include un buffer standard, un'operazione di differenza e quindi un'operazione di ritaglio. Ecco un esempio

Inizia creando un poligono che includa o si sovrapponga precisamente alla linea. Affinché il buffer si trovi sul lato destro della linea, l'interno del poligono dovrebbe essere sulla sinistra. Nota che se la tua linea si incrocia su se stessa, allora non funzionerà come desiderato e potresti dover disegnare il poligono in modo che non attraversi se stessa o la tua linea. Applica l'operazione buffer a questo poligono. Usando il plugin fTools vai su Geoprocessing Tools> Buffer.

Poligono

Utilizzando l'operazione differenza, Strumenti di geoprocessing> Differenza, con il buffer come livello di input e il poligono originale come livello di differenza, ritaglia l'interno. Ora hai un buffer sul lato destro.

Poligono tamponato

Non resta che tagliare la parte "extra" del poligono. Strumenti di geoprocessing> Clip.

Clip poligonale Linea finale


1

Questa è una domanda molto interessante, che ritengo non banale da risolvere. Mi sono imbattuto in uno script per ArcMap che fornisce una soluzione molto ben documentata che copre 500 righe di codice VB. Tuttavia non sono a conoscenza di uno script o modulo equivalente in QGIS.

Una delle considerazioni chiave in un buffer asimmetrico sarà la direzione del flusso della linea, in modo da poter definire un lato sinistro e destro. Nel caso dei fiumi questo dovrebbe essere semplice da calcolare se si dispone di un DEM di accompagnamento.

Potrebbe essere possibile creare uno script qgis attorno alla logica di questo script, ma ciò richiederebbe una grande quantità di lavoro.


1
In ArcMap questo è molto facile da ottenere. Nella finestra di dialogo dello strumento è presente il parametro Side Typeche può essere sinistro o destro. E tu hai il parametro Field. Quindi lo scripting di questo strumento ti consente di utilizzare valori diversi per entrambi. L'ho fatto di recente (vedi la mia domanda qui )
LarsVegas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.