Child pages
  • WMS primer
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

In this primer we will demonstrate how to obtain a graps of a small set of data from a large datasets with the OGC Web Mapping Service (WMS) protocol. We will show that ordering images through WMS is just as easy as buying an ice cream.

  • Find a data web source that hosts a WMS server (go to an ice cream vendor). We will use the Shuttle Radar Topography Mission datasets hosted at the Woods Hole Institute THREDDS OPeNDAP server as example in this primer. THREDDS OPeNDAP server can be configured to serve WMS for orthogonal datasets with proper geographic information.
  • Ask for what the server has to offer (see which flavours he has and which kind of cups). Ypu need to add the following mandatory <keyword,value> pairs to the base server url, separated by an &, e.g.: ?service=WMS&request=GetCapabilities.

    keyword

    value

    source

    service

    WMS

    Mandatory WMS standard value

    request

    GetCapabilities

    Mandatory WMS standard value

    This procedure works for all subsequent <keyword,value> pairs in this primer:
    http://geoport.whoi.edu/thredds/wms/bathy/srtm30plus_v6?service=WMS&request=GetCapabilities
    
    This url will return an xml file that contains an inventory of the available datasets. (You can also request availabe datasets for one WMS version only by appending the optional version keyword.)
  • Look at what versions of WMS the server has to offer (check whether the ice cream is fresh). For each version there is a
    tag WCS_Capabilities with attribute version, e,.g.
    <WMS_Capabilities version="1.3.0" ... >
    
    <Capability>
    <Request>
    ...
    <GetMap>
    <Format>image/jpeg</Format>
    <Format>image/png</Format>
    <Format>application/vnd.google-earth.kmz</Format>
    <Format>image/gif</Format>
    ...
    </GetMap>
    ...
    </WMS_Capabilities>
    
    For each version a number of datasets is hosted. Select one dataset (ice cream flavour) from the list through the Layer tag. The name of the dataest is the name tag, in this case there is only topo.
    <Layer>
     ...
     <CRS>EPSG:4326</CRS>
     <CRS>CRS:84</CRS>
     <CRS>EPSG:41001</CRS>
     <CRS>EPSG:3857</CRS>
     <CRS>EPSG:27700</CRS>
     <CRS>EPSG:3408</CRS>
     <CRS>EPSG:3409</CRS>
     <CRS>EPSG:32661</CRS>
     <CRS>EPSG:32761</CRS>
     ...
     <Layer>
      <Title>UCSD SRTM30_v6 Global DEM (30 sec)</Title>
      <Layer queryable="1">
      <Name>topo</Name>
      ...
      <Style><Name>boxfill/redblue        </Name>...
      <Style><Name>boxfill/redblue        </Name>...
      <Style><Name>boxfill/alg            </Name>...
      <Style><Name>boxfill/ncview         </Name>...
      <Style><Name>boxfill/greyscale      </Name>...
      <Style><Name>boxfill/alg2           </Name>...
      <Style><Name>boxfill/occam          </Name>...
      <Style><Name>boxfill/rainbow        </Name>...
      <Style><Name>boxfill/sst_36         </Name>...
      <Style><Name>boxfill/ferret         </Name>...
      <Style><Name>boxfill/occam_pastel-30</Name>
      ...
      </Layer>
     </Layer>
    </Layer>
    
    From the above xml extract we will can distill all values necesarry to request an image.
  • Now we can actually get a subset from the dataset want by using request=GetMap instead of the request=GetCapabilities we used above to obtain the meta-data (order ice cream). The following <keyword,value> pairs are mandatory.

    keyword

    value

    source

    service

    WMS

    Mandatory WMS standard value

    request

    GetMap

    Mandatory WMS standard value

    version

    1.3.0

    One of the mandatory WMS standard values returned by returned by the request=GetCapabilities

    BBOX

    0,50,10,55

    bounding box: min(longitude),min(latitude),max(longitude),max(latitude)

    layers

    topo

    WMS counterpart of WCS coverage

    format

    image/png

    One of the mandatory WMS standard values by returned by the request=GetCapabilities tag <Capability><Request><GetCapabilities><Format>. In the example above there are 4 formats.

    CRS

    EPSG%3A4326

    One of the server-defined values by returned by the request=GetCapabilities tag <Layer><Layer><Layer queryable="1"><CRS>. In the example above there are 9 geographic projections available . Note that the colon in EPSG:4326 has been replaced by by %3A because colons are not allowed in urls. For more info on the projections see spatialreference.org

    width

    800

    width of the image in number of pixels. The xml file show a max
    MaxWidth and MaxHeight allowd by the server.

    height

    600

    height of the image in number of pixels

    styles

    boxfill/redblue

    One of the server-defined values by returned by the request=GetCapabilities tag <Layer><Layer><Layer queryable="1"><Name>topo</Name><Style><Name>. In the example above there are 10 styles, for screenshots click the gallery below.

Summary: correct WMS request for an available formats is given below. You can copy it into your browser to obtain the image. We chose the same bounding boxes as in the OPeNDAP primer that access these same datasets via netCDF libraries in Matlab, python or R. We discussed the pros and cons of WCS vs OPeNDAP in a FOSS4G paper.

http://geoport.whoi.edu/thredds/wms/bathy/smith_sandwell_v11?service=WMS
&version=1.3.0
&request=GetMap
&bbox=0,50,10,55
&layers=topo
&format=image/png
&crs=EPSG%3A4326
&width=800
&height=600
&styles=boxfill/redblue

Some additional, optional WMS keywords are:

keyword

value

source

TRANSPARENT

True

Valid for encoding format that can handle transparency, e.g. png.

time

yyyy-mm-ddTHH:MM:SSZ

ISO time notation. Not implemented in most GIS minded software packages, for an example implementation see the ADAGUC WMS server and WMS web client

  • No labels