How to visualize a sky vector?

In several places I see nice false color luminance representations of Perez skies.

  Trying to render or preferably plot such a representation from a sky vector appears not to be so easy.

  I looked at Andy's McNeil_BSDFsandPhases.pdf and see that using an adaptation of
     vwrays -ff -vf views/back.vf -x 600 -y 600 \

          > rfluxmtx `vwrays -vf views/back.vf -x 600 -y 600 -d` \

  -ffc -ab 12 -ad 50000 -lw 2e-5 \

  - skies/sky.rad \

          materials/testroom.mat objects/testroom.rad
  followed by an adaptation of
    dctimestep dcx/g_%03d.hdr skies/12_21_15.skv \

  > images/122115_clear_dcx.hdr
  could do the trick. For a MF:4 sky I'll be generating 2305 images. Generating these and combining them takes quite long and a lot of disk IO.

  (I did not bother to use a ram disk). Somehow this approach appears to be a bit of a detour.

  Before proceeding on this path: Isn't there a simpler way?

  Basically it should be possible to just plot the sky vector values using something like gnuplot. 

  Best regards,

  Wouter

Hello Wouter,

I remember doing this quite a while ago. My approach was to create a sky
with the actual patch values and render just one image. To do this I:

   1. Generate the sky vector values using... using -h for removing the
   header might be useful.
      - gensky XXXXXXX | genskyvec -h | rcalc -e '$1 =
      $1*0.265+$2*0.67+$3*0.065
      - This will lead to one a vector of one value per sky patch.
   2. modified the reinhartb.cal file to create a mod_reinhartb.cal (see
   below). Be aware of modifying the MF parameter according to your needs.
   3. Paste the vector generated on Step 1 in the mod_reinhartb.cal
   4. Write the sky.rad file.
   5. oconv sky.rad > octree.oct
   6. rpict -vth -vd 0 0 1 -vu 0 1 0 -vh 180 -vv 180 -vp 0 0 0 -ab 3
   octree.oct > sky.hdr

You can also plot the values generated on step 1

Hope this help

Germán

#sky.rad

void brightfunc skyfunc
2 rad ./mod_reinhartb.cal
0
0

skyfunc glow skyglow
0
0
4 1 1 1 0

skyglow source sky
0
0
4 0 0 1 180

···

######################################
######################

### mod_reinhartb.cal
{ RCSid $Id: reinhartb.cal,v 2.6 2015/03/27 18:58:06 greg Exp $ }
{
Compute Reinhart high-density sky patch bin (rbin)

MF - Subdivision value (usually a power of two)
Dx,Dy,Dz - Incident direction (normalized, towards surface face)
rNx,rNy,rNz - Surface normal (normalized, away from surface)
Ux,Uy,Uz - Up direction vector (does not need to be normalized)

Modified from reinhart.cal

July 2014 G. Ward
}
{ Useful factors and functions }
DEGREE : PI/180;
Asin(x) : if(x-1, PI/2, if(-1-x, -PI/2, asin(x))) / DEGREE;
posangle(a) : if(-a, a + 2*PI, a) / DEGREE;
Atan2(y,x) : posangle(atan2(y,x));

{ Default to Tregenza sky }
MF = 1;
{ Set to -1 for left-handed coordinate system }
RHS = 1;
{ Default axis orientation (+Y == north) }
rNx = 0; rNy = 0; rNz = -1;
Ux = 0; Uy = 1; Uz = 0;
{ Compute oriented axis angles }
inc_dz = -Dx*rNx-Dy*rNy-Dz*rNz;
inc_rx = -RHS*(Dx*(Uy*rNz-Uz*rNy) + Dy*(Uz*rNx-Ux*rNz) +
Dz*(Ux*rNy-Uy*rNx));
inc_ry = Dx*Ux+Dy*Uy+Dz*Uz + inc_dz*(rNx*Ux+rNy*Uy+rNz*Uz);

r_alt = Asin(inc_dz);
r_azi = Atan2(inc_rx,inc_ry);

alpha = 90/(MF*7 + .5); { Separation between rows in degrees }
{ Number of patches per row }
tnaz(r) : select(r, 30, 30, 24, 24, 18, 12, 6);
rnaz(r) = if(r-(7*MF-.5), 1, MF*tnaz(floor((r+.5)/MF) + 1));

raccum(r) = if(r-.5, rnaz(r-1) + raccum(r-1), 0);

r_row = floor(r_alt/alpha);

r_inc = 360/rnaz(r_row);

r_azn = if(359.9999-.5*r_inc - r_azi, floor((r_azi +.5*r_inc)/r_inc), 0);

{ Final bin value, -1 for "ground" }
rbin = if (r_alt, raccum(r_row) + r_azn, -1);

Nrbins = raccum(7*MF+1); { total number of bins }

rad = select(rbin,
0.8778734094,
        0.3797278557,
        ..... one value per patch.
        ..... Paste the vector generated on step 1 here
);

2015-12-04 11:31 GMT-03:00 ascendilex | Wouter Beck < [email protected]>:

In several places I see nice false color luminance representations of
Perez skies.
Trying to render or preferably plot such a representation from a sky
vector appears not to be so easy.

I looked at Andy's McNeil_BSDFsandPhases.pdf and see that using an
adaptation of

vwrays -ff -vf views/back.vf -x 600 -y 600 \
> rfluxmtx `vwrays -vf views/back.vf -x 600 -y 600 -d` \
-ffc -ab 12 -ad 50000 -lw 2e-5 \
- skies/sky.rad \
materials/testroom.mat objects/testroom.rad

followed by an adaptation of

dctimestep dcx/g_%03d.hdr skies/12_21_15.skv \
> images/122115_clear_dcx.hdr

could do the trick. For a MF:4 sky I'll be generating 2305 images.
Generating these and combining them takes quite long and a lot of disk IO.
(I did not bother to use a ram disk). Somehow this approach appears to be
a bit of a detour.

Before proceeding on this path: Isn't there a simpler way?

Basically it should be possible to just plot the sky vector values using
something like gnuplot.

Best regards,
Wouter

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

Hi Wouter,

Germán's idea is very clever, but may be more difficult to automate. You can stick with Andy's original method, yet reduce the file i/o by converting the uncompressed Radiance images produced by rfluxmtx into compressed ones that take much less space. You just need to run "ra_rgbe -r orig_image.hdr smaller_image.hdr" on each image in your dcx/ directory.

-Greg

···

From: Germán Molina Larrain <[email protected]>
Subject: Re: [Radiance-general] How to visualize a sky vector?
Date: December 4, 2015 4:20:09 PM GMT+01:00

Hello Wouter,

I remember doing this quite a while ago. My approach was to create a sky with the actual patch values and render just one image. To do this I:

Generate the sky vector values using... using -h for removing the header might be useful.
gensky XXXXXXX | genskyvec -h | rcalc -e '$1 = $1*0.265+$2*0.67+$3*0.065
This will lead to one a vector of one value per sky patch.
modified the reinhartb.cal file to create a mod_reinhartb.cal (see below). Be aware of modifying the MF parameter according to your needs.
Paste the vector generated on Step 1 in the mod_reinhartb.cal
Write the sky.rad file.
oconv sky.rad > octree.oct
rpict -vth -vd 0 0 1 -vu 0 1 0 -vh 180 -vv 180 -vp 0 0 0 -ab 3 octree.oct > sky.hdr
You can also plot the values generated on step 1

Hope this help

Germán

#sky.rad

void brightfunc skyfunc
2 rad ./mod_reinhartb.cal
0
0

skyfunc glow skyglow
0
0
4 1 1 1 0

skyglow source sky
0
0
4 0 0 1 180

######################################
######################

### mod_reinhartb.cal
{ RCSid $Id: reinhartb.cal,v 2.6 2015/03/27 18:58:06 greg Exp $ }
{
  Compute Reinhart high-density sky patch bin (rbin)

  MF - Subdivision value (usually a power of two)
  Dx,Dy,Dz - Incident direction (normalized, towards surface face)
  rNx,rNy,rNz - Surface normal (normalized, away from surface)
  Ux,Uy,Uz - Up direction vector (does not need to be normalized)

  Modified from reinhart.cal

  July 2014 G. Ward
}
        { Useful factors and functions }
DEGREE : PI/180;
Asin(x) : if(x-1, PI/2, if(-1-x, -PI/2, asin(x))) / DEGREE;
posangle(a) : if(-a, a + 2*PI, a) / DEGREE;
Atan2(y,x) : posangle(atan2(y,x));

        { Default to Tregenza sky }
MF = 1;
        { Set to -1 for left-handed coordinate system }
RHS = 1;
        { Default axis orientation (+Y == north) }
rNx = 0; rNy = 0; rNz = -1;
Ux = 0; Uy = 1; Uz = 0;
        { Compute oriented axis angles }
inc_dz = -Dx*rNx-Dy*rNy-Dz*rNz;
inc_rx = -RHS*(Dx*(Uy*rNz-Uz*rNy) + Dy*(Uz*rNx-Ux*rNz) + Dz*(Ux*rNy-Uy*rNx));
inc_ry = Dx*Ux+Dy*Uy+Dz*Uz + inc_dz*(rNx*Ux+rNy*Uy+rNz*Uz);

r_alt = Asin(inc_dz);
r_azi = Atan2(inc_rx,inc_ry);

alpha = 90/(MF*7 + .5); { Separation between rows in degrees }
        { Number of patches per row }
tnaz(r) : select(r, 30, 30, 24, 24, 18, 12, 6);
rnaz(r) = if(r-(7*MF-.5), 1, MF*tnaz(floor((r+.5)/MF) + 1));

raccum(r) = if(r-.5, rnaz(r-1) + raccum(r-1), 0);

r_row = floor(r_alt/alpha);

r_inc = 360/rnaz(r_row);

r_azn = if(359.9999-.5*r_inc - r_azi, floor((r_azi +.5*r_inc)/r_inc), 0);

        { Final bin value, -1 for "ground" }
rbin = if (r_alt, raccum(r_row) + r_azn, -1);

Nrbins = raccum(7*MF+1); { total number of bins }

rad = select(rbin,
  0.8778734094,
        0.3797278557,
        ..... one value per patch.
        ..... Paste the vector generated on step 1 here
);

2015-12-04 11:31 GMT-03:00 ascendilex | Wouter Beck <[email protected]>:
In several places I see nice false color luminance representations of Perez skies.
Trying to render or preferably plot such a representation from a sky vector appears not to be so easy.

I looked at Andy's McNeil_BSDFsandPhases.pdf and see that using an adaptation of

vwrays -ff -vf views/back.vf -x 600 -y 600 \
> rfluxmtx `vwrays -vf views/back.vf -x 600 -y 600 -d` \
-ffc -ab 12 -ad 50000 -lw 2e-5 \
- skies/sky.rad \
materials/testroom.mat objects/testroom.rad

followed by an adaptation of

dctimestep dcx/g_%03d.hdr skies/12_21_15.skv \
> images/122115_clear_dcx.hdr

could do the trick. For a MF:4 sky I'll be generating 2305 images. Generating these and combining them takes quite long and a lot of disk IO.
(I did not bother to use a ram disk). Somehow this approach appears to be a bit of a detour.

Before proceeding on this path: Isn't there a simpler way?

Basically it should be possible to just plot the sky vector values using something like gnuplot.

Best regards,
Wouter

1 Like

Mind blown. Totally didn't realize (but should have) that rfluxmtx image output is not yet RLE. Mind blown! BOOM! Thanks for this gem, Greg!!

- Rob

···

On 12/4/15, 8:33 AM, "Greg Ward" <[email protected]<mailto:[email protected]>> wrote:

You can ... reduce the file i/o by converting the uncompressed Radiance images produced by rfluxmtx into compressed ones that take much less space. You just need to run "ra_rgbe -r orig_image.hdr smaller_image.hdr" on each image in your dcx/ directory.

-Greg

1 Like

Yeah, and I think you can automate the conversion by outputting to a command from rcontrib:

  rcontrib -ffc -o '!ra_rgbe -r > rle_bin%04d.hdr' ...

This should also work for rfluxmtx on the command-line, but I just checked my code and the parameter parser doesn't accept quoted strings the way it should for specifying the output as part of a receiver file comment. I should look into fixing this!

-Greg

···

From: "Guglielmetti, Robert" <[email protected]>
Subject: Re: [Radiance-general] How to visualize a sky vector?
Date: December 4, 2015 5:14:45 PM GMT+01:00

Mind blown. Totally didn't realize (but should have) that rfluxmtx image output is not yet RLE. Mind blown! BOOM! Thanks for this gem, Greg!!

- Rob

On 12/4/15, 8:33 AM, "Greg Ward" <[email protected]<mailto:[email protected]>> wrote:

You can ... reduce the file i/o by converting the uncompressed Radiance images produced by rfluxmtx into compressed ones that take much less space. You just need to run "ra_rgbe -r orig_image.hdr smaller_image.hdr" on each image in your dcx/ directory.

-Greg

P.S. I did add this feature to rfluxmtx, so you can output to a command more generally.

Yeah, that would be sweet. One reason we don't offer images from the
daylight coefficients in OpenStudio is because of this disk space
concern...

···

On 12/4/15, 9:51 AM, "Greg Ward" <[email protected]> wrote:

Yeah, and I think you can automate the conversion by outputting to a
command from rcontrib:

rcontrib -ffc -o '!ra_rgbe -r > rle_bin%04d.hdr' ...

This should also work for rfluxmtx on the command-line, but I just
checked my code and the parameter parser doesn't accept quoted strings
the way it should for specifying the output as part of a receiver file
comment. I should look into fixing this!

-Greg

From: "Guglielmetti, Robert" <[email protected]>
Subject: Re: [Radiance-general] How to visualize a sky vector?
Date: December 4, 2015 5:14:45 PM GMT+01:00

Mind blown. Totally didn't realize (but should have) that rfluxmtx
image output is not yet RLE. Mind blown! BOOM! Thanks for this gem,
Greg!!

- Rob

On 12/4/15, 8:33 AM, "Greg Ward" >><[email protected]<mailto:[email protected]>> wrote:

You can ... reduce the file i/o by converting the uncompressed Radiance
images produced by rfluxmtx into compressed ones that take much less
space. You just need to run "ra_rgbe -r orig_image.hdr
smaller_image.hdr" on each image in your dcx/ directory.

-Greg

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

Germ�n, Greg,

Thanks for your responses.

I made an attempt at automating Germ�n's approach.

Maybe it's useful to others as well.

Best regards,

Wouter
···

On 12/04/2015 04:33 PM, Greg Ward wrote:

Hi Wouter,

    Germ�n's idea is very clever, but may be more difficult to automate. �You can stick with Andy's original method, yet reduce the file i/o by converting the uncompressed Radiance images produced by rfluxmtx into compressed ones that take much less space. �You just need to run "ra_rgbe -r orig_image.hdr smaller_image.hdr" on each image in your dcx/ directory.

-Greg

From: Germ�n Molina Larrain [email protected]

Subject: Re: [Radiance-general] How to visualize a sky vector?

Date: December 4, 2015 4:20:09 PM GMT+01:00

Hello Wouter,�

        I remember doing this quite a while ago. My approach was to create a sky with the actual patch values and render just one image. To do this I:
  1.             Generate the sky vector values using... using -h for removing the header might be useful.
    
  •                 gensky XXXXXXX | genskyvec -h | rcalc -e '$1 = $1*0.265+$2*0.67+$3*0.065
    
  •                 This will lead to one a vector of one value per sky patch.
    
  •             modified the reinhartb.cal file to create a mod_reinhartb.cal (see below). Be aware of modifying the MF parameter according to your needs.
    
  •             Paste the vector generated on Step 1 in the mod_reinhartb.cal
    
  • Write the sky.rad file.
  •               oconv�sky.rad >�octree.oct
    
  • rpict� -vth -vd 0 0 1 -vu 0 1 0 -vh 180 -vv 180 -vp 0 0 0 -ab 3 octree.oct > sky.hdr
    You can also plot the values generated on step 1

Hope this help

Germ�n

#sky.rad

              void brightfunc skyfunc
              2 rad ./mod_reinhartb.cal

0

0

              skyfunc glow skyglow�

0�

0�

4 1 1 1 0

skyglow source sky�

0�

0�

4 0 0 1 180

######################################

######################

mod_reinhartb.cal

              { RCSid $Id: reinhartb.cal,v 2.6 2015/03/27 18:58:06 greg Exp $ }

{

                Compute Reinhart high-density sky patch bin (rbin)
MF		                  - Subdivision value (usually a power of two)
Dx,Dy,Dz	                  - Incident direction (normalized, towards surface face)
rNx,rNy,rNz	                  - Surface normal (normalized, away from surface)
Ux,Uy,Uz	                  - Up direction vector (does not need to be normalized)
                Modified from reinhart.cal
                July 2014	                  G. Ward

}

  		                  { Useful factors and functions }

DEGREE : PI/180;

              Asin(x) : if(x-1, PI/2, if(-1-x, -PI/2, asin(x))) / DEGREE;
              posangle(a) : if(-a, a + 2*PI, a) / DEGREE;
              Atan2(y,x) : posangle(atan2(y,x));
  		                  { Default to Tregenza sky }

MF = 1;

  		                  { Set to -1 for left-handed coordinate system }

RHS = 1;

  		                  { Default axis orientation (+Y == north) }
              rNx = 0; rNy = 0; rNz = -1;
              Ux = 0; Uy = 1; Uz = 0;
  		                  { Compute oriented axis angles }
              inc_dz = -Dx*rNx-Dy*rNy-Dz*rNz;
              inc_rx = -RHS*(Dx*(Uy*rNz-Uz*rNy) + Dy*(Uz*rNx-Ux*rNz) + Dz*(Ux*rNy-Uy*rNx));
              inc_ry = Dx*Ux+Dy*Uy+Dz*Uz + inc_dz*(rNx*Ux+rNy*Uy+rNz*Uz);
              r_alt = Asin(inc_dz);
              r_azi = Atan2(inc_rx,inc_ry);
              alpha = 90/(MF*7 + .5);		                  { Separation between rows in degrees }
  		                  { Number of patches per row }
              tnaz(r) : select(r, 30, 30, 24, 24, 18, 12, 6);
              rnaz(r) = if(r-(7*MF-.5), 1, MF*tnaz(floor((r+.5)/MF) + 1));
              raccum(r) = if(r-.5, rnaz(r-1) + raccum(r-1), 0);
              r_row = floor(r_alt/alpha);
              r_inc = 360/rnaz(r_row);
              r_azn = if(359.9999-.5*r_inc - r_azi, floor((r_azi +.5*r_inc)/r_inc), 0);
  		                  { Final bin value, -1 for "ground" }
              rbin = if (r_alt, raccum(r_row) + r_azn, -1);
              Nrbins = raccum(7*MF+1);	                  { total number of bins }

rad = select(rbin,

0.8778734094,
              � � � � 0.3797278557,
              � � � � ..... one value per patch.
              � � � � ..... Paste the vector generated on step 1 here

);

        2015-12-04 11:31 GMT-03:00 ascendilex | Wouter Beck <[email protected]>:
              In several places I see nice false color luminance representations of Perez skies.

              Trying to render or preferably plot such a representation from a sky vector appears not to be so easy.



              I looked at Andy's McNeil_BSDFsandPhases.pdf and see that using an adaptation of
                �vwrays -ff -vf views/back.vf -x 600 -y 600 \

                                  | rfluxmtx `vwrays -vf views/back.vf -x 600 -y 600 -d` \

                                  -ffc -ab 12 -ad 50000 -lw 2e-5 \

              - skies/sky.rad \

                                  materials/testroom.mat objects/testroom.rad
              followed by an adaptation of
                dctimestep dcx/g_%03d.hdr skies/12_21_15.skv \

                                  > images/122115_clear_dcx.hdr
              could do the trick. For a MF:4 sky I'll be generating 2305 images. Generating these and combining them takes quite long and a lot of disk IO.

              (I did not bother to use a ram disk). Somehow this approach appears to be a bit of a detour.



              Before proceeding on this path: Isn't there a simpler way?



              Basically it should be possible to just plot the sky vector values using something like gnuplot.�



              Best regards,

              Wouter

Hey @German_Molina, thanks for sharing your beautiful solution for rendering sky patches. It is working for me almost perfectly, besides a strange error I am getting with the value of the first sky patch. First patch always gets assigned a value equal to the total number of patches, causing the value of every other patch to shift.

There must be an easy fix, but I have been unable to locate where to apply it after hours of searching! Maybe you or someone else has encountered this and would be able to suggest a solution

Please see images and the modified reinhartb.cal file below

Many thanks and best regards,
Paul

{ RCSid $Id$ }
{
Compute Reinhart high-density sky patch bin (rbin)

MF		- Subdivision value (usually a power of two)
Dx,Dy,Dz	- Incident direction (normalized, towards surface face)
rNx,rNy,rNz	- Surface normal (normalized, away from surface)
Ux,Uy,Uz	- Up direction vector (does not need to be normalized)

Modified from reinhart.cal

July 2014	G. Ward

}
{ Useful factors and functions }
DEGREE : PI/180;
Asin(x) : if(x-1, PI/2, if(-1-x, -PI/2, asin(x))) / DEGREE;
posangle(a) : if(-a, a + 2*PI, a) / DEGREE;
Atan2(y,x) : posangle(atan2(y,x));

			{ Default to Tregenza sky }

MF = 2;
{ Set to -1 for left-handed coordinate system }
RHS = 1;
{ Default axis orientation (+Y == north) }
rNx = 0; rNy = 0; rNz = -1;
Ux = 0; Uy = 1; Uz = 0;
{ Compute oriented axis angles }
inc_dz = -DxrNx-DyrNy-DzrNz;
inc_rx = -RHS
(Dx*(UyrNz-UzrNy) + Dy*(UzrNx-UxrNz) + Dz*(UxrNy-UyrNx));
inc_ry = DxUx+DyUy+DzUz + inc_dz(rNxUx+rNyUy+rNz*Uz);

r_alt = Asin(inc_dz);
r_azi = Atan2(inc_rx,inc_ry);

alpha = 90/(MF7 + .5); { Separation between rows in degrees }
{ Number of patches per row }
tnaz® : select(r, 30, 30, 24, 24, 18, 12, 6);
rnaz® = if(r-(7
MF-.5), 1, MF*tnaz(floor((r+.5)/MF) + 1));

raccum® = if(r-.5, rnaz(r-1) + raccum(r-1), 0);

r_row = floor(r_alt/alpha);

r_inc = 360/rnaz(r_row);

r_azn = if(359.9999-.5r_inc - r_azi, floor((r_azi +.5r_inc)/r_inc), 0);

			{ Final bin value, -1 for "ground" }

rbin = if (r_alt, raccum(r_row) + r_azn, -1);

Nrbins = raccum(7*MF+1); { total number of bins }

rad = select(rbin,
0.2149243374,
0.219195185146,
0.221219389933,
0.221549856261,
0.214335028262,
0.214277959565,
0.214920326937,
0.211147347096,
0.203819497183,
0.219559505687,
0.209441557805,
0.21700923405,
0.217338652548,
0.215421919799,
0.220720889605,
0.217934270919,
0.228889485358,
0.224153234919,
0.227720914126,
0.23586606637,
0.235939238978,
0.244236558715,
0.24644704914,
0.252940068658,
0.260448535077,
0.265246335289,
0.2697841045,
0.272737976912,
0.275579747118,
0.277111474708,
0.278375972983,
0.27716753218,
0.276063917248,
0.272904013569,
0.268352144459,
0.262835484027,
0.260747186399,
0.256982164715,
0.250580039229,
0.239169030305,
0.236189856694,
0.231234386198,
0.232169135157,
0.226658328329,
0.222022224444,
0.21853059567,
0.22587329225,
0.214943573689,
0.214610350899,
0.209957080293,
0.211970637788,
0.215299757368,
0.208420488008,
0.21818970452,
0.221026549712,
0.223301259248,
0.21733876222,
0.219937756946,
0.217289616565,
0.217613372179,
0.166229004479,
0.160449177924,
0.16027718659,
0.168336430887,
0.16747560547,
0.168074281337,
0.167678046483,
0.168834108001,
0.162101860406,
0.166602944278,
0.166306369885,
0.170143275991,
0.170416907364,
0.169405704269,
0.174980542559,
0.179679788519,
0.181391726285,
0.191554783187,
0.193967971369,
0.195002379317,
0.206036149819,
0.213526137937,
0.217448441861,
0.227971787354,
0.234092379627,
0.2419617977,
0.246897907089,
0.253128723435,
0.260095239188,
0.261590044254,
0.261790145614,
0.261865442705,
0.257639604928,
0.254766221127,
0.248143977604,
0.238223584163,
0.234556517011,
0.228500545657,
0.221295210391,
0.211425122382,
0.204034103654,
0.198382666033,
0.194553698135,
0.188165011994,
0.184384182047,
0.181126261088,
0.174674588656,
0.175472534457,
0.167884689242,
0.167070480621,
0.162530107463,
0.167147330624,
0.167514053454,
0.164308446155,
0.166141868967,
0.167492179116,
0.165566880017,
0.167942800724,
0.159853534913,
0.163534839135,
0.129271867376,
0.127410601435,
0.124757042365,
0.125659521622,
0.128239700587,
0.127521992233,
0.129841254014,
0.125029524333,
0.129934574484,
0.133760320281,
0.131275800291,
0.132493509479,
0.136329833447,
0.137646983201,
0.142929302315,
0.145413733907,
0.154006681552,
0.154696520795,
0.161618459967,
0.165761285189,
0.173795449921,
0.183970778885,
0.190041576345,
0.200816060265,
0.209162432975,
0.217349794185,
0.223953790422,
0.230092624925,
0.236564594159,
0.239040231926,
0.240472482061,
0.239773336548,
0.235706029513,
0.230657131371,
0.223382325306,
0.216357638956,
0.207100569042,
0.19911254196,
0.192210748956,
0.183802451636,
0.179018169388,
0.169247320432,
0.162413958455,
0.157026247127,
0.148555568723,
0.146768567877,
0.142558966768,
0.136607737535,
0.136198293733,
0.13430060329,
0.131726672196,
0.133173265515,
0.128537899676,
0.130013330123,
0.125962671302,
0.126036898923,
0.12612306344,
0.128000970563,
0.129340177923,
0.122876990619,
0.101389374334,
0.101437754099,
0.101340035324,
0.102666269024,
0.103612182409,
0.102616763071,
0.103690800676,
0.104870932225,
0.104978187529,
0.109028036637,
0.109278932724,
0.110676296969,
0.113258429689,
0.116976218231,
0.120270245331,
0.125107784104,
0.131176603461,
0.135452736927,
0.142461386139,
0.149011371123,
0.156753790175,
0.165399287838,
0.175111790487,
0.182781294384,
0.192926235477,
0.201747771375,
0.209816100204,
0.217062142584,
0.222383401126,
0.225976354537,
0.226659844155,
0.225643108305,
0.222001522835,
0.216924693774,
0.210548777876,
0.201897191967,
0.191737531907,
0.183734888129,
0.174273214904,
0.166145458295,
0.156569047498,
0.148593274089,
0.143436283495,
0.136316602915,
0.130495699992,
0.126170581021,
0.119722322601,
0.117755604871,
0.114901413922,
0.111808704439,
0.108889066481,
0.106437561217,
0.107001022837,
0.106497086183,
0.104754529336,
0.101867046501,
0.102301164474,
0.101619223547,
0.102053615292,
0.120867915662,
0.106440023339,
0.106644765131,
0.106520977871,
0.108545772982,
0.107679761469,
0.109477158129,
0.112934013876,
0.112556632383,
0.11694449726,
0.121357722902,
0.126630917673,
0.132491200101,
0.13897957149,
0.146440771018,
0.156762795027,
0.168248712336,
0.181368669966,
0.196168310686,
0.208360497632,
0.228171510062,
0.241370145959,
0.254696720238,
0.268201943864,
0.272986706837,
0.278503449484,
0.275320021658,
0.266374343409,
0.255205553217,
0.242371536639,
0.225939674109,
0.210819235255,
0.194959134438,
0.179590786402,
0.16711197435,
0.158702202735,
0.148561000523,
0.138801786045,
0.13111423613,
0.124172741197,
0.12118550274,
0.116729769989,
0.114368773619,
0.112258508476,
0.109581265731,
0.107567556101,
0.106203703339,
0.105914413831,
0.100275892098,
0.0922137620278,
0.0907926221656,
0.0927742523255,
0.0927230486847,
0.0943352319417,
0.0960447234824,
0.0978320822151,
0.100177642206,
0.103635469311,
0.107624911187,
0.112865506108,
0.119822942685,
0.126416101947,
0.134829310467,
0.145078945926,
0.156339514202,
0.17072503842,
0.184923799699,
0.205834140319,
0.218183775844,
0.238062646216,
0.249728461751,
0.266386032074,
0.279697592096,
0.278856021114,
0.277605498495,
0.267650130861,
0.254273362928,
0.235125892372,
0.222275773735,
0.203947232872,
0.184933762639,
0.172314930342,
0.155913887022,
0.144496408042,
0.134545310823,
0.126182149845,
0.119005272856,
0.112586387649,
0.107732666263,
0.103602254549,
0.100566276795,
0.0976382120838,
0.0961478250034,
0.0937495951359,
0.0928417827944,
0.092220894892,
0.0844101485373,
0.0808833610213,
0.0809665901897,
0.0817796494285,
0.082457425898,
0.0835454221224,
0.0852764552017,
0.0876240637765,
0.0905527908096,
0.0934963964658,
0.0985828005054,
0.103200430081,
0.109125632543,
0.11723948142,
0.125398787297,
0.136132907297,
0.148217830947,
0.164635828481,
0.179417644333,
0.196702615341,
0.219258034837,
0.236232213421,
0.256308432466,
0.269446071532,
0.283632511015,
0.287136835856,
0.287761804678,
0.270463490024,
0.258889708304,
0.23736539841,
0.215700449384,
0.195425990605,
0.17823801852,
0.162542724366,
0.150076722711,
0.136168421665,
0.126405467487,
0.116880582244,
0.109972350247,
0.102943998871,
0.0980349678243,
0.0938017275996,
0.0903709280792,
0.0873251325502,
0.0856128524232,
0.0838946853673,
0.0823840896944,
0.0816453591653,
0.0733077155394,
0.0729965561025,
0.0730554718686,
0.0737311400408,
0.0744743676857,
0.0757779984813,
0.0775918695219,
0.0795222210906,
0.0829479241347,
0.0865555515522,
0.0902182449408,
0.0960701393101,
0.101739789654,
0.109980658815,
0.118793523951,
0.129624553257,
0.141819201705,
0.156532765397,
0.17195180408,
0.196903694985,
0.212608961276,
0.238290180049,
0.257774967875,
0.283660353345,
0.30230584424,
0.301570627867,
0.300208120063,
0.281194010592,
0.261119653615,
0.238902065973,
0.211218717505,
0.191375198582,
0.172469417858,
0.15659287748,
0.140268376269,
0.130745365,
0.11874299053,
0.109020770345,
0.101509737793,
0.0968607652693,
0.0903309141214,
0.0858979608523,
0.0828257014357,
0.0798406586489,
0.0775675253759,
0.0759000925373,
0.0747099268218,
0.0736217445774,
0.0858503424856,
0.0887576404738,
0.0889251425829,
0.0905060602525,
0.0933891526012,
0.0963910711258,
0.100582287886,
0.105855852926,
0.115070844355,
0.124994567005,
0.136145033483,
0.153128309448,
0.175780983858,
0.198283435217,
0.231768165773,
0.275955390473,
0.314714557101,
0.369628522145,
0.398372429534,
0.434353807797,
0.39752398284,
0.362378565038,
0.31569472916,
0.275326477311,
0.229488689544,
0.198669386055,
0.177868384023,
0.153140702856,
0.135286135404,
0.124765757107,
0.113773043835,
0.10712162071,
0.101532794963,
0.0945190319619,
0.0919210809218,
0.0898145986849,
0.0755825799261,
0.0809351394435,
0.0807517761973,
0.0821220452853,
0.0843793825877,
0.0882157781778,
0.0914709433638,
0.0977486412944,
0.104650250078,
0.115839742342,
0.125851995975,
0.141889929759,
0.160382018937,
0.183765690831,
0.214569322734,
0.258750633175,
0.295433581918,
0.359179244164,
0.41768354312,
68.5722983399,
0.401805554797,
0.354717179255,
0.302287369068,
0.246397696024,
0.217146255997,
0.182400412036,
0.161966152185,
0.139431340792,
0.126690987934,
0.116109889932,
0.104999280931,
0.0980273325497,
0.0907142535559,
0.0873748993555,
0.0846912094793,
0.0823525030006,
0.0991731100419,
0.108546220528,
0.108798240175,
0.113826457857,
0.118128441549,
0.130270138888,
0.147588967466,
0.169672577964,
0.195907442167,
0.242278846727,
0.318074830703,
0.386838118224,
63.1720269184,
294.470924849,
0.514159198231,
0.381236223404,
0.304424386113,
0.237661894685,
0.198386683682,
0.165448742479,
0.146490474088,
0.131253041853,
0.12138058367,
0.113326903021,
0.0830512240647,
0.0939568577669,
0.0952221266222,
0.0975641218691,
0.105472946308,
0.1146356726,
0.125381882281,
0.140094737993,
0.15948065571,
0.196407831823,
0.229041761244,
0.283728786151,
0.337006268299,
0.378261063138,
0.32856791633,
0.277400712185,
0.228522669,
0.198649017059,
0.163159060817,
0.140867375246,
0.124942899015,
0.112640311665,
0.105161516748,
0.0994046379799,
0.129684695415,
0.146477810805,
0.159194682972,
0.171339813988,
0.206752085244,
0.257069402412,
0.325670196676,
0.377563208232,
0.33103845349,
0.258626405478,
0.208030576965,
0.17179266524,
0.0786877625262,
0.0916897113515,
0.0926597762436,
0.0994631556888,
0.110718334635,
0.122564197926,
0.137815653852,
0.146709443032,
0.137953060497,
0.123623607282,
0.109136213952,
0.0995648586431,
0.136289587149,
0.166054574158,
0.313257820506
);

Hi!

well, it has been a long time, haha… I am not sure this is THE solution, but may be worth checking.

I think the first patch may be the ground…? I say this because it should be either at the beginning or the end. Try ignoring the first or last patch and see if that makes more sense.

best!