I've been in contact with Christian the author of gdal_retile and he told me this problem is in the main GDAL library. He also suggested using some of the other GDAL tools to see if the problem persists.
So I started using gdal_translate to copy my ecw to a new ecw using this statement: gdal_translate -a_srs EPSG:28992 -of ECW -co "LARGE_OK=YES" large.ecw Large_translate.ecw After 6 hours (!) I got a new ecw file, this time 4.2GB with this info: Driver: ECW/ERMapper Compressed Wavelets Files: Large_translate.ecw Size is 173334, 160000 Coordinate System is: PROJCS["NUTM31", GEOGCS["RIJKDRIEHOEKSMETING", DATUM["RD", SPHEROID["BESS1841",6377397.155,299.1528128]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",3], PARAMETER["scale_factor",0.9996], PARAMETER["false_easting",500000], PARAMETER["false_northing",0], UNIT["Meter",1]] Origin = (33000.000000000000000,381000.000000000000000) Pixel Size = (0.150000000001455,-0.150000000023283) Corner Coordinates: Upper Left ( 33000.000, 381000.000) ( 1d12'3.77"W, 3d26'16.85"N) Lower Left ( 33000.000, 357000.000) ( 1d12'0.46"W, 3d13'17.23"N) Upper Right ( 59000.100, 381000.000) ( 0d58'3.16"W, 3d26'20.47"N) Lower Right ( 59000.100, 357000.000) ( 0d58'0.03"W, 3d13'20.61"N) Center ( 46000.050, 369000.000) ( 1d 5'1.86"W, 3d19'48.81"N) Band 1 Block=173334x1 Type=Byte, ColorInterp=Red Overviews: arbitrary Band 2 Block=173334x1 Type=Byte, ColorInterp=Green Overviews: arbitrary Band 3 Block=173334x1 Type=Byte, ColorInterp=Blue Overviews: arbitrary I tried to retile this ecw file using this command: gdal_retile -v -s_srs EPSG:28992 -of ECW -ps 17335 16000 -targetDir tiles Large_translate.ecw >retile.txt But got the same memory error. Next I tried converting to GeoTiff using this command: gdal_translate -a_srs EPSG:28992 -of GTiff Large.ecw Large.tiff After 2.5 hours I got a 77.5GB Tiff file with this info: Driver: GTiff/GeoTIFF Files: Large.tiff Size is 173334, 160000 Coordinate System is: PROJCS["Amersfoort / RD New", GEOGCS["Amersfoort", DATUM["Amersfoort", SPHEROID["Bessel 1841",6377397.155,299.1528128000009, AUTHORITY["EPSG","7004"]], AUTHORITY["EPSG","6289"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4289"]], PROJECTION["Oblique_Stereographic"], PARAMETER["latitude_of_origin",52.15616055555555], PARAMETER["central_meridian",5.387638888888889], PARAMETER["scale_factor",0.9999079], PARAMETER["false_easting",155000], PARAMETER["false_northing",463000], UNIT["metre",1, AUTHORITY["EPSG","9001"]], AUTHORITY["EPSG","28992"]] Origin = (33000.000000000000000,381000.000000000000000) Pixel Size = (0.150000000001455,-0.150000000023283) Metadata: AREA_OR_POINT=Area Image Structure Metadata: INTERLEAVE=PIXEL Corner Coordinates: Upper Left ( 33000.000, 381000.000) ( 3d38'2.16"E, 51d24'21.02"N) Lower Left ( 33000.000, 357000.000) ( 3d38'31.86"E, 51d11'24.60"N) Upper Right ( 59000.100, 381000.000) ( 4d 0'27.21"E, 51d24'39.10"N) Lower Right ( 59000.100, 357000.000) ( 4d 0'50.58"E, 51d11'42.56"N) Center ( 46000.050, 369000.000) ( 3d49'27.95"E, 51d18'2.36"N) Band 1 Block=173334x1 Type=Byte, ColorInterp=Red Band 2 Block=173334x1 Type=Byte, ColorInterp=Green Band 3 Block=173334x1 Type=Byte, ColorInterp=Blue When I try to retile this tiff using: gdal_retile -v -s_srs EPSG:28992 -of GTiff -ps 17335 16000 -targetDir tiles Large.tiff >retile.txt I got again the memory error. I don't know anymore how to to this. How can I split my large ecw file into smaller tiles? I also noticed that even if I use the same EPSG code I get different projection info, even differences when using only gdal_translate. The projection is the same, they only have different naming. Why is that? I also noticed both gdal_translate and gdal_retile not use the full potential of my hardware. I'm running Vista 64Bit on a AMD3 2.6Ghz quadcore with 8GB RAM and only 2-2.5GB RAM was used by gdal_translate, leaving more than 5 GB free and only 35-55% of my CPU was used. Do I need to set some settings to speed things up? Thanks, Paul From: Paul Meems <bontepaarden <at> gmail.com> Subject: Memory Error in _gdal.Band_ReadRaster(*args, **kwargs)<http://news.gmane.org/find-root.php?message_id=%3c870e056a0908101422x5f38bb6fh32c2bd848ff6c868%40mail.gmail.com%3e> Newsgroups: gmane.comp.gis.gdal.devel<http://news.gmane.org/gmane.comp.gis.gdal.devel> Date: 2009-08-10 21:22:06 GMT I'm trying to split a large ECW file into smaller files. I've downloaded and installed OSGeo4W with gdal16 I managed to split a small ecw file. That ecw file had this info: Driver: ECW/ERMapper Compressed Wavelets Files: tilertest.ecw Size is 6800, 7500 Coordinate System is `' Origin = (13000.000000000000000,381250.000000000000000) Pixel Size = (2.500000000000000,-2.500000000000000) Corner Coordinates: Upper Left ( 13000.000, 381250.000) Lower Left ( 13000.000, 362500.000) Upper Right ( 30000.000, 381250.000) Lower Right ( 30000.000, 362500.000) Center ( 21500.000, 371875.000) Band 1 Block=6800x1 Type=Byte, ColorInterp=Red Overviews: arbitrary Band 2 Block=6800x1 Type=Byte, ColorInterp=Green Overviews: arbitrary Band 3 Block=6800x1 Type=Byte, ColorInterp=Blue Overviews: arbitrary I used this statement: gdal_retile -v -s_srs EPSG:28992 -of ECW -ps 3700 3750 -targetDir tiles TilerTest.ecw But when I try to split the large ecw file (3.4GB) I get an error after a few minutes. The info is: Driver: ECW/ERMapper Compressed Wavelets Files: Large.ecw Size is 173334, 160000 Coordinate System is: LOCAL_CS["LOCAL - (unsupported)", UNIT["Meter",1]] Origin = (33000.000000000000000,381000.000000000000000) Pixel Size = (0.150000000001455,-0.150000000023283) Corner Coordinates: Upper Left ( 33000.000, 381000.000) Lower Left ( 33000.000, 357000.000) Upper Right ( 59000.100, 381000.000) Lower Right ( 59000.100, 357000.000) Center ( 46000.050, 369000.000) Band 1 Block=173334x1 Type=Byte, ColorInterp=Red Overviews: arbitrary Band 2 Block=173334x1 Type=Byte, ColorInterp=Green Overviews: arbitrary Band 3 Block=173334x1 Type=Byte, ColorInterp=Blue Overviews: arbitrary The statement is: gdal_retile -v -s_srs EPSG:28992 -of ECW -ps 86667 80000 -targetDir tiles large.ecw >retile.txt The logfile (retile.txt) shows: Building internal Index for 1 tile(s) ... finished Filename: Terneuzen_15cm.ecw File Size: 173334x160000x3 Pixel Size: 0.150000 x -0.150000 UL:(33000.000000,381000.000000) LR:(59000.100000,356999.999996) tileWidth 86667 tileHeight 80000 countTilesX: 2 countTilesY: 2 lastTileWidth: 86667 lastTileHeight: 80000 And the error is: Traceback (most recent call last): File "C:\OSGeo4W\apps\gdal-16\bin\gdal_retile.py", line 938, in <module> sys.exit(main(sys.argv)) File "C:\OSGeo4W\apps\gdal-16\bin\gdal_retile.py", line 855, in main dsCreatedTileIndex = tileImage(minfo,ti) File "C:\OSGeo4W\apps\gdal-16\bin\gdal_retile.py", line 335, in tileImage createTile(minfo, offsetX, offsetY, width, height,tilename,OGRDS) File "C:\OSGeo4W\apps\gdal-16\bin\gdal_retile.py", line 467, in createTile dec.uly+offsetY*dec.scaleY) File "C:\OSGeo4W\apps\gdal-16\bin\gdal_retile.py", line 250, in getDataSet data = s_band.ReadRaster( readOffsetX,readOffsetY,readX,readY, readX,readY,self.band_type ) File "C:\OSGeo4W\apps\gdal-16\pymod\osgeo\gdal.py", line 760, in ReadRaster return _gdal.Band_ReadRaster(*args, **kwargs) MemoryError I've searched using Google and found a similar error: http://article.gmane.org/gmane.comp.gis.gdal.devel/18936 and contacted Sarah, but she's still having the problem. Does anybody know how to solve this? I run it on a Vista 64-Bit 4-core, with 8GB RAM. I'm getting the same error on a WinXP sp3 2-core, with 2 GB RAM Thanks, Paul Meems The Netherlands
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev