[GRASS-user] Re: [GRASS-dev] r.in.wms improvements (call for testing)

Agustin Diez Castillo Agustin.Diez at uv.es
Tue Mar 11 05:18:23 EDT 2008


I can't r.in.wms yet (william's svn build, so I'm not absolutely sure  
if your changes are there)
r.in.wms -l mapserver=http://www.idee.es/wms/PNOA/PNOA srs=EPSG:23030  
format=png wmsquery=version=1.1.1 maxcols=1024 maxrows=1024  
'curloptions=-C - --retry 5 -s -S' method=nearest --verbose
Using WGET for downloading data.
List of layers for server <http://www.idee.es/wms/PNOA/PNOA>:

18:51:17 URL:http://www.idee.es/wms/PNOA/PNOA [448/448] -> "/Volumes/ 
LaCieDisk/Users/Shared/agus_compartido/grassdata/Projecte/adiez2/.tmp/ 
regadiuet.prearq.uv.es/4333.0capabilities.xml" [1]
wget -c -t 5 -nv --post- 
data="service=WMS&request=GetCapabilities&version=1.1.1" "http://www.idee.es/wms/PNOA/PNOA 
" -O "/Volumes/LaCieDisk/Users/Shared/agus_compartido/grassdata/ 
Projecte/adiez2/.tmp/regadiuet.prearq.uv.es/4333.0capabilities.xml";


ERROR: Parsing XML file
------------------------
<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM
  "http://www.idee.es/SgdWms/Server/exception_1_1_1.dtd">
<ServiceExceptionReport version="1.1.1">
   <ServiceException code="InvalidFormat">
     <![CDATA[
   Par?metros:
     REQUEST INEXISTENTE O INVALIDA
     Verticesdisponibles:
     ]]>
   </ServiceException>
</ServiceExceptionReport>



On Mar 5, 2008, at 9:36 AM, Hamish wrote:

> Hi,
>
> Yesterday I had some trouble connecting to NOAA's Electronic  
> Navigation
> Chart(ENC) WMS server[1] using r.in.wms. It turns out that their WMS
> server poses some challenges for us. Their ArcIMS system will not  
> handle
> POST-data, it will only respond to very long URL strings (GET  
> requests)
> [2]. Also their list of layer names include URL problematic characters
> like spaces and parser problematic chars like commas[3].
>
> In SVN/trunk I've now adjusted the code to deal with both of those
> things, although I haven't done anything for commas in the layer  
> names -
> those will still be parsed incorrectly[4]. Also the script is now
> slightly less chatty by default and writes metadata to the output  
> file.
>
> Could folks test it please? If it's good it might be worth backporting
> for 6.3.0, but it would need a lot of testing before considering that.
> Agustin, maybe this solves your problem?
>
>
>
> I also tried to fix the tile patching for single-band image. The  
> ArcIMS
> server would only send JPEGs or 8bit PNG & GIF images (no GeoTIFF).  
> The
> JPGs split into three RGB bands and patch correctly, but the 8bit  
> PNG and
> GIF tiles have per-tile unique color indexes; r.patch uses the index
> from the first, resulting in funky weirdness. The current solution  
> is a
> hack using r.mapcalc's r#,g#,b# operators to split into three bands,  
> then
> do the patching, and then r.compositing. Other ideas for solving that:
>
> 1- add a -c flag to r.patch to patch by common color not by cat  
> number.
>
> 2- use the PNG driver to 'd.rast -o' all the tiles, set GRASS_WIDTH  
> and
>  GRASS_HEIGHT to the region dims, then run d.out.file + 'r.in.gdal - 
> o' +
>  r.region.
>
> 3- Use  echo "`seq 0 255`" |  r.what.color -i in=tile_0 (or colr/  
> files
>  directly) to get color tables for each tile, then for all the other
>  tiles do a search loop for each RGB value and create reclass rules
>  for each additional tile then run r.patch and copy the color index
>  rules from the first map.
>
> 4. (what I did) For each tile extract 3 new 0-255 maps with  
> r.mapcalc's
>  r#, g#, b# operators, patch all r, g, b tiles together, then  
> recombine
>  into a single map with r.composite.
>
> 5. Use gdal_merge.py  (but does it have a preserve color mode?)
>
> 6. Try NetPBM's pnmcat on raw downloaded tiles before loading into  
> GRASS.
>   This is what NVIZ uses to assemble the max. res PPM output.
>   (but does it have a preserve color mode?)
>
> "1" would be the best but I expect easier said than done. [beyond me]
> "2" is probably the quickest but dirtiest [opens to display lib pains]
> "3" has elegance but may be slow  [perhaps not so slow?]
> "4" slow but functional hack
> "5" and "6" on the raw input would probably be very fast, but it is
>    unknown to me if they would suffer the same multiple color index
>    problem as r.patch.
>
> TODO:
> * rewrite the thing in Python (any volunteers? what is the QGIS plugin
>   written in? Python or C++? [reuse whatever we can])
> * See if GDAL 1.5.0's new WMS function could help simplify the task
>
>
> [1] NOAA's WMS:
> http://ocs-spatial.ncd.noaa.gov/website/encdirect/help/helpfile.htm#Webser
> http://ocs-spatial.ncd.noaa.gov/wmsconnector/com.esri.wms.Esrimap/encdirect?
>
> Some nice layers to get started with:
> "layers=\
> LAND,\
> 2DEPTH AREA(DEPARE),\
> 2SEA AREA(SEAARE),\
> 2SEABED AREA_polygon(SBDARE),\
> 2SOUNDINGS,\
> DEPTH AREA(DEPARE)"
>
> [2] the OGC WMS def ver 1.3.0 says that is allowed, see sec. 6.3.4
> [3] the layer names are a mixed bag, most use _ not ' ', only one  
> comma
> [4] will GRASS's parser handle escaped \, in a multiple answers list?
>    can it be simply done in a shell script? ('s+\\,+%2C+g' is easy
>    enough but how to have that ignore a real '\\,' in the layer name?)
>    and that means the use will have to munge the layer name  
> manually :/
>
>
>
> sorry for the long post on a high traffic day,
> Hamish
> _______________________________________________
> grass-dev mailing list
> grass-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-dev
>



More information about the grass-user mailing list