Re: [osmosis-dev] bounding-polygon dismisses points at +180° longitude
On Sun, Jul 17, 2011 at 4:25 AM, WanMil wmgc...@web.de wrote: Hi, what need to be done to get this issue fixed? The following things were provided: * a simple testcase * a scenario in which the problem is a real issue (extracting russian border) * a simple patch based on Brett ideas I don't know what I can do now to speed up a bugfix. So please commit the patch or let me know what's wrong with it. Hi WanMil, I've applied the patch (plus checkstyle fixes). Let me know if you see any issues. Brett ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev
Re: [osmosis-dev] bounding-polygon dismisses points at +180° longitude
Although I wrote to Brett directly that extending the polygon to 181° works I have observed that is works only for osm input but not for pbf input. osmosis --read-pbf file=180.osm.pbf --bounding-polygon file=asia.poly --write-xml file=filtered.osm throws an exception: SCHWERWIEGEND: Thread for task 1-read-pbf failed java.lang.IllegalArgumentException: Bound coordinates outside of valid range at org.openstreetmap.osmosis.core.domain.v0_6.Bound.init(Bound.java:72) at org.openstreetmap.osmosis.areafilter.v0_6.PolygonFilter.simpleBoundIn tersect(PolygonFilter.java:118) at org.openstreetmap.osmosis.areafilter.v0_6.PolygonFilter.process(Polyg onFilter.java:71) at org.openstreetmap.osmosis.core.container.v0_6.BoundContainer.process( BoundContainer.java:59) at org.openstreetmap.osmosis.areafilter.v0_6.AreaFilter.process(AreaFilt er.java:116) at crosby.binary.osmosis.OsmosisBinaryParser.parse(OsmosisBinaryParser.j ava:245) at crosby.binary.BinaryParser.handleBlock(BinaryParser.java:64) at crosby.binary.file.FileBlock.process(FileBlock.java:135) at crosby.binary.file.BlockInputStream.process(BlockInputStream.java:34) at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:37) at java.lang.Thread.run(Unknown Source) 14.06.2011 18:56:20 org.openstreetmap.osmosis.core.Osmosis main SCHWERWIEGEND: Execution aborted. org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed . at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForComple tion(Pipeline.java:146) at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:92) at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Laun cher.java:329) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav a:239) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La uncher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java: 352) at org.codehaus.classworlds.Launcher.main(Launcher.java:31) So the pbf parser should be changed. WanMil I'm surprised nobody has brought this up before :-) It's always been a limitation of the polygon task. Osmosis uses the Java 2D libraries to do the polygon calculations. Please read the Definition of insideness in the following link which explains why you're seeing this issue. http://download.oracle.com/javase/6/docs/api/java/awt/Shape.html We have no way of changing the functionality of the inbuilt java libraries we're stuck with this one. I wonder if we should even have points existing on both 0 and 180 longitudes in the database given that they're the same location. Perhaps a number of tools rely on it though. Can you modify your polygon to extend to 181°? I don't think I've ever tried it, but it should work in theory. On Tue, Jun 14, 2011 at 7:04 AM, WanMil wmgc...@web.de mailto:wmgc...@web.de wrote: Hi, today I tried to cut out the data of asia from a planet file using the attached asia.poly file. Osmosis is doing fine with the exception that the points at +180° longitude are missing. I created a little test osm file (180.osm) with one node at +180° and it's removed by the asia.poly polygon. This is a real problem because there are (a few) points which really lie on the +180° longitude, e.g. http://www.openstreetmap.org/__browse/node/1113705746 http://www.openstreetmap.org/browse/node/1113705746 Without this node there are problems to calculate the multipolygon of the russian country. So there is a specific need for that. Can you change the osmosis behaviour so that +180° longitude is supported? WanMil ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org mailto:osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev
Re: [osmosis-dev] bounding-polygon dismisses points at +180° longitude
Hi, Although I wrote to Brett directly that extending the polygon to 181° works I have observed that is works only for osm input but not for pbf input. osmosis --read-pbf file=180.osm.pbf --bounding-polygon file=asia.poly --write-xml file=filtered.osm throws an exception: SCHWERWIEGEND: Thread for task 1-read-pbf failed [...snip...] So the pbf parser should be changed. I don't think this is a problem in the PBF parser. It just shows up in the stack trace because in your pipeline, the PBF reader and the poly filter are in the same thread. The relevant portion of the stack trace is: java.lang.IllegalArgumentException: Bound coordinates outside of valid range at org.openstreetmap.osmosis.core.domain.v0_6.Bound.init(Bound.java:72) at org.openstreetmap.osmosis.areafilter.v0_6.PolygonFilter.simpleBoundIn tersect(PolygonFilter.java:118) at org.openstreetmap.osmosis.areafilter.v0_6.PolygonFilter.process(Polyg onFilter.java:71) The Bound class does not or should not really care at this point whether the data is from PBF or XML or wherever. So if there's a bug, it's actually in the Bound which has some incorrect argument validation code or in the PolygonFilter which passes incorrect arguments to the Bound, not in the PBF reader. Could you post your extended polygon with 181° here so I can test this? Because if it works with XML but not with PBF it gets really interesting ;) Bye Igor Hi Igor, attached you find the modified poly file. I have to add that I tried the XML reader with my test file whereas the PBF reader was tested with the pbf planet dump (ftp://ftp5.gwdg.de/pub/misc/openstreetmap/planet.openstreetmap.org/pbf-experimental/planet-latest.osm.pbf which I think is dated from June 10th). Maybe that makes a difference? PBF reading failed with the given exception. XML reading was successful and the 180° longitude node was successfully transferred to the filtered file. WanMil asia 1 2.617000E+01 8.452666E+01 1.81E+02 8.438487E+01 1.81E+02 -6.047430E+00 1.549109E+02 -1.706773E+01 1.423600E+02 -1.028527E+01 1.305624E+02 -1.026417E+01 1.180968E+02 -1.325060E+01 1.027800E+02 -1.197537E+01 6.162511E+01 -9.103512E+00 5.422892E+01 1.260610E+01 4.420775E+01 1.167860E+01 3.978016E+01 1.656855E+01 3.160401E+01 3.158641E+01 3.586444E+01 3.629862E+01 3.655970E+01 3.766439E+01 4.410530E+01 3.798438E+01 4.301638E+01 4.127191E+01 4.128304E+01 4.141274E+01 3.625000E+01 4.513920E+01 3.86E+01 4.899000E+01 3.17E+01 5.204300E+01 2.617000E+01 5.614300E+01 2.617000E+01 8.452666E+01 END 2 -1.682500E+02 7.77E+01 -1.81E+02 7.77E+01 -1.81E+02 5.81E+01 -1.682500E+02 5.81E+01 -1.682500E+02 7.77E+01 END END ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev
[osmosis-dev] bounding-polygon dismisses points at +180° longitude
Hi, today I tried to cut out the data of asia from a planet file using the attached asia.poly file. Osmosis is doing fine with the exception that the points at +180° longitude are missing. I created a little test osm file (180.osm) with one node at +180° and it's removed by the asia.poly polygon. This is a real problem because there are (a few) points which really lie on the +180° longitude, e.g. http://www.openstreetmap.org/browse/node/1113705746 Without this node there are problems to calculate the multipolygon of the russian country. So there is a specific need for that. Can you change the osmosis behaviour so that +180° longitude is supported? WanMil asia 1 2.617000E+01 8.452666E+01 1.80E+02 8.438487E+01 1.80E+02 -6.047430E+00 1.549109E+02 -1.706773E+01 1.423600E+02 -1.028527E+01 1.305624E+02 -1.026417E+01 1.180968E+02 -1.325060E+01 1.027800E+02 -1.197537E+01 6.162511E+01 -9.103512E+00 5.422892E+01 1.260610E+01 4.420775E+01 1.167860E+01 3.978016E+01 1.656855E+01 3.160401E+01 3.158641E+01 3.586444E+01 3.629862E+01 3.655970E+01 3.766439E+01 4.410530E+01 3.798438E+01 4.301638E+01 4.127191E+01 4.128304E+01 4.141274E+01 3.625000E+01 4.513920E+01 3.86E+01 4.899000E+01 3.17E+01 5.204300E+01 2.617000E+01 5.614300E+01 2.617000E+01 8.452666E+01 END 2 -1.682500E+02 7.77E+01 -1.80E+02 7.77E+01 -1.80E+02 5.81E+01 -1.682500E+02 5.81E+01 -1.682500E+02 7.77E+01 END END ?xml version='1.0' encoding='UTF-8'? osm version='0.6' generator='JOSM' node id='123456' action='modify' visible='true' timestamp='2011-05-20 12:20:00' version='1' lat='71.67351438109549' lon='180' / /osm ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev