<div class="gmail_quote">On Sun, Feb 1, 2009 at 1:55 PM, Frederik Ramm <span dir="ltr"><<a href="mailto:frederik@remote.org">frederik@remote.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
   (f'up set to osmosis-dev)<div class="Ih2E3d"><br>
<br>
Karl Newman wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Anyway, the tee can choke things up with all the temporary files. It would<br>
be nice to be able to share the stored node and ways files between tee<br>
tasks, but I haven't created that infrastructure yet.<br>
</blockquote>
<br></div>
It would be even better to have an extended --bp task that somehow takes a list of disjoint polygons and uses some kind of point location algorithm to determine which node belongs to which polygon. The rationale being of course that with the classic --bp/--tee approach, each node is duplicated n times and tested against each of the polygons which is a waste of time, especially with a large input file and many polygons (e.g. split up the US into counties or so).<br>

<br>
Does the task and stream model that osmosis uses theoretically support tasks where the number of output streams they create is not fixed, but dependent on their parameters? So that e.g. a "bp file=a.poly file=b.poly" (or "bp files=a.poly,b.poly") creates two entity streams and so on?<br>

<br>
Bye<br>
Frederik<br><font color="#888888">
</font></blockquote></div><br>What you're asking is possible. The number of input and output pipes has to be known at invocation because the pipes are connected before any tasks are run, but if it's a parameter passed to the task, then the task can report to the pipeline manager how many output pipes it has. The tricky part might be connecting the downstream tasks. It might be confusing because of the stack-based pipeline ordering.<br>
<br>Karl<br>