Matthieu, Looks like you are finally reprojecting the image, perhaps to the projection of image B. Reprojection is costly. I suggest performing it on A instead of B. Let us know how it goes.
On Wed, May 12, 2010 at 7:19 PM, Matthieu Rigal <[email protected]> wrote: > Hi folks, > > I am currently implementing a tool to allow band-to-band computations on > array values out of 2 images with different projection and different > resolution in python. > > The operation is quite complex, so I will summarize it here and below give > the solution I am currently testing to see if it is the best one and ask > for some enhancements and performance hints. Unfortunately, the high-level > warping class is, at my knowledge, only available in C++. > > Workflow (could also be improved by all-in-one functions like for C++) > - Open image A, 5000*5000 pixels, 5m resolution, UTM > - Open image B, approx 100m resolution, LatLon, much larger than the > previous one > - Cut out the buffered extents of image A from image B > - Reproject this cutted image to the projection and resolution of image A > - Read full image A as array > - Read extents of image A from image B as array > > It sounds easy, but when I started implementing it, I figured out that it > was quite complicated and that it would be quite time consuming, so if you > have any suggestions, this is my pseudo-code (I thought about writing a > real code, but it may be too long for the list, if I want to also include > the generation of image A and B at the beginning): > - gdal.Open(imgA, imgB) > - GetGeoTransform(imgA, imgB) > - CreateGeometry(boundaries of imgA).Buffer > - Transform(projection imgB) > - GetEnvelope(transformed geometry) > - transform to in-image of imgB x, y, x_off, y_off > - Create new image in memory > - Calculate its geotransform > - Read the bands into memory (GetRasterBand().Read and .Write() or > ReadIO() ?) > - Reproject the image > - Get GeoTransform > - Calculate in-image coordinates to finally read exactly the same window as > array > > Best Regards, > Matthieu > > RapidEye AG > Molkenmarkt 30 > 14776 Brandenburg an der Havel > Germany > > Follow us on Twitter! www.twitter.com/rapideye_ag > > Head Office/Sitz der Gesellschaft: Brandenburg an der Havel > Management Board/Vorstand: Wolfgang G. Biedermann > Chairman of Supervisory Board/Vorsitzender des Aufsichtsrates: > Juergen Breitkopf > Commercial Register/Handelsregister Potsdam HRB 17 796 > Tax Number/Steuernummer: 048/100/00053 > VAT-Ident-Number/Ust.-ID: DE 199331235 > DIN EN ISO 9001 certified > > ************************************************************************* > Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte > Informationen. Wenn Sie nicht der richtige Adressat sind oder diese > E-Mail irrtuemlich erhalten haben, informieren Sie bitte sofort den > Absender und vernichten Sie diese E-Mail. Das unerlaubte Kopieren sowie > die unbefugte Weitergabe dieser E-Mail ist nicht gestattet. > > The information in this e-mail is intended for the named recipients > only. It may contain privileged and confidential information. If you > have received this communication in error, any use, copying or > dissemination of its contents is strictly prohibited. Please erase all > copies of the message along with any included attachments and notify > RapidEye AG or the sender immediately by telephone at the number > indicated on this page. > _______________________________________________ > gdal-dev mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/gdal-dev > -- Best regards, Chaitanya kumar CH. /tʃaɪθənjə/ /kʊmɑr/ +91-9848167848 17.2416N 80.1426E
_______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev
