[osmosis-dev] osmosis pipelining troubles
MERIGHI Marcus
mcmer-osmosisdev at tor.at
Wed Dec 7 21:06:02 GMT 2011
Hello Andrew,
first of all thanks for the hint to docs I have read - but not fully,
sorry.
andrew at fastmail.net (Andrew Byrd), 2011.12.07 (Wed) 13:34 (CET):
> Using tee followed by merge can trigger deadlock, and I would guess
> this is what's happening in your case:
>
> http://lists.openstreetmap.org/pipermail/dev/2009-June/015945.html
>
> I usually get around the problem by using separate read-xml tasks
> for each sub-pipeline that will be merged at the end of the
> pipeline. See the last example in this section of the Osmosis wiki:
> http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage_0.38#--tag-filter_.28--tf.29
Unfortunately I depend on results of parts of the pipe within the pipe;
thus I (think I) have to write intermediary files to prevent --tee.
BUT the example below does _not_ work, same error...
osmosis \
-verbose 5 \
--read-xml file="${_src}" outPipe.0=source \
--sort inPipe.0=source outPipe.0=sourcesort \
--simplify-ways epsilonMeters="${_err}" inPipe.0=sourcesort outPipe.0=norm \
--sort inPipe.0=norm outPipe.0=normsort \
--write-pbf file="${_fnnorm}" inPipe.0=normsort \
--read-pbf file="${_fnnorm}" outPipe.0=normsortf \
\
--used-node inPipe.0=normsortf outPipe.0=usedonly \
--sort inPipe.0=usedonly outPipe.0=usedonlysort \
\
--write-pbf file="${_fnused}" inPipe.0=usedonlysort \
--read-pbf file="${_fnused}" outPipe.0=usedonly \
--read-pbf file="${_fnnorm}" outPipe.0=norm \
\
--derive-change inPipe.0=usedonly inPipe.1=norm outPipe.0=diff \
--sort-change inPipe.0=diff outPipe.0=diffsort \
--read-empty outPipe.0=empty \
--apply-change inPipe.0=empty inPipe.1=diffsort outPipe.0=diffosm \
--tag-transform file="${HOME}/.nonemptynodes.xml" inPipe.0=diffosm outPipe.0=tt \
--node-key keyList="is_poi" inPipe.0=tt outPipe.0=pois \
--write-pbf file="${_fnpois}" inPipe.0=pois \
\
--read-pbf file="${_fnused}" outPipe.0=usedonly \
--read-pbf file="${_fnpois}" outPipe.0=pois \
--merge inPipe.0=usedonly inPipe.1=pois outPipe.0=merged \
--write-xml inPipe.0=merged file="${_tgt}"
Bye, Marcus
> On 12/07/2011 10:00 AM, MERIGHI Marcus wrote:
> >Hello,
> >
> >while trying to integrate various processing steps into a rather complex
> >pipeline I have run into troubles. Each step alone seems to work, even
> >more complex arrangements, but not all of them. (Go to bottom of message
> >(3) to see an working example with multiple invocations of osmosis.)
> >
> >The osmosis commands below (1) stop at "FINE: Waiting for task
> >1-read-xml to complete.", probably forever. CPU utilization goes up
> >first and then slowly down to zero, fstat does not show any read
> >activity on the input file (anymore).
> >I have tried to pin down at what point the processing hangs; everything
> >before "--derive-change" works, tested with "--write-null[-change]".
> >
> >The questions are:
> >1) Am I getting something fundamentally wrong about the way osmosis
> > pipes work?
> >2) Is there any obvious mistake in my parameters?
> >3) Have I hit a bug?
> >
> >(BTW, basicly I am after simplifying ways; but --simplify-ways leaves
> >(now) unused nodes behind; getting rid of them by means of --used-node
> >removes poi-type nodes as well (not used in ways and relations).
> >Therefore I have to go the long way of diffing before- and after
> >--used-node, parse that for "used" (i.e., poi-type) nodes and merge.)
> >
> >Thanks in advance for any pointers!
More information about the osmosis-dev
mailing list