templates.capabilities-1.3.0.vm Maven / Gradle / Ivy
WMS
$catalogue.serverInfo.name
$catalogue.serverInfo.abstract
#foreach($keyword in $catalogue.serverInfo.keywords)
$keyword
#end
$catalogue.contactInfo.name
$catalogue.contactInfo.organisation
$catalogue.contactInfo.telephone
$catalogue.contactInfo.email
none
none
$catalogue.serverInfo.maxSimultaneousLayers
$catalogue.serverInfo.maxImageWidth
$catalogue.serverInfo.maxImageHeight
text/xml
#foreach($imageFormat in $supportedImageFormats)
$imageFormat
#end
#foreach($featureInfoFormat in $supportedFeatureInfoFormats)
$featureInfoFormat
#end
XML
ncWMS2
GetMap
COLORSCALERANGE
Of the form min,max this is the scale range used for plotting the data.
NUMCOLORBANDS
The number of discrete colours to plot the data. Must be between 2 and 250
ABOVEMAXCOLOR
The colour to plot values which are above the maximum end of the scale range. Colours are as defined above, with the addition of "extend", which will use the maximum value of the palette.
BELOWMINCOLOR
The colour to plot values which are below the minimum end of the scale range. Colours are as defined above, with the addition of "extend", which will use the minimum value of the palette.
LOGSCALE
"true" or "false" - whether to plot data with a logarithmic scale
TARGETTIME
For in-situ data, all points which fall within the time range (specified in the TIME parameter) will be plotted. In the case that an in-situ point has multiple time readings within that range, the colour used to plot them will depend on the time value which is closest to this given value
TARGETELEVATION
For in-situ data, all points which fall within the elevation range (specified in the ELEVATION parameter) will be plotted. In the case that an in-situ point has multiple elevation readings within that range, the colour used to plot them will depend on the elevation value which is closest to this given value
OPACITY
The percentage opacity of the final output image
ANIMATION
"true" or "false" - whether to generate an animation. This also needs the TIME to be of the formstarttime/endtime, and currently is only implemented for features with a discrete time axis.
GetTimeseries
This produces either a timeseries graph or, if downloading is enabled, a CSV file containing the data. The URL parameters are identical to those of a GetFeatureInfo request. The TIME parameter should specify a range of times in the form starttime/endtime, and the supported formats are: image/png,image/jpg,image/jpeg,text/csv
GetVerticalProfile
This produces either a vertical profile graph or, if downloading is enabled, a CSV file containing the data. The URL parameters are identical to those of a GetFeatureInfo request. The ELEVATION parameter should specify a range of elevations in the form startelevation/endelevation, and the supported formats are: image/png,image/jpg,image/jpeg,text/csv
GetTransect
This produces a graph of data values along an arbitrary path. Additionally if there is vertical information present in the dataset, it will produce a vertical section along the same path. It accepts the same URL parameters as a GetMap requestion, with the additional mandatory parameter LINESTRING
LINESTRING
The points which define the path of the transect to plot. Of the form x1 y1,x2 y2,x3 y3...
GetMetadata
Fetches small pieces of metadata. Many of these are also present in this capabilities document, but GetMetadata provides a more convenient method of accessing such data. GetMetadata always returns data in the JSON format
ITEM
This specifies the metadata to return. This can take the values:
menu: Returns a tree representation of the available WMS layers, with IDs. Takes the optional parameter DATASET to return the same tree for a single dataset
layerDetails: Returns a set of details needed to plot a given layer. This includes such data as units, layer bounding box, configured scale range, etc. Takes the parameters LAYERNAME and TIME. The TIME parameter is optional, and if it is specified then the nearest available time is returned as part of the layer's details.
minmax: Calculates the range of values in the given area. Takes the same parameters as a GetMap request.
timesteps: Returns the available times for a given day. Takes the parameters LAYERNAME and DAY (yyyy-mm-dd)
animationTimesteps: Returns a list of time strings at different temporal resolutions for a given time range. This is used to present to the user different frequencies for the generation of an animation. Takes the parameters LAYERNAME, START, and END
GetLegendGraphic
The GetLegendGraphic request generates an image which can be used as a legend. There are two main options: Generating just a colourbar, and generating a full legend.
COLORBARONLY
"true" or "false". Whether to generate a full legend or just the colour bar. If it's "true", the following URL parameters are required:
PALETTE: The name of the palette to use. If missing, set to "default"
NUMCOLORBANDS: The number of colour bands to use. If missing, set to 250
VERTICAL: Whether to very colours vertically. If missing, defaults to true
WIDTH: The width of the image to generate. If missing, defaults to 50
HEIGHT: The height of the image to generate. If missing, defaults to 200
For a full legend, the additional parameters LAYERS and either STYLES, SLD, or SLD_BODY must be supplied. This is because a single WMS layer may depend on an arbitrary number of sub-layers, depending on the style it is plotted in. In addition to these parameters, the optional parameters controlling the style may be supplied (these are the same as documented in the GetMap request). Note that for full legends, the supplied width and height are NOT the final height of the image, but rather the width and height of each individual coloured plot area (i.e. the 1d/2d colourbar)
$catalogue.serverInfo.name
#foreach($supportedCrs in $supportedCrsCodes)
$supportedCrs
#end
#foreach($dataset in $datasets)
$catalogue.getDatasetTitle($dataset.id)
#foreach($variable in $dataset.topLevelVariables)
## Recursively insert layers here.
#layer($dataset $variable $verbose $variable.children)
#end
#end
##
##
## End of actual capabilities document. Layer macro follows.
##
##
#macro(layer $dataset $variableMetadata $verboseTimes $children)
#set($parent = ($children && $children.size() > 0))
#set($supportedStyles = $catalogue.styleCatalogue.getSupportedStyles($variableMetadata, $catalogue.layerNameMapper))
#set($plottable = ($supportedStyles && $supportedStyles.size() > 0))
#set($layerName = $catalogue.layerNameMapper.getLayerName($dataset.id, $variableMetadata.id))
#set($layerMetadata = $catalogue.getLayerMetadata($variableMetadata))
#if(!$layerMetadata.disabled)
#if($plottable && $layerName && !$parent)
$layerName
#end
#if($layerMetadata.title)
$layerMetadata.title
#end
#if($layerMetadata.description)
$layerMetadata.description
#end
#if($parent)
#if($supportedStyles.size() > 0)
#layer($dataset $variableMetadata $verbose false)
#end
#foreach($child in $variableMetadata.children)
#layer($dataset $child $verbose $child.children)
#end
#else
#if($variableMetadata.horizontalDomain.geographicBoundingBox)
#set($bbox = $variableMetadata.horizontalDomain.geographicBoundingBox)
$bbox.westBoundLongitude
$bbox.eastBoundLongitude
$bbox.southBoundLatitude
$bbox.northBoundLatitude
#end
#if($variableMetadata.temporalDomain)
## We have a non-null temporal domain
#set($tDomain = $variableMetadata.temporalDomain)
#if($GISUtils.isTemporalDomainTimeAxis($tDomain))
## Discrete temporal domain
#if($verboseTimes)
#foreach($tval in $tDomain.coordinateValues)
$TimeUtils.dateTimeToISO8601($tval)#if($foreach.hasNext),#end
#end
#else
$TimeUtils.getTimeStringForCapabilities($tDomain.coordinateValues)
#end
#else
## Continuous temporal domain
$TimeUtils.dateTimeToISO8601($tDomain.extent.low)/$TimeUtils.dateTimeToISO8601($tDomain.extent.high)/0
#end
#end
##
#if($variableMetadata.verticalDomain)
## We have a non-null vertical domain
#set($zDomain = $variableMetadata.verticalDomain)
#if($zDomain.verticalCrs.isPressure())
#set($zUnits = "ncwms:pressure")
#elseif($zDomain.verticalCrs.isPositiveUpwards())
#set($zUnits = "ncwms:height")
#else
#set($zUnits = "ncwms:depth")
#end
#if($GISUtils.isVerticalDomainVerticalAxis($zDomain))
## Domain is a VerticalAxis
## Set the units attribute to a pseudo-CRS
#foreach($zval in $zDomain.coordinateValues)
$zval#if($foreach.hasNext),#end
#end
#else
## Continuous vertical domain
$zDomain.extent.low/$zDomain.extent.high/0
#end
#end
#foreach($style in $supportedStyles)
#if($catalogue.styleCatalogue.styleUsesPalette($style))
#foreach($paletteName in $availablePalettes)
#end
#else
#end
#end
#end
#end
#end
© 2015 - 2024 Weber Informatics LLC | Privacy Policy