Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Přeskakování chybných GML geometrií při linearizaci #40

Open
shr3k opened this issue Jan 22, 2021 · 5 comments
Open

Přeskakování chybných GML geometrií při linearizaci #40

shr3k opened this issue Jan 22, 2021 · 5 comments

Comments

@shr3k
Copy link
Contributor

shr3k commented Jan 22, 2021

Chlapi, nemohli bychom tyhle chyby nějak inteligentně přeskakovat, aby nehavaroval celý import?
2021-01-22 06:30:02 URL:http://vdp.cuzk.cz/vymenny_format/soucasna/20210121_ST_ZKSH.xml.zip [19175571/19175571] -> "/tmp/ruian/20210121_ST_ZKSH.xml.zip" [1] Recreating RÚIAN statistics views... Processing file /tmp/ruian/20210121_ST_ZKSH.xml.zip Warning: Ignoring unsupported element urn:cz:isvs:ruian:schemas:OkresIntTypy:v1 NespravneUdaje Warning: Ignoring unsupported element urn:cz:isvs:ruian:schemas:CommonTypy:v1 NespravnyUdaj Warning: Ignoring unsupported element urn:cz:isvs:ruian:schemas:CommonTypy:v1 NazevUdaje Warning: Ignoring unsupported element urn:cz:isvs:ruian:schemas:CommonTypy:v1 OznacenoDne Warning: Ignoring unsupported element urn:cz:isvs:ruian:schemas:CommonTypy:v1 OznacenoInfo Warning: Ignoring unsupported element urn:cz:isvs:ruian:schemas:OrpIntTypy:v1 NespravneUdaje Warning: Ignoring unsupported element urn:cz:isvs:ruian:schemas:CommonTypy:v1 NespravnyUdaj Warning: Ignoring unsupported element urn:cz:isvs:ruian:schemas:CommonTypy:v1 NazevUdaje Warning: Ignoring unsupported element urn:cz:isvs:ruian:schemas:CommonTypy:v1 OznacenoDne Warning: Ignoring unsupported element urn:cz:isvs:ruian:schemas:CommonTypy:v1 OznacenoInfo Exception in thread "main" java.lang.RuntimeException: Invalid Curve definition: need at least 3 control points, but got 2. at com.fordfrog.ruian2pgsql.gml.Curve.linearize(Curve.java:61) at com.fordfrog.ruian2pgsql.gml.Curve.linearize(Curve.java:34) at com.fordfrog.ruian2pgsql.gml.CompoundCurve.linearize(CompoundCurve.java:85) at com.fordfrog.ruian2pgsql.gml.CompoundCurve.linearize(CompoundCurve.java:33) at com.fordfrog.ruian2pgsql.gml.Polygon.linearize(Polygon.java:131) at com.fordfrog.ruian2pgsql.gml.Polygon.linearize(Polygon.java:33) at com.fordfrog.ruian2pgsql.gml.GMLParser.parseLinearized(GMLParser.java:103) at com.fordfrog.ruian2pgsql.utils.Utils.processGML(Utils.java:700) at com.fordfrog.ruian2pgsql.utils.Utils.processGeometrieElement(Utils.java:587) at com.fordfrog.ruian2pgsql.utils.Utils.processGeometrie(Utils.java:546) at com.fordfrog.ruian2pgsql.convertors.ParcelaConvertor.processElement(ParcelaConvertor.java:212) at com.fordfrog.ruian2pgsql.convertors.ParcelaConvertor.processElement(ParcelaConvertor.java:41) at com.fordfrog.ruian2pgsql.convertors.AbstractSaveConvertor.convert(AbstractSaveConvertor.java:164) at com.fordfrog.ruian2pgsql.convertors.CollectionConvertor.processElement(CollectionConvertor.java:93) at com.fordfrog.ruian2pgsql.convertors.AbstractConvertor.convert(AbstractConvertor.java:77) at com.fordfrog.ruian2pgsql.convertors.DataConvertor.processElement(DataConvertor.java:212) at com.fordfrog.ruian2pgsql.convertors.AbstractConvertor.convert(AbstractConvertor.java:77) at com.fordfrog.ruian2pgsql.convertors.ExchangeFormatConvertor.processElement(ExchangeFormatConvertor.java:73) at com.fordfrog.ruian2pgsql.convertors.AbstractConvertor.convert(AbstractConvertor.java:77) at com.fordfrog.ruian2pgsql.convertors.MainConvertor.processElement(MainConvertor.java:338) at com.fordfrog.ruian2pgsql.convertors.MainConvertor.readInputStream(MainConvertor.java:317) at com.fordfrog.ruian2pgsql.convertors.MainConvertor.processFile(MainConvertor.java:272) at com.fordfrog.ruian2pgsql.convertors.MainConvertor.convert(MainConvertor.java:140) at com.fordfrog.ruian2pgsql.App.main(App.java:133)

@shr3k shr3k changed the title Přeskakování chybných geometrií Přeskakování chybných GML geometrií při linearizaci Jan 22, 2021
@pedro042
Copy link

No zrovna se s tímhle souborem trápím :(. Ale otázkou je, zda je to opravdu chybná geometrie. Dva body na definování úsečky přeci stačí a úsečka je prostě jen podmnožina křivek, ne? Nehrabe tentokrát spíš Postgisu? BTW: našel jsi to, který element to je?

@shr3k
Copy link
Contributor Author

shr3k commented Jan 31, 2021

@pedro042
Copy link

Díky moc, tak přeci jen budu mít volnou neděli :)

@DavidPavlicek
Copy link
Contributor

Už jsem to zkoušel řešit, ale ne moc úspěšně... Vytvořil jsem novou výjimku, kterou jsem vystřelil při chybě a odchytil jí na nějaké třídě (už nevím přesně), která inicializuje zpracování. Problém ovšem je ten, že se předává XML stream, který je nastaven na nějakou pozici a v momentě kdy jsem chtěl pokračovat ve zpracování, tak to hodí chybu, protože strom tříd pod danou třídou očekává jiný vstup z XML, než kde je aktuální pozice. Podle mě to znamená, že se musí ta výjimka zpracovat na všech třídách, kde může nastat. (možná rozšířením bázové třídy?)

@fordfrog
Copy link
Owner

fordfrog commented Apr 23, 2021

nedíval jsem se do kódu, ale je to jak píšeš, ta chyba se musí zpracovat tam kde se zpracovává ten xml element, aby ten parser mohl pokračovat tam kde skončil. a nebo to zpracovat tam, kde je to nejvhodnější, před dalším parsováním je ale potřeba zkomzumovat všechny xml elementy až po ten element na úrovni, kde to zpracováváš. tj. dočíst ten element do konce.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants