<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.moz-txt-citetags
        {mso-style-name:moz-txt-citetags;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-US link=blue vlink=purple>

<div class=WordSection1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I don’t know anything about your work flow, but if
possible, you could add a pre-processing step where you use a script to read
your text file and pre-classify the data.  You would end up with integers representing
each class as ‘cell’ values.  <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Instead of :<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>EXPRESSION</span>([pixel] >= -4 AND [pixel] < -3)<span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'> <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>You could have: EXPRESSION “2” <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Or <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>EXPRESSION /2/<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Matching a single string should be the fastest expression to
evaluate.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>David.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div>

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

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'>
mapserver-users-bounces@lists.osgeo.org
[mailto:mapserver-users-bounces@lists.osgeo.org] <b>On Behalf Of </b>Tobias
Weiß<br>
<b>Sent:</b> Wednesday, July 28, 2010 8:25 AM<br>
<b>To:</b> mapserver-users@lists.osgeo.org<br>
<b>Subject:</b> Re: [mapserver-users] Raster data performance<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Hi Alex,<br>
<br>
I tried some of the performance tips you mentioned, e.g. converted the .txt to
a tiled TIFF to optimize performance.  I can not see significant changes
in rendering speed.<br>
<br>
gdal_translate -co TILED=YES input.txt output.tif<br>
<br>
The major brake still is the expression stuff. I really wonder what makes this
task so time-consuming, it should not be more than a simple comparison.<br>
<br>
Do you have experiences with this issue? Or do I have to live with this
constraint?<br>
<br>
Best, Tobi<br>
<br>
===<br>
Am 28.07.10 14:27, schrieb Alexandre Dube: <o:p></o:p></p>

<p class=MsoNormal>Hi Tobi,<br>
<br>
  The following documentation topics about raster might help :<br>
<br>
<a href="http://mapserver.org/input/raster.html#rasters-and-tile-indexing">http://mapserver.org/input/raster.html#rasters-and-tile-indexing</a><br>
<a href="http://mapserver.org/input/raster.html#raster-display-performance-tips">http://mapserver.org/input/raster.html#raster-display-performance-tips</a><br>
<br>
  and about expressions :<br>
<br>
<a href="http://mapserver.org/mapfile/expressions.html">http://mapserver.org/mapfile/expressions.html</a><br>
<br>
  The string comparison type is the fastest, so you could try define more
classes but using string comparison to see if it gets faster.  Also, a
good performance tip is to put your most frequent classes types on top
first.  For example, if 80% of your data has "pixel = -3" then
put it on top.<br>
<br>
Kind regards,<br>
<br>
Alexandre<br>
<br>
<br>
On 10-07-28 04:54 AM, Tobias Weiß wrote: <o:p></o:p></p>

<p class=MsoNormal><span style='font-family:"Tahoma","sans-serif"'>Hello list,<br>
<br>
this is my first email to this list. I am working with MapServer, OpenLayers
& TileCache for almost 1 year now and the tools are really working great
together, when everything is configured correctly ;-)<br>
<br>
At the moment I´m facing a performance problem with raster data that serves as
input data to render my map tiles. The spatial resolution of this raster data
is 720 (rows) x 360 (cols) and it is stored in a simple .txt file (The size of
the file is around 2 MB). I use TileCache to prerender maptiles for different
zoom levels that are later displayed in a web application using OpenLayers.<br>
<br>
I discovered, that the rendering speed of MapServer seems to mainly depend on
how many different classes I define within my mapfile, meaning how many
expressions MapServer has to evaluate during the rendering process. Without any
classes MapServer the rendering speed is really fast, the more classes I use the
slower it gets. With e.g. 10 different classes defining 10 different styles /
pixel colors the rendering time for one tile can increase up to 60 sec.<br>
<br>
<br>
</span><o:p></o:p></p>

<pre>CLASS<span class=moz-txt-citetags><o:p></o:p></span></pre><pre><span
class=moz-txt-citetags>  </span>EXPRESSION ([pixel] >= -4 AND [pixel] < -3)<span
class=moz-txt-citetags><o:p></o:p></span></pre><pre><span
class=moz-txt-citetags>    </span>STYLE<o:p></o:p></pre><pre>        COLOR 69 117 180<o:p></o:p></pre><pre>   END<o:p></o:p></pre><pre>END<o:p></o:p></pre><pre>  <o:p></o:p></pre>

<p class=MsoNormal><br>
<span style='font-family:"Tahoma","sans-serif"'>While working with shape files
I haven´t had this problems and prerendering map tiles was really fast. With
raster data the rendering time for one map and 5 different zoom levels can take
up to several hours and almost overburdens my CPU.<br>
<br>
Can anybody give me a hint how I could improve this?<br>
<br>
Best, Tobi<br>
<br>
</span><o:p></o:p></p>

<pre><o:p> </o:p></pre><pre>_______________________________________________<o:p></o:p></pre><pre>mapserver-users mailing list<o:p></o:p></pre><pre><a
href="mailto:mapserver-users@lists.osgeo.org">mapserver-users@lists.osgeo.org</a><o:p></o:p></pre><pre><a
href="http://lists.osgeo.org/mailman/listinfo/mapserver-users">http://lists.osgeo.org/mailman/listinfo/mapserver-users</a><o:p></o:p></pre><pre>  <o:p></o:p></pre>

<p class=MsoNormal><br>
<br>
<br>
<o:p></o:p></p>

<pre>-- <o:p></o:p></pre><pre>Alexandre Dubé<o:p></o:p></pre><pre>Mapgears<o:p></o:p></pre><pre><a
href="http://www.mapgears.com">www.mapgears.com</a><o:p></o:p></pre><pre>  <o:p></o:p></pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre>_______________________________________________<o:p></o:p></pre><pre>mapserver-users mailing list<o:p></o:p></pre><pre><a
href="mailto:mapserver-users@lists.osgeo.org">mapserver-users@lists.osgeo.org</a><o:p></o:p></pre><pre><a
href="http://lists.osgeo.org/mailman/listinfo/mapserver-users">http://lists.osgeo.org/mailman/listinfo/mapserver-users</a><o:p></o:p></pre><pre>  <o:p></o:p></pre></div>

</body>

</html>