Thanks for your comments, since I am the developer, some hints. 

Robert van Drunen writes: 

> Hi list, 
> 
> For your information: today we imported an entire dataset (10 Gb) into 
> Oracle using the ImageMosaic JDBC plugin. 
> 
> My impressions & recommendations: 
> 
> - When retiling from Geotiff to PNG (or any other supported image 
> format), use gdal_translate to convert Geotiff to <target format> first 
> and gdal_retile second. The quality of the level-tiles is much higher 
> that way. Somehow Geotiff > PNG directly works fine when the tile size 
> was 1024px but the images became extremely (!) gritty when a size of 
> 256px or 512px - looks like some sort of color-depth issue or something. 
> And somehow we got this weird "coloured tv snow" band of pixels on the 
> top of each tile when retiling Geotiff > Geotiff?!

This is my experience too. Best practice is to prepare the original image 
concerning the format and color model and let do gdal_retile.py only the 
retile job. 


> - The import to Oracle works like a charm, except that the scripts which 
> the ddl call generates include inserts into the "mosaic" table. 
> Sometimes (so, not all the time) these records are inserted again during 
> the actual import, which causes a primary key violation on the table and 
> the import to crash.

Should not happen. In class org.geotools.gce.imagemosaic.jdbc.Import is
a method deleteExistingMasterRecord() which deletes an existing master 
record prior to inserting a new one.  Perhaps a problem with the 
lowercase/uppercase naming issue ? 


> - Sometimes the outputted map-image was missing tiles (squared white 
> spaces) - a little panning and they appeared again. I doubt this was 
> because of performance issues because the server and netwerk are pretty 
> quick. 
> 
I think it is not a performance issue, I have this effect on an IBM SDK 
(Websphere deployment) but I could not reproduce it. 

In class org.geotools.gce.imagemosaic.jdbc.ImageDecoderThread method run
you find the following lines of code 

/////////
           if (levelInfo.getCanImageIOReadFromInputStream())
                bufferedImage = ImageIO.read(new 
ByteArrayInputStream(imageBytes));
           else
                bufferedImage = readImage2(imageBytes);
//////////// 

Line 2 is allowed to return a null pointer. I would try 

/////////
           if (levelInfo.getCanImageIOReadFromInputStream())
                bufferedImage = ImageIO.read(new 
ByteArrayInputStream(imageBytes));
           if (bufferedImage==null) // still null here
                bufferedImage = readImage2(imageBytes);
////////////// 

If it is not possible for you to build a jar file, let me know your
geoserver version, I will send you a jar file for testing. 

> Overall, thanks again for the tip - much appreciated. In addition I'll 
> try and take a look at the plugin-code myself to see if I can find cause 
> for the two issues above. 
> 
> Ow, and apologies if this kind of information is inappropratie for this 
> list :)

Tanks for your help concerning these problems.
> 
> Regards,
> Robert 
> 
> 
> Simone Giannecchini wrote:
>> That is really great news :-). 
>>
>>
>> Please, keep us posted. 
>>
>> Simone.
>> -------------------------------------------------------
>> Ing. Simone Giannecchini
>> GeoSolutions S.A.S.
>> Owner - Software Engineer
>> Via Carignoni 51
>> 55041  Camaiore (LU)
>> Italy 
>>
>> phone: +39 0584983027
>> fax:      +39 0584983027
>> mob:    +39 333 8128928 
>>
>>
>> http://www.geo-solutions.it
>> http://simboss.blogspot.com/
>> http://www.linkedin.com/in/simonegiannecchini 
>>
>> ------------------------------------------------------- 
>>
>> 
>>
>> On Thu, Apr 23, 2009 at 1:37 PM, Robert van Drunen
>> <[email protected]> wrote:
>>   
>>> Hello Christian and Simone, 
>>>
>>> Actually it all worked out-of-the-box. I used the description on this page: 
>>>
>>> http://geoserver.org/display/GEOSDOC/Using+the+ImageMosaic+JDBC+Plugin 
>>>
>>> to setup the JDBC connection to Oracle, create the metadata scripts and
>>> load some sample geotiffs using the mosaicjdbc jar. 
>>>
>>> The only difficulty I had was that Oracle uppercases it's tablenames
>>> when you query them, so you need them uppercased in gdal commands as well 
>>> :) 
>>>
>>> Now it's upto my cliënt to agree with this approach instead of using
>>> actual Georasters and see what the performance is when we load the
>>> entire dataset this way. 
>>>
>>> Thanks for the help, it's much appreciated! 
>>>
>>> Robert. 
>>>
>>> Christian Müller wrote:
>>>     
>>>> To answer the questions
>>>> 1) Performance
>>>> I am handling 3 maps with about 8 million tiles , biggest map 4
>>>> million tiles , biggest layer consists of 2 million tiles.
>>>> The tiles are stored in png format. (Compression). Tile sizes are
>>>> 256x256 and 512x512.
>>>> The decoding (Decompression) of the tiles is done in a multithreaded
>>>> manner. Multiple/Multicore CPUs will be used if present.
>>>> The db lookup to find the right tiles is very fast if you have the
>>>> proper indexes. Decoding starts when the first tile is fetched,
>>>> fetching and decoding works like streaming using a queue from the
>>>> java.concurrent package.
>>>> Store your tiles as single banded images with a color table. Check
>>>> with gdalinfo, if you have multiple bands use gdal_merge
>>>> with the -pct option to produce a big picture. Afterwards apply
>>>> gdal_retile.
>>>> You can import the output of gdal_retile.
>>>> Performance decreases when doing a request with a different CRS,
>>>> because the whole picture has to be transformed. You will get see a
>>>> WARNING in the log file. Try to avoid it.
>>>> Environment: Geoserver running on Linux PPC using DB2 Spatial Extender
>>>> on an AIX Box
>>>> 2)
>>>> If you have to use Oracle Georaster. I agree to Simone. The best would
>>>> be to implement a special coverage store.
>>>> 3) At the moment, the plugin is not able to handle rotated or skewed
>>>> images, but if necessary, I would add this feature. 
>>>>
>>>> christian 
>>>>
>>>>
>>>>       
>>> --
>>> -------------------------------------------------------
>>> BEng. R.J.M. van Drunen
>>> Anargistic
>>> Owner - Software Engineer
>>> Sint Luciaplein 27
>>> 5211 ZR 's-Hertogenbosch 
>>>
>>> mob:    +31 062369319 
>>>
>>> http://www.anargistic.nl
>>> http://www.linkedin.com/in/robertvandrunen
>>> ------------------------------------------------------- 
>>>
>>> 
>>>
>>> ------------------------------------------------------------------------------
>>> Stay on top of everything new and different, both inside and
>>> around Java (TM) technology - register by April 22, and save
>>> $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
>>> 300 plus technical and hands-on sessions. Register today.
>>> Use priority code J9JMT32. http://p.sf.net/sfu/p
>>> _______________________________________________
>>> Geotools-gt2-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users 
>>>
>>>     
>>
>>   
> 
> -- 
> -------------------------------------------------------
> BEng. R.J.M. van Drunen
> Anargistic
> Owner - Software Engineer
> Sint Luciaplein 27
> 5211 ZR 's-Hertogenbosch 
> 
> mob:    (+31)623693129 
> 
> http://www.anargistic.nl
> http://www.linkedin.com/in/robertvandrunen
> ------------------------------------------------------- 
> 
>  
> 
> ------------------------------------------------------------------------------
> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
> production scanning environment may not be a perfect world - but thanks to
> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
> Series Scanner you'll get full speed at 300 dpi even with all image 
> processing features enabled. http://p.sf.net/sfu/kodak-com
> _______________________________________________
> Geotools-gt2-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
 


------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to