RE: [FreeGeoCZ] invalid polygon geometry

MICHÁLEK Jan Mgr. <[email protected]>
Newsgroups gmane.comp.gis.grass.cz
Message-ID <[email protected]>
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: [email protected] [mailto:[email protected]] 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
 

_______________________________________________
FreeGeoCZ mailing list
[email protected]
http://mailman.fsv.cvut.cz/mailman/listinfo/freegeocz
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.