Since the GetCapabilities document from ncWMS contain a lot of irrelevant data, we need to generate a list in METAMOD of layers and styles that is relevant to display in WMS clients. The open WMC standard from OGC looks like the best choice for this.

The current development prototype can be found on my workstation. The structure is likely to resemble the following:

<?xml version="1.0" encoding="UTF-8"?> <ViewContext version="1.1.0" id="OpenLayers_Context_466" xmlns="http://www.opengis.net/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:default="http://www.opengis.net/context" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ol="http://openlayers.org/context" xsi:schemaLocation="http://www.opengis.net/context http://schemas.opengis.net/context/1.1.0/context.xsd"> <General> <Window width="798" height="573"/> <BoundingBox minx="-3000000" miny="-3000000" maxx="7000000" maxy="7000000" SRS="EPSG:32661"/> <Title>OSISAF WMS viewer</Title> <Extension> <ol:maxExtent minx="-10637318.50" miny="-10637318.50" maxx="14637318.50" maxy="14637318.50"/> </Extension> </General> <LayerList> <!-- the data layer --> <Layer queryable="0" hidden="0"> <Server service="OGC:WMS" version="1.1.1"> <OnlineResource xlink:type="simple" xlink:href="http://dev-vm188.met.no/thredds/wms/osisaf/met.no/ice/ice_conc_nh_200911291200_CF.nc?"/> </Server> <Name>ice_conc</Name> <Title>Ice concentration</Title> <Abstract>Ice concentration</Abstract> <FormatList> <Format current="1">image/png</Format> </FormatList> <StyleList> <Style> <Name>BOXFILL/redblue</Name> <Title>BOXFILL/redblue</Title> <Abstract>BOXFILL style, using the redblue palette</Abstract> <LegendURL width="110" height="264"> <Format>image/png</Format> <OnlineResource xlink:type="simple" xlink:href="http://dev-vm188.met.no/thredds/wms/osisaf/met.no/ice/ice_conc_nh_200911291200_CF.nc?REQUEST=GetLegendGraphic&amp;LAYER=ice_conc&amp;PALETTE=redblue"/> </LegendURL> </Style> <!-- more styles --> </StyleList> <Extension> <ol:maxExtent minx="-10637318.50" miny="-10637318.50" maxx="14637318.50" maxy="14637318.50"/> <ol:transparent>false</ol:transparent> <ol:numZoomLevels>8</ol:numZoomLevels> <ol:units>m</ol:units> <ol:isBaseLayer>true</ol:isBaseLayer> <ol:displayInLayerSwitcher>true</ol:displayInLayerSwitcher> <ol:singleTile>true</ol:singleTile> </Extension> </Layer> <!-- more layers --> </LayerList> </ViewContext>