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: Dan Barta <ehanoj AT gmail.com>
  • To: Svobodná geoinformační infrastruktura <freegeocz AT fsv.cvut.cz>
  • Subject: Re: [FreeGeoCZ] invalid polygon geometry
  • Date: Thu, 22 Apr 2010 10:07:03 +0200
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=WrgrZIdkpdVqrRjQE8fE8sJwYe4dshn2PgM1I142tXP7NzlmRiL6ztVjgQrfIDgH/+ s18xKnpMBkEXAT9vpRCBflzU4doWJY4CNU+QX8oljd1IwgtTuZJ08tEzSaXBhqGseRhr VX/RIU3pRCP+n2eoJDornXawD4UKeDltyMw0A=
  • List-archive: <http://mailman.fsv.cvut.cz/pipermail/freegeocz>
  • List-id: Svobodná geoinformační infrastruktura <freegeocz.fsv.cvut.cz>

Diky, ja bych to jen shrnul
a) rucne se do WKT toho nechystam
b) funkce ST_IsValidReason konci padem bez tabulkoveho vystupu, takze
je nepouzitelna (ledaze bych vypnul transakce a dival se kde to padne)
c) obejit problem umim, ale to nebyla podstata dotazu

kazdopadne diky, jdu cestou c)

zdravi Dan B.

2010/4/21 MICHÁLEK Jan Mgr. <Michalek.Jan AT uhul.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);





Archivace běží na MHonArc 2.6.19+.

Top of Page