<br><font size=2 face="sans-serif">Hi folks,</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Just
forwarding the conversation to add to the record.</font>
<br>
<br><font size=2 face="sans-serif">Doug</font>
<br>
<br>
<br><font size=1 color=#800080 face="sans-serif">----- Forwarded by Doug
Newcomb/R4/FWS/DOI on 07/27/2011 09:23 AM -----</font>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Doug Newcomb &lt;newcomb.ttg@gmail.com&gt;</b>
</font>
<p><font size=1 face="sans-serif">04/29/2011 09:15 AM</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">Doug Newcomb &lt;Doug_Newcomb@FWS.gov&gt;</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Fwd: Re: r.sun at a landscape scale</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=3><br>
<br>
-------- Original Message -------- </font>
<table>
<tr>
<td valign=top>
<div align=right><font size=3><b>Subject: </b></font></div>
<td><font size=3>Re: r.sun at a landscape scale</font>
<tr>
<td valign=top>
<div align=right><font size=3><b>Date: </b></font></div>
<td><font size=3>Tue, 26 Apr 2011 01:16:05 -0700 (PDT)</font>
<tr>
<td valign=top>
<div align=right><font size=3><b>From: </b></font></div>
<td><font size=3>Hamish </font><a href=mailto:hamish_b@yahoo.com><font size=3 color=blue><u>&lt;hamish_b@yahoo.com&gt;</u></font></a>
<tr>
<td valign=top>
<div align=right><font size=3><b>To: </b></font></div>
<td><font size=3>Doug Newcomb </font><a href=mailto:newcomb.ttg@gmail.com><font size=3 color=blue><u>&lt;newcomb.ttg@gmail.com&gt;</u></font></a></table>
<br><font size=3><br>
</font>
<br><tt><font size=3>Hi Doug,<br>
<br>
&gt; Contacting you from the home email. &nbsp;Work webmail non-functional.
<br>
&gt; If you recall the 60ft canopy height layer I created for the state
of<br>
&gt; North Carolina, &nbsp;I've been using that canopy height layer as
a base<br>
&gt; elevation layer for calculating total global solar irradiation for
a<br>
&gt; 60ft grid for the state of north carolina. &nbsp;I have created slope
and<br>
&gt; aspect layers, &nbsp;as well as r.horizon layers at 8 45 degree<br>
&gt; increments &nbsp;starting at 0 ( East) and going counter-clockwise.
&nbsp;I<br>
&gt; left the albedo and linke options at the defaults. &nbsp;I have calculated<br>
&gt; the global solar irradiation for all 365 days using these parameters.
&nbsp;<br>
<br>
After a number of tests (see below), I'm of the opinion that the pre-made<br>
slope, aspect, lat, lon, and r.horizon maps are either no faster, or<br>
introduce such inaccuracies as to be not worth the trouble.<br>
<br>
In particular I question the usefulness of r.horizon maps: the sun is in<br>
a slightly different place on the compass each morning, and the overhead<br>
of keeping/loading 360 horizon maps is more than just recalculating it<br>
on the fly (and on the fly you get the exact value, not a nearby estimate).<br>
Also, having 360 starting r.horizons limits you to 1 degree precision.<br>
<br>
<br>
I value accuracy over processing time (I'm happy to wait a week for<br>
an answer if I know the model setup is good), so take with that grain<br>
of salt. So I like to use step=0.05 instead of the default step=0.5<br>
even though it takes 10 times longer.<br>
<br>
<br>
&gt; I would like to sharpen the accuracy &nbsp;of the calculations by<br>
&gt; creating grid layers of the linke turbulence similar to how you do
it<br>
&gt; in your python script. &nbsp;My efforts seem to be complicated by
the<br>
&gt; landscape approach I have taken, which includes calculations in<br>
&gt; coastal plain, piedmont, and mountain areas which have a mixture of<br>
&gt; urban and rural land uses. &nbsp;<br>
&gt;<br>
&gt; I've been to the helioclim<br>
&gt; </font></tt><a href=http://www.helioclim.net/linke/index.html><tt><font size=3 color=blue><u>http://www.helioclim.net/linke/index.html</u></font></tt></a><tt><font size=3>
and &nbsp;and soda<br>
&gt; </font></tt><a href="http://www.soda-is.com/eng/services/climat_free_eng.php#climatCielClair"><tt><font size=3 color=blue><u>http://www.soda-is.com/eng/services/climat_free_eng.php#climatCielClair</u></font></tt></a><tt><font size=3>
<br>
&gt; web sites to try to get more exact estimates on the linke turbulence,<br>
&gt; but the best they can do is monthly estimates at 5 arc second<br>
&gt; resolution . &nbsp; Perhaps I want too much :-) &nbsp;<br>
<br>
for me the Soda linke DB wasn't too useful, AFAIU it's rather elevation<br>
dependent and I'm modeling light in fjords with 1000m vertical cliff<br>
faces.. their spatial elevation model resolution was just too coarse<br>
for me.<br>
<br>
what we did instead was to pick at each model point (~1 deg) for each<br>
month, and then use v.surf.rst to make an interpolated linke map from<br>
those. I'm not sure if 5 arc-sec data was available then, or if that<br>
was just a reinterpolation from a coarser grid so we ignored it..?<br>
<br>
<br>
I suppose for each position you could uncomment the couple of lines<br>
at the bottom of the linke month-&gt;day interpolation python script<br>
which gives the full year's worth of linkie values, and use the<br>
collection of those to make 365 v.surf.rst linkie coverage maps.<br>
?<br>
you could also mix and match mountainous and urban values that way.<br>
<br>
<br>
&gt; In any event, my thought was to try to take the global monthly<br>
&gt; estimate tifs, georeference them and pull them into grass. &nbsp;Chop
out<br>
&gt; the NC areas and reproject them into the same workspace as the canopy<br>
&gt; height data. &nbsp;Take the monthly values as the mid month values
and<br>
&gt; interpolate to 365 days and use those calculations as the basis for<br>
&gt; the linke turbulence input to calculation.<br>
&gt;<br>
&gt; Does that seem like a reasonable approach to you?<br>
<br>
currently r.series doesn't support linear interpolation extractions,<br>
I suppose something could be whipped together using r.mapcalc's<br>
graph() linear interpolation, maybe hack that to do cubic interpolations<br>
too?<br>
<br>
&gt; BtW, how much does it speed things up to have a lat and long layers<br>
&gt; in the input?<br>
<br>
I don't think by much at all, maybe a few percent, at the risk of user<br>
error. read through:<br>
 &nbsp;</font></tt><a href=https://trac.osgeo.org/grass/ticket/498><tt><font size=3 color=blue><u>https://trac.osgeo.org/grass/ticket/498</u></font></tt></a><tt><font size=3><br>
and<br>
 &nbsp;</font></tt><a href=http://grass.osgeo.org/wiki/r.sun><tt><font size=3 color=blue><u>http://grass.osgeo.org/wiki/r.sun</u></font></tt></a><tt><font size=3><br>
<br>
<br>
If you have a new graphics card you can vastly speed it up by using<br>
Seth's GPU version:<br>
 &nbsp;</font></tt><a href=http://grass.osgeo.org/wiki/R.sun#OpenCL><tt><font size=3 color=blue><u>http://grass.osgeo.org/wiki/R.sun#OpenCL</u></font></tt></a><tt><font size=3><br>
<br>
(which I still need to work on merging into trunk)<br>
<br>
Seth wrote:<br>
&gt;&gt; The OpenCL version of r.sun runs over 20x faster than the original<br>
&gt;&gt; version on my machine (2.26 GHz Mac Pro vs. GeForce GTX 285).
However,<br>
&gt;&gt; it is hampered by the low memory on your GPU, so you may need
to<br>
&gt;&gt; partition your raster.<br>
<br>
<br>
&gt; Just some performance fyi, running the r.sun analysis &nbsp;in 1 chunk<br>
&gt; (n=1) takes about 4 hours and requires about 16 GB of RAM. &nbsp;running
a<br>
&gt; calculation in 8 chunks &nbsp;(n=8) knocks the memory requirement
down to<br>
&gt; 4.6 GB and allows me to run multiple days of r.sun simultaneously.<br>
<br>
as in breaking up the region into smaller areas? what's the region<br>
rows,columns? make sure you don't chop away a shading mountain just<br>
outside of the region...<br>
<br>
&gt; I should be back to my regular email address on Monday. &nbsp;Feel
free<br>
&gt; to forward any parts of this &nbsp;to the grass-users list /grass-devel<br>
&gt; list as you deem appropriate.<br>
<br>
ditto. In particular some new version of r.series or r.regression[.line]<br>
to do linear and cubic interpolations. maybe the task piques some<br>
developer's imagination as an interesting project.<br>
<br>
<br>
<br>
Hamish<br>
<br>
</font></tt>