[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