[gdal-dev] Clipping an image via Python API problems
Chaitanya kumar CH
chaitanya.ch at gmail.com
Mon Nov 28 01:44:26 EST 2011
I should have said that you need to copy all bands 'individually'.
On Mon, Nov 28, 2011 at 11:35 AM, Graeme Merrall <graeme at inetix.com.au>wrote:
> I've discovered that he bands are determined by the args to
> driver.Create() that is if I create a 4 band image then the bands are
> correct, however if I'm going to copy the image chunk around using
> ReadAsArray and WriteArray, doesn't it mean I need to retreive each band in
> turn?
> Or have I missed something and there's an easier way to extract a portion
> of an image and write it out?
>
> Cheers,
> Graeme
>
>
> On Mon, Nov 28, 2011 at 3:40 PM, Chaitanya kumar CH <
> chaitanya.ch at gmail.com> wrote:
>
>> Graeme,
>>
>> You do need to copy all bands. Also, make sure you set the correct number
>> of bands while creating the destination dataset.
>>
>> Color interpretation is useful when you have multiple bands. If you want
>> to show your image in red, set it to GCI_PaletteIndex and set a colortable.
>>
>> On Mon, Nov 28, 2011 at 6:40 AM, Graeme Merrall <graeme at inetix.com.au>wrote:
>>
>>> The smallest almost working code chunk I have right now is below. This
>>> is taaking a 40k by 40k and pulling out the top left quarter. The original
>>> has 4 bands - RGBA
>>>
>>> from osgeo import gdal
>>> import numpy
>>> img = gdal.Open("original.tif")
>>> geotransform = img.GetGeoTransform()
>>> band1 = img.GetRasterBand(1)
>>>
>>> driver = gdal.GetDriverByName("GTiff)
>>> # coordinates will be calculated but hardcoded for now
>>> dst = driver.Create('sliver.tif', 20000, 20000, 1, gdal.GDT_Byte)
>>> dst.SetProjection(img.GetProjection())
>>> scanline1 = band1.ReadAsArray(0, 0, 20000, 20000)
>>> dst.GetRasterBand(1).WriteArray(scanline1)
>>>
>>> Should I be looping through each band and reading/writing to the image?
>>> I'm assuming yes
>>>
>>> Also. band 1 of the original image is red but in the new image the band
>>> color is grey. I've tried a few variations with
>>> GDALRasterBand.SetColorInterpretation() with no luck. What have I missed?
>>>
>>> Cheers,
>>>
>>> _______________________________________________
>>> gdal-dev mailing list
>>> gdal-dev at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>>>
>>
>>
>>
>> --
>> Best regards,
>> Chaitanya kumar CH.
>>
>> +91-9494447584
>> 17.2416N 80.1426E
>>
>
>
--
Best regards,
Chaitanya kumar CH.
+91-9494447584
17.2416N 80.1426E
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20111128/c562e3f4/attachment.html
More information about the gdal-dev
mailing list