Avrei necessità di creare dei buffer su tutte le strade che sono comprese
all'interno di un'area definita da un vettore di poligoni
Immagino che io debba anzitutto usare lo strumento di selezione vettore
"estrai per posizione", e poi fargli applicare il buffer alle linee
risultanti, ma il layer ottenuto non mi mostra ciò che occorre.
Probabilmente sbaglio a selezionare i predicati geometrici, ma ho fatto
diversi esperimenti, e tutti danno come risultato la stessa porzione di vie.
non sono riuscito a trovare nei manuali una spiegazione esaustiva di cosa
cambia tra i vari predicati geometrici. Ho trovato un video di Salvatore
Fiandaca in cui mostra tre o quattro di questi predicati all'interno di una
formula, ma il risultato mostrato nel video (senza parlato) non mi chiarisce
purtroppo la differenza.
Inoltre, l'ordine dei layer nella toc influisce sul risultato?
Volevo anche chiedere se è possibile automatizzare questi due processi in
modo che, dato nuovi layer che definisce le aree, posso sempre ottenere una
rapida elaborazione sulle mappe.
secondo me la soluzione migliore è quella di creare un modello di
processing unendo il buffer dei poligoni e invece della selezione per
posizione forse hai bisogno di un clip
Allora, premessa la mia ignoranza sempre, quindi forse non ho ben capito ciò
che mi consigli, penso però di non essermi spiegato sull'output che voglio
ottenere...
Se ho un poligono e faccio un clip, mi pare che ottengo il poligono meno la
strada... Comunque un poligono tranne la parte più esterna di esso (a
seconda dello spessore della strada), ammesso che il poligono "strabordi"
almeno un po' su di essa, giusto?
Invece a me interesserebbe ottenere una linea, spessa un tot, parallela alla
strada (un buffer), per tutti i lati delle strade che ricadono dentro
quell'area definita dal poligono
Inoltre, premesso che l'ho sempre visto fare e oggi lo uso per la prima
volta, il buffer non funziona: pur settandolo a 10 gradi di distanza risulta
una porzione spropositata che ingloba tutto il mio progetto e si estende di
gran lunga oltre i suoi confini (nell'immagine, il buffer è viole e nel
cerchietto al centro c'è tutto il mio progetto)
<http://osgeo-org.1560.x6.nabble.com/file/t386873/buffer.png>
Inoltre, premesso che l’ho sempre visto fare e oggi lo uso per la prima
volta, il buffer non funziona: pur settandolo a 10 gradi di distanza risulta
una porzione spropositata che ingloba tutto il mio progetto e si estende di
gran lunga oltre i suoi confini (nell’immagine, il buffer è viole e nel
cerchietto al centro c’è tutto il mio progetto)
<http://osgeo-org.1560.x6.nabble.com/file/t386873/buffer.png>
ho cancellato questa parte di post a cui mi hai risposto perchè andava un po'
troppo fuori argomento e perchè comunque ho risolto impostando un buffer in
gradi molto piccolo (0,0003 circa)...
anche nella finestra dello strumento del buffer infatti mi si suggeriva di
usare un SR proiettato e ho provato a cambiarlo.
sto essenzialmente facendo delle prove (leggi pasticci) ma poi tornerò a un
proiettato
scusa se intervengo senza offrire una soluzione però temo che questo modo di procedere non ti porterà beneficio;
mi sembra che hai 2 problemi, 1) l’intersezione con il poligono e 2) il buffer; forse meglio risolverli uno alla volta e in ordine;
sono sicuro che qualcuno ti aiuterà a capire e risolvere gli errori dell’intersezione con il poligono;
risolti quelli, gli stessi o altri ti aiuteranno a risolvere il problema del buffer (attenzione: hai parlato di “10 gradi”; la conversione gradi / metri non è così banale, forse merita qualche attenzione di per sé e forse te ne sei accorto perché nell’ultimo msg parli di un altro valore molto piccolo);
scusa se intervengo senza offrire una soluzione però temo che questo modo
di procedere non ti porterà beneficio;
mi sembra che hai 2 problemi, 1) l'intersezione con il poligono e 2) il
buffer; forse meglio risolverli uno alla volta e in ordine;
hai perfettamente ragione, infatti come già scritto nel post di risposta
precedente, ho eliminato proprio quella parte di messaggio in cui si faceva
riferimento ai problemi col buffer enorme (che comunque ho risolto) perchè
mi interessa anzitutto capire come procedere con la prima parte del problema
Il clip come detto non mi convince molto, sono io che sbaglio qualcosa?
esiste qualche altra soluzione?
Ciao Nickyes,
purtroppo dalle tue descrizioni non riesco a comprendere quale sia il
problema da te riscontrato.
Ti consiglio di provare a spiegare in maniera puntuale la procedura che stai
seguendo, specificando i sistemi di riferimento impostati per il progetto e
per i layers coinvoliti, quali strumenti esattamente stai utilizzando e con
quali parametri ed eventualmente rendere disponibili i layer in modo che
altri possano seguire la tua procedura e verificare se si tratta di un
errore nelle impostazioni, nella procedura, o nei layer, o, eventualmente,
di un bug in QGIS.
Nel frattempo, ti consiglierei di leggere la documentazione d'uso di QGIS,
tra cui:
Mi permetto di aggiungere anche il suggerimento di non lavorare in un sistema di riferimento lat-lon ma in uno proiettato; eviti così di lavorare in gradi.
Tieni conto che alcuni moduli funzionano solo con layer proiettati.
Non mi stupirei se i tuoi problemi derivassero dall’uso contemporaneo di layer proiettati e non.
Ciao Nickyes,
purtroppo dalle tue descrizioni non riesco a comprendere quale sia il
problema da te riscontrato.
Ti consiglio di provare a spiegare in maniera puntuale la procedura che stai
seguendo, specificando i sistemi di riferimento impostati per il progetto e
per i layers coinvoliti, quali strumenti esattamente stai utilizzando e con
quali parametri ed eventualmente rendere disponibili i layer in modo che
altri possano seguire la tua procedura e verificare se si tratta di un
errore nelle impostazioni, nella procedura, o nei layer, o, eventualmente,
di un bug in QGIS.
Nel frattempo, ti consiglierei di leggere la documentazione d’uso di QGIS,
tra cui:
...
Inoltre, non l'avevo specificato prima, ma a seconda del poligono che
definisce un area, i lati delle strade o di parti di esse dovrebbero
essere sottoposte a buffer selettivo, a volte su entrambi i lati, a volte
solo su uno dei due
...
Ciao.
Oltre a quanto già detto vorrei fare alcune osservazioni.
- La corrispondenza in metri di un grado di latitudine è diversa da quella
di un grado in longitudine; questa differenza è variabile ed aumenta andando
dall’equatore verso i poli. Di conseguenza, lavorando in SR con coordinate
in gradi, le linee orizzontali e quelle verticali avranno buffer con
larghezze reali (in metri) diverse. Perciò, come già giustamente suggerito,
meglio riconvertire in un sistema proiettato tipo UTM.
- Guardando le immagini che hai allegato mi sembra che le linee (strade) non
siano interne al poligono dell’area di interesse ma piuttosto coincidano con
i suoi bordi, quindi bastano differenze millesimali tra le coordinate
salvate nelle linee e quelle dei poligoni perché una linea venga inclusa o
meno.
- Mi sembra di capire che ti interessa solo la parte di buffer che cade
all’interno del poligono, o baglio?
In tal caso io farei così:
1) riproiettare tutto (strade e aree di interesse) in sistema UTM
2) fare il buffer (espresso in metri) su tutte le linee
3) ritagliare il layer poligonale del buffer con il layer poligonale delle
aree di interesse.
Per il ritaglio puoi usare lo strumento di geoprocessing “Ritaglia” oppure
lo strumento “Intersezione” (quest’ultimo dovrebbe aggiungere alle porzioni
di buffer ritagliate anche gli attributi delle aree di interesse).
Ringrazio tutti dei vostri suggerimenti. Il fatto di cambiare SR era solo una
soluzione temporanea. Non essendo molto pratico volevo capire se cambiasse
qualcosa. Come mi avete fatto notare in tanti in effetti, sì, cambia di
molto. Ora ho impostato per tutti i layer e per l'intero progetto un
WGS84/UTM ZONE 32N e questo ha contribuito a risolvere la maggior parte dei
problemi.
Ma più di tutti ringrazio Alessandro perchè mi ha dato la sequenza che ha
risolto i miei problemi
alper78 wrote
In tal caso io farei così:
1) riproiettare tutto (strade e aree di interesse) in sistema UTM
2) fare il buffer (espresso in metri) su tutte le linee
3) ritagliare il layer poligonale del buffer con il layer poligonale delle
aree di interesse.
Per il ritaglio puoi usare lo strumento di geoprocessing “Ritaglia” oppure
lo strumento “Intersezione” (quest’ultimo dovrebbe aggiungere alle
porzioni
di buffer ritagliate anche gli attributi delle aree di interesse).
Qualche annotazione e richiesta di delucidazioni aggiuntive:
- nonostante ora l'SR dei layer e del progetto sia il medesimo e sia
proiettato, ho dovuto comunque impostare un buffer molto basso, in questo
caso 0,0001 (metri questa volta)... è normale?
- la linea strana aggiunta di cui lamentavo che era stato creato un buffer
era una vestizione data a elementi di cui ancora devo indagare che cosa
rappresentano... ho provato però ad effettuare il buffer spegnendo la
visualizzazione di tali elementi, ma vengono inclusi comunque. Dentro lo
strumento per effettuare il buffer non sono riuscito a trovare un modo per
escludere dai risultati alcuni elementi. Esiste un modo?
- probabilmente a motivo dell'avere impostato SR univoco e corretto, le
parti che nel buffer prima venivano eliminate ora non vengono eliminate
più... Vai così
ho dovuto comunque impostare un buffer molto basso
*
, in questo
caso 0,0001 (metri questa volta)...
*
è normale?
*
No. Questo vuol dire che i tuoi layer sono ancora in un sistema di
riferimento geografico e non piano.
Il tuo ultimo screenshot (che comunque è poco leggibile, come gli altri)
conferma questa ipotesi: in esso, infatti, la forma generale degli oggetti
cartografici rappresentati è identica a quella dei precedenti screenshot.
Se i layer fossero georiferiti (o li avessi correttamente riproiettati) in
un sistema di riferimento planimetrico e li stessi utilizzando in un
progetto con un sistema di riferimento planimetrico, dovresti osservare un
cambiamento della forma generale degli oggetti cartografici.
Questo dipende da quanto ti ha scritto Alessandro in merito alla differenza
di lunghezza in piano tra un grado di latitudine e un grado in longitudine
(tranne che all'Equatore).
vuol dire che i tuoi layer sono ancora in un sistema di
riferimento geografico e non piano.
Il tuo ultimo screenshot (che comunque è poco leggibile, come gli altri)
conferma questa ipotesi: in esso, infatti, la forma generale degli oggetti
cartografici rappresentati è identica a quella dei precedenti screenshot.
Se i layer fossero georiferiti (o li avessi correttamente riproiettati) in
un sistema di riferimento planimetrico e li stessi utilizzando in un
progetto con un sistema di riferimento planimetrico, dovresti osservare un
cambiamento della forma generale degli oggetti cartografici.
Questo dipende da quanto ti ha scritto Alessandro in merito alla
differenza
di lunghezza in piano tra un grado di latitudine e un grado in longitudine
(tranne che all'Equatore).
Ciao,
allora, mi sono letto buona parte della documentazione, ma non sono riuscito
a cambiare il sistema di riferimento in modo che gli oggetti fossero
riproiettati in modo da notare cambiamenti
Eppure se vado su ogni singolo layer e mi ci soffermo sopra con il mouse, mi
dice che utilizzano tutti lo stesso SR di cui facevo riferimento prima.
Inoltre anche nella barra di stato in basso si fa riferimento al medesimo
SR. Non saprei.
Effettivamente però temo ci sia qualche problema di georiferimento ora,
perchè per esempio se creo ora con quickmap dei layer di mappe OSM, non vedo
le mappe oppure vedo uno sfondo per esempio azzurro monocromatico. Sembra
che qualcosa ora si sia rotto da quando ho cambiato SR...
Sembra
che qualcosa ora si sia rotto da quando ho cambiato SR...
Come hai fatto a "cambiare SR" dei layer?
Se i tuoi layer sono in determinato sistema di riferimento e vuoi
riproiettarli in un altro sistema di riferimento, puoi seguire, come già
detto, per esempio, le istruzioni riportate nel manuale [1].
Ma se fai una ricerca con un qualsiasi motore di ricerca, puoi trovare la
procedura per cambiare sistema di riferimento di un layer in svariati
siti/media/lingue: per esempio vedi [2]
Se descrivi con una certa accuratezza la procedura che hai seguito (e magari
la confronti con quella riportata nel manuale), sarebbe più facile (anche
per te) capire qual è il problema.
stai mescolando il SR dei layer con quello del progetto. QGIS gestisce
tutto "al volo" ovvero riproietta un layer dal suo sistema di
riferimento a quello del progetto (qualunque esso sia).
A volte i risultati non sono quelli voluti: per esempio un layer di
QuickMapServices a estensione globale (es OSM) fa molta molta fatica ad
essere "accartocciato" su un SR locale (es 32632).
Ti consiglio di continuare a leggere la documentazione perché la
gestione dei SR causa più vittime della conquista dell'america:
(fai riferimento in particolare a "On-The-Fly Projection")
Mi unisco agli altri dicendo che devi andare per passi:
* aggiustare questo problema dei sistemi di riferimento (riproiettando i
layer con l'algoritmo di processing)
* estrarre le strade che ti servono (con un clip o estraendo per posizione)
* fare un buffer (che ti verrà corretto visto che i layer sono in SR
proiettati)