NREL / bifacial_radiance

Toolkit for working with RADIANCE for the ray-trace modeling of Bifacial Photovoltaics
https://bifacial-radiance.readthedocs.io
BSD 3-Clause "New" or "Revised" License
91 stars 48 forks source link

Support for trackers with multiple mounting rails #179

Open jalderman9 opened 5 years ago

jalderman9 commented 5 years ago

There are a number of trackers on the market that use two or more parallel rails (commonly called purlins) instead of a single torque tube. Examples: https://www.sunfolding.com/products http://www.ideematec.de/en/safetrack-horizon-6/ https://www.alionenergy.com/products/alion-storm-tracker/ https://www.rbisolar.com/solutions/single-axis-tracker/

For my purposes I have added support for these tracker mounting structures by modifying makeModule() to add some arguments as well as three new "tube" cross sections:

        numtubes : int
            Number of torque tubes.
        tubespacing: float
            Distance in meters between tubes in y direction.
        tubetype : str
            Options: 'Square', 'Round' (default), 'Hex', 'Oct', 'Rect', 'Z', or 'C'. Tube cross section.
        tubeydim : float
            Tube y dimension, for rect, z, or c section tubes only. For other tube shapes use diameter.
        tubezdim : float
            Tube z dimension, for rect, z, or c section tubes only. For other tube shapes use diameter.

@cdeline I'd be happy create a pull request if this is something you'd like to consider officially supporting. My code passes the current tests in the dev branch but some new tests should probably be added to cover additional permutations. I haven't looked at what it would take to add this functionality to the GUI.

Here are some sample configurations with makeModule() arguments listed at the bottom of the images.

1-up with 2 C section purlins: render_annotated

1-up with 2 Z section purlins: 1P-2z_annotated

2-up landscape with 3 rectangle section purlins: 2L-3rect_annotated

shirubana commented 5 years ago

This is both awesome and beautiful!

How did you do those renders? I must know!

Thanks Jason

jalderman9 commented 5 years ago

Thanks Silvana

My workflow for going from oct file to png is: rvu -> rpict -> pcond -> pfilt -> ra_tiff -> convert

In detail:

  1. Use rvu to view the oct file rvu 1axis_07_01_08.oct use aim and origin to move around, zoom in/out, etc save a view file with view render.vf

  2. Run rpict to render the image to hdr. This is the time consuming step. It takes between 30 and 90 minutes depending on how complex the geometry is. rpict -x 4800 -y 4800 -i -aa 0 -ar 170 -ab 4 -ad 250 -as 230 -ps 2 -dj 0.7 -pj 1 -vf render.vf 1axis_07_01_08.oct > render.hdr

  3. Run pcond to mimic human visual response: pcond -h render.hdr > render.pcond.hdr

  4. Resize and adjust exposure with pfilt pfilt -e +0.2 -x /4 -y /4 render.pcond.hdr > render.pcond.pfilt.hdr

  5. Convert hdr to tif ra_tiff render.pcond.pfilt.hdr render.tif

  6. Convert tif to png with imagemagick convert utility convert render.tif render.png

  7. Annotate the image with convert convert render.png -fill black -gravity South -annotate +0+5 'Created with NREL bifacial_radiance https://github.com/NREL/bifacial_radiance' render_annotated.png

I have a bash script that automates all of this so I can just feed it an oct file and come back later to view a rendered png.

render_annotated

Files for reference: render.zip

shirubana commented 5 years ago

Thank you so much!! I'll try this soon.

Can I perhaps use one of this images to show what's possible in the tutorial tomorrow? I'll give you attribution if you want!

jalderman9 commented 5 years ago

Can I perhaps use one of this images to show what's possible in the tutorial tomorrow? I'll give you attribution if you want!

@shirubana Sure thing!

costeladebarata commented 5 years ago

Amazing stuff!

shirubana commented 3 years ago

Hello Jason,

It's been a while on this thread and looking back we never answered you --- yes, if you'd like to contribute by doing that PR this is deffinitely something we'd like to include on our next release :)

Thank you

Silvana