<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-36476784</id><updated>2012-01-16T03:37:21.011Z</updated><category term='Ben-Gurion University'/><category term='install'/><category term='JRC'/><category term='R server'/><category term='path'/><category term='WPS'/><category term='arguments'/><category term='Extent'/><category term='bug'/><category term='hotel'/><category term='new'/><category term='conversion'/><category term='info'/><category term='Ka-maps'/><category term='resolution'/><category term='GD'/><category term='Output'/><category term='getElementsByTagName'/><category term='HTTP'/><category term='SOAPpy'/><category term='firefox'/><category term='WMS'/><category term='encryption'/><category term='popup'/><category term='mapserver'/><category term='WFS'/><category term='spam'/><category term='exec format error'/><category term='function'/><category term='KaAqua'/><category term='fromWMSLayer'/><category term='object type'/><category term='email'/><category term='Cannot modify header information'/><category term='OpenLayers'/><category term='data XML'/><category term='changes'/><category term='POST'/><category term='Map file'/><category term='MySQL'/><category term='double'/><category term='Javascript'/><category term='Cracking'/><category term='adminpro'/><category term='property'/><category term='3 seconds'/><category term='fetch'/><category term='XML'/><category term='describeCoverage'/><category term='junk'/><category term='handler'/><category term='layer'/><category term='Ispra'/><category term='Wrapper'/><category term='hidden'/><category term='Ticks'/><category term='WEP'/><category term='problems'/><category term='Array'/><category term='HTML'/><category term='Ph.D.'/><category term='no error'/><category term='mod_python'/><category term='Internet Explorer'/><category term='Huelva'/><category term='error'/><category term='request'/><category term='segmentation'/><category term='cannot be displayed'/><category term='points'/><category term='filename'/><category term='automatic interpolation'/><category term='GML'/><category term='strange'/><category term='header()'/><category term='OWS'/><category term='list'/><category term='cache'/><category term='connection'/><category term='gdalinfo'/><category term='RSOAP'/><category term='semi-variogram'/><category term='tomcat'/><category term='automap'/><category term='SOA'/><category term='DescribeFeatureType'/><category term='kaLegend'/><category term='download'/><category term='python'/><category term='isDownload'/><category term='map object'/><category term='WCS'/><category term='image'/><category term='mod_jk'/><category term='download property'/><category term='0'/><category term='ms_iogetStdoutBufferBytes'/><category term='mapscript'/><category term='cgi-bin'/><category term='login'/><category term='empty'/><category term='header'/><category term='parse'/><category term='trigger'/><category term='chameleon'/><category term='ArcGIS'/><category term='WxS'/><category term='DM solutions'/><category term='putObject'/><category term='RAISIN'/><category term='options'/><category term='PHP'/><category term='config.php'/><category term='publisher'/><category term='google earth'/><category term='testhandler'/><category term='sgeostat'/><category term='IE'/><category term='chaos'/><category term='HTTP 404 error'/><category term='INTAMAP'/><category term='metadata'/><category term='chunk'/><category term='R'/><category term='problem'/><title type='text'>Jesus Loves GRASS</title><subtitle type='html'>Technical blog about GRASS/GIS,open source geoinformatics and MAPSERVER.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>60</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36476784.post-1109452047377632724</id><published>2009-09-29T13:05:00.005+01:00</published><updated>2009-09-29T13:25:49.879+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='problem'/><category scheme='http://www.blogger.com/atom/ns#' term='fromWMSLayer'/><category scheme='http://www.blogger.com/atom/ns#' term='cannot be displayed'/><category scheme='http://www.blogger.com/atom/ns#' term='trigger'/><title type='text'>WMS/WFS getfeature on hover, problem to display the GML (mapserver)</title><content type='html'>I had a hard time programming something similar to the "WFS GetFeature Example" shown in the OpenLayers examples, the example uses calls to a WFS/WMS services that have the same name and data origin.&lt;br /&gt;&lt;br /&gt;The WFS/WMS service call is done with the OpenLayers.Protocol.WFS.fromWMSLayer as follows (the layerWMS is a OpenLayrs.Layer.WMS object)&lt;br /&gt; &lt;br /&gt; control = new OpenLayers.Control.GetFeature({&lt;br /&gt;                protocol: OpenLayers.Protocol.WFS.fromWMSLayer(layerWMS),&lt;br /&gt;                hover: true&lt;br /&gt;            });&lt;br /&gt;&lt;br /&gt;Using firebug it is possible to see the requests going back-and-forward when hovering the polygons, but in the end the polygons aren't select, because trigger-events aren't called.&lt;br /&gt;&lt;br /&gt;The problem is cause by the namespace used in the WFS of mapserver (since the example given in the web site uses geoserver, everything is ok), the solution is to indicate the namespace and featureTypeName.&lt;br /&gt;&lt;br /&gt;In my mapserver response I have something like this:&lt;br /&gt;&amp;#60;gml:featureMember&amp;#62;&lt;br /&gt;&amp;#60;ms:wdpa gml:id="wdpa.67886"&amp;#62;&lt;br /&gt;&lt;br /&gt;Therefore control has to be changed as follows:&lt;br /&gt;&lt;br /&gt; control = new OpenLayers.Control.GetFeature({&lt;br /&gt;                protocol: OpenLayers.Protocol.WFS.fromWMSLayer(layerWMS,{featureType:"wdpa",featurePrefix:"ms"}),&lt;br /&gt;                hover: true&lt;br /&gt;            });&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It seems that the same has to be done for the standard WFS layer when using mapserver.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-1109452047377632724?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/1109452047377632724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=1109452047377632724' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/1109452047377632724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/1109452047377632724'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2009/09/wmswfs-getfeature-on-hover-problem-to.html' title='WMS/WFS getfeature on hover, problem to display the GML (mapserver)'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-54440360404153896</id><published>2009-07-30T15:25:00.004+01:00</published><updated>2009-07-30T15:40:37.840+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ms_iogetStdoutBufferBytes'/><category scheme='http://www.blogger.com/atom/ns#' term='mapserver'/><category scheme='http://www.blogger.com/atom/ns#' term='Cannot modify header information'/><title type='text'>white space fore php tag</title><content type='html'>While a blank line before the &amp;#60;?php start tag may look innocent, when processed by PHP, it will turn into an echo statement printing out a blank line.&lt;br /&gt;&lt;br /&gt;If working with web service wrapper scripts from  mapserver this could be a disaster resulting in some strange behaviours like:&lt;br /&gt;&lt;br /&gt;1) After $request-&gt;loadparams(); the script will send you an empty file as a reply&lt;br /&gt;2) If the $request has uses setparameters, all the outputs will be dumped to the browser window, for example a WMS GetMap request will be a binary string in the browser window.&lt;br /&gt;3) The ms_iogetStdoutBufferBytes(); will return nothing if you want to save the image locally.&lt;br /&gt;4) Output with Warning: Cannot modify header information - headers already sent by&lt;br /&gt;&lt;br /&gt;These symptoms are caused by the existence of an open buffer cause by the blank line, at the begining of the php programming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-54440360404153896?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/54440360404153896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=54440360404153896' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/54440360404153896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/54440360404153896'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2009/07/white-space-fore-php-tag.html' title='white space fore php tag'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-3692720807789580727</id><published>2009-04-29T08:11:00.004+01:00</published><updated>2009-04-29T08:20:00.035+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP 404 error'/><category scheme='http://www.blogger.com/atom/ns#' term='problem'/><category scheme='http://www.blogger.com/atom/ns#' term='mod_jk'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><category scheme='http://www.blogger.com/atom/ns#' term='strange'/><title type='text'>Problem with Tomcat 5.5. HTTP Status 404 - The requested resource (...) is not available. (mod_jk)</title><content type='html'>Dealing with tomcat errors can be a pain in the neck.&lt;br /&gt;&lt;br /&gt;For example a situation like this:&lt;br /&gt;&lt;br /&gt;1) Considering that tomcat is running and apache's mod_jk is being used to connect to it.&lt;br /&gt;   a. Tomcat works fine when using http://mysite.com:8180/mypage&lt;br /&gt;   b. http://mysite.com/mypage generates a HTTP error 404 with resource not found.&lt;br /&gt;&lt;br /&gt;2) Probably there is a miss match between the httpd.conf file and the server.xml configuration file&lt;br /&gt;   -  ServerName, server IP or ports  may be different in the 2 configuration files&lt;br /&gt;   -  If you recompiled Apache, then you need to recompile mod_jk&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;If you are a newbie in tomcat (like me) this error may take some time to figure it out, since the error logs of apache are clean and the tomcat error logs don't help much&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-3692720807789580727?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/3692720807789580727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=3692720807789580727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3692720807789580727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3692720807789580727'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2009/04/problem-with-tomcat-55-http-status-404.html' title='Problem with Tomcat 5.5. HTTP Status 404 - The requested resource (...) is not available. (mod_jk)'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-1124408591611483024</id><published>2009-01-21T08:47:00.002Z</published><updated>2009-01-21T08:49:24.706Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='exec format error'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='cgi-bin'/><title type='text'>Error on CGI script</title><content type='html'>An error like this:&lt;br /&gt;(8)Exec format error: exec of '/usr/local/apache2/cgi-bin/CGI2WPS.py' failed&lt;br /&gt;[Wed Jan 21 09:38:41 2009] [error] [client 127.0.0.1] Premature end of script headers: CGI2WPS.py&lt;br /&gt;&lt;br /&gt;Means that the execution of the script failed, probably the server has some problems on getting the python interpreter.&lt;br /&gt;&lt;br /&gt;Adding the python location to the script will solve it:&lt;br /&gt;&lt;br /&gt;#!/usr/bin/python&lt;br /&gt;#-*- coding: utf-8 -*-&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-1124408591611483024?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/1124408591611483024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=1124408591611483024' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/1124408591611483024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/1124408591611483024'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2009/01/error-on-cgi-script.html' title='Error on CGI script'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8000751662593424949</id><published>2008-08-29T10:02:00.003+01:00</published><updated>2008-08-29T10:07:31.165+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Output'/><category scheme='http://www.blogger.com/atom/ns#' term='new'/><category scheme='http://www.blogger.com/atom/ns#' term='gdalinfo'/><category scheme='http://www.blogger.com/atom/ns#' term='changes'/><title type='text'>gdalinfo 1.4.2 versus gdalinfo 1.5.2</title><content type='html'>While processing some gdalinfo string-to-array in PHP I noticed that the output of gdalinfo is different from 1.4 to 1.5 and therefore my code broke in a new machine.&lt;br /&gt;Gdal 1.4.2:&lt;br /&gt;Driver: GTiff/GeoTIFF&lt;br /&gt;Size is 35, 72&lt;br /&gt;Coordinate System is `'&lt;br /&gt;Origin = (-72000.000000000000000,&lt;div id=":7s" class="ArwC7c ckChnd"&gt;&lt;wbr&gt;643700.000000000000000)&lt;br /&gt;Pixel Size = (9422.857142857143117,-9565.&lt;wbr&gt;277777777777374)&lt;br /&gt;Corner Coordinates:&lt;br /&gt;Upper Left  (  -72000.000,  643700.000)&lt;br /&gt;Lower Left  (  -72000.000,  -45000.000)&lt;br /&gt;Upper Right (  257800.000,  643700.000)&lt;br /&gt;Lower Right (  257800.000,  -45000.000)&lt;br /&gt;Center      (   92900.000,  299350.000)&lt;br /&gt;Band 1 Block=35x58 Type=Float32, ColorInterp=Gray&lt;br /&gt;Band 2 Block=35x58 Type=Float32, ColorInterp=Undefined&lt;br /&gt;Band 3 Block=35x58 Type=Float32, ColorInterp=Undefined&lt;br /&gt;&lt;br /&gt;Gdal 1.5.2&lt;br /&gt;Driver: GTiff/GeoTIFF&lt;br /&gt;Files: geotiff_data2087566292&lt;br /&gt;Size is 35, 72&lt;br /&gt;Coordinate System is `'&lt;br /&gt;Origin = (-72000.000000000000000,643700.000000000000000)&lt;br /&gt;Pixel Size = (9422.857142857143117,-9565.277777777777374)&lt;br /&gt;Image Structure Metadata:&lt;br /&gt;  INTERLEAVE=BAND&lt;br /&gt;Corner Coordinates:&lt;br /&gt;Upper Left  (  -72000.000,  643700.000)&lt;br /&gt;Lower Left  (  -72000.000,  -45000.000)&lt;br /&gt;Upper Right (  257800.000,  643700.000)&lt;br /&gt;Lower Right (  257800.000,  -45000.000)&lt;br /&gt;Center      (   92900.000,  299350.000)&lt;br /&gt;Band 1 Block=35x58 Type=Float32, ColorInterp=Gray&lt;br /&gt;Band 2 Block=35x58 Type=Float32, ColorInterp=Undefined&lt;br /&gt;Band 3 Block=35x58 Type=Float32, ColorInterp=Undefined&lt;br /&gt;&lt;br /&gt;The new version includes:&lt;br /&gt;Image Structure Metadata:&lt;br /&gt;  INTERLEAVE=BAND&lt;br /&gt;&lt;br /&gt;and the name of the file that was read&lt;br /&gt;Files: geotiff_data2087566292&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8000751662593424949?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8000751662593424949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8000751662593424949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8000751662593424949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8000751662593424949'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2008/08/gdalinfo-142-versus-gdalinfo-152.html' title='gdalinfo 1.4.2 versus gdalinfo 1.5.2'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-5923097764433518045</id><published>2008-05-19T08:37:00.003+01:00</published><updated>2008-05-19T08:43:43.811+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='automatic interpolation'/><category scheme='http://www.blogger.com/atom/ns#' term='WPS'/><category scheme='http://www.blogger.com/atom/ns#' term='automap'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Paper for GI-Days 2008 (Munster)</title><content type='html'>Just submitted a paper concerning WPS and the AutoMap (Gstat) package. The full paper will be online after the conference, meanwhile here is the abstract:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Web-based geostatistics using WPS &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Jorge de Jesus1, Grégoire Dubois2, Paul Hiemstra3&lt;br /&gt;1Institute for Environment and Sustainability / Joint Research Centre of the European Commission&lt;br /&gt;(email removed)&lt;br /&gt;1Institute for Environment and Sustainability / Joint Research Centre of the European Commission&lt;br /&gt;(email removed)&lt;br /&gt;3Department of Physical Geography / University of Utrecht&lt;br /&gt;(email removed)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Abstract.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Mapping data using geostatistics can be a time-consuming process because of the many parameters to define. automap, a geostatistical package written in R, was developed to define automatically a spatial correlation model, a step that is considered to be the biggest obstacle for automating the spatial interpolation process with geostatistical algorithms. The implementation of automap into a Service Oriented Architecture (SOA) would ensure the automatic interpolation routines to be platform independent, easy to integrate into existing applications, and freely available in a network environment. automap is here further proposed as a Web Processing Service (WPS) to allow end-users to benefit from a remote service to be used for the real-time mapping of environmental data in routine situations. It is the purpose of this paper to present the architecture of the service as well as to discuss by means of case studies the limitations of the real time mapping system for emergency response.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-5923097764433518045?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/5923097764433518045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=5923097764433518045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/5923097764433518045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/5923097764433518045'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2008/05/paper-for-gi-days-2008-munster.html' title='Paper for GI-Days 2008 (Munster)'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-195509619524964284</id><published>2008-02-27T10:36:00.004Z</published><updated>2008-02-27T10:48:27.376Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='header()'/><category scheme='http://www.blogger.com/atom/ns#' term='Output'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='cannot be displayed'/><category scheme='http://www.blogger.com/atom/ns#' term='GD'/><title type='text'>The image .... cannot be displayed, because it contains errors.</title><content type='html'>"The image 'http://localhost/ACI/test.php' cannot be displayed, because it contains errors." Was the only thing I was getting when running some examples and source codes for image creation using GD and PHP. I googled it and all the information found concerned bad installation of GD and other libraries.&lt;br /&gt;&lt;br /&gt;But when dumping the GD info with var_dump(gd_info()); everything was ok.&lt;br /&gt;&lt;br /&gt;In the end I discovered that actually the error is not related to GD but with the header used to send the image, this example works fine:&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;header("Content-type: image/png");&lt;br /&gt;$im = imagecreate(210, 20) or die("Cannot Initialize new GD image stream");&lt;br /&gt;$background_color = imagecolorallocate($im, 0, 0, 0);&lt;br /&gt;$text_color = imagecolorallocate($im, 25, 25, 25);&lt;br /&gt;imageline($im,10,10,20,20,$text_color);&lt;br /&gt;imagepng($im);&lt;br /&gt;imagedestroy($im);&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;But something like this:&lt;br /&gt;&amp;lt;?php&lt;br /&gt;//Something, source or text&lt;br /&gt;?&amp;gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;header("Content-type: image/png");&lt;br /&gt;$im = imagecreate(210, 20) or die("Cannot Initialize new GD image stream");&lt;br /&gt;$background_color = imagecolorallocate($im, 0, 0, 0);&lt;br /&gt;$text_color = imagecolorallocate($im, 25, 25, 25);&lt;br /&gt;imageline($im,10,10,20,20,$text_color);&lt;br /&gt;imagepng($im);&lt;br /&gt;imagedestroy($im);&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;Will only generate the stupid GD error message.&lt;br /&gt;&lt;br /&gt;The header() needs to be the first thing in the PHP code as explained in the PHP doc "Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-195509619524964284?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/195509619524964284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=195509619524964284' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/195509619524964284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/195509619524964284'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2008/02/image-cannot-be-displayed-because-it.html' title='The image .... cannot be displayed, because it contains errors.'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8441542447072848689</id><published>2008-02-26T08:32:00.003Z</published><updated>2008-02-26T08:43:29.351Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='double'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='problem'/><category scheme='http://www.blogger.com/atom/ns#' term='arguments'/><category scheme='http://www.blogger.com/atom/ns#' term='gdalinfo'/><category scheme='http://www.blogger.com/atom/ns#' term='Extent'/><category scheme='http://www.blogger.com/atom/ns#' term='mapscript'/><title type='text'>$oMap-&gt;setExtent problems and general data gathering</title><content type='html'>I made some PHP programming/MapScript for rendering a GeoTiff created by an interpolation service (WPS) as a PNG. The Geotiff is stored in the server's temporary folder and all the mapserver parameters are set by PHP programing.&lt;br /&gt;&lt;br /&gt;The fist part of the posted code gets the image info using GdalInfo and regular expressions to obtain the extent value of the image, I haven't managed to do this properly using the PHP's Exif lib....&lt;br /&gt;&lt;br /&gt;The major problem was the SetExtent of the Map object it was always complaining that the values had some problem, the problem was that the parameters were being passed as a string, and they needed to be as double, even if they are passed as float (or int?) the SetExtent will complain&lt;br /&gt;&lt;br /&gt;//Some code before&lt;br /&gt;&lt;br /&gt;$FileName=/usr/local/apache2/htdocs/tmp/interpolation3454.tiff;&lt;br /&gt;$CmdStr="/usr/local/bin/gdalinfo ".$FileName;&lt;br /&gt;//General string for getting float numbers&lt;br /&gt;$StrPattern='/[-+]?\b[0-9]*\.?[0-9]+\b/';&lt;br /&gt;exec($CmdStr,$ResultArray);&lt;br /&gt;&lt;br /&gt;//Upper left point info&lt;br /&gt;$UpperLeftPoint=$ResultArray[6];&lt;br /&gt;preg_match_all($StrPattern,$UpperLeftPoint,$TmpArray);&lt;br /&gt;$MinX=$TmpArray[0][0];&lt;br /&gt;$MaxY=$TmpArray[0][1];&lt;br /&gt;&lt;br /&gt;//Lower right point info&lt;br /&gt;$LowerRightPoint=$ResultArray[9];&lt;br /&gt;preg_match_all($StrPattern,$LowerRightPoint,$TmpArray);&lt;br /&gt;$MaxX=$TmpArray[0][0];&lt;br /&gt;$MinY=$TmpArray[0][1];&lt;br /&gt;&lt;br /&gt;//Passing to Map object&lt;br /&gt;//double minx, double miny, double maxx, double maxy&lt;br /&gt;$oMap-&gt;setExtent((double)$MinY,(double)$MinY,(double)$MaxX,(double)$MaxY);&lt;br /&gt;&lt;br /&gt;//Same code after&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8441542447072848689?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8441542447072848689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8441542447072848689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8441542447072848689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8441542447072848689'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2008/02/omap-setextent-problems-and-general.html' title='$oMap-&gt;setExtent problems and general data gathering'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8489406070592282238</id><published>2008-02-04T16:00:00.001Z</published><updated>2008-02-04T16:08:56.667Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='mapscript'/><title type='text'>Basic Image in PHP/Mapscript</title><content type='html'>This script makes a simple web page with a PNG image based on a GeoTiff that contains interpolation values in Float32. The script uses the ms_GetErrorObj() to echo any errors.&lt;br /&gt;&lt;br /&gt;The objective of the script is to totally replace any info from the map file, nevertheless it is necessary for a map file to start the Map object.&lt;br /&gt;&lt;br /&gt;The map file called test2.map is only:&lt;br /&gt;MAP&lt;br /&gt;&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;The rest is defined as follows.....&lt;br /&gt;&lt;br /&gt;&amp;#60;?php&lt;br /&gt;/*&lt;br /&gt; * Created on Feb 1, 2008&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;// Loading Lib (just to be certain)&lt;br /&gt;dl('php_mapscript.so'); &lt;br /&gt;&lt;br /&gt;//Reset error list (just to be certain)&lt;br /&gt;ms_ResetErrorList();&lt;br /&gt;&lt;br /&gt;$map_path="/usr/local/apache2/htdocs/wpstmp/";&lt;br /&gt;&lt;br /&gt;// Creation of map object        &lt;br /&gt;$oMap = ms_newMapObj($map_path."test2.map");&lt;br /&gt;&lt;br /&gt;//Setting the name&lt;br /&gt;$oMap-&amp;#62;set("name","map1");&lt;br /&gt;&lt;br /&gt;//Setting size and backcolor&lt;br /&gt;$oMap-&amp;#62;setSize(800,400);&lt;br /&gt;$oMap-&amp;#62;imagecolor-&amp;#62;setRGB(125,125,125);&lt;br /&gt;&lt;br /&gt;//Setting Extent&lt;br /&gt;//Data gathered using GdalInfo from the GeoTIFF&lt;br /&gt;//double minx, double miny, double maxx, double maxy&lt;br /&gt;$oMap-&amp;#62;setExtent(-69000.000,-42000.000,261000.000,633000.000);&lt;br /&gt;&lt;br /&gt;//Seting units&lt;br /&gt;$oMap-&amp;#62;set("units",MS_METERS);&lt;br /&gt;&lt;br /&gt;//Output type&lt;br /&gt;$oMap-&amp;#62;selectOutputFormat("PNG24");&lt;br /&gt;$oMap-&amp;#62;outputformat-&amp;#62;setOption("imagemode",MS_IMAGEMODE_RGB);    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Paths&lt;br /&gt;$oMap-&amp;#62;web-&amp;#62;set("imagepath","/usr/local/apache2/htdocs/wpstmp/");&lt;br /&gt;$oMap-&amp;#62;web-&amp;#62;set("imageurl","/wpstmp/");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Layer Object&lt;br /&gt;$oLayer=ms_newLayerObj($oMap);&lt;br /&gt;$oLayer-&amp;#62;set("name","interpolation1");&lt;br /&gt;$oLayer-&amp;#62;set("status",MS_ON);&lt;br /&gt;$oLayer-&amp;#62;set("type",MS_LAYER_RASTER);&lt;br /&gt;$oLayer-&amp;#62;set("data","/usr/local/apache2/htdocs/wpstmp/interpolation610385.tif");&lt;br /&gt;&lt;br /&gt;//RASTER processing of band1 of Geottif, automatic color scaling&lt;br /&gt;//http://mapserver.gis.umn.edu/docs/howto/raster_data&lt;br /&gt;$oLayer-&amp;#62;setProcessing("SCALE=AUTO");&lt;br /&gt;$oLayer-&amp;#62;setProcessing("BANDS=1");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Dumping image&lt;br /&gt;$oImage=$oMap-&amp;#62;draw();&lt;br /&gt;$image_url=$oImage-&amp;#62;saveWebImage();&lt;br /&gt;&lt;br /&gt;//Error dumping part, not very necessary, only for debug&lt;br /&gt;$error=ms_GetErrorObj();&lt;br /&gt;while($error &amp;&amp; $error-&amp;#62;code!=MS_NOERR)&lt;br /&gt;{&lt;br /&gt; printf("Error in %s: %s&lt;br&gt;\n",$error-&gt;routine,$error-&gt;message);&lt;br /&gt; $error=$error-&gt;next();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&gt;&lt;br /&gt;&amp;#60;html&amp;#62;&lt;br /&gt;&amp;#60;head&amp;#62;&lt;br /&gt;&amp;#60;/head&amp;#62;&lt;br /&gt;&amp;#60;body&amp;#62;&lt;br /&gt;&lt;br /&gt;&amp;#60;img src="http://localhost&amp;#60;?php echo $image_url?&gt;" alt="Map" /&amp;#62; &lt;br /&gt;&lt;br /&gt;&amp;#60;/body&amp;#62;&lt;br /&gt;&amp;#60;/html&amp;#62;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8489406070592282238?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8489406070592282238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8489406070592282238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8489406070592282238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8489406070592282238'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2008/02/basic-image-in-phpmapscript.html' title='Basic Image in PHP/Mapscript'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-1254377249246388242</id><published>2008-01-17T07:45:00.000Z</published><updated>2008-01-17T07:47:39.369Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ben-Gurion University'/><category scheme='http://www.blogger.com/atom/ns#' term='Ph.D.'/><title type='text'>Personal Note</title><content type='html'>Personal Note:&lt;br /&gt;&lt;br /&gt;The Ben-Gurion University of the Negev has given me the degree of Ph.D, since 03 December 2007 I am Doctor Jesus :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-1254377249246388242?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/1254377249246388242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=1254377249246388242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/1254377249246388242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/1254377249246388242'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2008/01/personal-note.html' title='Personal Note'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-1547626881121250805</id><published>2008-01-17T07:40:00.000Z</published><updated>2008-01-17T07:45:45.046Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='automatic interpolation'/><category scheme='http://www.blogger.com/atom/ns#' term='RAISIN'/><category scheme='http://www.blogger.com/atom/ns#' term='INTAMAP'/><category scheme='http://www.blogger.com/atom/ns#' term='WPS'/><title type='text'>WPS update</title><content type='html'>It seems that I have been a bit lazy to post anything...&lt;br /&gt;&lt;br /&gt;I am currently working on a Web Processing Service (WPS) for automatic interpolations (I like to call it RAISIN), that is integrated on the INTAMAP project. Everything is still a bit "buggy" but going on the write direction. The documentation and server can be found at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://remwps.jrc.it/"&gt;http://remwps.jrc.it&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and the WPS supporting script:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://remwps.jrc.it/wps.py"&gt;http://remwps.jrc.it/wps.py&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I hope to post some tiny/usefull scripts in the blog any time soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-1547626881121250805?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/1547626881121250805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=1547626881121250805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/1547626881121250805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/1547626881121250805'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2008/01/wps-update.html' title='WPS update'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-5712393558174199610</id><published>2007-10-05T13:11:00.000+01:00</published><updated>2007-10-05T13:32:59.542+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='publisher'/><category scheme='http://www.blogger.com/atom/ns#' term='empty'/><category scheme='http://www.blogger.com/atom/ns#' term='POST'/><category scheme='http://www.blogger.com/atom/ns#' term='handler'/><category scheme='http://www.blogger.com/atom/ns#' term='mod_python'/><title type='text'>By the Love of G-d where are my POST variables !!!!</title><content type='html'>I am working in a WPS web service, using mod_python and PyWPS, and all the time I was using GET as HTTP request.&lt;br /&gt;&lt;br /&gt;The WPS needs for some requests to be in the form of XML file so there is a need to implement POST to send such requests, for start I decided to try using POST to fetch some Key-Value-Pair.&lt;br /&gt;&lt;br /&gt;I used the util class of mod_python as usual to deal with the request (as indicated on the mod_python tutorial:&lt;br /&gt;&lt;br /&gt;form=util.FieldStorage(req)&lt;br /&gt;&lt;br /&gt;But the form list was empty, tried so many things and so many possibilities like &lt;br /&gt;&lt;br /&gt;request_made=req.read()&lt;br /&gt;&lt;br /&gt;The only thing I was getting was a null reply, everything empty !!!&lt;br /&gt;&lt;br /&gt;I found a post in the mod_python mailing-list with the same problem but no answer....and nothing on the specifications of mod_python.&lt;br /&gt;&lt;br /&gt;Finally I discovered the problem !!!!  POST was always empty because of PythonHandler mod_python.publisher and by dropping it and using my script file (wps2.py) as handler (PythonHandler wps2)the problem got solved. So the conclusion is: DON'T USE Publisher  handler + POST together. &lt;br /&gt;&lt;br /&gt;Also there is a huge lack of info on this POST "problem"!!!! This should be referred in the documentation !!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-5712393558174199610?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/5712393558174199610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=5712393558174199610' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/5712393558174199610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/5712393558174199610'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/10/by-love-of-g-d-were-are-my-post.html' title='By the Love of G-d where are my POST variables !!!!'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8095734047036200355</id><published>2007-09-20T16:00:00.001+01:00</published><updated>2007-09-20T16:20:49.667+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='chunk'/><category scheme='http://www.blogger.com/atom/ns#' term='mod_python'/><category scheme='http://www.blogger.com/atom/ns#' term='junk'/><category scheme='http://www.blogger.com/atom/ns#' term='0'/><title type='text'>Junk after XML (0 at the end of reply)</title><content type='html'>I am finally back to programming and I am currently working in providing Web Processing Service. &lt;br /&gt;&lt;br /&gt;I started to use PyWPS implementation for it (it is very well done, complements to Jachym Cepicky) but PyWPS runs as a CGI script and not from inside mod_python, the possibility of running it using the cgihandler from mod_python is a limited option.....&lt;br /&gt;&lt;br /&gt;So I am making a new version of PyWPS crafted to my needs, I managed to get a Request=GetCapabilities working, but I got stuck with this error:&lt;br /&gt;&lt;br /&gt;XML Parsing Error: junk after document element&lt;br /&gt;Location: http://localhost/test/wps/wps2.py/main?version=0.4.0&amp;Request=GetCapabilities&lt;br /&gt;Line Number 104, Column 1:0&lt;br /&gt;^&lt;br /&gt;0&lt;br /&gt;&lt;br /&gt;Well it seems there is an "extra" after the XML document, the problem is related to the req object of mod_python and how the HTTP is processed.&lt;br /&gt;&lt;br /&gt;This 0 indicates that there is no more HTTP chunks (more or less EOF). &lt;br /&gt;&lt;br /&gt;To disable chunked encoding, it is necessary to specify content length:&lt;br /&gt;&lt;br /&gt;req.send_http_header()&lt;br /&gt;req.content_type = 'text/xml'&lt;br /&gt;req.set_content_length(len(getCapabilities.document.toprettyxml()))&lt;br /&gt;req.write(getCapabilities.document.toprettyxml())&lt;br /&gt;return apache.OK&lt;br /&gt;&lt;br /&gt;The getCapabilities.document.toprettyxml() creates my XML document that then is checked for lenght, after it will be flushed with req.write&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8095734047036200355?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8095734047036200355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8095734047036200355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8095734047036200355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8095734047036200355'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/09/junk-after-xml-0-at-end-of-reply.html' title='Junk after XML (0 at the end of reply)'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8489198697261150765</id><published>2007-08-03T10:26:00.000+01:00</published><updated>2007-08-03T11:56:34.611+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='putObject'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='object type'/><category scheme='http://www.blogger.com/atom/ns#' term='RSOAP'/><title type='text'>putObject object type coercing</title><content type='html'>Like it says in the API of RSOAP sometimes it's SOAP has problem converting object and it may need some help:&lt;br /&gt;&lt;br /&gt;In the python shell:&lt;br /&gt;&gt;&gt;array_numbers=RSession.call("rnorm",10)&lt;br /&gt;&lt;br /&gt;This array_number will be an instance object.&lt;br /&gt;&lt;br /&gt;To put this list python object in the R&lt;br /&gt;&gt;&gt;RSession.putObject("x",list(array_numbers))&lt;br /&gt;&lt;br /&gt;if there weren't the conversion to list from instance the R server would reply &lt;br /&gt;'None'&lt;br /&gt;&lt;br /&gt;PS: Better to use the wrapper function shown in the article RSOAP in Python Zine to deal with object transformation&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8489198697261150765?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8489198697261150765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8489198697261150765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8489198697261150765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8489198697261150765'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/08/putobject-object-type-coercing.html' title='putObject object type coercing'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-331521916353474770</id><published>2007-08-02T17:45:00.000+01:00</published><updated>2007-08-02T17:48:40.918+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='semi-variogram'/><category scheme='http://www.blogger.com/atom/ns#' term='sgeostat'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='RSOAP'/><title type='text'>Creation of a Semi-Variogram using RSOAP and Python</title><content type='html'>This is basically what is in Py Zine about RSOAP but with some differences....&lt;br /&gt;&lt;br /&gt;Starting in the bash shell by activating the RSOAPManager : ./RSOAPManager --debug&lt;br /&gt;&lt;br /&gt;########################################################&lt;br /&gt;STARTING R SOAP Manager on localhost:9081&lt;br /&gt;########################################################&lt;br /&gt;Manager Port: 9081&lt;br /&gt;R Server Port range: [9082 to 65536]&lt;br /&gt;&lt;br /&gt;Setting up R Process Object...&lt;br /&gt;../lib/RProcess.py:70: RuntimeWarning: tempnam is a potential security risk to your program&lt;br /&gt;  self._tmpdir = os.tempnam(self.path,"RSOAP") + "/"&lt;br /&gt;RHOME= /usr/local/lib/R&lt;br /&gt;RVERSION= 2.5.1&lt;br /&gt;RVER= 2051&lt;br /&gt;RUSER= /root&lt;br /&gt;Loading Rpy version 2051 .. Done.&lt;br /&gt;Creating the R object 'r' ..  Done&lt;br /&gt;Setting up SOAP Listener&lt;br /&gt;&lt;br /&gt;########################################################&lt;br /&gt;Listening for SOAP requests at http://localhost:9081&lt;br /&gt;########################################################&lt;br /&gt;&lt;br /&gt;Waiting for request...&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;jumping to the python shell:&lt;br /&gt;&lt;br /&gt;&amp;gt;&amp;gt;from SOAPpy import  *&lt;br /&gt;&lt;br /&gt;Starting a new SOAP connection:&lt;br /&gt;&amp;gt;&amp;gt;RSOAPServer=SOAProxy(“http://localhost:9081”)  # as indicated by RSOAPManager&lt;br /&gt;&lt;br /&gt;To check if the connection is ok&lt;br /&gt;&amp;gt;&amp;gt;RSOAPServer.echo(“something”) #the server will reply to what ever we write&lt;br /&gt;'something'&lt;br /&gt;&lt;br /&gt;Requesting a new R session and port information:&lt;br /&gt;&amp;gt;&amp;gt;RSessionURL=RSOAPServer.newServer() #  the reply should be http://localhost:9083  if the reply is 'None' it didnt opened the session&lt;br /&gt;&lt;br /&gt;It is also possible to keep track of the ports using the nmap in the bash shell:&lt;br /&gt;&amp;gt;nmap -v -p9080-9090 localhost&lt;br /&gt;&lt;br /&gt;The making the actual connection to the R session&lt;br /&gt;&amp;gt;&amp;gt;RSession=SOAPProxy(RSessionURL)&lt;br /&gt;&lt;br /&gt;checking:&lt;br /&gt;&amp;gt;&amp;gt;RSession.echo(“test”) # for killing session : RSession.quit()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3 major ways to deal with the R session: function call, eval, script. The first one (call) is used to call functions and pass parameters, eval is used to send lines of commands (ex: names(ssa)&amp;lt;-c(“x”,”y”,”z”)) and script to process complete scripts.&lt;br /&gt;&lt;br /&gt;For the semivariogram creation it will be used the sgeostat pack. The first thing is to load the library&lt;br /&gt;&lt;br /&gt;&amp;gt;&amp;gt;RSession.call(“library”,”sgeostat”) #fist it is called the functions and then the parameters to pass&lt;br /&gt;&lt;br /&gt;Using sgeostat it is necessary the following steps to create a semivariogram&lt;br /&gt;-Upload data&lt;br /&gt;-Create point object&lt;br /&gt;-Create pair object&lt;br /&gt;-Estimate  the semi-variogram&lt;br /&gt;&lt;br /&gt;For loading the data set and creating the data object (ssa):&lt;br /&gt;&amp;gt;&amp;gt;RSession.eval("ssa&amp;lt;-read.csv(file='/home/jesus/doutoramento/db/SSA.csv',header=FALSE,sep=';')")&lt;br /&gt;&lt;br /&gt;The eval will pass the command R.&lt;br /&gt;&lt;br /&gt;to see the new object:&lt;br /&gt;&amp;gt;&amp;gt;RSession.call(“ls”)&lt;br /&gt;'ssa'&lt;br /&gt;&lt;br /&gt;For the other sequential commands it is better to use the script option. Normally for this method it is assumed the \n as the escape char for separation, it also allows for prompts when the echo option is activated.&lt;br /&gt;&lt;br /&gt;script_text="names(ssa)&amp;lt;-c('x','y','z') \n ssa.point&amp;lt;-point(ssa) \n ssa.pair&amp;lt;-pair(ssa.point) \n ssa.estvar&amp;lt;-est.variogram(ssa.point,ssa.pair,'z')"&lt;br /&gt;&lt;br /&gt;Sending the script:&lt;br /&gt;&amp;gt;&amp;gt;Rsession.script(script_text)&lt;br /&gt;&lt;br /&gt;Checking:&lt;br /&gt;&amp;gt;&amp;gt;RSession.call("ls")&lt;br /&gt;['resultText', 'ssa', 'ssa.estvar', 'ssa.pair', 'ssa.point']&lt;br /&gt;&lt;br /&gt;Normally to output the result I use png() to save the result as a png file, the problem is that X11() device is deactivated (it took me sometime to discover....), to see what device is being used:&lt;br /&gt;&lt;br /&gt;&amp;gt;&amp;gt;RSession.call(“getOption”,”device”)&lt;br /&gt;'postscript'&lt;br /&gt;&lt;br /&gt;Another possibility is to use the PDF output&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; RSession.eval("options(device='pdf')")&lt;br /&gt;&lt;br /&gt;Using the PDF the result will be dumped using a script that opens the PDF device, plots, closes/saves&lt;br /&gt;&amp;gt;&amp;gt;script_text2="pdf(file='/home/jesus/tmp/sv.pdf') \n plot(ssa.estvar) \n dev.off()"&lt;br /&gt;&amp;gt;&amp;gt; RSession.script(script_text2)&lt;br /&gt;&lt;br /&gt;The result should be the SV PDF image with the semivariogram :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-331521916353474770?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/331521916353474770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=331521916353474770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/331521916353474770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/331521916353474770'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/08/creation-of-semi-variogram-using-rsoap.html' title='Creation of a Semi-Variogram using RSOAP and Python'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8179975709982743360</id><published>2007-08-02T17:33:00.000+01:00</published><updated>2007-08-02T17:37:21.864+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAPpy'/><category scheme='http://www.blogger.com/atom/ns#' term='R server'/><category scheme='http://www.blogger.com/atom/ns#' term='RSOAP'/><title type='text'>RSOAP server</title><content type='html'>R is excellent for advance calculations like geostatistics or data set processing. In modern days with web 2.0 were everything is done in the web and not on the desktop it would be practical to have R as a server to process requests.&lt;br /&gt;&lt;br /&gt;R can integrate  in common internet languages like Python, Perl and PHP (this integration is still a bit weak....). These languages simple use R as an extension/module of their own features, another option is to access R as a web service, allowing for R to be a server replying to the requests of clients (what ever the client might be)&lt;br /&gt;&lt;br /&gt;SOAP is a protocol for exchanging XML messages over networks, these messages can contain data, execution calls etc., using the RSOAP module (that was developed using RPy)  it allows for R  to work as a server replying to requests made using this protocol.&lt;br /&gt;&lt;br /&gt;The RSOAP 1.1.4 depends on R&gt;=1.4.1 ; Rpy &gt;=0.3.0 ; PyXML &gt;=0.7 ; Python &gt;= 2.1 ; SOAPpy &gt;= 0.9.8 and R-library session &gt;= 1.0&lt;br /&gt;&lt;br /&gt;All the necessary tools are simple to install and don't give major headaches.... (python setup.py install tango dance....)&lt;br /&gt;&lt;br /&gt;The RSOAP runs as total independent process listening to a specific port. In the script directory or RSOAP (in my case: /usr/local/src/RSOAP-1.1.4/scripts) there is the RSOAPManager script that activates the RSOAP server. As specifications it is possible to define the port to be used as the SOAP server and to the lower and upper limit of the R session ports, and of course the always useful debug options&lt;br /&gt;&lt;br /&gt;Basically RSOAP starts a SOAP server at port 9081, this port listens for requests of R sessions. After  a request for a session is made, the server opens a port (starting with 9082+1 till 65535 ) for R command listening, this allows for 1 SOAP server to process different sessions from different clients at different ports.&lt;br /&gt;&lt;br /&gt;Using the –debug option the .config.dumpSOAPout=1 and .config.dumpSOAPin=1  (options of the SOAP server object) will be activated dumping all the SOAP requests to the shell for debugging, this is very useful....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8179975709982743360?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8179975709982743360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8179975709982743360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8179975709982743360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8179975709982743360'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/08/rsoap-server.html' title='RSOAP server'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-361073117420156777</id><published>2007-07-31T15:36:00.000+01:00</published><updated>2007-07-31T15:40:07.447+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAPpy'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>SOAPpy small bug</title><content type='html'>Installing SOAPpy 0.12.0 on python 2.5  I got the following error:&lt;br /&gt;&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;  File "setup.py", line 8, in &lt;module&gt;&lt;br /&gt;    from SOAPpy.version import __version__&lt;br /&gt;  File "/usr/local/src/SOAPpy-0.12.0/SOAPpy/__init__.py", line 5, in &lt;module&gt;&lt;br /&gt;    from Client      import *&lt;br /&gt;  File "/usr/local/src/SOAPpy-0.12.0/SOAPpy/Client.py", line 46&lt;br /&gt;    from __future__ import nested_scopes&lt;br /&gt;SyntaxError: from __future__ imports must occur at the beginning of the file&lt;br /&gt;&lt;br /&gt;The solution is to open file Client.py and copy/past the "from __future__ imports" line to be the first import.&lt;br /&gt;&lt;br /&gt;The same error will appear in several files and also during installation, but the solution is always the same&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-361073117420156777?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/361073117420156777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=361073117420156777' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/361073117420156777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/361073117420156777'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/07/soappy-small-bug.html' title='SOAPpy small bug'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-2625391542178801582</id><published>2007-07-26T08:24:00.000+01:00</published><updated>2007-07-26T08:29:59.676+01:00</updated><title type='text'>Easier way to check python</title><content type='html'>Like we say in Portuguese "Who knows, know it" here is an easier way to get the mod_python info (posted by Grahan Dumpleton in the comments)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    It is easier to go:&lt;br /&gt;&lt;br /&gt;    &amp;lt;Location /mpinfo&amp;gt;&lt;br /&gt;    SetHandler mod_python&lt;br /&gt;    PythonHandler mod_python.testhandler&lt;br /&gt;    &amp;lt;/Location&amp;gt;&lt;br /&gt;&lt;br /&gt;    and then use '/mpinfo' as URL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-2625391542178801582?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/2625391542178801582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=2625391542178801582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2625391542178801582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2625391542178801582'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/07/easier-way-to-check-python.html' title='Easier way to check python'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-3025823271391958169</id><published>2007-07-25T13:53:00.000+01:00</published><updated>2007-07-25T14:02:31.811+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='info'/><category scheme='http://www.blogger.com/atom/ns#' term='testhandler'/><category scheme='http://www.blogger.com/atom/ns#' term='mod_python'/><title type='text'>mod_python info server request</title><content type='html'>This is how information of the server and options can be made with mod_python 3.3.1 (like to do phpinfo() in PHP)&lt;br /&gt;&lt;br /&gt;1. Make a /test directory in the htdocs tree&lt;br /&gt;&lt;br /&gt;2. Create a directory structure in the httpd.conf as follow:&lt;br /&gt;&lt;br /&gt;&amp;#60;Directory "/usr/local/apache2/htdocs/test"&amp;#62;&lt;br /&gt;Options Indexes FollowSymLinks&lt;br /&gt;AllowOverride All&lt;br /&gt;AddHandler mod_python .py&lt;br /&gt;PythonHandler mod_python.testhandler&lt;br /&gt;PythonDebug On&lt;br /&gt;Order allow,deny&lt;br /&gt;Allow from all&lt;br /&gt;&amp;#60;/Directory&amp;#62;&lt;br /&gt;&lt;br /&gt;3. Restart Apache&lt;br /&gt;&lt;br /&gt;4. Point to some hypothetical python script: http://localhost/test/ImaginaryScript.py&lt;br /&gt;&lt;br /&gt;And the information of mod_python and apache should appear!!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-3025823271391958169?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/3025823271391958169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=3025823271391958169' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3025823271391958169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3025823271391958169'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/07/modpython-info-server-request.html' title='mod_python info server request'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-3724331884593289896</id><published>2007-06-12T16:35:00.000+01:00</published><updated>2007-06-12T16:50:27.615+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='no error'/><category scheme='http://www.blogger.com/atom/ns#' term='header'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><title type='text'>IE header problem in Ka Map print_map.php</title><content type='html'>I was thinking that everything was ok with the printing system, but yesterday I was with my supervisors and he used Internet Explorer, when he tried to download and image file with the screen content of Ka-maps, the IE said:&lt;br /&gt;"Internet Explorer cannot download...cale12000000&amp;output_type=JPEG"&lt;br /&gt;&lt;br /&gt;"Internet Explorer was not able to open this Internet site"&lt;br /&gt;&lt;br /&gt;Since I saw the &amp; and some GET like structure I thought it was some PHP error....&lt;br /&gt;&lt;br /&gt;The problem is in the header creation of the print_map.php, which works fine for Firefox but it has some problems with IE.&lt;br /&gt;&lt;br /&gt;I have searched on the PHP tutorial help and read several things and so far the best header is something like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$mm_type="image".strtolower($_REQUEST['output_type']);&lt;br /&gt;$filename_ext=$oMap-&gt;name . ".".strtolower($_REQUEST['output_type']);&lt;br /&gt;header("Cache-Control: public, must-revalidate\n");&lt;br /&gt;header("Expires: Mon, 26 Jul 1997 05:00:00 GMT\n");&lt;br /&gt;header('Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT'.'\n');&lt;br /&gt;header("Cache-Control: no-store, no-cache, must-revalidate\n");&lt;br /&gt;header("Cache-Control: post-check=0, pre-check=0\n", false );&lt;br /&gt;header("Pragma: Internet Explorer is shitty\n"); //Otherwise it will give error&lt;br /&gt;header("Content-Type: " . $mm_type."\n");&lt;br /&gt;header("Content-Length: " .(string)(filesize($szImg))."\n");&lt;br /&gt;header('Content-Disposition: attachment; filename='.$filename_ext."\n");&lt;br /&gt;header("Content-Transfer-Encoding: binary\n");&lt;br /&gt;fpassthru($h);&lt;br /&gt;fclose($h);&lt;br /&gt;&lt;br /&gt;-The headers for what I read are prepared for non-cache in HTTP 1.0 and 1.1&lt;br /&gt;-Without the Pragma: (something), IE will give the same error, I haven't found why, but is what people do&lt;br /&gt;- The \n is seems to be necessary for IE7 that needs a more tight header (but I haven't checked if it's true)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-3724331884593289896?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/3724331884593289896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=3724331884593289896' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3724331884593289896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3724331884593289896'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/06/ie-header-problem-in-ka-map-printmapphp.html' title='IE header problem in Ka Map print_map.php'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-3983068967252070836</id><published>2007-06-10T14:51:00.000+01:00</published><updated>2007-06-10T15:01:20.944+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='getElementsByTagName'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='problem'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='parse'/><title type='text'>XML parse problem with getElementsByTagName()</title><content type='html'>Today a college checked the WebGIS and she noticed the WCS request was not working. With me everything was fine but not with her, the difference is that I use Firefox while she is on IE6&lt;br /&gt;&lt;br /&gt;So I have discovered that there is a problem parsing the XML of the describeCoverage request of the WCS.&lt;br /&gt;&lt;br /&gt;I was using something like this to get the pixel resolution from the offsetVector information of the XML reply&lt;br /&gt;&lt;br /&gt;var RESnode=xmldoc.getElementsByTagName("offsetVector");&lt;br /&gt;var sRESX=RESnode[0].firstChild.nodeValue;&lt;br /&gt;var RESX=sRESX.split(" "); //array with resx in this case the first value is the important one&lt;br /&gt;var sRESY=RESnode[1].firstChild.nodeValue;&lt;br /&gt;var RESY=sRESY.split(" ");&lt;br /&gt;&lt;br /&gt;This gets the X,Y resolution of the image using FireFox&lt;br /&gt;&lt;br /&gt;The problem is that tag offsetVector is in reality gml:offsetVector, as the specification of the WCS is to include the type of XML structure, well FireFox doesn't care about anything before the :&lt;br /&gt;&lt;br /&gt;I have found a simple solution in this blog: &lt;br /&gt;http://learningremix.net/w2007integ/jeff/2007/03/re_problem_related_to_parsing_xml.shtml&lt;br /&gt;&lt;br /&gt;So in case the XML reply is empty I am using another tag name:&lt;br /&gt;&lt;br /&gt;var RESnode=xmldoc.getElementsByTagName("offsetVector");&lt;br /&gt;if (RESnode.length == 0) {&lt;br /&gt;var RESnode = xmldoc.getElementsByTagName("gml:offsetVector");&lt;br /&gt;}&lt;br /&gt;var sRESX=RESnode[0].firstChild.nodeValue;&lt;br /&gt;var RESX=sRESX.split(" "); //array with resx in this case the first value is the important one&lt;br /&gt;var sRESY=RESnode[1].firstChild.nodeValue;&lt;br /&gt;var RESY=sRESY.split(" ");&lt;br /&gt;&lt;br /&gt;PROBLEM SOLVED !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-3983068967252070836?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/3983068967252070836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=3983068967252070836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3983068967252070836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3983068967252070836'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/06/xml-parse-problem-with.html' title='XML parse problem with getElementsByTagName()'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-5731571000368525941</id><published>2007-06-04T14:12:00.000+01:00</published><updated>2007-06-04T14:16:12.202+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapserver'/><category scheme='http://www.blogger.com/atom/ns#' term='google earth'/><category scheme='http://www.blogger.com/atom/ns#' term='WMS'/><title type='text'>Mapserver Versus Google Earth</title><content type='html'>Thinking of using google earth as a WMS layer in your mapserver project ??! Then think again !!!&lt;br /&gt;&lt;br /&gt;Gregor Mosheh &lt;email_removed&gt;&lt;br /&gt;Reply-To: Gregor Mosheh &lt;email_removed&gt;&lt;br /&gt;Date: Thu, 1 Mar 2007 10:17:58 -0700&lt;br /&gt;Content-Type: text/plain&lt;br /&gt;&lt;br /&gt;There's no way to use Google Maps in Mapserver, due to Google's terms of&lt;br /&gt;use. Some folks wrote a WMS gateway to Google Maps, for example, and got a&lt;br /&gt;cease-and-desist for it.&lt;br /&gt;&lt;br /&gt;There are other options, though, if you're willing/able to serve up your&lt;br /&gt;Mapserver output via WMS. A) You could use Mapserver's WMS output in a&lt;br /&gt;Google Map, because Google doesn't have a problem with that. B) Look for a&lt;br /&gt;framework that supports both WMS and Google Maps and use that to import&lt;br /&gt;both your WMS output and Google's basemap; I know that OpenLayers had&lt;br /&gt;Google Maps support on their drawing board, but I don't know the status of&lt;br /&gt;it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Source: Mapserver Mailing List&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-5731571000368525941?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/5731571000368525941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=5731571000368525941' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/5731571000368525941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/5731571000368525941'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/06/mapserver-versus-google-earth.html' title='Mapserver Versus Google Earth'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-2586556432570078364</id><published>2007-05-25T14:45:00.000+01:00</published><updated>2007-05-25T14:59:17.548+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hotel'/><category scheme='http://www.blogger.com/atom/ns#' term='points'/><category scheme='http://www.blogger.com/atom/ns#' term='google earth'/><title type='text'>google maps</title><content type='html'>I had to make a google map with the locations of hotel for the participants of the &lt;a href="http://www.ualg.pt/aemp2007"&gt;AEMP2007&lt;/a&gt; congress. The API of google maps is very simple:&lt;br /&gt;1) Creation of the map including center point and zoom used&lt;br /&gt;2) Include controls&lt;br /&gt;3) Creation of the Icons to be used&lt;br /&gt;4) Adding a point to the map and making a marker (clicking the point it will display HTML)&lt;br /&gt;5) Div section with the map on the webpage&lt;br /&gt;&lt;br /&gt;There is a nice webpage with google maps icons:&lt;br /&gt;http://www.econym.demon.co.uk/googlemaps/geicons.htm&lt;br /&gt;&lt;br /&gt;1) Creation of the map:&lt;br /&gt;function load() {&lt;br /&gt;      if (GBrowserIsCompatible()) {&lt;br /&gt;        var map = new GMap2(document.getElementById("map"));&lt;br /&gt;        map.setCenter(new GLatLng(37.03339,-7.95112), 13);&lt;br /&gt; map.setMapType(G_HYBRID_TYPE);&lt;br /&gt;&lt;br /&gt;2) Include controls&lt;br /&gt;       map.addControl(new GSmallMapControl());&lt;br /&gt;       map.addControl(new GMapTypeControl(true));&lt;br /&gt;&lt;br /&gt;3) Creation of Hotel icon&lt;br /&gt;&lt;br /&gt;      var iconHotel = new GIcon();&lt;br /&gt;      iconHotel.image = "http://maps.google.com/mapfiles/kml/pal2/icon20.png";&lt;br /&gt;      iconHotel.shadow = "http://maps.google.com/mapfiles/kml/pal2/icon20s.png";&lt;br /&gt;      iconHotel.iconSize = new GSize(32, 32);&lt;br /&gt;      iconHotel.shadowSize = new GSize(37, 34);&lt;br /&gt;      iconHotel.iconAnchor = new GPoint(9, 34);&lt;br /&gt;      iconHotel.infoWindowAnchor = new GPoint(9, 2);&lt;br /&gt;      iconHotel.infoShadowAnchor = new GPoint(18, 25);&lt;br /&gt;&lt;br /&gt;4) Adding Point and marker&lt;br /&gt;   var pointIbis = new GLatLng(37.03339,-7.95112);&lt;br /&gt;      var markerIbis=new GMarker(pointIbis,iconHotel)&lt;br /&gt;      map.addOverlay(markerIbis);&lt;br /&gt;     GEvent.addListener(markerIbis, "click", function() {&lt;br /&gt;     markerIbis.openInfoWindowHtml("&amp;#060;b&amp;#062;Hotel Ibis&amp;#060;/b&amp;#062;");&lt;br /&gt;   }); //don't forget this&lt;br /&gt;&lt;br /&gt;and closing the load function and if statement:&lt;br /&gt;}&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;- The function load() is called inside the body tag with the onload event&lt;br /&gt; &amp;#060;body onload="load()"&amp;#062;&lt;br /&gt;&lt;br /&gt;- The DIV in the page couldn't be simpler&lt;br /&gt; &amp;#060;div id="map" style="width: 600px; height: 400px"&amp;#062;&amp;#060;/div&amp;#062;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-2586556432570078364?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/2586556432570078364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=2586556432570078364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2586556432570078364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2586556432570078364'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/05/google-maps.html' title='google maps'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-4609814084767259517</id><published>2007-05-18T21:02:00.000+01:00</published><updated>2007-05-18T21:12:30.291+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Array'/><category scheme='http://www.blogger.com/atom/ns#' term='data XML'/><category scheme='http://www.blogger.com/atom/ns#' term='fetch'/><title type='text'>GML information in array form</title><content type='html'>The GML information is structured like this in the $key  (dump programmin in the post below)&lt;br /&gt;&lt;br /&gt;Keys array&lt;br /&gt;&lt;br /&gt;Array&lt;br /&gt;(&lt;br /&gt;    [SCHEMA] =&gt; Array&lt;br /&gt;        (&lt;br /&gt;            [0] =&gt; 0&lt;br /&gt;            [1] =&gt; 2&lt;br /&gt;            [2] =&gt; 4&lt;br /&gt;            [3] =&gt; 50&lt;br /&gt;            [4] =&gt; 51&lt;br /&gt;        )&lt;br /&gt;&lt;br /&gt;    [IMPORT] =&gt; Array&lt;br /&gt;        (&lt;br /&gt;            [0] =&gt; 1&lt;br /&gt;        )&lt;br /&gt;&lt;br /&gt;    [ELEMENT] =&gt; Array&lt;br /&gt;        (&lt;br /&gt;            [0] =&gt; 3&lt;br /&gt;            [1] =&gt; 9&lt;br /&gt;            [2] =&gt; 11&lt;br /&gt;            [3] =&gt; 13&lt;br /&gt;            [4] =&gt; 15&lt;br /&gt;            [5] =&gt; 17&lt;br /&gt;            [6] =&gt; 19&lt;br /&gt;            [7] =&gt; 21&lt;br /&gt;            [8] =&gt; 23&lt;br /&gt;            [9] =&gt; 25&lt;br /&gt;            [10] =&gt; 27&lt;br /&gt;            [11] =&gt; 29&lt;br /&gt;            [12] =&gt; 31&lt;br /&gt;            [13] =&gt; 33&lt;br /&gt;            [14] =&gt; 35&lt;br /&gt;            [15] =&gt; 37&lt;br /&gt;            [16] =&gt; 39&lt;br /&gt;            [17] =&gt; 41&lt;br /&gt;        )&lt;br /&gt;&lt;br /&gt;    [COMPLEXTYPE] =&gt; Array&lt;br /&gt;     ........................ (more) .............&lt;br /&gt;&lt;br /&gt;The number indicated by the key and the nested arrays is the location of of the specific tags inside the values array, for example the data from the first ELEMENT Tag will be in position 3 of the $Values array ([ELEMENT] =&gt; Array([0] =&gt; 3....)&lt;br /&gt;Values array&lt;br /&gt;&lt;br /&gt;Array&lt;br /&gt;(&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;[3] =&gt; Array&lt;br /&gt;        (&lt;br /&gt;            [tag] =&gt; ELEMENT&lt;br /&gt;            [type] =&gt; complete&lt;br /&gt;            [level] =&gt; 2&lt;br /&gt;            [attributes] =&gt; Array&lt;br /&gt;                (&lt;br /&gt;                    [NAME] =&gt; major_cities&lt;br /&gt;                    [TYPE] =&gt; ms:major_citiesType&lt;br /&gt;                    [SUBSTITUTIONGROUP] =&gt; gml:_Feature&lt;br /&gt;                )&lt;br /&gt;&lt;br /&gt;        )&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;&lt;br /&gt;An example to fetch the NAME data from the first ELEMENT would be:&lt;br /&gt;$values[$keys["ELEMENT"][0]]["attributes"]["NAME"]&lt;br /&gt;&lt;br /&gt;or using a more sofisticate approach with the point functions of PHP:&lt;br /&gt;$values[reset($keys["ELEMENT"])]["attributes"]["NAME"]&lt;br /&gt;&lt;br /&gt;This is not as sofisticates as the XML-DOM system but it works fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-4609814084767259517?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/4609814084767259517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=4609814084767259517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/4609814084767259517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/4609814084767259517'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/05/gml-information-in-array-form.html' title='GML information in array form'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-6891354129038079882</id><published>2007-05-18T20:45:00.000+01:00</published><updated>2007-05-18T21:01:58.425+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Output'/><category scheme='http://www.blogger.com/atom/ns#' term='DescribeFeatureType'/><title type='text'>WFS reply to DescribeFeatureType</title><content type='html'>This is the GML version 2 that the DescribeFeatureType will produce from a layer containing the most important cities of the study area:&lt;br /&gt;&lt;br /&gt;&amp;#060;schema targetNamespace="http://mapserver.gis.umn.edu/mapserver" elementFormDefault="qualified" version="0.1"&amp;#062;&lt;br /&gt;&amp;#060;import namespace="http://www.opengis.net/gml" schemaLocation="http://schemas.opengis.net/gml/2.1.2/feature.xsd"/&amp;#062;&lt;br /&gt;&amp;#060;element name="major_cities" type="ms:major_citiesType" substitutionGroup="gml:_Feature"/&amp;#062;&lt;br /&gt; &amp;#060;complexType name="major_citiesType"&amp;#062;&lt;br /&gt; &amp;#060;complexContent&amp;#062;&lt;br /&gt; &amp;#060;extension base="gml:AbstractFeatureType"&amp;#062;&lt;br /&gt; &amp;#060;sequence&amp;#062;&lt;br /&gt;&amp;#060;element name="msGeometry" type="gml:GeometryPropertyType" minOccurs="0" maxOccurs="1"/&amp;#062;&lt;br /&gt;&amp;#060;element name="cat" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="AREA" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="PERIMETER" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="CITIES_" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="CITIES_ID" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="CITY_NAME" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="GMI_ADMIN" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="ADMIN_NAME" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="FIPS_CNTRY" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="CNTRY_NAME" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="STATUS" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="POP_RANK" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="POP_CLASS" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="PORT_ID" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="AREA_1" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;element name="LEN" type="string"/&amp;#062;&lt;br /&gt;&amp;#060;/sequence&amp;#062;&lt;br /&gt;&amp;#060;/extension&amp;#062;&lt;br /&gt;&amp;#060;/complexContent&amp;#062;&lt;br /&gt;&amp;#060;/complexType&amp;#062;&lt;br /&gt;&amp;#060;/schema&amp;#062;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-6891354129038079882?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/6891354129038079882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=6891354129038079882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/6891354129038079882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/6891354129038079882'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/05/wfs-reply-to-describefeaturetype.html' title='WFS reply to DescribeFeatureType'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-2890193434492936363</id><published>2007-05-18T20:32:00.000+01:00</published><updated>2007-05-18T20:42:44.126+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Array'/><category scheme='http://www.blogger.com/atom/ns#' term='conversion'/><category scheme='http://www.blogger.com/atom/ns#' term='WFS'/><category scheme='http://www.blogger.com/atom/ns#' term='GML'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>WFS XML verbose to Array structure</title><content type='html'>I was expecting for the WFS reply to be more "friendly" meaning the Mapserver dump in GML to be easily openned by other programs like ArcGIS. But is not the case....since my supervisor wants the results to be in CSV I have to send sometime on it.&lt;br /&gt;&lt;br /&gt;Meanwhile I have a nice way of concerting the mapserver WFS reply to an array structure using PHP XML Parser (I should have used the XML-DOM parser but it was a bit to advanced..., also I couldn't find any nice class to deal with it in the website php classes)&lt;br /&gt;&lt;br /&gt;(programming requesting the WFS layer)&lt;br /&gt;&lt;br /&gt;$buffer = ms_iogetstdoutbufferstring();&lt;br /&gt;ms_ioresethandlers();&lt;br /&gt;&lt;br /&gt;//creation of the values and keys containing the DescribeFeatureType or GetFeature&lt;br /&gt;$xp = xml_parser_create();&lt;br /&gt;xml_parse_into_struct($xp,$buffer,$values_meta,$keys_meta);&lt;br /&gt;xml_parser_free($xp);&lt;br /&gt;&lt;br /&gt;//dumping all the array structure for checking&lt;br /&gt;echo "Keys array_meta&amp;#060;br&amp;#062;&amp;#060;br&amp;#062;&amp;#060;pre&amp;#062;";&lt;br /&gt;print_r($keys_data);&lt;br /&gt;echo "&amp;#060;/pre&amp;#062;&amp;#060;br&amp;#062;&amp;#060;br&amp;#062;Values array_meta&amp;#060;br&amp;#062;&amp;#060;br&amp;#062;&amp;#060;pre&amp;#062;";&lt;br /&gt;print_r($values_data);&lt;br /&gt;echo "&amp;#060;/pre&gt;";&lt;br /&gt;&lt;br /&gt;The example is from the book "Beginning PHP5" and it was the simplest way I found to pass everything to arrays&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-2890193434492936363?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/2890193434492936363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=2890193434492936363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2890193434492936363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2890193434492936363'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/05/wfs-xml-verbose-to-array-structure.html' title='WFS XML verbose to Array structure'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-3735181478543615234</id><published>2007-05-13T11:00:00.000+01:00</published><updated>2007-05-15T13:23:30.861+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JRC'/><category scheme='http://www.blogger.com/atom/ns#' term='Ticks'/><category scheme='http://www.blogger.com/atom/ns#' term='Ispra'/><title type='text'>I can't belive it I got the job !!!!</title><content type='html'>I was a couple of days in the Alentejo region working on a research field and had to take care of some temperature logger and collect soil samples for a project. I discovered that the field was infested with ticks, after I got home by the end of the week I discovered 3 ticks on my body, it was a bit painful to take the bitches out with alcohol.&lt;br /&gt;&lt;br /&gt;But the good news was that I got the job at the JRC in Ispra, I just have to pass a medical exam and to send some documentation and if everything goes according to plan I am starting at the 16th July.&lt;br /&gt;&lt;br /&gt;This means that I have to finish the WFS system in the CALTER project As Soon As Possible!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-3735181478543615234?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/3735181478543615234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=3735181478543615234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3735181478543615234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3735181478543615234'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/05/i-cant-belive-it-i-got-job.html' title='I can&apos;t belive it I got the job !!!!'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-6424299051339077308</id><published>2007-04-20T17:48:00.000+01:00</published><updated>2007-04-20T18:00:21.757+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='popup'/><category scheme='http://www.blogger.com/atom/ns#' term='WxS'/><title type='text'>PHP popup</title><content type='html'>This is the PHP that will make the popup, it is more or less prepared for when the WFS is installed:&lt;br /&gt;&lt;br /&gt;&amp;#060;?php&lt;br /&gt;/* This PHP will generate the HTML code for the final submission of the request&lt;br /&gt;The Javascript calling string is :&lt;br /&gt; url_str='popup.php?service='+OWS_service+'&amp;request=getCoverage&amp;COVERAGE='+OWS_name+'&amp;CRS='+CRS+'&amp;BBOX='+BBOX.join(",")+'&amp;RESX='+RESX[0]+'&amp;RESY='+(-1*parseFloat(RESY[1]))+'&amp;FORMAT='+FORMAT; */&lt;br /&gt;&lt;br /&gt;?&amp;#062;&lt;br /&gt;&lt;br /&gt;&amp;#060;body&amp;#062;&lt;br /&gt;&amp;#060;table width="350px" border="0"&amp;#062;&lt;br /&gt;  &amp;#060;tbody&amp;#062;&lt;br /&gt;    &amp;#060;tr bgcolor="#CFCFCF" &amp;#062;&lt;br /&gt;      &amp;#060;td&gt;&amp;#060;?php echo(strtoupper($_GET["service"])); ?&amp;#062; name:&amp;#060;/td&amp;#062;&lt;br /&gt; &amp;#060;!--getting the name of layer --&amp;#062;&lt;br /&gt; &amp;#060;?php if (strnatcasecmp ($_GET["service"],'wcs') == 0){&lt;br /&gt;  $OWS_name=$_GET["COVERAGE"];&lt;br /&gt;          }&lt;br /&gt;        ?&amp;#062;&lt;br /&gt;      &amp;#060;td align="center" &amp;#062;&amp;#060;?php echo($OWS_name); ?&amp;#062;&amp;#060;/td&amp;#062;&lt;br /&gt;   &amp;#060;/tr&amp;#062;&lt;br /&gt;    &amp;#060;tr&amp;#062;&lt;br /&gt;      &amp;#060;td&amp;#062;CRS (projection):&amp;#060;/td&amp;#062;&lt;br /&gt;      &amp;#060;td align="center"&amp;#062;&amp;#060;?php echo($_GET["CRS"]); ?&gt;&amp;#060;/td&amp;#062;&lt;br /&gt;    &amp;#060;/tr&amp;#062;&lt;br /&gt;    &amp;#060;tr bgcolor="#CFCFCF"&amp;#062;&lt;br /&gt;&amp;#060;!-- getting the bbox back to array --&amp;#062;&lt;br /&gt;    &amp;#060;?php&lt;br /&gt;    $BBOX=explode(",",$_GET["BBOX"]); ?&amp;#062;&lt;br /&gt;      &amp;#060;td&amp;#062;BBOX minX:&amp;#060;/td&amp;#062;&lt;br /&gt;      &amp;#060;td align="center"&amp;#062;&amp;#060;?php echo($BBOX[0]); echo(" &amp;#186; N"); ?&gt;&amp;#060;/td&amp;#062;&lt;br /&gt;    &amp;#060;/tr&amp;#062;&lt;br /&gt;    &amp;#060;tr&amp;#062;&lt;br /&gt;      &amp;#060;td&amp;#062;BBOX minY:&amp;#060;/td&amp;#062;&lt;br /&gt;      &amp;#060;td align="center"&amp;#062;&amp;#060;?php echo($BBOX[1]); echo(" &amp;#186; N"); ?&amp;#062;&amp;#060;/td&amp;#062;&lt;br /&gt;    &amp;#060;/tr&amp;#062;&lt;br /&gt;    &amp;#060;tr bgcolor="#CFCFCF"&amp;#062;&lt;br /&gt;      &amp;#060;td&amp;#062;BBOX maxX:&amp;#060;/td&amp;#062;&lt;br /&gt;      &amp;#060;td align="center"&amp;#062;&amp;#060;?php echo($BBOX[2]); echo(" &amp;#186; W"); ?&gt;&amp;#060;/td&amp;#062;&lt;br /&gt;    &amp;#060;/tr&amp;#062;&lt;br /&gt;    &amp;#060;tr&amp;#062;&lt;br /&gt;      &amp;#060;td&gt;BBOX maxY:&amp;#060;/td&amp;#062;&lt;br /&gt;      &amp;#060;td align="center"&amp;#062;&amp;#060;?php echo($BBOX[3]); echo(" &amp;#186; W"); ?&gt;&amp;#060;/td&amp;#062;&lt;br /&gt;   &amp;#060;/tr&amp;#062;&lt;br /&gt;     &amp;#060;tr bgcolor="#CFCFCF"&amp;#062;&lt;br /&gt;      &amp;#060;td&amp;#062;ResX:&amp;#060;/td&amp;#062;&lt;br /&gt;      &amp;#060;td align="center"&amp;#062;&amp;#060;?php echo($_GET["RESX"]); ?&gt;&amp;#060;/td&amp;#062;&lt;br /&gt;   &amp;#060;/tr&amp;#062;&lt;br /&gt;     &amp;#060;tr&amp;#062;&lt;br /&gt;      &amp;#060;td&gt;ResY:&amp;#060;/td&amp;#062;&lt;br /&gt;      &amp;#060;td align="center"&amp;#062;&amp;#060;?php echo("-"); echo($_GET["RESY"]); ?&gt;&amp;#060;/td&amp;#062;&lt;br /&gt;   &amp;#060;/tr&amp;#062;&lt;br /&gt;     &amp;#060;tr bgcolor="#CFCFCF"&amp;#062;&lt;br /&gt;      &amp;#060;td&amp;#062;Format:&amp;#060;/td&amp;#062;&lt;br /&gt;      &amp;#060;td align="center"&amp;#062;&amp;#060;?php echo($_GET["FORMAT"]); ?&gt;&amp;#060;/td&amp;#062;&lt;br /&gt;   &amp;#060;/tr&amp;#062;&lt;br /&gt;  &amp;#060;/tbody&amp;#062;&lt;br /&gt;&amp;#060;/table&amp;#062;&lt;br /&gt;&lt;br /&gt;&amp;#060;!--building request--&amp;#062;&lt;br /&gt;&amp;#060;?php &lt;br /&gt;//checking the service&lt;br /&gt;if (strnatcasecmp ($_GET["service"],'wcs') == 0) {&lt;br /&gt;&lt;br /&gt;//start of form&lt;br /&gt;echo('&amp;#060;FORM action="ows.php" method="GET"&amp;#062;&amp;#060;input type="hidden" name="service" value="WCS"&amp;#062;&amp;#060;input type="hidden" name="request" value="getCoverage"&amp;#062;&amp;#060;input type="hidden" name="coverage" value="');echo($OWS_name);echo('"&amp;#062;');&lt;br /&gt;&lt;br /&gt;//mid section&lt;br /&gt;echo('&amp;#060;input type="hidden" name="CRS" value="');echo($_GET["CRS"]);echo('"&amp;#062;');&lt;br /&gt;echo('&amp;#060;input type="hidden" name="BBOX" value="');echo($_GET["BBOX"]);echo('"&amp;#062;');&lt;br /&gt;echo('&amp;#060;input type="hidden" name="RESX" value="');echo($_GET["RESX"]);echo('"&amp;#062;');&lt;br /&gt;echo('&amp;#060;input type="hidden" name="RESY" value="');echo($_GET["RESY"]);echo('"&amp;#062;');&lt;br /&gt;echo('&amp;#060;input type="hidden" name="FORMAT" value="');echo($_GET["FORMAT"]);echo('"&amp;#062;');&lt;br /&gt;&lt;br /&gt;//final secion&lt;br /&gt;echo('&amp;#060;p align="center"&amp;#062;&amp;#060;INPUT type="submit" value="Request Coverage"&amp;#062;&amp;#060;/p&amp;#062;&amp;#060;/FORM&amp;#062;');&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;?&amp;#062;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-6424299051339077308?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/6424299051339077308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=6424299051339077308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/6424299051339077308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/6424299051339077308'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/php-popup.html' title='PHP popup'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-6801525630335078814</id><published>2007-04-20T17:41:00.000+01:00</published><updated>2007-04-20T17:48:26.264+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='function'/><category scheme='http://www.blogger.com/atom/ns#' term='OWS'/><category scheme='http://www.blogger.com/atom/ns#' term='request'/><title type='text'>OWS_request</title><content type='html'>The Legend is static and is drawn at the start up so I couldn't make a link in the download icon making a specific WxS request.&lt;br /&gt;&lt;br /&gt;The solution was a javascript function that is called when the icon is pressed. This function will get the service and the name of the layer, later it will request adicional information (getDescription) so that a proper WxC can be performed. &lt;br /&gt;&lt;br /&gt;After getting all the information the functions opens a window and calls a PHP file (passing by GET all the information for the WxS). The new pop-up will have all the values hidden inside a form. When the user click on "submit" the final WxS will be performed. The pop-up also containes a table with all the information on the request&lt;br /&gt;&lt;br /&gt;function OWS_request (OWS_name, OWS_service)  {&lt;br /&gt;//example of request&lt;br /&gt;//ows.php?service=srtm10x&amp;request=getCoverage&amp;COVERAGE=srtm10x+&amp;CRS=epgs:4326&amp;BBOX=41,75,45,50&amp;RESX=0.00833&amp;RESY=0.00833&amp;FORMAT=GEOTIFFINT16';&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Creation of the XTMLHTTP object and request of information coverage&lt;br /&gt;request=new getXMLHTTP()&lt;br /&gt;var URL='ows.php?service=WCS&amp;request=describeCoverage&amp;coverage='+OWS_name;&lt;br /&gt;request.open ('GET',URL,false) ; //wait for response&lt;br /&gt;request.send(null);&lt;br /&gt;var xmldoc=request.responseXML;&lt;br /&gt;//necessary info: CRS,RESX,RESY,FORMAT,BBOX the name is alreay given&lt;br /&gt;//the XML programming was from the AJAX for Dummies&lt;br /&gt;//for example the tag gml:offsetVector has the name offsetVector the GML is nothing&lt;br /&gt;var CRSnode=xmldoc.getElementsByTagName("requestResponseCRSs");&lt;br /&gt;var CRS=CRSnode[0].firstChild.nodeValue;&lt;br /&gt;var RESnode=xmldoc.getElementsByTagName("offsetVector");&lt;br /&gt;var sRESX=RESnode[0].firstChild.nodeValue; &lt;br /&gt;var RESX=sRESX.split(" "); //array with resx in this case the first value is the important one&lt;br /&gt;var sRESY=RESnode[1].firstChild.nodeValue;&lt;br /&gt;var RESY=sRESY.split(" ");&lt;br /&gt;var FORMATnode=xmldoc.getElementsByTagName("formats");&lt;br /&gt;var FORMAT=FORMATnode[0].firstChild.nodeValue;&lt;br /&gt;&lt;br /&gt;/*The BBOX comes from the getGeoExtents, were it is defined that &lt;br /&gt;   gminx=minx;&lt;br /&gt;   gmaxx=maxx;&lt;br /&gt;   gmaxy=maxy;&lt;br /&gt;   gminy=miny;&lt;br /&gt;&lt;br /&gt;These are golbal variables, so no problem to access them, also they are always changed according to the events of kamap&lt;br /&gt;&lt;br /&gt;BBOX = lower left (min x, min y) and upper right (max x, max y)&lt;br /&gt;*/&lt;br /&gt;var BBOX = new Array(gminx,gminy,gmaxx,gmaxy);&lt;br /&gt;&lt;br /&gt;//creation of the URL that passes the information to the popup.php&lt;br /&gt;//note: RESY fix in the string (it canot be negative)&lt;br /&gt;var url_str='popup.php?service='+OWS_service+'&amp;request=getCoverage&amp;COVERAGE='+OWS_name+'&amp;CRS='+CRS+'&amp;BBOX='+BBOX.join(",")+'&amp;RESX='+RESX[0]+'&amp;RESY='+(-1*parseFloat(RESY[1]))+'&amp;FORMAT='+FORMAT;&lt;br /&gt;&lt;br /&gt;//open window&lt;br /&gt;var window_popup=window.open(url_str,null,"height=300,width=375");&lt;br /&gt;};&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-6801525630335078814?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/6801525630335078814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=6801525630335078814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/6801525630335078814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/6801525630335078814'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/owsrequest.html' title='OWS_request'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-5964815786339379218</id><published>2007-04-20T17:37:00.000+01:00</published><updated>2007-04-20T17:41:31.615+01:00</updated><title type='text'>Layer's HTML</title><content type='html'>The HTML that generate the Legend is in member createLayerHTML of the Kalegend.&lt;br /&gt;&lt;br /&gt;After the HTML for the query control I added the following if (a bit similar to the query one&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if (this.showDownloadControl) {&lt;br /&gt;        td = document.createElement('td');&lt;br /&gt;        td.width = '14';&lt;br /&gt;            if (oLayer.isDownload()) {&lt;br /&gt;         a = document.createElement('a');&lt;br /&gt;          a.href ='javascript:OWS_request(\"'+oLayer.name+'\",\"'+oLayer.ows_service+'\")';&lt;br /&gt;         img = document.createElement( 'img' );&lt;br /&gt;                img.width = '14';&lt;br /&gt;                img.height = '14';&lt;br /&gt;                img.src = 'images/download_ok.png';&lt;br /&gt;  img.border='0';&lt;br /&gt;                img.id=oLayer.name;&lt;br /&gt;  img.alt = "OWS download request";&lt;br /&gt;         img.title = "OWS download request";&lt;br /&gt;           a.appendChild(img);&lt;br /&gt;                td = document.createElement( 'td' );&lt;br /&gt;                td.appendChild(a); &lt;br /&gt;&lt;br /&gt;            } else {&lt;br /&gt;  img = document.createElement( 'img' );&lt;br /&gt;                img.width = '14';&lt;br /&gt;                img.height = '14';&lt;br /&gt;                img.src = 'images/download_no.png';&lt;br /&gt;  img.oLayer = oLayer;&lt;br /&gt;  img.id=oLayer.name;&lt;br /&gt;  img.alt = "OWS not available";&lt;br /&gt;         img.title = "OWS not available";&lt;br /&gt;  td = document.createElement( 'td' );&lt;br /&gt;               td.appendChild(img); &lt;br /&gt;            }&lt;br /&gt;          td.width = '16';&lt;br /&gt;                 tr.appendChild(td);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;This code will simpely check if the layer can/can't be downloaded and give the specific icon&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-5964815786339379218?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/5964815786339379218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=5964815786339379218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/5964815786339379218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/5964815786339379218'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/layers-html.html' title='Layer&apos;s HTML'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-4032730628068974915</id><published>2007-04-16T11:21:00.000+01:00</published><updated>2007-04-16T11:29:13.460+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OWS'/><category scheme='http://www.blogger.com/atom/ns#' term='WFS'/><category scheme='http://www.blogger.com/atom/ns#' term='WCS'/><category scheme='http://www.blogger.com/atom/ns#' term='metadata'/><title type='text'>WCS and WFS metadata</title><content type='html'>I forgot that aside from the information if the map is downloadable or not is is also necessary to know what service, so another metadata tag was added&lt;br /&gt;&lt;br /&gt;METADATA&lt;br /&gt;"ows_service" "wcs"&lt;br /&gt;END &lt;br /&gt;&lt;br /&gt;it can be "wcs" or "wfs"&lt;br /&gt;&lt;br /&gt;The programming is basically the same for the download but simpler since is it only a property and it doesn't need functions like isDownload()&lt;br /&gt;&lt;br /&gt;The getMetadata is a bit different because the wcs and wfs are string and need '', otherwise the javascript eval() will not work (this functions runs the init.php reply)&lt;br /&gt;&lt;br /&gt;$ows_service = "null";&lt;br /&gt;        if ($oLayer-&gt;getMetaData ("ows_service") !="") {&lt;br /&gt;            if(strcasecmp($oLayer-&gt;getMetaData("ows_service"), "wcs") == 0)&lt;br /&gt;                $ows_service = "'wcs'";&lt;br /&gt;&lt;br /&gt;            if(strcasecmp($oLayer-&gt;getMetaData("ows_service"), "wfs") == 0)&lt;br /&gt;                $ows_service = "'wfs'";&lt;br /&gt;&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-4032730628068974915?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/4032730628068974915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=4032730628068974915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/4032730628068974915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/4032730628068974915'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/wcs-and-wfs-metadata.html' title='WCS and WFS metadata'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-460632185427542274</id><published>2007-04-15T16:34:00.000+01:00</published><updated>2007-04-15T16:42:03.418+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kaLegend'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='options'/><category scheme='http://www.blogger.com/atom/ns#' term='property'/><title type='text'>Let there be KaLEGEND</title><content type='html'>To start the KaLegend object has its options defined in the myOnload() function of the StartUp.js (which is located in the /tools/kaAqua path....)&lt;br /&gt;&lt;br /&gt;I defined the option of download like the other properties:&lt;br /&gt;&lt;br /&gt;legendOptions.download = typeof gbLegendDownloadControl != 'undefined' ? gbLegendDownloadControl : true;&lt;br /&gt;&lt;br /&gt;the gbLegendDownloadControl is not necessary, it is just here to look good :)&lt;br /&gt;&lt;br /&gt;jumping to the kaLengend constructor in the kaLegend.js, It was added a new property:&lt;br /&gt;&lt;br /&gt;this.showDownloadControl=true; &lt;br /&gt;&lt;br /&gt;and some codelines lower:&lt;br /&gt;&lt;br /&gt;this.showDownloadControl = typeof options.download != 'undefined' ? options.download : true;&lt;br /&gt;&lt;br /&gt;the standard options is to show the controls unless otherwise defined in the options.download&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-460632185427542274?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/460632185427542274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=460632185427542274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/460632185427542274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/460632185427542274'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/let-there-be-kalegend.html' title='Let there be KaLEGEND'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-3544075069707310659</id><published>2007-04-15T15:37:00.000+01:00</published><updated>2007-04-15T16:30:02.766+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='isDownload'/><category scheme='http://www.blogger.com/atom/ns#' term='map object'/><category scheme='http://www.blogger.com/atom/ns#' term='download property'/><category scheme='http://www.blogger.com/atom/ns#' term='list'/><title type='text'>_map / _layer object and new methods/properties</title><content type='html'>The previous post passed the metadadata to a php variable that contains the properties of the layers, later these values are passed to the object it self when is created by the constructor funcion.&lt;br /&gt;&lt;br /&gt;The layer object contains several important methods and properties  that will be used mainly by kaLegend to draw everything that is needed to download the layer&lt;br /&gt;&lt;br /&gt;The layer object is defined in the kaMap.js and in the "contructor" function (is it correct to call it constructor ?! ) It was added:&lt;br /&gt;&lt;br /&gt;this.download = (typeof(o.download) != 'undefined') ? o.download : false;&lt;br /&gt;&lt;br /&gt;This is necessary to be certain that the layer always has this property as true or false&lt;br /&gt;&lt;br /&gt;The next step is to create a member that returns is a layer is donwloable or not&lt;br /&gt;&lt;br /&gt;_layer.prototype.isDownload = function() {&lt;br /&gt;return this.download;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;the member isDownload will be usefull in the _map object, since this object need a method that gives the list of downloadable layers&lt;br /&gt;&lt;br /&gt;_map.prototype.getDownloadLayers = function() {&lt;br /&gt;    var r = [];&lt;br /&gt;    var l = this.getLayers();&lt;br /&gt;    for( var i=0; i&amp;#060;l.length; i++) {&lt;br /&gt;        if (l[i].isDownload()) {&lt;br /&gt;            r.push(l[i]);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    return r;&lt;br /&gt;};&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-3544075069707310659?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/3544075069707310659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=3544075069707310659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3544075069707310659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3544075069707310659'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/map-object-and-new-methodsproperties.html' title='_map / _layer object and new methods/properties'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-7731373914013092552</id><published>2007-04-15T15:24:00.000+01:00</published><updated>2007-04-15T15:28:49.514+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='layer'/><category scheme='http://www.blogger.com/atom/ns#' term='property'/><category scheme='http://www.blogger.com/atom/ns#' term='metadata'/><title type='text'>Fetching Metadata</title><content type='html'>THe metadata contained in the MAP file is fetched at init.php and based on the programming already there:&lt;br /&gt;&lt;br /&gt; $download = "false";&lt;br /&gt;        if ($oLayer-&gt;getMetaData ("download") !="") {&lt;br /&gt;            if(strcasecmp($oLayer-&gt;getMetaData("download"), "true") == 0)&lt;br /&gt;                $download = "true";&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;This will get the metadata from dowload in the MAP file and pass the value to the $download variable  of PHP, as default the $download is false&lt;br /&gt;&lt;br /&gt;Then the $download is integrated in the layer as another property:&lt;br /&gt;&lt;br /&gt;$szLayers .= "map.addLayer(new _layer( { ".&lt;br /&gt;                     "name:'".$groupName."',".&lt;br /&gt;                     "visible:".$status.",".&lt;br /&gt;                     "opacity:".$opacity.",".&lt;br /&gt;                     "imageformat:'".$imageformat."',".&lt;br /&gt;                     "queryable:".$szQueryable.",".&lt;br /&gt;       &lt;span style="font-weight:bold;"&gt;"download:".$download.",".&lt;/span&gt;&lt;br /&gt;                     "tileSource:'".$tileSource."',".&lt;br /&gt;                     "redrawInterval:".$redrawInterval.",".&lt;br /&gt;                     "refreshInterval:".$refreshInterval.",".&lt;br /&gt;                     "scales: new Array('".implode("','",$groupScaleVis)."')}));";&lt;br /&gt;&lt;br /&gt;The line in bold was added to the properties of the layer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-7731373914013092552?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/7731373914013092552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=7731373914013092552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/7731373914013092552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/7731373914013092552'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/fetching-metadata.html' title='Fetching Metadata'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8831748891850552233</id><published>2007-04-15T15:15:00.000+01:00</published><updated>2007-04-15T15:22:38.794+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='WCS'/><category scheme='http://www.blogger.com/atom/ns#' term='metadata'/><category scheme='http://www.blogger.com/atom/ns#' term='Map file'/><category scheme='http://www.blogger.com/atom/ns#' term='mapserver'/><title type='text'>New MAP metadata</title><content type='html'>I hace decided to use the same strategy of "is the layer queryable" but this time to the WCS so that users can download the layers, by simplely clicking in a small icon&lt;br /&gt;&lt;br /&gt;The first thing is that information concerning the layer is has to be indicated in the MAP file as metadata and then retrived by kamap&lt;br /&gt;&lt;br /&gt;Now the MAP file to have a WCS layer downloaded by the Kamap needs the following metadata&lt;br /&gt;&lt;br /&gt;METADATA&lt;br /&gt;   "download" "true"&lt;br /&gt;END&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8831748891850552233?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8831748891850552233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8831748891850552233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8831748891850552233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8831748891850552233'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/new-map-metadata.html' title='New MAP metadata'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-452517445014885310</id><published>2007-04-08T20:41:00.000+01:00</published><updated>2007-04-08T20:48:43.324+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='segmentation'/><category scheme='http://www.blogger.com/atom/ns#' term='resolution'/><category scheme='http://www.blogger.com/atom/ns#' term='WCS'/><title type='text'>segmentation fault in WCS</title><content type='html'>I was going thru the WCS and started to have segmentation faults and everything was crashing, &lt;br /&gt;finally I discovered the problem&lt;br /&gt;&lt;br /&gt;The RESX and RESY are postive numbers, despite sometimes RESY being given as a negative value.&lt;br /&gt;&lt;br /&gt;The funny thing was the PID was crashing and the sript was sending a ows.php reply, even more funny is that wcs_resolution is given with Y as negative value, at least in all the examples that I saw&lt;br /&gt;&lt;br /&gt;Also I read the documentation and it says that BBOX is required, well actually not !!! without the BBOX it will reply with all the layer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-452517445014885310?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/452517445014885310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=452517445014885310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/452517445014885310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/452517445014885310'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/segmentation-fault-in-wcs.html' title='segmentation fault in WCS'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-4954171493020489546</id><published>2007-04-07T19:02:00.000+01:00</published><updated>2007-04-07T19:29:02.713+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='describeCoverage'/><category scheme='http://www.blogger.com/atom/ns#' term='problems'/><category scheme='http://www.blogger.com/atom/ns#' term='WCS'/><category scheme='http://www.blogger.com/atom/ns#' term='no error'/><title type='text'>WCS headache</title><content type='html'>Well Today I had a huge headache&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The big problem started when I was doing a DescribeCoverage request and was getting nothing, as if there was no WCS layers (I had all the WCS metadata inside the map file), the result was only this&lt;br /&gt;&lt;br /&gt;&amp;#060;CoverageDescription version="1.0.0" updateSequence="0" xsi:schemaLocation="http://www.opengis.net/wcs http://schemas.opengis.net/wcs/1.0.0/describeCoverage.xsd"&amp;#062;&lt;br /&gt;&amp;#060;/CoverageDescription&amp;#062;&lt;br /&gt;&lt;br /&gt;So no error, no major problems and of course nothing on the net!!!&lt;br /&gt;&lt;br /&gt;I tryed to make a getCoverage and got an error message concerning projection, &lt;br /&gt;&lt;br /&gt;Since my server is jailed there was no epsg file for the mapserver to read, I never had a problem with projections because I never had the need for epsg, since my projection was like this:&lt;br /&gt;&lt;br /&gt;PROJECTION&lt;br /&gt; "proj=latlong"&lt;br /&gt; "ellps=WGS84"&lt;br /&gt; "datum=WGS84"&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;(no: "init=epsg:4326")&lt;br /&gt;&lt;br /&gt;So copying the epsg file to the chroot and adding the location of it to the map file solved the problem (CONFIG "PROJ_LIB" "/usr/local/share/proj")&lt;br /&gt;&lt;br /&gt;Then I got a nice reply fron the DescribeCoverage, still I got some problems with the GetCoverage because instead of epsg I had epgs (....I hate this type of mistakes)&lt;br /&gt;&lt;br /&gt;It took me several hours to discover all the problems....I wish that a better error log system would be in place for WxS&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-4954171493020489546?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/4954171493020489546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=4954171493020489546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/4954171493020489546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/4954171493020489546'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/wcs-headache.html' title='WCS headache'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-2234905377813865493</id><published>2007-04-07T12:30:00.000+01:00</published><updated>2007-04-07T12:32:06.659+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='header'/><category scheme='http://www.blogger.com/atom/ns#' term='filename'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>HTTP Header</title><content type='html'>This makes the HTTPS for a tiff file with name srtm-10x:&lt;br /&gt;&lt;br /&gt;header('Content-type: image/tif');&lt;br /&gt;header('Content-Disposition: attachment; filename="srtm-10x.tiff"');&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-2234905377813865493?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/2234905377813865493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=2234905377813865493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2234905377813865493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2234905377813865493'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/http-header.html' title='HTTP Header'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-3731403996731557230</id><published>2007-04-06T09:58:00.000+01:00</published><updated>2007-04-06T10:01:47.556+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3 seconds'/><category scheme='http://www.blogger.com/atom/ns#' term='WEP'/><category scheme='http://www.blogger.com/atom/ns#' term='Cracking'/><title type='text'>WEP Cracking</title><content type='html'>I can't belive that a WEP key can be cracked in 60 seconds&lt;br /&gt;&lt;br /&gt;http://blogs.zdnet.com/hardware/?p=347&lt;br /&gt;&lt;br /&gt;It took me 3 weeks to crack my neighboors WEP using Kismet!!!! To discover that he had a stupid password.&lt;br /&gt;&lt;br /&gt;Maybe I should use WAP instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-3731403996731557230?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/3731403996731557230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=3731403996731557230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3731403996731557230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/3731403996731557230'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/wep-cracking.html' title='WEP Cracking'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8378817348803247988</id><published>2007-04-05T16:04:00.000+01:00</published><updated>2007-04-06T10:03:01.087+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wrapper'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='OWS'/><category scheme='http://www.blogger.com/atom/ns#' term='WFS'/><category scheme='http://www.blogger.com/atom/ns#' term='WCS'/><category scheme='http://www.blogger.com/atom/ns#' term='WMS'/><title type='text'>WCS wrapper for Mapserver</title><content type='html'>WMS,WFS and WCS is how it is possible to connected to a webGIS server and to download data:&lt;br /&gt;WMS == Raster as an image&lt;br /&gt;WFS == Vectorial information&lt;br /&gt;WCS == Raster as a layer (original raster with values)&lt;br /&gt;&lt;br /&gt;The request of WxF is normally done by a GET to the Mapserv program (is like a normal CGI-BIN for program execution), well I don't want Apache to run any program, so the solution is a wrapper PHP script, where the script catches the requests and uses them for a valid WCS reply.&lt;br /&gt;&lt;br /&gt;The wrapper is very simple and there is a basic example on the mapserver home page, This is a wrapper with small modifications to work with WCS:&lt;br /&gt;&lt;br /&gt;&amp;#060;?php&lt;br /&gt;/*ows.php?service=WCS&amp;version=1.0.0&amp;Request=GetCapabilities*/&lt;br /&gt;$request = ms_newowsrequestobj();&lt;br /&gt;&lt;br /&gt;//$request-&gt;loadparams();&lt;br /&gt;&lt;br /&gt;foreach ($_GET as $k=&gt;$v) {&lt;br /&gt;    $request-&amp;#062;setParameter($k, $v);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// forcing to version 1.0.0&lt;br /&gt;$request-&amp;#062;setParameter("VeRsIoN","1.0.0");&lt;br /&gt;&lt;br /&gt;ms_ioinstallstdouttobuffer();&lt;br /&gt;&lt;br /&gt;$oMap = ms_newMapobj("/usr/local/apache2/htdocs/secure/ms/data/calter.map");&lt;br /&gt;$oMap-&gt;owsdispatch($request);&lt;br /&gt;$contenttype = ms_iostripstdoutbuffercontenttype();&lt;br /&gt;$buffer = ms_iogetstdoutbufferstring();&lt;br /&gt;&lt;br /&gt;header('Content-type: application/xml');&lt;br /&gt;echo $buffer;&lt;br /&gt;&lt;br /&gt;ms_ioresethandlers();&lt;br /&gt;&lt;br /&gt;?&amp;#062;&lt;br /&gt;&lt;br /&gt;For start Mapserver only suports WCS version 1.0.0 so any request for higher versions has to be redirect:&lt;br /&gt;$request-&amp;#062;setParameter("VeRsIoN","1.0.0");&lt;br /&gt;&lt;br /&gt;There seems to be a bug with $request-&gt;loadparams(); this produces an empy file reply from the server with no errors, so the solution it to get the parameters directely from the GET&lt;br /&gt;foreach ($_GET as $k=&gt;$v) {&lt;br /&gt;    $request-&amp;#062;setParameter($k, $v);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if replacing $_GET for $_POST is should be possible to use POST to request the WCS, mapserver only accepts GET.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8378817348803247988?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8378817348803247988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8378817348803247988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8378817348803247988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8378817348803247988'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/wcs-wrapper-for-mapserver.html' title='WCS wrapper for Mapserver'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-6266714256244437030</id><published>2007-04-05T15:45:00.000+01:00</published><updated>2007-04-06T10:03:54.086+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='hidden'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><title type='text'>Email hidding</title><content type='html'>I did a small info page concerning the webGIS, it is a page with a semi-transparent background, like  the KaExplorer example, but ported to KaAqua. Anyway I had to put some email and as usual I have hidden the email using a common javascript procedure, where the email is transformed in to an array of number and then the documment.write() reconverts back to letter.&lt;br /&gt;&lt;br /&gt;http://www.dynamicdrive.com/emailriddler/&lt;br /&gt;&lt;br /&gt;For my big surprise, when I make the page appear inside a div tag the documment.write() doesn't work , and there is no errors not in the javascript console or in the apache.&lt;br /&gt;&lt;br /&gt;I have no idea why or even found the reason why, in the end I had to hide the email using simple echo() in PHP&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-6266714256244437030?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/6266714256244437030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=6266714256244437030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/6266714256244437030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/6266714256244437030'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/email-hidding.html' title='Email hidding'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-4676921407512708037</id><published>2007-04-05T14:23:00.000+01:00</published><updated>2007-04-05T14:44:31.563+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='login'/><category scheme='http://www.blogger.com/atom/ns#' term='connection'/><category scheme='http://www.blogger.com/atom/ns#' term='adminpro'/><title type='text'>Everything is now locked !!!!</title><content type='html'>Well the acesses to the mapserver is now locked !!!!!!!&lt;br /&gt;&lt;br /&gt;For locking the system with a login I used the  PHP classes called adminpro that I got from the site:&lt;br /&gt;&lt;br /&gt;http://www.phpclasses.org/&lt;br /&gt;&lt;br /&gt;The programming was done by Giorgios from Greece, and is the most straight forward login system based on MySQL, that I know,  all programming is simple to follow and the configuration is very simple.&lt;br /&gt;&lt;br /&gt;I had some problems making the socket connection to the MySQL, I don't understand why the socket wouldn't work, the file was inside chroot but I was having error messages saying no socket.&lt;br /&gt;&lt;br /&gt;I couln't find much about the problem on the net, so instead of socket I used a direct connection: 127.0.0.1:3306&lt;br /&gt;&lt;br /&gt;I don't know if this is secure but it worked !!!&lt;br /&gt;&lt;br /&gt;&amp;#060;?php include("adminpro_class.php");&lt;br /&gt;$prot=new protect();&lt;br /&gt;if ($prot-&gt;showPage) {&lt;br /&gt;?&amp;#062;&lt;br /&gt;&lt;br /&gt;&amp;#060;!-- HTML/PHP GOES HERE --!&amp;#062;&lt;br /&gt;&lt;br /&gt;&amp;#060;!-- end of php protection--&amp;#062;&lt;br /&gt;&amp;#060;?php } ?&amp;#062;&lt;br /&gt;&lt;br /&gt;Cool and simple !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-4676921407512708037?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/4676921407512708037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=4676921407512708037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/4676921407512708037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/4676921407512708037'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/everything-is-now-locked.html' title='Everything is now locked !!!!'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8967517466317926657</id><published>2007-04-05T13:37:00.000+01:00</published><updated>2007-04-06T10:04:38.890+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='config.php'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='Ka-maps'/><category scheme='http://www.blogger.com/atom/ns#' term='KaAqua'/><category scheme='http://www.blogger.com/atom/ns#' term='path'/><title type='text'>Ka-maps instalation</title><content type='html'>The installation of ka-maps was  simple and the only problems was the paths to the calter.map and the config.php paths, I had to change several javascripts files but in the end everything was working fine.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_yhNY28f50Pc/RhTt_HhAmRI/AAAAAAAAAA0/It-epg_iT1M/s1600-h/Screenshot1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_yhNY28f50Pc/RhTt_HhAmRI/AAAAAAAAAA0/It-epg_iT1M/s320/Screenshot1.png" alt="" id="BLOGGER_PHOTO_ID_5049922750794209554" border="0" /&gt;&lt;/a&gt;The KaAqua was my favourite and it looks cool with the transparent stuff, I also love the legend box and how you can close/open it&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8967517466317926657?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8967517466317926657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8967517466317926657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8967517466317926657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8967517466317926657'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/ka-maps-instalation.html' title='Ka-maps instalation'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_yhNY28f50Pc/RhTt_HhAmRI/AAAAAAAAAA0/It-epg_iT1M/s72-c/Screenshot1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8430084764384838255</id><published>2007-04-05T13:32:00.000+01:00</published><updated>2007-04-06T10:05:01.790+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenLayers'/><category scheme='http://www.blogger.com/atom/ns#' term='problems'/><category scheme='http://www.blogger.com/atom/ns#' term='WMS'/><title type='text'>Why not Openlayers ?</title><content type='html'>Despite the look of Ka-maps, there is the problem of Ka-maps not having an API and at first the code looked a bit confusing.&lt;br /&gt;&lt;br /&gt;So I have a look at Openlayers, they seem to be more organized than Ka-maps but I didnt liked that the server requests are based on WxS and there is no PHP as "back-office", never the less the options given like  the connection to google and virtual earth extremely interresting.&lt;br /&gt;&lt;br /&gt;So in the end I started to work with Ka-maps&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8430084764384838255?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8430084764384838255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8430084764384838255' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8430084764384838255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8430084764384838255'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/why-not-openlayers.html' title='Why not Openlayers ?'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-63727378528498532</id><published>2007-04-05T13:19:00.000+01:00</published><updated>2007-04-05T13:32:29.924+01:00</updated><title type='text'>Why not Ka-map</title><content type='html'>Since chameleon was a disaster I then decided to give a look at ka-maps&lt;br /&gt;&lt;br /&gt;I found a nice tutorial on setting up ka-maps/AJAX&lt;br /&gt;&lt;br /&gt;http://www.xml.com/pub/a/2005/08/10/ka-map.html&lt;br /&gt;&lt;br /&gt;Also the page from ominiverdi is kick ass because it was a wiki and several examples&lt;br /&gt;&lt;br /&gt;http://www.ominiverdi.org/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-63727378528498532?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/63727378528498532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=63727378528498532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/63727378528498532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/63727378528498532'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/why-not-ka-map.html' title='Why not Ka-map'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-7995875490239033812</id><published>2007-04-05T13:05:00.000+01:00</published><updated>2007-04-05T13:18:08.629+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chameleon'/><category scheme='http://www.blogger.com/atom/ns#' term='problems'/><category scheme='http://www.blogger.com/atom/ns#' term='DM solutions'/><category scheme='http://www.blogger.com/atom/ns#' term='chaos'/><title type='text'>Why not Chameleon</title><content type='html'>I can't belive that I haven't posted anything for one month !!!!!  Despite one week vacation things have progressed.&lt;br /&gt;&lt;br /&gt;I did some research on chameleon and how the tools/widgets from chameleon could help me. Chameleon is done by DM solutions and basically you put tags on your HTML/PHP and it gets replaced by a widget, the concept is extremely cool and efficient, I think cold fusion works in the same way?&lt;br /&gt;&lt;br /&gt;The problem is that I couldn't make it work I spent some days fighting it and there was always problems with paths and configuration files, even the tools that should help you work with chameleon were messy and the documentation was not very helpfull&lt;br /&gt;&lt;br /&gt;The instalation of chameleon seems to be straight forward if you use a special installation pack called FGS is seems even better&lt;br /&gt;&lt;br /&gt;Well my mapserver is chrooted and the apache is not compiled with Alias module (due to security concerns) so in the end it was extremely problematic trying to install chameleon in the server.&lt;br /&gt;&lt;br /&gt;So I gave up&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-7995875490239033812?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/7995875490239033812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=7995875490239033812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/7995875490239033812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/7995875490239033812'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/04/why-not-chameleon.html' title='Why not Chameleon'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-2556325397518831894</id><published>2007-03-04T17:02:00.000Z</published><updated>2007-03-04T17:12:15.983Z</updated><title type='text'>EXTENT versus SIZE in Mapserver</title><content type='html'>I am working with 3 vectorial layers and these layers are bigger than the research area (EXTENT) I have defined the extent area to be 35 30 95 60 (lower left corner, upper right corner) dd of lat/long. Still the mapserver was rendering data from outside the extent area&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yhNY28f50Pc/Rer8moa-EEI/AAAAAAAAAAg/5nIm_n5bKnI/s1600-h/calter996475.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_yhNY28f50Pc/Rer8moa-EEI/AAAAAAAAAAg/5nIm_n5bKnI/s320/calter996475.png" alt="" id="BLOGGER_PHOTO_ID_5038116873783087170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It took me a while to understand the reason. The problem is with the SIZE parameter, in the above pic the size was 800 500 so the area was a bit out of the EXTENT and Mapserver will not have a problem to render any data outside the EXTENT so that the image gets the proper size.&lt;br /&gt;&lt;br /&gt;Changing the SIZE to 800 400 I get a prefect image&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yhNY28f50Pc/Rer9qYa-EFI/AAAAAAAAAAo/t8TrRZ-DLkQ/s1600-h/calter766101.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_yhNY28f50Pc/Rer9qYa-EFI/AAAAAAAAAAo/t8TrRZ-DLkQ/s320/calter766101.png" alt="" id="BLOGGER_PHOTO_ID_5038118037719224402" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-2556325397518831894?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/2556325397518831894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=2556325397518831894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2556325397518831894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2556325397518831894'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/03/extent-versus-size-in-mapserver.html' title='EXTENT versus SIZE in Mapserver'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_yhNY28f50Pc/Rer8moa-EEI/AAAAAAAAAAg/5nIm_n5bKnI/s72-c/calter996475.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-2563892499083958222</id><published>2007-03-04T15:46:00.000Z</published><updated>2007-03-04T16:39:11.174Z</updated><title type='text'>Let there be color!!!</title><content type='html'>I never liked the DEM of the SRTM to be in a 16bit grey scale, so I searched for a solution. Normally in GRASS you select the SRTM color rules for it, but in Mapserver I couln't find a good enough answer on how to deal with colors in DEM (it is possible to make color scales in satellite images using the band, but a BEM only has "one band").&lt;br /&gt;&lt;br /&gt;I have found this technical blog http://www.perrygeo.net/wordpress/?p=7 that has some nice tools from DEM processing, the tools are in C++ and need the GDAL library to be compiled.&lt;br /&gt;&lt;br /&gt;One tool is the color-relif (there are also tools to make hillshades, slopes and aspect). So I just compiled the programs, went to /usr/local/grass-6.2.1/etc/colors  to get the srtm color file, which indicates the RGB values according to the altitude. The GRASS file has sometimes instead of RGB values a color name, so in the SRTM colors there was "aqua" for 0 mt altitude, so I just changed to 0 0 255 (total blue). The&lt;br /&gt;final color table is something like this&lt;br /&gt;&lt;br /&gt;-500 0 0 10&lt;br /&gt;-300 0 0 20&lt;br /&gt;-200 0 0 70&lt;br /&gt;-100 0 0 130&lt;br /&gt;-50 0 0 205&lt;br /&gt;0 0 0 255&lt;br /&gt;0.1   57 151 105&lt;br /&gt;100  117 194 93&lt;br /&gt;200  230 230 128&lt;br /&gt;500  202 158 75&lt;br /&gt;1000 214 187 98&lt;br /&gt;2000 185 154 100&lt;br /&gt;3000 220 220 220&lt;br /&gt;5000 250 250 250&lt;br /&gt;8850 255 255 255&lt;br /&gt;&lt;br /&gt;1st column is altitude and the other columns the RGB values.&lt;br /&gt;So the DEM that was almost totally dark in GIMP because a very nice colored map.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yhNY28f50Pc/Rer1Yoa-ECI/AAAAAAAAAAQ/k6vBERaTuaw/s1600-h/srtm_normal"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_yhNY28f50Pc/Rer1Yoa-ECI/AAAAAAAAAAQ/k6vBERaTuaw/s320/srtm_normal" alt="" id="BLOGGER_PHOTO_ID_5038108936683524130" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yhNY28f50Pc/Rer1koa-EDI/AAAAAAAAAAY/m8ou3yWY-64/s1600-h/srtm_colors"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_yhNY28f50Pc/Rer1koa-EDI/AAAAAAAAAAY/m8ou3yWY-64/s320/srtm_colors" alt="" id="BLOGGER_PHOTO_ID_5038109142841954354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The program simplely creates a band2 and 3 from the original band1 and assigns a diferent color value acording to the color table. I had the SRTM file in a tiled structure, after running the program the final file was as orignally (without internal tiles)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-2563892499083958222?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/2563892499083958222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=2563892499083958222' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2563892499083958222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/2563892499083958222'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/03/let-there-be-color.html' title='Let there be color!!!'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_yhNY28f50Pc/Rer1Yoa-ECI/AAAAAAAAAAQ/k6vBERaTuaw/s72-c/srtm_normal' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-7891355289549559539</id><published>2007-02-28T19:17:00.000Z</published><updated>2007-02-28T19:22:35.015Z</updated><title type='text'>aemp2007</title><content type='html'>Just finished the second version of the &lt;a href="http://www.ualg.pt/aemp2007"&gt;aemp2007&lt;/a&gt; congress web page. This time it looks nice, with some  nice CSS menus that I got from &lt;a href="http://tutorials.alsacreations.com/"&gt;here&lt;/a&gt; and the javascript image blending system was from &lt;a href="http://www.brainerror.net/scripts_js_blendtrans.php"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://tutorials.alsacreations.com/"&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-7891355289549559539?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/7891355289549559539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=7891355289549559539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/7891355289549559539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/7891355289549559539'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/02/aemp2007.html' title='aemp2007'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-8463697681626817858</id><published>2007-02-21T15:34:00.000Z</published><updated>2007-02-21T15:44:11.148Z</updated><title type='text'>FATAL ERROR: Session save path () doesn't exist or is not writable</title><content type='html'>OK. I decided to work with the DM tools and chamelion widgets for the CALTER mapserver, this way I will not have to program any basic components.&lt;br /&gt;&lt;br /&gt;I am still installing all the stuff, but to have chamelion working the PHP moduled needed to re recomplied to support GD and FreeType&lt;br /&gt;&lt;br /&gt;./configure --enable-safe-mode  --with-mysql --with-pgsql --enable-dbase --with-config-file --enable-static --prefix=/chroot/httpd/usr/local/apache2/php --with-apxs2=/chroot/httpd/usr/local/apache2/bin/apxs --disable-cgi --with-config-file-path=/chroot/httpd/usr/local/apache2/php --with-openssl --with-zlib --with-gd --with-freetype-dir&lt;br /&gt;&lt;br /&gt;The maplab tools gave some headaches with Forbidden warnings. The fist time this warning was caused incorrect permissions (nothing like a good  666 or 777 to make things working).&lt;br /&gt;&lt;br /&gt;Still it wouldn't work, checking the error logs it was mod_security sending the forbidden, the php was sending an error message and mod_security was blocking it. So the mod_security was reconfigured not to scan replies from the server&lt;br /&gt;&lt;br /&gt;Finally the error was FATAL ERROR: Session save path () doesn't exist or is not writable , the maplab uses sessions id to pass data between the programs, so I googled and found the solution in a french website.&lt;br /&gt;&lt;br /&gt;The php.ini needs to have session.save_path unquoated and activated to /tmp and /tmp should have rw permission.&lt;br /&gt;&lt;br /&gt;&lt;span class="Texte"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-8463697681626817858?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/8463697681626817858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=8463697681626817858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8463697681626817858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/8463697681626817858'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/02/fatal-error-session-save-path-doesnt.html' title='FATAL ERROR: Session save path () doesn&apos;t exist or is not writable'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-6961813634696439502</id><published>2007-02-16T08:24:00.000Z</published><updated>2007-02-16T08:32:33.645Z</updated><title type='text'>2nd CISTI and XSS</title><content type='html'>Just submmited a 8 page paper for the CISTI (2nd Iberian Conference on Information Systems and Technologies). The paper is called "Security enhancement in a WebGIS application". Basically it describes Chroot, Firewalls (IPtables), Injection prevention of tags/scripts, HTTPS redirection and error message blocking, in a Mapserver system.&lt;br /&gt;&lt;br /&gt;Yesterday I was reading on the tech news that 7 out of 10 sites allow XSS attacks (cross-site scripting) were you can for example send SQL tags in the URL (GET) and do some real shit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-6961813634696439502?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/6961813634696439502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=6961813634696439502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/6961813634696439502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/6961813634696439502'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/02/2nd-cisti-and-xss.html' title='2nd CISTI and XSS'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-9145716505798184646</id><published>2007-02-16T08:21:00.000Z</published><updated>2007-02-16T08:23:39.142Z</updated><title type='text'>Error in Tags</title><content type='html'>Yesterday I couldn't find the script to download the SRTM in my computer and copy/pasted what I had in here, it seems there was problem. When the script was posted the blog system made a confusion with the STDIN command that is in "&lt;" and "&gt;" this was fixed using special html code for Special Characteres.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-9145716505798184646?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/9145716505798184646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=9145716505798184646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/9145716505798184646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/9145716505798184646'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/02/error-in-tags.html' title='Error in Tags'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-7361985040548022669</id><published>2007-02-06T17:54:00.000Z</published><updated>2007-02-06T18:01:30.286Z</updated><title type='text'>Apache compilation (security options)</title><content type='html'>Some months ago I had to compile the Apache server for the CALTER webGIS and it was a bit tricky because it needed an external module called mod_security and the version 2.0 refused to work (come GCC 4.1 problem if I recall). This is a some how compilation with security on mind&lt;br /&gt;&lt;br /&gt;./configure --prefix=/usr/local/apache2 --with-mpm=prefork --disable-charset-lite --disable-include --disable-env --enable-setenvif --disable-autoindex --disable-asis --disable-cgi --disable-negotiation  --disable-imap --disable-actions --disable-userdir --disable-alias --disable-so --enable-ssl --enable-modules=acess --enable-module=log_config --enable-module=dir --enable-module=auth --enable-unique_id --enable-usertrack  --enable-proxy --enable-proxy-http --with-module=prox y:modules/proxy/modsecurity-apache_1.9.4/apache2/mod_security.c  --enable-securi ty --enable-so --enable-rewrite&lt;br /&gt;&lt;br /&gt;The setenvif should had been disable, but it in the end was necessary, If I recall it was PHP that was in need.&lt;br /&gt;The mod_security has to be unpacked to the directory /modules/proxy and also the the Apache needs to be compile with the --enable-proxy-http&lt;br /&gt;&lt;br /&gt;The modules are all statically linked, initially I wanted everything statically so there was no load modules options but I didn't managed to statically compile PHP in Apache2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-7361985040548022669?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/7361985040548022669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=7361985040548022669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/7361985040548022669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/7361985040548022669'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/02/apache-compilation-security-options.html' title='Apache compilation (security options)'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-7641767745333899366</id><published>2007-02-02T16:08:00.000Z</published><updated>2007-02-02T16:12:13.099Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Huelva'/><category scheme='http://www.blogger.com/atom/ns#' term='ArcGIS'/><title type='text'>xtmas, new year and classes</title><content type='html'>Things have been a bit down concerning the blog, due to all the holidays and the GIS classes that I gave in the University of Huelva.&lt;br /&gt;&lt;br /&gt;I had to study ArcGIS to give the classes, last time I used  anything from ESRI was 4 years ago, the experience was excellent and the students helped a lot ....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-7641767745333899366?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/7641767745333899366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=7641767745333899366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/7641767745333899366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/7641767745333899366'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2007/02/xtmas-new-year-and-classes.html' title='xtmas, new year and classes'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-116586084472309921</id><published>2006-12-11T18:06:00.000Z</published><updated>2007-02-16T08:20:20.316Z</updated><title type='text'>Problems with UALG's proxy  (of the SRTM script)</title><content type='html'>In BGU the proxy accepts FTP connections and everything runs ok (as long the Iptables is off and the enviromment has the proxy's url). The problem is that the proxy from UALG only accepts HTTP, I have tried to upgrade the FTP connection of the script to deal with it, but it was a nightmare.&lt;br /&gt;&lt;br /&gt;The simplest solution was to use the wget command instead of an FTP connection&lt;br /&gt;&lt;br /&gt;The the case of running from BGU or UALG the enviromments need to have the proxy:&lt;br /&gt;BGU: http://wwwbgu.ac.il:8080&lt;br /&gt;UALG: http://proxy1.si.ualg.pt:8080&lt;br /&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;use Net::FTP;&lt;br /&gt;#variable declaration&lt;br /&gt;#specific varibles, change here according to needs&lt;br /&gt;my $ftp_url="ftplmu.jrc.it";&lt;br /&gt;my $ftp_pwd="/pub/SRTM_v3/SRTM_Data_GeoTiff";&lt;br /&gt;my $ftp_file;&lt;br /&gt;my $cmd;&lt;br /&gt;my $ftp;&lt;br /&gt;#input variables&lt;br /&gt;my $max_x;&lt;br /&gt;my $min_x;&lt;br /&gt;my $max_y;&lt;br /&gt;my $min_y;&lt;br /&gt;#other variables&lt;br /&gt;my $temp_min_y;&lt;br /&gt;my $formated_number_y;&lt;br /&gt;my $formated_number_x;&lt;br /&gt;my $file_url;&lt;br /&gt;#user input&lt;br /&gt;print "Enter tile number of maximum long. (x): ";&lt;br /&gt;$max_x=&lt;stdin&gt;&amp;#60;STDIN&amp;#62;;&lt;br /&gt;chomp($max_x);&lt;br /&gt;print "Enter tile number of minimum long. (x): ";&lt;br /&gt;$min_x=&lt;/stdin&gt;&amp;#60;STDIN&amp;#62;&lt;stdin&gt;&lt;stdin&gt;;&lt;br /&gt;chomp($min_x);&lt;br /&gt;print "Enter tile number of maximum lat. (y): ";&lt;br /&gt;$max_y=&lt;stdin&gt;&lt;/stdin&gt;&lt;/stdin&gt;&lt;/stdin&gt;&amp;#60;STDIN&amp;#62;&lt;stdin&gt;&lt;stdin&gt;&lt;stdin&gt;;&lt;br /&gt;chomp($max_y);&lt;br /&gt;print "Enter tile number of minimum lat. (y): ";&lt;br /&gt;$min_y=&lt;/stdin&gt;&lt;/stdin&gt;&lt;/stdin&gt;&amp;#60;STDIN&amp;#62;&lt;stdin&gt;&lt;stdin&gt;&lt;stdin&gt;&lt;stdin&gt;;&lt;br /&gt;chomp($min_y);&lt;br /&gt;#for loop to generate the url and open the FTP connection&lt;br /&gt;$temp_min_y=$min_y;&lt;br /&gt;for ( ;$min_x&lt;=$max_x; $min_x++) {    #some nice C/C++ sytanx    $formated_number_x=sprintf("%02d",$min_x);    $min_y=$temp_min_y;    for( ;$min_y&lt;=$max_y; $min_y++) {        $formated_number_y=sprintf("%02d",$min_y);        $ftp_file="srtm_".$formated_number_x."_".$formated_number_y.".zip";        #using wget to get the file, wget will use the system's variable of proxy        $cmd="wget ftp://".$ftp_url.$ftp_pwd."/".$ftp_file;        system($cmd);  } } &lt;/stdin&gt;&lt;/stdin&gt;&lt;/stdin&gt;&lt;/stdin&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-116586084472309921?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/116586084472309921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=116586084472309921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116586084472309921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116586084472309921'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2006/12/problems-with-ualgs-proxy-of-srtm.html' title='Problems with UALG&apos;s proxy  (of the SRTM script)'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-116500479033215299</id><published>2006-12-01T19:50:00.000Z</published><updated>2007-02-16T08:17:57.933Z</updated><title type='text'>Downloading the SRTM V3.0 using a PERL script</title><content type='html'>GeoTiff is the best format to download because it runs very well with GDAL and GRASS, the tiles are in 5º by 5º. I am interrested in area between 35ºE -&gt; 100º E; 30ºN -&gt; 60ºN, this is a huge square from the western med. till the middle of China. The main objective is only the Aral Sea, but since I need to catch all the NIS countries the area has to be relatively big (Kazakhstan is HUGE!!!)&lt;br /&gt;&lt;br /&gt;From the map I need all the tiles from x=44 y=6 till  x=56 y=1 (left bottom till rigth top) this gives a big amount of clicks/downloads !!!! Using the approach of lets spend 99% of the time making a script that will do 100% of the job in 1% of the time, I decided to make a simple PERL scrip.&lt;br /&gt;&lt;br /&gt;I am no PERL expert, I normally program in C/C++ so I am not familiar with PERL, but it was relatively simple because I had a book around the house called "Perl for C programmers" and the code lines for the FTP access where more or less copied from the explanation of how the Net::FTP module works.&lt;br /&gt;&lt;br /&gt;The tile files have a structure like srtm_X_Y.zip so the script asks for the minimal and maximal number for x and y, after it makes the URL string and opens an FTP connection to the italian server. The script only has the debug dumping of the FTP connection.&lt;br /&gt;&lt;br /&gt;Just copy/paste the next files to a file and run it:&lt;br /&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;#The script generates the URL of the files to download&lt;br /&gt;#then it opens an FTP connection a gets the file&lt;br /&gt;#simple, clean without much programming advances and it works&lt;br /&gt;#note: the file code is something like this srtm_X_Y.zip&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;use Net::FTP;&lt;br /&gt;#variable declaration&lt;br /&gt;#specific varibles, change here according to needs&lt;br /&gt;my $ftp_url="ftplmu.jrc.it";&lt;br /&gt;my $ftp_pwd="/pub/SRTM_v3/SRTM_Data_GeoTiff";&lt;br /&gt;my $ftp_file;&lt;br /&gt;my $ftp;&lt;br /&gt;#input variables&lt;br /&gt;my $max_x;&lt;br /&gt;my $min_x;&lt;br /&gt;my $max_y;&lt;br /&gt;my $min_y;&lt;br /&gt;#other variables&lt;br /&gt;my $temp_min_y;&lt;br /&gt;my $formated_number_y;&lt;br /&gt;my $formated_number_x;&lt;br /&gt;my $file_url;&lt;br /&gt;#user input&lt;br /&gt;print "Enter tile number of maximum long. (x): ";&lt;br /&gt;$max_x=&amp;#60;STDIN&amp;#62;;&lt;br /&gt;chomp($max_x);&lt;br /&gt;print "Enter tile number of minimum long. (x): ";&lt;br /&gt;$min_x=&amp;#60;STDIN&amp;#62;;&lt;br /&gt;chomp($min_x);&lt;br /&gt;print "Enter tile number of maximum lat. (y): ";&lt;br /&gt;$max_y=&amp;#60;STDIN&amp;#62;;&lt;br /&gt;chomp($max_y);&lt;br /&gt;print "Enter tile number of minimum lat. (y): ";&lt;br /&gt;$min_y=&amp;#60;STDIN&amp;#62;;&lt;br /&gt;chomp($min_y);&lt;br /&gt;#for loop to generate the url and open the FTP connection&lt;br /&gt;$temp_min_y=$min_y;&lt;br /&gt;for ( ;$min_x&lt;=$max_x; $min_x++) {     #some nice C/C++ sytanx     $formated_number_x=sprintf("%02d",$min_x);     $min_y=$temp_min_y;     for( ;$min_y&lt;=$max_y; $min_y++) {     $formated_number_y=sprintf("%02d",$min_y);     $ftp_file="srtm_".$formated_number_x."_".$formated_number_y.".zip";     #creating the FTP object and getting the file     $ftp = Net::FTP-&gt;new($ftp_url, Debug=&gt;1, Passive=&gt;1) or die "It is not connecting: $@";&lt;br /&gt;  $ftp-&gt;login("anonymous");&lt;br /&gt;  $ftp-&gt;cwd($ftp_pwd);&lt;br /&gt;  $ftp-&gt;message;&lt;br /&gt;  $ftp-&gt;binary;&lt;br /&gt;  $ftp-&gt;get($ftp_file) or die "Get failed ", $ftp-&gt;message;&lt;br /&gt;  $ftp-&gt;quit;&lt;br /&gt;  }&lt;br /&gt;}&lt;/stdin&gt;&lt;/stdin&gt;&lt;/stdin&gt;&lt;/stdin&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-116500479033215299?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/116500479033215299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=116500479033215299' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116500479033215299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116500479033215299'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2006/12/downloading-srtm-v30-using-perl-script.html' title='Downloading the SRTM V3.0 using a PERL script'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-116499076387127683</id><published>2006-12-01T16:17:00.000Z</published><updated>2006-12-01T16:32:43.880Z</updated><title type='text'>Getting SRTM data (version 3)</title><content type='html'>The SRTM data is the altimetric data created by the Shuttle Radar Topography Mission, and it is available in a resolution of 3-arc second (90meter) outside the USA. Version 3.0 has finshed SRTM data, DEM void's filled, clips of the coastlines.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://srtm.csi.cgiar.org/SRTMdataProcessingMethodology.asp"&gt;Methodology of SRTM V3.0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp"&gt;WebGIS to download tiles of SRTM V3.0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This server has the option of mirror picking and a direct access to the FTP&lt;br /&gt;&lt;br /&gt;I tested the 3 mirrors for velocity of download the srtm_48_05.zip file, my location is Portugal and my ISP says that my ADSL is at 24mbits (Ya shore......) and the test was at 4:54PM (Lisbon Time) in 29 Nov. 2006&lt;br /&gt;HTTP connection of CSI server: 268kB/sec&lt;br /&gt;FTP connection of CSI server:  154kB/sec&lt;br /&gt;&lt;br /&gt;HTTP connection of JRC(IT) server:  254kB/sec&lt;br /&gt;FTP connection of JRC(IT) server:  470kB/sec&lt;br /&gt;&lt;br /&gt;HTTP connection of Kings College (UK) server: 118 kB/sec&lt;br /&gt;FTP connection of Kings College (UK) server: 351 kB/sec&lt;br /&gt;&lt;br /&gt;So the velocity doesn't change much but it seems (at least for me) that the Italian server is better for my location&lt;br /&gt;&lt;br /&gt;Also there are some FTP servers with version 2.0 and 1.0:&lt;br /&gt;&lt;a href="ftp://e0srp01u.ecs.nasa.gov/srtm/"&gt;ftp for version 1.0 and 2.0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-116499076387127683?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/116499076387127683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=116499076387127683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116499076387127683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116499076387127683'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2006/12/getting-srtm-data-version-3.html' title='Getting SRTM data (version 3)'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-116489817801228694</id><published>2006-11-30T14:44:00.000Z</published><updated>2006-11-30T14:49:38.013Z</updated><title type='text'>After GRASS was installed.....</title><content type='html'>After GRASS is compiled the GDAL need to be recompiled pointing to the GRASS directory&lt;br /&gt;&gt;./configure –with-grass=/usr/local/grass-6.2.0 &amp;&amp; make&lt;br /&gt;&lt;br /&gt;Normally when using gdal (in this case gdalinfo) it may get an error message like this&lt;br /&gt;&lt;br /&gt;&gt;gdalinfo: error while loading shared libraries: libgrass_vect.so: cannot open shared object file: No such file or directory&lt;br /&gt;&lt;br /&gt;This means that gdal is not finding the libraries of GRASS, the best thing is to put the GRASS path on the ld.so.config and run the ldconfig&lt;br /&gt;&lt;br /&gt;&gt;echo /usr/local/grass-6.2.0/lib &gt;&gt; /etc/ld.so.conf&lt;br /&gt;&gt;ldconfig&lt;br /&gt;&lt;br /&gt;If you put &gt; instead of &gt;&gt; it will fuck up all ld.so.conf&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-116489817801228694?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/116489817801228694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=116489817801228694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116489817801228694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116489817801228694'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2006/11/after-grass-was-installed.html' title='After GRASS was installed.....'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-116489776046505712</id><published>2006-11-30T14:38:00.000Z</published><updated>2006-11-30T14:43:21.796Z</updated><title type='text'>Complete ./configure options for GRASS 6.2</title><content type='html'>The new GRASS 6.2 has been out for sometime and normally when I have to compile GRASS I need to type a HHUUUUGGEEEE command line to have everything that I need working.&lt;br /&gt;&lt;br /&gt;Normally I put the command line in a  file called setup.sh and then run it&lt;br /&gt;&lt;br /&gt;              &lt;style type="text/css"&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0in;"&gt;./configure --with-postgres-includes=/usr/include/pgsql --with-cxx --with-mysql --with-mysql-includes=/usr/include/mysql --with-ffmpeg --with-ffmpeg-includes=/usr/local/include/ffmpeg –enable-largefile --with-readline --with-sqlite  --with-gdal=/usr/local/bin/gdal-config&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;This works for my linux box (suse 10.1) and it will give&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;- Access to MySQL and PostGIS&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;- Create movies (mpeg)&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;- Use GDAL to acess files (after GRASS is intalled GDAL need to be recompiled)&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;- Enable readline (to go back on the commands)&lt;/p&gt;&lt;p style="margin-bottom: 0in;"&gt;- Things like enable-largefile and enable-cxx just look good :)&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-116489776046505712?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/116489776046505712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=116489776046505712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116489776046505712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116489776046505712'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2006/11/complete-configure-options-for-grass.html' title='Complete ./configure options for GRASS 6.2'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36476784.post-116489553629530684</id><published>2006-11-30T13:58:00.000Z</published><updated>2006-12-11T01:04:03.330Z</updated><title type='text'>Introduction</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/2516/3884/1600/263706/jorge_south_park.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/x/blogger/2516/3884/200/309287/jorge_south_park.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;style type="text/css"&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0in;"&gt;To start a blog a person should introduce him self: Born in the sleepy town of &lt;a href="http://en.wikipedia.org/wiki/Tavira"&gt;Tavira&lt;/a&gt; in the shores of the Gilão river in the Algarve, southern most region of Portugal, learned Agriculture in the &lt;a href="http://www.ualg.pt"&gt;Algarve University&lt;/a&gt; and then moved to Israel to &lt;a href="http://www.bgu.ac.il"&gt;Ben-Gurion University&lt;/a&gt; for 4 years to make a Ph.D. in application of Geostatistics and Principal Component Analysis in Organic Agriculture.&lt;/p&gt;  &lt;p style="margin-bottom: 0in;"&gt;In the middle of the master and Ph.D I started to work in GIS and since I am a big linux fan/user it was it was natural for me to adopt &lt;a href="http://grass.itc.it/"&gt;GRASS&lt;/a&gt; as my GIS platform and to work in &lt;a href="http://lib.stat.cmu.edu/R/CRAN/"&gt;R&lt;/a&gt; as my mathematical “calculator”&lt;/p&gt;    &lt;p style="margin-bottom: 0in;"&gt;In this next year I'll be working in a project where  the Portuguese team will have to make a webgis system meaning 1 year of grass and mapserver !!&lt;br /&gt;&lt;br /&gt;This blog will help me to keep track of some of my work and it will also be a place for me to write my notes, because my memory is very crapy and I can only recall 1% of all the grass commands and HOWTOs&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36476784-116489553629530684?l=jesus-loves-grass.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jesus-loves-grass.blogspot.com/feeds/116489553629530684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36476784&amp;postID=116489553629530684' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116489553629530684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36476784/posts/default/116489553629530684'/><link rel='alternate' type='text/html' href='http://jesus-loves-grass.blogspot.com/2006/11/introduction.html' title='Introduction'/><author><name>Mister Jesus</name><uri>http://www.blogger.com/profile/02223037794759793532</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_yhNY28f50Pc/SsH3slwCyLI/AAAAAAAAACA/MpO23_sNVOg/S220/avatar2.jpg'/></author><thr:total>1</thr:total></entry></feed>
