Re: [osmosis-dev] bounding-polygon dismisses points at +180° longitude

2011-07-22 Thread Brett Henderson
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

2011-06-14 Thread WanMil
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

2011-06-14 Thread WanMil

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

2011-06-13 Thread WanMil

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