Hi,

On 11/07/2011 02:24 AM, mar...@gmx.eu wrote:
# normal diff
$ zcat 20111103-20111104.osc.gz |grep -c "timestamp=\"2011-11-03T12:"
58968

# replication diff
$ cat 1103-1104.osc |grep -c "timestamp=\"2011-11-03T12:"
59068

And yes, I thought on cumulating the version in the second file before I 
started counting with grep.

I think you may have found a bug in Osmosis' --simplify-change algorithm. (Or, if you created the above 1103-1104.osc file yourself, you have re-implemented a bug already present in Osmosis.)

Both the normal diff and the daily diff are correct as far as I can see, but the simplified version that you created - the one with 59068 elements - is not.

An object created earlier on that particular day and deleted between 12:00 and 13:00 will not show up in the normal daily diff:

$ zgrep -A1 -B1 '<node id="1490162262"' 20111103-20111104.osc.gz
$

It will show up twice in the replication diff, once for creation and once for deletion:

$ zgrep -A1 -B1 '<node id="1490162262"' 1103-1104.osc.gz
<node id="1490162261" version="1" timestamp="2011-11-03T08:09:48Z" uid="419929" user="hoti" changeset="9728137" lat="47.4399545" lon="16.4376938"/> <node id="1490162262" version="1" timestamp="2011-11-03T08:09:48Z" uid="547666" user="Igor Kurvanor" changeset="9728123" lat="45.7510611" lon="6.2813975"/>
  </create>
  <delete>
<node id="1490162262" version="2" timestamp="2011-11-03T12:42:36Z" uid="547666" user="Igor Kurvanor" changeset="9730094" lat="45.7510611" lon="6.2813975"/>
  </delete>
$

Now if such a replication diff is simplified with Osmosis, in my opinion it should drop the node altogether, but what it does is it always keeps the highest version even if that corresponds to a deletion that counteracts a previous creation:

$ osmosis -q --read-xml-change 1103-1104.osc.gz --simc --write-xml-change - | grep -A1 -B1 '<node id="1490162262"'
  <delete>
<node id="1490162262" version="2" timestamp="2011-11-03T12:42:36Z" uid="547666" user="Igor Kurvanor" changeset="9730094" lat="45.7510611" lon="6.2813975"/>
  </delete>
$

Now this is a minor bug because I don't know any consumer that will trip on a deletion request for a non-exisitng object but still it is a behaviour that I would not have expected. Anyway, it should explain the discrepancy you are seeing.

Bye
Frederik

_______________________________________________
dev mailing list
dev@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev

Reply via email to