[Radiance-general] Use Python to execute Radiance command

Thomas Bleicher tbleicher at googlemail.com
Mon Jun 20 10:14:22 PDT 2011


Ji

The "&" is a standard Unix shell control character and as such can be
applied to any process, not only those related to Radiance.

Sometimes it is tricky to find the right place for it, though, especially if
you have multiple redirections in your command line. You should always test
your commands manually before you use them in a Python "os.system()" call.

Note 1: If you use the return value of the os.system() call to check if the
command was successful you will get a "0" (=success) if the command with "&"
was started successfully, not if it actually run without errors.

Note 2: "os.system()" was replaced by "Popen()" in the "subprocess" module.

Note 3: If you use your Python script only to automate a simple sequence of
tasks you should be fine with using rad directly in the script. For more
control over the processes and their success/failure you should use the
underlying programs "oconv", "rpict", "pfilt" etc. directly. Unfortunately
the project to write a nice little Python wrapper library for Radiance
didn't really get of the ground ...

Regards,
Thomas


On Mon, Jun 20, 2011 at 11:16 AM, Ji Zhang <hope.zh at gmail.com> wrote:

> Thank you very much for your advice, Greg! It works.
>
> May I ask whether specifying the '&' option for rad command to make it run
> in background can be applied in similar way to other Radiance command such
> as rpict, rtrace, etc to make them run in background as well?
>
> Thanks again!
>
> - Cheers, Ji
>
>
> On Mon, Jun 20, 2011 at 12:58 AM, Greg Ward <gregoryjward at gmail.com>wrote:
>
>> Can't you just add an ampersand ('&') to the end of your rad command to
>> run it in the background?
>>
>> -Greg
>>
>> *From: *Ji Zhang <hope.zh at gmail.com>
>>
>> *Date: *June 19, 2011 5:48:30 AM PDT
>>
>> *
>> *
>>
>> Dear Radiance experts,
>>
>> Suppose you want to use Python to call rad command and render an image
>> using the following script:
>>
>> ################################
>> import os
>> rad_command = "rad -e -v vw1 /test.rif"
>> os.system(rad_command)
>> ################################
>>
>> Python will hang there until the rad command running in background is
>> finished. During this period, you can do nothing in the Python Shell...
>>
>> So, is there a way to use Python to call the Terminal and "paste" the rad
>> command string into the Terminal and then run rad? In this way, Python is
>> freed from the rad rendering process once it's be activated in the Terminal.
>>
>>
>> Appreciate your advices!
>>
>> (using Mac OS 10.6.7, Radiance 4, and Python 2.6.5)
>>
>> Ji
>>
>>
>> _______________________________________________
>> Radiance-general mailing list
>> Radiance-general at radiance-online.org
>> http://www.radiance-online.org/mailman/listinfo/radiance-general
>>
>>
>
> _______________________________________________
> Radiance-general mailing list
> Radiance-general at radiance-online.org
> http://www.radiance-online.org/mailman/listinfo/radiance-general
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.radiance-online.org/pipermail/radiance-general/attachments/20110620/d26af28a/attachment.html>


More information about the Radiance-general mailing list