[gdal-dev] Confusion reading .img raster band.
Robert Denham
r.denham at f...
Wed Nov 15 21:13:32 EST 2000
Actually I solved my problem by using a multidimensional array, which has
the advantage of being able to reference any pixel by scanline[row][col].
On another point, I have been having some difficulties working with img
files that have been created under windows. I am working on solaris
unix. If I open these img files under unix imageine and save them as
something else he problem disappears. Anyone have any suggestions as to
what migh be happening here?
------------------------------------
| Robert Denham |
| School of Mathematical Sciences |
| Queensland University of Technology |
| denham at f... |
------------------------------------
On Thu, 16 Nov 2000, Robert Denham wrote:
> Dear gdal-dev,
> I am a bit confused reading data from an ERDAS Imagine
> File. Using the tutorial as a guide I wrote a test program which just
> prints out the values of the image in col/row order, just like the imagine
> pixel->ascii function. Unfortunately it doesn't quite match up with the
> imagine equivalent, but seems to duplicate the final pixel in each line.
>
> let me show you:
> The tree columns on the left are my results, the three on the right are
> imagine results.
> first line is fine, but the first value on the second line is the same as
> the last value on he line above, which puts everything out.
>
>
>
> X Y val X Y B1
> 0 0 75.705154 0 0 75.7051544189453
> 1 0 75.349915 1 0 75.3499145507812
> 2 0 74.681129 2 0 74.6811294555664
> 3 0 74.023941 3 0 74.0239410400391
> 4 0 73.616539 4 0 73.6165390014648
> 5 0 73.284485 5 0 73.2844848632812
> 6 0 73.174126 6 0 73.1741256713867
> 7 0 73.244751 7 0 73.2447509765625
> 8 0 73.160934 8 0 73.1609344482422
> 9 0 73.078377 9 0 73.0783767700195
> 10 0 72.998413 10 0 72.9984130859375
> 11 0 72.918442 11 0 72.9184417724609
> 12 0 72.667473 12 0 72.6674728393555
> 0 1 72.667473 0 1 75.8207702636719
> 1 1 75.820770 1 1 75.3696441650391
> 2 1 75.369644 2 1 74.8217010498047
> 3 1 74.821701 3 1 74.3044281005859
> 4 1 74.304428 4 1 73.9780883789062
> 5 1 73.978088 5 1 73.332878112793
> 6 1 73.332878 6 1 73.317741394043
> 7 1 73.317741 7 1 73.2660064697266
> 8 1 73.266006 8 1 73.2488327026367
> 9 1 73.248833 9 1 73.1332397460938
> 10 1 73.133240 10 1 73.0532760620117
> 11 1 73.053276 11 1 72.9733047485352
> 12 1 72.973305 12 1 72.7634429931641
> 0 2 72.973305 0 2 75.8491439819336
> 1 2 72.763443 1 2 75.3893661499023
>
> etc.
>
> Here is the relevant bit of code I used:
> hBand = GDALGetRasterBand (hDataset, 1);
> nXSize = GDALGetRasterBandXSize (hBand);
> nYSize = GDALGetRasterBandYSize (hBand);
> pafScanline = (float *) CPLMalloc (sizeof (float) * nXSize * nYSize);
> GDALRasterIO (hBand, GF_Read, 0, 0, nXSize, nYSize,
> pafScanline, nXSize, nYSize, GDT_Float32, 0, 0);
>
> for(row=0;row<nYSize;row++) {
> for(col=0;col<nXSize;col++) {
> printf("%d %d %f\n",col,row, pafScanline[row*nYSize+col]);
> }
> }
>
> This might be a simple programming error but I'm not too proud to have the
> obvious pointed out to me.
>
> Thanks fro any suggestions,
> robert
>
>
> ------------------------------------
> | Robert Denham |
> | School of Mathematical Sciences |
> | Queensland University of Technology |
> | denham at f... |
> ------------------------------------
>
>
>
>
>
>
More information about the Gdal-dev
mailing list