HI Martin,<div><br></div><div>Our application renders the data and then does some processing on it after it is loaded based on user request. &nbsp;Our application can typically load and display very large files in a few seconds and navigate them interactively very quickly. &nbsp;After doing some tests, I don&#39;t believe there is a problem with NITF read performance is slow using GDAL because I could render and load some very big files on my end with no problem.</div>
<div><br></div><div>Thanks for everyone&#39;s help, I appreciate it!</div><div><br></div><div>Jason&nbsp;</div><div><br><div class="gmail_quote">On Wed, May 14, 2008 at 7:08 PM, Martin Chapman &lt;<a href="mailto:mchapman@texelinc.com">mchapman@texelinc.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">








<div lang="EN-US" link="blue" vlink="purple">

<div>

<p><span style="font-size:11.0pt;color:#1F497D">Jason,</span></p>

<p><span style="font-size:11.0pt;color:#1F497D">&nbsp;</span></p>

<p><span style="font-size:10.5pt;font-family:Consolas;color:#1F497D">Is your program rendering the data to the screen or just processing
it somehow?&nbsp; As a bench mark for you, I can render nitf files that are 1.8GB
and bigger in one to two seconds on my machine using gdal over a samba network connection
to a linux machine (100MB/sec Ethernet).&nbsp; The trick is resampling the image on
the fly using rasterio() to fit the screen size.&nbsp; There is a HUGE performance
difference when you do this. </span></p>

<p><span style="font-size:10.5pt;font-family:Consolas;color:#1F497D">&nbsp;</span></p>

<p><span style="font-size:10.5pt;font-family:Consolas;color:#1F497D">If you are just making copies of the image then I would look at
your physical disk data subsystem.&nbsp; If you do not have a write cache enabler
then it may be your customers disk that is slow and not the software.&nbsp; I have
run into that situation before with HP Smart Arrays.&nbsp; You can validate that
this is the case by comparing your CPU usage to the average write disk queue
length.&nbsp; If the CPU usage is less than your write queue it means your data
subsystem is not able to keep up with the CPU…basically GDAL is faster
than your hardware.&nbsp; Your CPU usage should be somewhere between 70 and 100 % is
everything is working fine would be my guess.</span></p>

<p><span style="font-size:10.5pt;font-family:Consolas;color:#1F497D">&nbsp;</span></p>

<p><span style="font-size:10.5pt;font-family:Consolas;color:#1F497D">Martin</span></p>

<p><span style="font-size:11.0pt;color:#1F497D">&nbsp;</span></p>

<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">

<p><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt">
<a href="mailto:gdal-dev-bounces@lists.osgeo.org" target="_blank">gdal-dev-bounces@lists.osgeo.org</a> [mailto:<a href="mailto:gdal-dev-bounces@lists.osgeo.org" target="_blank">gdal-dev-bounces@lists.osgeo.org</a>] <b>On
Behalf Of </b>Jason Beverage<br>
<b>Sent:</b> Wednesday, May 14, 2008 12:24 PM<br>
<b>To:</b> Even Rouault<br>
<b>Cc:</b> <a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<b>Subject:</b> Re: [gdal-dev] Large NITF file performance problems</span></p>

</div><div><div></div><div class="Wj3C7c">

<p>&nbsp;</p>

<p style="margin-bottom:12.0pt">Hi Even,<br>
<br>
Thanks for your sample file, it really helped.&nbsp; It loads quickly in our
application and in OpenEV so I&#39;ll have to look down another route to find out
what&#39;s wrong with the customer&#39;s data.<br>
<br>
However, it does appear that there is a problem somewhere when doing a
CreateCopy() as Ivan pointed out.&nbsp; I can translate that file to a GeoTiff
in about 40seconds, but writing NITF has been going for about 5 minutes now and
its still on &quot;0&quot; with no progress reported.<br>
<br>
Thanks,<br>
<br>
Jason</p>

<div>

<p>On Tue, May 13, 2008 at 2:45 PM, Even Rouault &lt;<a href="mailto:even.rouault@mines-paris.org" target="_blank">even.rouault@mines-paris.org</a>&gt;
wrote:</p>

<p>Hi,<br>
<br>
I don&#39;t really understand why they would have issues with large file sizes<br>
(below the 4 GB of course)<br>
<br>
I&#39;ve tried the following small python script to generate a 1.2 GB NITF file<br>
filled with &#39;1&#39; as a value :<br>
<br>
#!/usr/bin/env python<br>
<br>
import gdal<br>
<br>
new_ds = gdal.GetDriverByName( &#39;NITF&#39; ).Create( &#39;largentf.ntf&#39;, 100000, 12000,<br>
1 )<br>
new_ds.GetRasterBand(1).Fill(1)<br>
new_ds = None<br>
<br>
<br>
It runs in less than one minute on my slow machine. I can open the resulting<br>
file with OpenEV and scroll through it quite smoothly. gdalinfo -checksum<br>
largetntf.ntf also runs in about 3 minutes, which seems reasonnable.<br>
<br>
a gdalinfo on the file shows that it is automatically tiled in blocks of<br>
256x256 and by looking at the code I can see that 256x256 tiling is<br>
automatically activated when either the number of lines or columns of the<br>
file is larger than 9999.<br>
<br>
So I don&#39;t see any obvious reason why you get poor performance. You could<br>
probably break with a debugger to see where it idles during gdal_translate ?<br>
<br>
I email you the bzip2 result of the 1.2 GB file that is only 1KB... so you can<br>
test on the same file as me.<br>
<br>
As far as your customer is concerned, maybe there is an issue with compression<br>
(for example a very large mono-block JPEG image ?). A &#39;gdalinfo&#39; on the files<br>
could maybe give some hints ?<br>
<br>
Le Tuesday 13 May 2008 18:21:15 Jason Beverage, vous avez écrit&nbsp;:</p>

<div>

<div>

<p style="margin-bottom:12.0pt">&gt; Hi all,<br>
&gt;<br>
&gt; I&#39;ve got a customer who is using large NITF files (~1.5 GB) and is seeing<br>
&gt; ridiculously slow load times in our application. &nbsp;I don&#39;t have access
to<br>
&gt; his data, so I can&#39;t test directly, but it seems like the NITF driver may<br>
&gt; have some issues with large file sizes (&gt; 1GB).<br>
&gt;<br>
&gt; To test on my end, I created a few different GeoTiff files (600 MB, 800
MB,<br>
&gt; and 1.2 GB) and tried to convert them to NITF using gdal_translate.<br>
&gt; Converting the 600 and 800 MB files worked just fine and had very<br>
&gt; reasonable speed (few minutes). &nbsp;However, when I tried to use<br>
&gt; gdal_translate on the 1.2 GB file, the process hung at 0% for forever and
I<br>
&gt; had to kill it after waiting for a very long time. &nbsp;It seems as if
there is<br>
&gt; something magical about this 1 GB boundary.<br>
&gt;<br>
&gt; Does anyone have any ideas or suggestions as to what could be causing this<br>
&gt; issue?<br>
&gt;<br>
&gt; Thanks!<br>
&gt;<br>
&gt; Jason<br>
<br>
</p>

</div>

</div>

</div>

<p>&nbsp;</p>

</div></div></div>

</div>


</blockquote></div><br></div>