[Gfoss] R: [ SARDEGNA ] - Shapefile ed errori (?)
a.furieri a lqt.it
a.furieri a lqt.it
Gio 22 Mar 2018 16:43:22 CET
ah ah, ancora una volta fanno capolino le mitiche "banane" :-D
esiste un caso particolarissimo di "Poligono con buco interno"
in cui il software prodotto da ESRI adotta una convenzione che
fa a pugni con gli standard dettati da OGC (vedi figura allegata).
il problema nasce quando il "buco" tocca direttamente il boundary
della figura; capita molto spesso lungo la linea costiera, quando
si incontrano piccolissime insenature.
- in questo case secondo ESRI e' lecito disegnare il solo
Exterior Ring, che dal punto P entra dentro alla figura,
descrive il contorno del "buco", e poi riesce fuori passando
ancora una volta dal punto P.
- ma questo non e' tollerabile secondo le specifiche degli
standard OGC, perche' qualsiasi Ring non puo' mi avere
dei punti di autotangenze.
quindi, secondo OGC, una topologia di questo tipo va
obbligatoriamente descritta utilizzando un Exterior
Ring ed un Interior Ring (che ovviamente si intersecano
sul punto P, ma questo e' legittimo).
ho appena controllato su SpatiaLite lo shape ISTAT 2016:
SELECT comune
FROM com2016_wgs84
WHERE cod_reg = 20 AND
ST_IsValid(geometry) <> 1;
---------------------------
La Maddalena
Calasetta
in Sardegna ci sono due comuni "stile ESRI", e sono
proprio loro quelli che disturbano.
correggere gli errori fino ad ottenere delle geometrie
impeccabili perfettamente coerenti con i requisiti
richiesti dagli standard OGC e' decisamente molto
semplice:
UPDATE com2016_wgs84
SET geometry = MakeValid(geometry)
WHERE cod_reg = 20
AND ST_IsValid(geometry) <> 1;
verifica finale:
SELECT comune, ST_IsValid(geometry)
FROM com2016_wgs84
WHERE comune in ('La Maddalena', 'Calasetta');
------------------------
La Maddalena 1
Calasetta 1
ora finalmente e' tutto a posto ;-)
ciao Sandro
Maggiori informazioni sulla lista
Gfoss