rtcontrib scripts

Hi all,

Recently I've been playing around with rtcontrib for use on my thesis and have been developing (or trying to rather) some scripts to make data handling a bit easier. The problem is that my knowledge of shell scripting is rather limited, and the only other programming language I know fairly well (perl) is not wanting to cooperate. I'm trying to automate the process of multiplying the luminance values of the sky patches to the corresponding RGB values that rtcontrib puts out so that I can get illuminance data for a whole slew of sky conditions. Does anyone know of any scripts out there that might do this, or what programming language might be best suited to dealing with very large files (I have a lot of illuminance points)? Any help you could offer would be greatly appreciated!

Thanks,

Dave

Hi Dave,

What kinds of problems are you having with Perl? You should be able to do most anything you want with Perl. The main problem area can be if you are feeding data to into and/or out of radiance programs and end up with buffering problems. For example I only recently learned that there is a '-u' switch for rcalc which causes output to be flushed after each record. This came in real handy for a perl program that uses open2 to both write to and read from an rcalc process.

-Jack

PS, as others on this list know I am a pretty strong advocate of Perl. However, there is also a strong group who use Python for Radiance related scripting. Of course Greg is all about shell.... Nevertheless, as you indicate fairly good knowledge of Perl this might still be the best place to try to get things working....

J. David Maino wrote:

···

Hi all,

Recently I've been playing around with rtcontrib for use on my thesis and have been developing (or trying to rather) some scripts to make data handling a bit easier. The problem is that my knowledge of shell scripting is rather limited, and the only other programming language I know fairly well (perl) is not wanting to cooperate. I'm trying to automate the process of multiplying the luminance values of the sky patches to the corresponding RGB values that rtcontrib puts out so that I can get illuminance data for a whole slew of sky conditions. Does anyone know of any scripts out there that might do this, or what programming language might be best suited to dealing with very large files (I have a lot of illuminance points)? Any help you could offer would be greatly appreciated!

Thanks,

Dave

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

--
# Jack de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

Jack,

Actually, my knowledge of Perl is also rather limited, at least as far as anything too complex goes, but file manipulations I can do just fine. Mainly what I'm trying to do is just take a simple text file that rtcontrib spits out and then manipulate that data. I'm not sure if I'm just not parsing the data correctly or if the file is just too large and my computer is dying trying to run my inefficient algorithms, but Perl seems to be failing me for the moment. I'm sure there are faster/easier ways to do this than what I'm currently trying, but for now I'm kinda just sticking to what I know how to do. Perhaps I will try Python though. Can anyone direct me to any good books about programming with Python? Also, I will have to look into trying to directly interface with rcalc as this sounds much easier and much more efficient than all the intermediate steps I'm taking.

Thanks,

Dave

Jack de Valpine wrote:

···

Hi Dave,

What kinds of problems are you having with Perl? You should be able to do most anything you want with Perl. The main problem area can be if you are feeding data to into and/or out of radiance programs and end up with buffering problems. For example I only recently learned that there is a '-u' switch for rcalc which causes output to be flushed after each record. This came in real handy for a perl program that uses open2 to both write to and read from an rcalc process.

-Jack

PS, as others on this list know I am a pretty strong advocate of Perl. However, there is also a strong group who use Python for Radiance related scripting. Of course Greg is all about shell.... Nevertheless, as you indicate fairly good knowledge of Perl this might still be the best place to try to get things working....

J. David Maino wrote:

Hi all,

Recently I've been playing around with rtcontrib for use on my thesis and have been developing (or trying to rather) some scripts to make data handling a bit easier. The problem is that my knowledge of shell scripting is rather limited, and the only other programming language I know fairly well (perl) is not wanting to cooperate. I'm trying to automate the process of multiplying the luminance values of the sky patches to the corresponding RGB values that rtcontrib puts out so that I can get illuminance data for a whole slew of sky conditions. Does anyone know of any scripts out there that might do this, or what programming language might be best suited to dealing with very large files (I have a lot of illuminance points)? Any help you could offer would be greatly appreciated!

Thanks,

Dave

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

Hi David,

I can think of a few things to consider:

   1. first off rather than using a big/huge data file to test your
      script, it would be much better to use a very small data set (10
      lines of data perhaps) that you can use to check that your script
      is working
   2. I am not sure that switching scripting languages is necessarily
      the best thing to do as this just means there is more to
      learn/control. Note though that the O'Reilly books on Perl and
      other languages are really good.
   3. perhaps there is a way to do what you want more simply (eg such as
      directly with rcalc), if you can give us more of an idea of what
      you are trying to do then you may get back some good suggestions
      for doing what you want. rcalc is the real radiance workhorse for
      processing data. The issue may be in figuring out how to code up
      you algorithm in radiance's native functional language.

-Jack

J. David Maino wrote:

···

Jack,

Actually, my knowledge of Perl is also rather limited, at least as far as anything too complex goes, but file manipulations I can do just fine. Mainly what I'm trying to do is just take a simple text file that rtcontrib spits out and then manipulate that data. I'm not sure if I'm just not parsing the data correctly or if the file is just too large and my computer is dying trying to run my inefficient algorithms, but Perl seems to be failing me for the moment. I'm sure there are faster/easier ways to do this than what I'm currently trying, but for now I'm kinda just sticking to what I know how to do. Perhaps I will try Python though. Can anyone direct me to any good books about programming with Python? Also, I will have to look into trying to directly interface with rcalc as this sounds much easier and much more efficient than all the intermediate steps I'm taking.

Thanks,

Dave

Jack de Valpine wrote:

Hi Dave,

What kinds of problems are you having with Perl? You should be able to do most anything you want with Perl. The main problem area can be if you are feeding data to into and/or out of radiance programs and end up with buffering problems. For example I only recently learned that there is a '-u' switch for rcalc which causes output to be flushed after each record. This came in real handy for a perl program that uses open2 to both write to and read from an rcalc process.

-Jack

PS, as others on this list know I am a pretty strong advocate of Perl. However, there is also a strong group who use Python for Radiance related scripting. Of course Greg is all about shell.... Nevertheless, as you indicate fairly good knowledge of Perl this might still be the best place to try to get things working....

J. David Maino wrote:

Hi all,

Recently I've been playing around with rtcontrib for use on my thesis and have been developing (or trying to rather) some scripts to make data handling a bit easier. The problem is that my knowledge of shell scripting is rather limited, and the only other programming language I know fairly well (perl) is not wanting to cooperate. I'm trying to automate the process of multiplying the luminance values of the sky patches to the corresponding RGB values that rtcontrib puts out so that I can get illuminance data for a whole slew of sky conditions. Does anyone know of any scripts out there that might do this, or what programming language might be best suited to dealing with very large files (I have a lot of illuminance points)? Any help you could offer would be greatly appreciated!

Thanks,

Dave

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

--
# Jack de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

Hi Dave,

I`ve also been using Perl to handle rtcontrib recently and it worked, although I used 10 illuminance points at most, and was only using monochrome scenes, so I was using only one of the three values.
But AFAIK , Perl should be quite efficient handling lots of data. If it is a memory problem you are having, maybe Python won`t be the solution either.
Below is part of the script I used. I`m not really a programer (you`ll see), but this worked for me.
hope it helps,

Santiago

···

--------------------------------

system ("time rtcontrib -I+ -h -ab 5 -ad 10000 -as 100 -lw 0.0001 -aa .1 -ar 300 -dt 0 -ds 0 -b 0 -o suncomp.dat -M suns.lst -f tregenza_h.cal -b tbin -o skycomp.dat -m skyglow scene.oct < test.dat");

open (SUC, "base/suncomp\.dat&quot;\) or die &quot;cannot open SUC !";
open (SKC, "base/skycomp\.dat&quot;\) or die &quot;cannot open SKC !";

# there are two points @test.dat > #0 vert illum, #1 horiz illum
for $i (0..1) {

  $lsuc[$i] = <SUC>; chomp $lsuc[$i];
  $lskc[$i] = <SKC>; chomp $lskc[$i];
}

close SUC; close SKC;
system ("rm suncomp.dat skycomp.dat");

# weather data > calculated average luminance from each patch for each hour, etc.
open (TKI, "tokyo_contribs.dat") or die "cannot open TKI $!";

while ($line=<TKI>) {

  chomp $line;
  @meteo = split (/,/,$line);

  # HORIZ ILLUM #
  for $i (1..1) { # test point #1 for horizontal illuminance, add other points here

    @soles = split (/\t/, $lsuc[$i]); # array with contribs from suns
    @cielo = split (/\t/, $lskc[$i]); # array with contribs from sky patches

    # calculate illuminance from sun
    $horz = $soles[$dato*3] * $meteo[116] / 0.00005981;

    # add illuminance from sky patches
    # sky was divided in 113 patches > diff from tregenza
    for $j (1..113) {

      #depends on the definition of the weather file
      $horz += $cielo[($j*3)+1] * $meteo[$j+3];
    }

  }

}

--------------------------------

On Feb 8, 2006, at 2:40 AM, J. David Maino wrote:

Jack,

Actually, my knowledge of Perl is also rather limited, at least as far as anything too complex goes, but file manipulations I can do just fine. Mainly what I'm trying to do is just take a simple text file that rtcontrib spits out and then manipulate that data. I'm not sure if I'm just not parsing the data correctly or if the file is just too large and my computer is dying trying to run my inefficient algorithms, but Perl seems to be failing me for the moment. I'm sure there are faster/easier ways to do this than what I'm currently trying, but for now I'm kinda just sticking to what I know how to do. Perhaps I will try Python though. Can anyone direct me to any good books about programming with Python? Also, I will have to look into trying to directly interface with rcalc as this sounds much easier and much more efficient than all the intermediate steps I'm taking.

Thanks,

Dave

Jack de Valpine wrote:

Hi Dave,

What kinds of problems are you having with Perl? You should be able to do most anything you want with Perl. The main problem area can be if you are feeding data to into and/or out of radiance programs and end up with buffering problems. For example I only recently learned that there is a '-u' switch for rcalc which causes output to be flushed after each record. This came in real handy for a perl program that uses open2 to both write to and read from an rcalc process.

-Jack

PS, as others on this list know I am a pretty strong advocate of Perl. However, there is also a strong group who use Python for Radiance related scripting. Of course Greg is all about shell.... Nevertheless, as you indicate fairly good knowledge of Perl this might still be the best place to try to get things working....

J. David Maino wrote:

Hi all,

Recently I've been playing around with rtcontrib for use on my thesis and have been developing (or trying to rather) some scripts to make data handling a bit easier. The problem is that my knowledge of shell scripting is rather limited, and the only other programming language I know fairly well (perl) is not wanting to cooperate. I'm trying to automate the process of multiplying the luminance values of the sky patches to the corresponding RGB values that rtcontrib puts out so that I can get illuminance data for a whole slew of sky conditions. Does anyone know of any scripts out there that might do this, or what programming language might be best suited to dealing with very large files (I have a lot of illuminance points)? Any help you could offer would be greatly appreciated!

Thanks,

Dave

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general