<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Alex,</p>
    <p>Thanks for the information. I wrote the RFC and I wrote the C++
      add-on that's linked to the RFC. However, in the end I run out of
      time with that code. Later also Mario Roy took up the challenge of
      multiprocessing raster operations with Perl GDAL and got good
      results(1).</p>
    <p>Perhaps the appropriate thing would be to start a GDAL raster
      processing/algebra page on the GDAL Wiki and write there about
      solutions. The RFC should direct to that page.</p>
    <p>Best,<br>
    </p>
    <p>Ari</p>
    <p>1) <a class="moz-txt-link-freetext" href="https://gist.github.com/marioroy">https://gist.github.com/marioroy</a></p>
    <br>
    <div class="moz-cite-prefix">Alex HighViz kirjoitti 22.01.2018 klo
      17:40:<br>
    </div>
    <blockquote type="cite"
cite="mid:HE1PR05MB1419062DD245C7E95978A255B4EC0@HE1PR05MB1419.eurprd05.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoPlainText">Dear all, <o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">I would like to re-open an older
          discussion. At several points in the last year there has been
          a discussion of raster algebra / map algebra functionality on
          this list. There still is an associated RFC by Ari Jolma (<a
            href="https://trac.osgeo.org/gdal/wiki/rfc62_raster_algebra"
            moz-do-not-send="true">https://trac.osgeo.org/gdal/wiki/rfc62_raster_algebra</a>).<o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">The reason to re-open the discussion is
          that I have recently submitted a C++ library  called Blink
          Raster to OSGeo to be considered as a Community project. The
          project is hosted on Github (<a
            href="https://github.com/ahhz/raster" moz-do-not-send="true">https://github.com/ahhz/raster</a>
          ). Note that there is already quite some documentation,
          including main concepts, functions and examples.
          <o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">Blink Raster meets the requirements
          specified in RFC62:<o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">>  "The implementation should be data
          type aware. This may mean code written with templates. "<o:p></o:p></p>
        <p class="MsoPlainText">The main expected  use of the library is
          where the user knows the datatype, and specifies it in a
          template.<o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">> "The implementation should be
          parallel processing friendly. "<o:p></o:p></p>
        <p class="MsoPlainText">The  implementation uses expression
          templates to specify operations on rasters that are lazily
          evaluated. The interface facilitates evaluating the expression
          templates only for subrasters. It is therefore a solution that
          should works well with the split-and-merge approach to
          parallel processing.<o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">> " The implementation should allow a
          relatively easy to use C++ / C API. This may mean interface,
          which does not use templates. "<o:p></o:p></p>
        <p class="MsoPlainText">The interface with templates is pretty
          simple. However, at a performance cost, it is also possible to
          apply map algebra operations without specifying the data type.<o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">> "The implementation should allow
          arbitrary functions on cell values. I.e., be extensible by the
          user."<o:p></o:p></p>
        <p class="MsoPlainText">The implementation allows arbitrary
          functions on cell values<o:p></o:p></p>
        <p class="MsoPlainText"><o:p></o:p></p>
        <p class="MsoPlainText">> "The implementation should allow
          focal methods. I.e., methods, where the value of a cell
          depends on its neighborhood."
          <o:p></o:p></p>
        <p class="MsoPlainText">The implementation offers square and
          circular moving window methods for neighbourhoods of pixels
          and edges (adjacent pixel pairs). This is also extendable by
          the user and it is relatively straightforward to write your
          own statistic to be applied in a moving window. This was my
          original motivation for this library: to be able to easily
          write efficient moving window based indicators of landscape
          patterns.<o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">With apologies for re-opening a
          discussion that is only sideways related to GDAL as well as
          the self-promotion. Since in the end this is about a C++
          geo-data abstraction library, I felt it was appropriate.
          <o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">I would appreciate any feedback and
          ideas for the library. I would also be interested to hear if
          you think this library addresses a GDAL need.
          <o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">With kind regards, Alex<o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">p.s. I had to resend this email from a
          second email address, due to the following:  <a
            href="https://trac.osgeo.org/osgeo/ticket/2087"
            moz-do-not-send="true">https://trac.osgeo.org/osgeo/ticket/2087</a><o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoPlainText">--<o:p></o:p></p>
        <p class="MsoPlainText">Alex Hagen-Zanker<o:p></o:p></p>
        <p class="MsoPlainText"><o:p> </o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
gdal-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/gdal-dev">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a></pre>
    </blockquote>
    <br>
  </body>
</html>