Skip to Content.
Sympa Menu

freegeocz - RE: [FreeGeoCZ] invalid polygon geometry

freegeocz AT fsv.cvut.cz

Předmět: Svobodná geoinformační infrastruktura

List archive

RE: [FreeGeoCZ] invalid polygon geometry


Chronological Podle vláken 
  • From: MICHÁLEK Jan Mgr. <Michalek.Jan AT uhul.cz>
  • To: Svobodná geoinformační infrastruktura <freegeocz AT fsv.cvut.cz>
  • Subject: RE: [FreeGeoCZ] invalid polygon geometry
  • Date: Wed, 21 Apr 2010 08:04:20 +0200
  • List-archive: <http://mailman.fsv.cvut.cz/pipermail/freegeocz>
  • List-id: Svobodná geoinformační infrastruktura <freegeocz.fsv.cvut.cz>

No, pata moznost je stara dobra rucni práce, kdyby jich bylo sto, tak bych na
to prdel, esli jich je cca 10, tak bych to mozna zkusil opravit v ruce. Open
jump tusim umi editovat wkt za ziva, nebo VIM. Pripadne rozebrat na maly
kusy. No, polygon, kterej ma dva body, ten se da jen vyhodit (pokud nemas
podle ceho to opravit). Co je to za dta?? Puvod, SRID atd.

CO se tyce toho vyhazovani, muzes zkusit vyhazovat podle toho ST_IsValidReason

Napr:

Delete from table where
ST%IsValidReason like '%Number of points must be 0 or >3%'

Coz je sice trochu prasecke, ale co v dnesni době není.

10% je teda hodne, ja bych to nevyhazoval, zkus napr:
Alter table tt
Add column u_chyba smallint (tim typem si nejsem uplně jistej, možná umí pg
boolean, já v tom moc nedělám)


Update tt
Set
U_chyba = 1, geom = ST_Box2D(geom)/*nahradí vadnou gm kostkou (možná to
neudělá a bude vřískat) a označí chyby*/

Nebo něco takovýho

Ono jde hodně o to, co to sou za dta. Ty chyby můžou bejt nenáhodný, máš
např. 10 dodavatelů a jeden používá debilní soft, nebo je to mamlas a všechno
co dodal je špatný, přičemž, každej dělal jeden okres, takže bys měl ve
výsledku díru jako vrata. Když to vyhážeš, nebudeš vědět, že tam ty chyby
vůbec byly.

Psals, že si to načet ze SHP, koukal ses do zdrojovejch dat?? Co je v nich,
sou ty chyby už tam?? Otevřely se, zkoušel si víc různejch nástrojů na to
otevření.

Podle mojí zkušenosti, když má člověk hledat chyby v datech, tak je vždycky
dobrý přemejšlet, odkud se tam ty chyby vzaly.

Je.

-----Original Message-----
From: freegeocz-bounces AT fsv.cvut.cz [mailto:freegeocz-bounces AT fsv.cvut.cz] On
Behalf Of Dan Barta
Sent: Tuesday, April 20, 2010 5:01 PM
To: Svobodná geoinformační infrastruktura
Subject: Re: [FreeGeoCZ] invalid polygon geometry

Diky za podnety, pokusim se shrnout:
----------------------------
1) nejjednodussi je proste vadne polygony vyhazet, napr. takto:
----------------------------

TRUNCATE TABLE "polygon";
INSERT INTO "polygon" SELECT * FROM "polygonZaloha" WHERE
ST_IsValid(the_geom);


sic ono to vyhaze i ty prvky s relativne snesitelnymi (=pro export
prekonatelnymi) problemy (cca 10% z 1600)

----------------------------
2) vyber jen nekterych chyb podle typu konci padem
----------------------------
SELECT gid, ST_IsValidReason(the_geom) AS invalid from "polygon" where
ST_IsValid(the_geom) <> true;

NOTICE: Self-intersection at or near point -640685 -1.04412e+06
NOTICE: Holes are nested at or near point -640810 -1.04419e+06
NOTICE: Holes are nested at or near point -640778 -1.04425e+06
NOTICE: Ring Self-intersection at or near point -641245 -1.04472e+06
NOTICE: Holes are nested at or near point -640974 -1.04437e+06
NOTICE: Holes are nested at or near point -640722 -1.04436e+06
NOTICE: IllegalArgumentException: Number of points must be 0 or >3
NOTICE: IllegalArgumentException: Number of points must be 0 or >3


ERROR: POSTGIS2GEOS conversion failed

********** Chyba **********

3) pokus o napravu

Mam Ubuntu 9.10 na nem postgis 1.4.0. Ani stabilni 1.5.0 funkci
ST_MakeValid() nema.

V trunk-devel 2.0 uz se neco chysta [1] a da se to zpetne importovat[2] jako
funkce cleaGeometry(), ale na mem vzorku to spadne stejne jako vyse:

TRUNCATE TABLE "polygon";
INSERT INTO "polygon" SELECT * FROM "polygonZaloha"; UPDATE "polygon" SET
the_geom = cleanGeometry(the_geom) WHERE NOT ST_IsValid(the_geom);



Toz tak jsou realizovane vase postrehy, pokud jsem neco opomnel dejte vedet.

diky a zdravi Dan Barta


[1] http://trac.osgeo.org/postgis/ticket/399
[2] http://www.sogis1.so.ch/sogis/dl/postgis/cleanGeometry.sql


__________ Informace od ESET NOD32 Antivirus, verze databaze 5045 (20100420)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz



__________ Informace od ESET NOD32 Antivirus, verze databaze 5045 (20100420)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz






Archivace běží na MHonArc 2.6.19+.

Top of Page