[QGIS-it-user] [QGIS] geoprocessing - risolvere 1:M
Totò
pigrecoinfinito a gmail.com
Mar 14 Giu 2016 02:55:07 PDT
Totò wrote
>
> Daniele Bonaposta wrote
>> Ciao a tutti,
>> ho un'analisi da fare su dati catastali e per farlo devo risolvere una
>> relazione 1:M.
>>
>> Da una parte ho un vettoriale delle particelle catastali (senza altre
>> suddivisioni tipo il subalterno; il valore della particella è il dato
>> "atomico"), dall'altra ho i dati tributari dei contribuenti e loro
>> relativa
>> particella catastale.
>> La relazione è 1:M un contribuente è localizzato in una sola particella e
>> una particella può contenere almeno un contribuente.
>> Per localizzare i contribuenti sul territorio, in modo tale che un
>> poligono
>> contenga un solo contribuente ho due possibilità:
>>
>> - duplico i poligoni tante volte quanti sono i contribuenti collegati
>> - divido i poligoni tante volte quanti sono i contribuenti collegati
> La soluzione adottata è stata quella di duplicare i poligoni (per esempio
> con un buffer negativo) uno dentro l'altro; questa soluzione permette di
> tematizzare e zoomare alla selezione.
>
> ciao
Vorrei spiegare meglio quanto descritto brevemente sopra.
I GIS Desktop (come QGIS) non sono dei DB e quindi si appoggiano a dei veri
e propri DBMS come SPatialite o PostgreSQL.
Quando ci si trova difronte a queste problematiche (relazioni 1:M) è sempre
consigliato (è un mio personale pensiero) usare i DB dove è possibile
gestire con molta facilità queste esigenze anche perchè ogni oggetto diventa
una tabella.
Nel caso specifico, passando da un GeoDB (tabella_1, tabella_M), è possibile
realizzare un semplice join tra le due tabelle.
La 'tabella_1' contiene anche la geometria, la 'tabella_M' solo dati
alfanumerici con un numero di record superiore alla tabella_1. Il join
creerebbe una altra tabella (con numero di righe pari alla tabella_M) dove
verrà ripetuta (n volte) anche la geometria contenuta nella tabella_1 (per
questo parlavo di duplicazione).
Faccio un esempio pratico con due shapefile regioni e province istat:
1. reg2011_g (gid,cod_reg, geom);
2. prov2011_g (gid, cod_pro, cod_reg) solo alfanumerico:
query:
SELECT
prov2011_g.gid, prov2011_g.cod_reg, prov2011_g.cod_pro,
prov2011_g.nome_pro,
reg2011_g.nome_reg, reg2011_g.geom
FROM
prov2011_g, reg2011_g
WHERE
prov2011_g.cod_reg = reg2011_g.cod_reg
order by gid;
questa query genera una altra tabella (è possibile creare una view) con un
numero di righe pari al numero di province (110) e con geometria
(duplicata): es: per la sicilia otterremmo nove volte la geometria della
regione sicilia, una per ogni provincia.
Infine, sulle geometrie sovrapposte è possibile estrarre i centroidi,
effettuare buffer negativi, oppure lasciare tutto per come è. Per la
selezione di feature sovrapposte consiglio l'uso del plugin Expression + di
Nathan Woodrow.
Saluti
--
View this message in context: http://osgeo-org.1560.x6.nabble.com/QGIS-geoprocessing-risolvere-1-M-tp5271387p5271526.html
Sent from the QGIS Italian User mailing list archive at Nabble.com.
Maggiori informazioni sulla lista
QGIS-it-user