<p>Yeah and a little more investigation on my part showed me that Arc/Info ASCII Grid files have their origin in the upper left anyway, even though they have their lat/long coords in the lower left.  This is from gCore\rasterio.cpp (line 243in 1.6.2).  In my RGB reads, with a nPixelSpace of 3 and a nBufDataSize of 1, I could get away get away with having GDAL &quot;flip&quot; my file data for me by using a negative value for nLineSpace because GDALCopyWords handled that.  Memcpy doesn&#39;t do well with a negative value for nLineSpace :).  It looks like I&#39;ll have to have another function flip my buffer from top to bottom after my RasterIO call. </p>


<div>for(int k=0; k&lt;kmax;k++)<br>{<br>    if( eDataType == eBufType <br>        &amp;&amp; nPixelSpace == nBufDataSize )<br>    {<br>        if( eRWFlag == GF_Read )<br>            memcpy( ((GByte *) pData) + iBufOffset + k * nLineSpace,<br>

                    pabySrcBlock + iSrcOffset, nXSpanSize );<br>        else<br>            memcpy( pabySrcBlock + iSrcOffset, <br>                    ((GByte *) pData) + iBufOffset + k * nLineSpace, nXSpanSize );<br>    }<br>

    else<br>    {<br>        /* type to type conversion */<br>        <br>        if( eRWFlag == GF_Read )<br>            GDALCopyWords( pabySrcBlock + iSrcOffset,<br>                        eDataType, nBandDataSize,<br>
                        ((GByte *) pData) + iBufOffset + k * nLineSpace,<br>
                        eBufType, nPixelSpace, nXSpan );<br>        else<br>            GDALCopyWords( ((GByte *) pData) + iBufOffset + k * nLineSpace,<br>                        eBufType, nPixelSpace,<br>                        pabySrcBlock + iSrcOffset,<br>

                        eDataType, nBandDataSize, nXSpan );<br>    }<br>    <br>    iSrcOffset += nBlockXSize * nBandDataSize;<br>}<br></div>
<div> Thanks,</div>
<div> </div>
<div>Todd</div>
<div> </div>
<div class="gmail_quote">On Tue, Nov 16, 2010 at 6:22 PM, Kyle Shannon <span dir="ltr">&lt;<a href="mailto:ksshannon@gmail.com">ksshannon@gmail.com</a>&gt;</span> wrote:<br></div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><font face="courier new,monospace">I am not totally sure, but I believe that the gdal data model always uses the upper left corner for the origin, even on files that reference the lower left in space. I think this is also the way rasterio handles it.  See RasterIO docs:<br>

<br><a href="http://gdal.org/classGDALDataset.html#e077c53268d2272eebed10b891a05743" target="_blank">http://gdal.org/classGDALDataset.html#e077c53268d2272eebed10b891a05743</a><br clear="all"></font><br>Specifically the nXOff and nYOff parameters.<br>

<br>kss<br># ============================<br>Kyle Shannon<br>Physical Science Technician<br>RMRS Fire Sciences Lab<br>Fire, Fuels &amp; Smoke - RWU 4405<br>5775 Highway 10 W.<br>Missoula, MT 59808<br>(406)829-6954<br><a href="mailto:kshannon@fs.fed.us" target="_blank">kshannon@fs.fed.us</a><br>

# ============================<br><br><br>
<div class="gmail_quote">
<div>
<div></div>
<div class="h5">On Tue, Nov 16, 2010 at 5:28 PM, Todd Smith <span dir="ltr">&lt;<a href="mailto:smith.todd@gmail.com" target="_blank">smith.todd@gmail.com</a>&gt;</span> wrote:<br></div></div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
<div>
<div></div>
<div class="h5">
<div>The default way of doing things at my company is to treat the lower left corner of a file as the origin.  Thus when I call RasterIO on a GeoTIFF, I make the buffer I pass as pData address to the last row of the buffer I&#39;ve allocated, and I make nLineSpace negative.  This has the effect of reading the file from the beginning, but placing each line into my buffer starting at the last and finishing at the first line.  This was working great until I started reading ArcInfo/Ascii files with origins in the lower-left.  In this case, I wouldn&#39;t want to address to the last row of my buffer, I&#39;d want to address to the beginning of my buffer, and use a positive value for my line space.  </div>


<div> </div>
<div>Is there metadata that will tell me where the file&#39;s origin is?  If not, any suggestions as to how to deal with this problem?</div>
<div> </div>
<div>Thanks!</div>
<div> </div><font color="#888888">
<div>Todd</div></font><br></div></div>_______________________________________________<br>gdal-dev mailing list<br><a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br><a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a><br>

</blockquote></div><br></blockquote><br>