[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