[Tilecache] Pregenerated tiles

Guillaume Sueur guillaume.sueur at neogeo-online.net
Thu Nov 6 10:36:21 EST 2008


make sure mapserver generates non-interlaced PNGs as PIL doesn't support
interlaced ones. You can set that with :
FORMATOPTION "INTERLACE=OFF" in your OUTPUTFORMAT block

regards

Alexandre Dube a écrit :
> Hi again Guillaume,
> 
> I tried to set metaSize=3,3 and the memory error no longer occurs. But (
> unfortunately ), instead I have this new error which comes after
> (around) a minute of running :
> ...
> ...
> ...
> Cache miss: 203199.891735,5390225.70122,204103.002359,5391128.81185,
> Tile: x: 15, y: 18, z: 3, time: 0.890893936157
> 03 (000015, 000018) = (203199.8917 5390225.7012 204103.0024
> 5391128.8118) [0.8912s : 1.165/s] 102/176
> Traceback (most recent call last):
> File "./tilecache_seed.py", line 9, in <module>
> TileCache.Client.main()
> File "/home/mapgears/tilecache/TileCache/Client.py", line 108, in main
> seed(svc, base, layer, map(int, sys.argv[3:5]), map(float,
> sys.argv[5].split(",")))
> File "/home/mapgears/tilecache/TileCache/Client.py", line 92, in seed
> svc.renderTile(tile)
> File "/home/mapgears/tilecache/TileCache/Service.py", line 138, in
> renderTile
> data = layer.render(tile)
> File "/home/mapgears/tilecache/TileCache/Layer.py", line 429, in render
> image = self.renderMetaTile(metatile, tile)
> File "/home/mapgears/tilecache/TileCache/Layer.py", line 403, in
> renderMetaTile
> subimage = image.crop((minx, miny, maxx, maxy))
> File
> "/home/mapgears/fgs-5.2.0/lib/python2.5/site-packages/PIL/Image.py",
> line 737, in crop
> self.load()
> File
> "/home/mapgears/fgs-5.2.0/lib/python2.5/site-packages/PIL/ImageFile.py",
> line 207, in load
> raise IOError(error + " when reading image file")
> IOError: decoding error when reading image file
> 
> I asked one of my colleagues about it be he got no answer. Do you have
> any clue about this new error ?
> 
> Again, many many thanks for your great help,
> 
> Alexandre
> 
> Alexandre Dube wrote:
>> Ok I'll try that, thanks a lot Guillaume.
>>
>> Alexandre
>>
>> Guillaume Sueur wrote:
>>  
>>> ok, then it's the amount of memory used by the operation which is too
>>> high for your system. Consider decreasing the metatile size or use
>>> metatile false
>>>
>>> Guillaume
>>>
>>> Alexandre Dube a écrit :
>>>      
>>>> Hi Guillaume,
>>>>
>>>>  It was already set to :
>>>>   MAXSIZE 4096
>>>>
>>>>  Is it to ok ?
>>>>
>>>> Alexandre
>>>>
>>>> Guillaume Sueur wrote:
>>>>          
>>>>> Hi Alexandre,
>>>>>
>>>>> I think your MAXSIZE is too short in your mapfile (main MAP section)
>>>>> It should allow images up to 1300 x 1300 to be drawn.
>>>>> Try to set it to 1500
>>>>>
>>>>> Regards,
>>>>>
>>>>> Guillaume
>>>>>
>>>>> Alexandre Dube a écrit :
>>>>>  
>>>>>              
>>>>>> Hi Guillaume,
>>>>>>
>>>>>>  I get the following after around 30 seconds of running :
>>>>>> ...
>>>>>> ...
>>>>>> Cache miss: 196426.56206,5380743.03968,196878.117371,5381194.59499,
>>>>>> Tile: x: 15, y: 15, z: 4, time: 1.48284912109
>>>>>> 04 (000015, 000015) = (196426.5621 5380743.0397 196878.1174
>>>>>> 5381194.5950) [1.4831s : 4.280/s] 61/247
>>>>>> Traceback (most recent call last):
>>>>>>  File "./tilecache_seed.py", line 9, in <module>
>>>>>>    TileCache.Client.main()
>>>>>>  File "/home/mapgears/tilecache/TileCache/Client.py", line 108, in
>>>>>> main
>>>>>>    seed(svc, base, layer, map(int, sys.argv[3:5]), map(float,
>>>>>> sys.argv[5].split(",")))
>>>>>>  File "/home/mapgears/tilecache/TileCache/Client.py", line 92, in
>>>>>> seed
>>>>>>    svc.renderTile(tile)
>>>>>>  File "/home/mapgears/tilecache/TileCache/Service.py", line 138, in
>>>>>> renderTile
>>>>>>    data = layer.render(tile)
>>>>>>  File "/home/mapgears/tilecache/TileCache/Layer.py", line 429, in
>>>>>> render
>>>>>>    image = self.renderMetaTile(metatile, tile)
>>>>>>  File "/home/mapgears/tilecache/TileCache/Layer.py", line 391, in
>>>>>> renderMetaTile
>>>>>>    data = self.renderTile(metatile)
>>>>>>  File "/home/mapgears/tilecache/TileCache/Layers/MapServer.py",
>>>>>> line 51,
>>>>>> in renderTile
>>>>>>    mapImage = wms.draw()
>>>>>>  File "/home/mapgears/fgs-5.2.0/www/lib/python2.5/mapscript.py", line
>>>>>> 1363, in draw
>>>>>>    def draw(*args): return _mapscript.mapObj_draw(*args)
>>>>>> _mapscript.MapServerError: msDrawMap(): Image handling error.
>>>>>> Failed to
>>>>>> draw layer named 'mos'.
>>>>>> msDrawRasterLayerGDAL(): Memory allocation error. Allocating work
>>>>>> image
>>>>>> of size 1300x1300 failed.
>>>>>>
>>>>>>  Do you know what can cause this ?  I use metaTile=true with default
>>>>>> settings.
>>>>>>
>>>>>>  Thanks a lot for your help,
>>>>>>
>>>>>> Alexandre
>>>>>>
>>>>>> Guillaume Sueur wrote:
>>>>>>                     
>>>>>>> cache miss is the normal message for non-existing tiles.
>>>>>>>
>>>>>>>
>>>>>>> Alexandre Dube a écrit :
>>>>>>>  
>>>>>>>                           
>>>>>>>> I see,
>>>>>>>>
>>>>>>>>  I've got a lot of "cache miss" message and finally a  "Memory
>>>>>>>> allocation error".  I'll try to find out why.
>>>>>>>>
>>>>>>>> Thanks for the tip,
>>>>>>>>
>>>>>>>> Alexandre
>>>>>>>>
>>>>>>>> Guillaume Sueur wrote:
>>>>>>>>                                    
>>>>>>>>> that's what tilecache_seed.py does.
>>>>>>>>>
>>>>>>>>> See http://tilecache.org/readme.html#seeding-your-tilecache
>>>>>>>>>
>>>>>>>>> Guillaume
>>>>>>>>>
>>>>>>>>> Alexandre Dube a écrit :
>>>>>>>>>  
>>>>>>>>>                                            
>>>>>>>>>> Hi Guillaume,
>>>>>>>>>>
>>>>>>>>>> I don't know what tileseed.py is.  What I would like to do is
>>>>>>>>>> generate
>>>>>>>>>> all tiles for all resolutions of my raster layer in
>>>>>>>>>> tilecache.  Is
>>>>>>>>>> there
>>>>>>>>>> a way to do this ?
>>>>>>>>>>
>>>>>>>>>> Many thanks,
>>>>>>>>>>
>>>>>>>>>> Alexandre
>>>>>>>>>>
>>>>>>>>>> Guillaume Sueur wrote:
>>>>>>>>>>                                                       
>>>>>>>>>>> you mean the tileseed.py stuff ?
>>>>>>>>>>>
>>>>>>>>>>> Alexandre Dube a écrit :
>>>>>>>>>>>  
>>>>>>>>>>>                                                                 
>>>>>>>>>>>> Hi list,
>>>>>>>>>>>>
>>>>>>>>>>>>   Is there a way, using command line, to pre-generate all tiles
>>>>>>>>>>>> of a
>>>>>>>>>>>> layer in tilecache.cfg file ( with its resolutions and
>>>>>>>>>>>> extent ) ?
>>>>>>>>>>>>
>>>>>>>>>>>>                                                            
>>>>>>>>>>>>                       
>>>>>>>>>>>                                                  
>>>>>>>>>>>                     
>>>>>>>>>>                                                           
>>>>>>>>                                       
>>>>>>>                               
>>>>>>                       
>>>>>                 
>>>>           
>>>       
>>
>>



More information about the Tilecache mailing list