<div dir="ltr">Hi Peter,<div><br></div><div>There are a lot of SCC with only 1 node, like: </div><div><a href="http://www.openstreetmap.org/node/1707762331">http://www.openstreetmap.org/node/1707762331</a><br></div><div><a href="http://www.openstreetmap.org/node/386885888">http://www.openstreetmap.org/node/386885888</a><br></div><div><a href="http://www.openstreetmap.org/node/364825950">http://www.openstreetmap.org/node/364825950</a><br></div><div><br></div><div>Step 4 is only to findSubnetwork(), and print some info, not removal them.</div><div>So, step 4 is optional.</div><div><br></div><div>Now I only understand why this happen. :(</div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><b>Best Regards,</b><div><b>ZhiQiang ZHAO</b></div></div></div>
<br><div class="gmail_quote">On Wed, Jul 29, 2015 at 2:28 AM, Peter <span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi ZhiQiang,<span class=""><br>
<br>
> And the <a href="http://www.openstreetmap.org/node/678314919" style="font-size:12.8000001907349px" target="_blank">http://www.openstreetmap.org/node/678314919</a> itself
is a SCC. size is 1.<br>
<br></span>
It shouldn't be a SCC im my opinion - is there a bug?<br>
If it is not a bug - do you have a suggestion for this, like
avoiding step 4?<br>
<br>
Regards,<br>
Peter<div><div class="h5"><br>
<br>
<br>
On 29.07.2015 11:18, John Zhao wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>The parameter I set are <span style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">minOnewayNetworkSize
= 20, </span><span style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">minNetworkSize
= 200</span></div>
<div><br>
</div>
<div>on step 3, despite the node <a href="http://www.openstreetmap.org/node/678314919" style="font-size:12.8000001907349px" target="_blank">http://www.openstreetmap.org/node/678314919</a>,
the inside island is a SCC, and the size is larger than 20.</div>
<div>So, this island is kept, instead of removal.</div>
<div>And the <a href="http://www.openstreetmap.org/node/678314919" style="font-size:12.8000001907349px" target="_blank">http://www.openstreetmap.org/node/678314919</a> itself
is a SCC. size is 1. Then it was removed.</div>
<div><br>
</div>
<div>Then on step 4, the island is recognized as a subnetwork,
which has size less than 200. </div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best Regards,</b>
<div><b>ZhiQiang ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On Wed, Jul 29, 2015 at 1:04 AM, Peter
<span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi ZhiQiang,<br>
<br>
you mean the oneway procedure (step 3) removes
nodes+edges leading to further normal subnetwork removal
in step 4? This should not happen. The subnetwork should
be removed already in step 3.<span><br>
<br>
<div>> On step 2, although there is a gate <a href="http://www.openstreetmap.org/node/703042503" target="_blank">http://www.openstreetmap.org/node/703042503</a>
<br>
> on <a href="http://www.openstreetmap.org/way/6374339" target="_blank">http://www.openstreetmap.org/way/6374339</a></div>
</span>
<div><span>> And gate block that edge.<br>
<br>
</span> Because of this gate the island is a oneway
subnetwork (!) and should get entirely removed in step
2 IMO.<span><br>
<br>
> On step 3, a very important point are removed
due to oneway<br>
<br>
</span></div>
If just one edge/node is removed there is something
wrong. The whole island should be removed.<br>
<br>
Kind Regards,<br>
Peter
<div>
<div><br>
<br>
On 29.07.2015 09:50, John Zhao wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>I know the difference between subnetworks and
oneway-subnetworks.</div>
<div>I am talking about the step 2 and step 4, not
step 3.</div>
<div><br>
</div>
<div>step 2 and step 4 are both <span style="font-size:12.8000001907349px">findSubnetwork()
with the same parameter.</span><br>
</div>
<div><span style="font-size:12.8000001907349px"> </span><span style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">minOnewayNetworkSize
= 20, </span><span style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">minNetworkSize
= 200</span><br>
</div>
<div><br>
</div>
<div>I think I figure out why this discrepancy
occurs.</div>
<div>One case is a island in SF bay area. The
island has 2 oneway roads connected to the main
network. </div>
<div><a href="http://www.openstreetmap.org/way/53726398" target="_blank">http://www.openstreetmap.org/way/53726398</a><br>
</div>
<div><a href="http://www.openstreetmap.org/way/6374339" target="_blank">http://www.openstreetmap.org/way/6374339</a><br>
</div>
<div><br>
</div>
<div>On step 2, although there is a gate <a href="http://www.openstreetmap.org/node/703042503" target="_blank">http://www.openstreetmap.org/node/703042503</a>
on <a href="http://www.openstreetmap.org/way/6374339" target="_blank">http://www.openstreetmap.org/way/6374339</a></div>
<div>And gate block that edge.</div>
<div>The other oneway is connected <a href="http://www.openstreetmap.org/way/53726398" target="_blank">http://www.openstreetmap.org/way/53726398</a>.</div>
<div>So, this island is connected to the whole
network.</div>
<div><br>
</div>
<div>On step 3, a very important point are removed
due to oneway: <a href="http://www.openstreetmap.org/node/678314919" target="_blank">http://www.openstreetmap.org/node/678314919</a></div>
<div><br>
</div>
<div>Then on step 4, the island are not connected
to the main network.</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best Regards,</b>
<div><b>ZhiQiang ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On Tue, Jul 28, 2015 at
11:12 PM, Peter <span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi ZhiQiang,<br>
<br>
hmmh, not sure if I understand what is
unknown at your side.<br>
<br>
Subnetworks are different things than
oneway-subnetworks. For example 4-5 is a
oneway subnetwork if connect with a oneway
to the main graph only:<br>
mainGraph->4-5<br>
<br>
And this cannot be detected in step 2.<br>
<br>
Please have a look at the unit tests to
see more examples for the different scenes<br>
<br>
Regards,<br>
Peter
<div>
<div><br>
<br>
On 28.07.2015 20:05, John Zhao wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>the result I posted is not the
result of oneway-subnetwork
procedure.</div>
<div><br>
</div>
<div>The total procedures include:</div>
<div>1. remove zero-degree node</div>
<div>2. findSubnetwork</div>
<div>3. oneway-subnetwork procedure</div>
<div>4. findSubnetwork again on
graphhopper.cleanup()</div>
<div><br>
</div>
<div>My question is, why those
islands are recognized on step 4,
but not on step 2?</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best Regards,</b>
<div><b>ZhiQiang ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On Tue, Jul
28, 2015 at 12:02 AM, Peter <span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi ZhiQiang,<br>
<br>
I think it is because both
networks are oneway
subnetworks not found by the
normal subnetwork procedure
(but by the
oneway-subnetwork procedure)
and you defined the oneway
minimum size to 20<br>
<br>
Regards,<br>
Peter
<div>
<div><br>
<br>
On 28.07.2015 03:13,
John Zhao wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>What I do is:</div>
<div>1. <span style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">minOnewayNetworkSize
= 20, </span><span style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">minNetworkSize
= 200</span></div>
<div><span style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">2.
build san
francisco bay area
osm data</span></div>
<div><span style="color:rgb(0,128,0);font-weight:bold;font-family:Menlo;font-size:12pt">3.
I print out the
subnetworks result
of the second
call.</span></div>
<div>
<pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt"><span style="color:#000080;font-weight:bold">int </span>remainingSubnetworks = preparation.findSubnetworks().size();</pre>
<pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">4. I found the subnetwork has some smaller than 200, like:</pre>
<pre><font color="#000000" face="Menlo"><span style="font-size:16px">subnetwork start from: 37.32611992939085,-121.9961998312816 size: 24</span><span style="font-size:12pt">
</span></font></pre>
<pre><font color="#000000" face="Menlo"><span style="font-size:16px">subnetwork start from: 37.78373608999855,-122.25065187925067 size: 34
</span></font></pre>
<pre><font color="#000000" face="Menlo"><span style="font-size:16px">
</span></font></pre>
<pre><font color="#000000" face="Menlo"><span style="font-size:16px">5. I can't understand why the subnetworks with 24 nodes and 34 nodes are not removed by </span></font><span style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">preparation.doWork();</span></pre>
<pre><font color="#000000" face="Menlo"><span style="font-size:16px">It call the same method:</span></font></pre>
<pre><pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">Map map = <span style="color:#000080;font-weight:bold">this</span>.findSubnetworks();</pre></pre>
<pre><span style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">
</span></pre>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On
Mon, Jul 27, 2015 at
12:54 PM, Peter <span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi John,<br>
<br>
sorry, I do
not understand
your problem
or question
here. Would
you describe
it again step
by step for me
:) ?<br>
<br>
Kind Regards,<br>
Peter
<div>
<div><br>
<br>
On 27.07.2015
21:45, John
Zhao wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Hi
Peter,
<div><br>
</div>
<div>Thanks.</div>
<div>Actually
I only have 1
flagEncoder in
the <span style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt;background-color:rgb(228,228,255)">EncodingManager.</span></div>
<div>The call
is exact
same, <span style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt;white-space:pre-wrap">preparation.findSubnetworks()</span><br>
</div>
<div>
<pre style="white-space:pre-wrap;color:rgb(0,0,0);font-family:Menlo;font-size:12pt">preparation.findSubnetworks() using edgeFilter which is also from singleEncoder.</pre>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On
Sun, Jul 26,
2015 at 7:56
AM, Peter <span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi John,<br>
<br>
it should not
be related to
calling these
method twice.
It is just one
time where you
calculate the
subnetworks
independent of
any
FlagEncoder or
direction via
findSubnetworks
and the second
pass is
FlagEncoder-
and
access-dependent
via
removeDeadEndUnvisitedNetworks.<br>
<br>
Regards,<br>
Peter
<div>
<div><br>
<br>
On 24.07.2015
21:16, John
Zhao wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Hi
Peter,
<div><br>
</div>
<div>I am
still
confused.</div>
<div>at first
we call </div>
<div><span style="color:rgb(0,0,0);font-family:Menlo;font-size:16px">map
=
findSubnetworks();</span><br>
</div>
<div><span style="color:rgb(0,0,0);font-family:Menlo;font-size:16px"><br>
</span></div>
<div><span style="color:rgb(0,0,0);font-family:Menlo;font-size:16px">after
the cleanup,
we call the
same method in
Graphhopper.</span></div>
<div>
<pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt"><span style="color:#000080;font-weight:bold">int </span>remainingSubnetworks = preparation.findSubnetworks().size();</pre>
<pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">Why the subnetwork was recognized the latter time, but not the first time?</pre>
<pre style="color:rgb(0,0,0);font-family:Menlo;font-size:12pt">we remove some edges make it not connected?</pre>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On
Thu, Jul 23,
2015 at 2:22
PM, Peter <span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<div bgcolor="#FFFFFF" text="#000000">
Hi ZhiQiang,<br>
<br>
yes, according
to the wiki
this is
wrongly
mapped:<br>
<i> Avoid
tagging
highway
intersections
as that does
not make clear
which way has
the
impediment. </i><br>
<br>
<a href="http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dgate" target="_blank">http://wiki.openstreetmap.org/wiki/Tag:barrier%3Dgate</a><span><font color="#888888"><br>
<br>
Peter</font></span>
<div>
<div><br>
<br>
<div>On
23.07.2015
23:16, John
Zhao wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi
Peter,
<div><br>
</div>
<div>Maybe the
following one
related with <a href="https://github.com/graphhopper/graphhopper/issues/388#issuecomment-88066385" target="_blank">https://github.com/graphhopper/graphhopper/issues/388#issuecomment-88066385</a> </div>
<div><br>
</div>
<div>
<div style="font-size:12.8000001907349px">I
have a look
at 37.32611992939085,-121.9961998312816.</div>
<div style="font-size:12.8000001907349px">It
seesm related
with
barrier=gate
at
intersection.</div>
<div style="font-size:12.8000001907349px"><a href="http://www.openstreetmap.org/node/1126492194" target="_blank">http://www.openstreetmap.org/node/1126492194</a></div>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On
Thu, Jul 23,
2015 at 2:11
PM, Peter <span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<div bgcolor="#FFFFFF" text="#000000">
There are two
types of
subnetworks
and the
smaller ones
seems to be
'one-way
subnetworks'
which means
they are eg.
only reachable
as destination
or start. But
if you would
start from a
destination-only
subnetwork
you'll get
'not found'
for all points
outside of
this network.<br>
<br>
Regards,<br>
Peter
<div>
<div><br>
<br>
<div>On
23.07.2015
23:03, John
Zhao wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div>
<div>
<div dir="ltr">Interesting,
<div>when I
increase <span style="font-size:12.8000001907349px">minOnewayNetworkSize from 20 to 50,
the following
two
disappeared.</span></div>
<div>
<div style="font-size:12.8000001907349px">subnetwork
start from:
37.32611992939085,-121.9961998312816
size: 24</div>
<div style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">subnetwork start from:
37.78373608999855,-122.</span><span style="font-size:12.8000001907349px">25065187925067 size: 34</span></div>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On
Thu, Jul 23,
2015 at 1:55
PM, John Zhao
<span dir="ltr"><<a href="mailto:johnthu@gmail.com" target="_blank">johnthu@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi,
<div><br>
</div>
<div>I tried
car flag
encoder with
following
parameter on
San Francisco
bay area data
from mapzen.</div>
<div><a href="https://s3.amazonaws.com/metro-extracts.mapzen.com/san-francisco-bay_california.osm.pbf" target="_blank">https://s3.amazonaws.com/metro-extracts.mapzen.com/san-francisco-bay_california.osm.pbf</a></div>
<div><br>
</div>
<div>
<div>minNetworkSize=200</div>
<div>minOnewayNetworkSize=20</div>
<div><br>
</div>
<div>I printed
all the
remaining
subnetworks.</div>
<div>
<div>edges:
591932, nodes
437420, there
were 3496
subnetworks.
removed them
=> 13121
less nodes.
Remaining
subnetworks:5</div>
<div>The
remaining
subnetworks
are:</div>
<div>subnetwork
start from:
37.32611992939085,-121.9961998312816
size: 24</div>
<div>subnetwork
start from:
37.56018439442332,-122.30257814308803
size: 436637</div>
<div>subnetwork
start from:
37.78373608999855,-122.25065187925067
size: 34</div>
<div>subnetwork
start from:
38.180185962770565,-121.70631393878864
size: 301</div>
<div>subnetwork
start from:
37.85717050411933,-122.07633641532816
size: 424</div>
</div>
<div><br>
</div>
<div>I don't
understand why
there is still
subnetwork
less than 200
nodes.</div>
<div><br>
</div>
<div>I have a
look
at 37.32611992939085,-121.9961998312816.</div>
<div>It seesm
related with
barrier=gate
at
intersection.</div>
<div><a href="http://www.openstreetmap.org/node/1126492194" target="_blank">http://www.openstreetmap.org/node/1126492194</a><br>
</div>
<div><br>
</div>
<div>
<div>
<div><b>Best
Regards,</b>
<div><b>ZhiQiang
ZHAO</b></div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div>
</div>
</div>
<br>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div></div></div>
<br>_______________________________________________<br>
GraphHopper mailing list<br>
<a href="mailto:GraphHopper@openstreetmap.org">GraphHopper@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/graphhopper" rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/graphhopper</a><br>
<br></blockquote></div><br></div>