API-Reference

Maps API Ontology

<iframe src="https://mapsowl.ramani.ujuizi.com/" frameborder="0" width="100%" height="600"></iframe>

Request Supported

Operation Description
GetMetadata *) Requests metadata (e.g. date-range, layer details, units, etc.).
GetMap Requests Map-tiles (in png).
GetMosaic To grab the Sentinel-2 image data as GeoTIFFs (16-bit) for an AOI (area of interest).
GetFeatureInfo*) Retrieves the underlying data, including geometry and attribute values, for a pixel location on a map
GetVerticalProfile*) Same as Get Point Info (getFeatureInfo), but along a vertical dimension instead of a single point. Only works on layers that have a vertical dimension (explore the maps we have on offer in our SDL).
GetTimeseriesProfile*) Same as Get Location Info (getFeatureInfo) but varying in time (along a temporal dimension). Only works on layers that have a temporal dimension (explore the maps we have on offer in our SDL).
GetTransect*) Same as Get Location Info (getFeatureInfo), but along a horizontal line (input is LINESTRING with LatLng points).
GetArea*) Same as Get a Horizontal Profile (getTransect), but for an area defined by a LINESTRING, which must contain 3 or more elements to define a polygon.

*): Some request-methods listed above are not supported for Experimental data products.


Required Parameters

request
token You must provide the API-Key that you get from our client-area. To get it, please register here (if you have not done already).

Get Metadata (GetMetadata)

The GetMetadata request is used to request small pieces of metadata from RAMANI. Many of these are also present in the capabilities document, but GetMetadata provides a more convenient method of accessing such data. GetMetadata always returns data in the JSON format. All GetMetadata requests must provide the parameter ITEM which states the type of metadata requested. ITEM can take the following values:

Parameters Description
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
https://cloud.ramani.ujuizi.com/wms/YOUR_USERNAME/public?
item=layerDetails&
layer=YOUR_LAYER_ID&
request=GetMetadata&
format=text/json&
token=

example : 

https://cloud.ramani.ujuizi.com/wms/ayudhien/public?
item=layerDetails&
layer=public.ayudhien_FIGZ8&
request=GetMetadata&
format=text/json&
token=c80e14b50f1e51d0135892066879de7e

return :

{
  "units": "m3 m-3",
  "bbox": [
    "6.124999885447323",
    "52.12499894294888",
    "6.864999868907034",
    "52.614998931996524"
  ],
  "scaleRange": [
    "0.12966593",
    "0.51610005"
  ],
  "numColorBands": 250,
  "supportedStyles": [
    "boxfill"
  ],
  "datesWithData": {
    "2008": {
      "4": [
        23
      ],

      ...

      "10": [
        1,
        6,
        18,
        23
      ]
    },
    "2010": {
      "4": [
        24,
        29
      ],

      ...

      "10": [
        5,
        12,
        19,
        22,
        24,
        29
      ]
    }
  },
  "nearestTimeIso": "2010-11-29T00:00:00.000Z",
  "timeAxisUnits": "ISO8601",
  "moreInfo": "http://ramani.ujuizi.com/thredds/dodsC/Sentinel-1-timeseries-Holland.info",
  "copyright": "http://ramani.ujuizi.com/thredds/esaSentinel1Catalog.html?dataset=simS1seriesTwenteNetherlands",
  "palettes": [
    "seq-YlGnBu",
    "div-BrBG",
    "ncview",

    ...

    "seq-BuPu",
    "seq-Purples"
  ],
  "defaultPalette": "rainbow",
  "logScaling": false
}

Get a Map Layer (getMap)

All of the standard parameters for GetMap are supported on RAMANI. Additional notes on some of these:

Parameters Description
FORMAT The supported formats are : image/png, image/png;mode=32bit, image/gif, image/jpeg, application/vnd.google-earth.kmz
TIME For gridded data with a discrete time axis this takes a single value. For in-situ data which is spread over a range, it is more useful to provide a time range in the form starttime/endtime. The default value for this parameter is near datetime.
ELEVATION For gridded data with a discrete vertical axis this takes a single value. For in-situ data which is spread over a range, it is more useful to provide an elevation range in the form startelevation/endelevation. This should ideally be used in conjunction with the TARGETELEVATION parameter (see below).
STYLES Available styles can be found from a GetCapabilities-request https://cloud.ramani.ujuizi.com/wms/YOUR_USERNAME/public?SERVICE=WMS&REQUEST=GetCapabilities&VERSION=1.3.0&layer=[LAYER_ID]&token=[API_KEY], e.g. example Capabilities document. Generally styles are of the form stylename/palettename, and the style name default is always available.
https://cloud.ramani.ujuizi.com/mapcache/YOUR_USERNAME/wms?
              service=&
              request=&
              layers=YOUR_LAYER_ID&
              styles=&
              format=&
              transparent=&
              version=&
              srs=&
              reuseTiles=&
              width=&
              height=&
              token=YOUR_API_KEY&
              COLORSCALERANGE=&
              ELEVATION=&
              EXCEPTIONS=&
              LOGSCALE=&
              NUMCOLORBANDS=&
              TIME=&
              bbox=

example : 

https://cloud.ramani.ujuizi.com/mapcache/ayudhien/wms?
      service=WMS&
      request=GetMap&
      layers=public.ayudhien_GRZ42&
      styles=&
      format=image/png&
      transparent=true&
      version=1.1.1&
      srs=EPSG:3857&
      reuseTiles=true&
      width=256&
      height=256&
      token=b163d3f52ebf1cf29408464289cf5eea20cda538&
      package=com.web.ramani&
      COLORSCALERANGE=0.0,44.0&
      ELEVATION=0&
      EXCEPTIONS=application/vnd.ogc.se_inimage&
      LOGSCALE=false&
      NUMCOLORBANDS=250&
      TIME=2006-01-01T00:00:00.000Z&
      bbox=1056665.4790142768,7396658.353099937,1095801.2374962869,7435794.111581949

Note: For Sentinel-2 Product(s), you can add optional parameter MAXCC with a value between 0-100. MAXCC = The maximum acceptable percentage of the image covered by clouds ('cloudiness').


Get Mosaic (getMosaic)

To grab the Sentinel-2 image data as GeoTIFFs (16-bit) for an AOI (area of interest).

https://cloud.ramani.ujuizi.com/wms/ayudhien/public?
  token=
  &SERVICE=
  &VERSION=
  &CRS=
  &request=GetMosaic
  &layer=
  &WIDTH=
  &HEIGHT=
  &BBOX=
  &FILENAME=
  &TIME=
  &cloudinnes=7
  &FORMAT=

example : 
https://cloud.ramani.ujuizi.com/wms/ayudhien/public?

Note:

  • Parameter cloudiness is the maximum acceptable percentage of the image covered by clouds ('cloudiness') with a value between 0-100.
  • Where BBOX is lower-left (LL) and upper-right (UR) as concatenated string: LEFT,BOTTOM,RIGHT,TOP
  • LL and UR are in decimal degrees Geograpahic Coordinates (WGS84)
  • Optional parameter FORMAT can be use to get other image format with value image/png

Get Location Info (getPoint)

The Get Pointo request works as-per the standard WMS OCG protocol, with the following notable points:

Parameters Description
INFO_FORMAT The supported formats are:text/xml text/plain text/json text/geojson
 https://cloud.ramani.ujuizi.com/wms/YOUR_USERNAME/wms?
              token=g1n9vje5piujci7hnfuacgdss0
              &REQUEST=GetPoint
              &POINT=
              &QUERY_LAYERS=YOUR_LAYER_ID
              &VERSION=1.3.0
              &ELEVATION=
              &STYLES=
              &CRS=
              &info_format=text/json
              &FORMAT=text/json
              &layer=

example : 
https://cloud.ramani.ujuizi.com/wms/ayudhien/public?
      token=g1n9vje5piujci7hnfuacgdss0
      &REQUEST=GetPoint
      &POINT=6.646728515625001 52.35211857272093
      &QUERY_LAYERS=public.ayudhien_GRZ42
      &VERSION=1.3.0
      &ELEVATION=0
      &STYLES=
      &CRS=CRS:84
      &info_format=text/json
      &FORMAT=text/json
      &layer=public.ayudhien_GRZ42

return :
{

    "type": "FeatureInfoResponse",
    "features": [
        {
            "geometry": {
                "type": "Point",
                "coordinates": [
                    6.4084625244140625,
                    52.305070006527984
                ]
            },
            "properties": {
                "iIndex": 28,
                "jIndex": 31,
                "gridCentreLon": 6.404999879188836,
                "gridCentreLat": 52.304998938925564
            },
            "featureInfo": [
                {
                    "time": "2010-11-29T00:00:00.000Z",
                    "value": 0.36175844
                }
            ]
        }
    ]
}

for some experimental product may be return different format : 

return :
{
    "success": true,
    "var": [
        "b04",
        "b08",
        "ndvi"
    ],
    "data": {
        "type": "FeatureCollection",
        "features": [
            {
                "type": "Feature",
                "id": 2731794,
                "geometry": {
                    "type": "MultiPolygon",
                    "crs": {
                        "type": "name",
                        "properties": {
                            "name": "urn:ogc:def:crs:EPSG::4326"
                        }
                    },
                    "coordinates": [
                        [
                            [
                                [
                                    7.727463259,
                                    45.14673833
                                ],
                                [
                                    9.124153656,
                                    45.153760768
                                ],
                                [
                                    9.122062002,
                                    44.165310291
                                ],
                                [
                                    7.74889526,
                                    44.158524447
                                ],
                                [
                                    7.727463259,
                                    45.14673833
                                ]
                            ]
                        ]
                    ]
                },
                "properties": {
                    "id": "MSI/L1C/2017/08/30/S2B_MSIL1C_20170830T102019_N0205_R065_T32TMQ_20170830T102531.SAFE/GRANULE/L1C_T32TMQ_A002522_20170830T102531/IMG_DATA/T32TMQ_20170830T102019_",
                    "date": "2017-08-30",
                    "time": "10:25:31",
                    "crs": "EPSG:32632",
                    "mbr": "399960,4890240 509760,5000040",
                    "cloudCoverPercentage": 10.7,
                    "b04": "0.4666000009",
                    "b08": "0.5414000154",
                    "ndvi": "0.0742063597"
                }
            }
        ]
    }

}



Get a Vertical Profile (getVerticalProfile)

This request retrieves either a vertical profile or a vertical slice in a 3D dataset (require data with 'depth' or 'height'). 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/svg
  • text/xml
  • text/json
  • text/gejson
 https://cloud.ramani.ujuizi.com/wms/YOUR_USERNAME/public?
              token=
              &package=
              &REQUEST=GetVerticalProfile
              &LAYER=YOUR_LAYER_ID
              &CRS=CRS:84
              &TIME=2017-08-15T00:00:00.000Z
              &POINT=8.825%2044.400
              &FORMAT=text/json

example : 

https://cloud.ramani.ujuizi.com/wms/ayudhien/public?
token=b163d3f52ebf1cf29408464289cf5eea20cda538
&REQUEST=GetVerticalProfile
&LAYER=public.ayudhien_CPCOP
&CRS=CRS:84
&TIME=2006-08-01T00:00:00.000Z
&POINT=9.75 56.125
&FORMAT=text/json

return :

{

    "type": "Vertical Profile",
    "verticalprofile": {
        "dataset": "Sentinel-5: Time-series Nitrogen Dioxide Forecast (Europe)",
        "time": "2017-08-15T00:00:00.000Z",
        "point": {
            "type": "Point",
            "coordinates": [
                "8.825E",
                "44.4N"
            ]
        },
        "variable": [
            {
                "name": "Nitrogen Dioxide (NO2)",
                "units": "µg/m3"
            },
            {
                "name": "height",
                "units": "m"
            }
        ],
        "data": [
            {
                "height": 0,
                "value": 13.155502
            },
            {
                "height": 50,
                "value": 13.704017
            },
            {
                "height": 250,
                "value": 1.6702627
            },
            {
                "height": 500,
                "value": 1.0529836
            },
            {
                "height": 1000,
                "value": 0.36291724
            },
            {
                "height": 2000,
                "value": 0.11737702
            },
            {
                "height": 3000,
                "value": 0.13521382
            },
            {
                "height": 5000,
                "value": 0.029063959
            }
        ]
    }

}

Get a Time-series Profile (getTimeseriesProfile)

This produces either a timeseries graph. 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/svg
  • text/xml
  • text/json
  • text/gejson
 https://cloud.ramani.ujuizi.com/wms/YOUR_USERNAME/public?
              token=
              &REQUEST=GetPoint
              &ELEVATION=
              &LAYER=YOUR_LAYER_ID
              &CRS=
              &POINT=
              &info_format=
              &FORMAT=
              &QUERY_LAYERS=
              &time=

example : 
https://cloud.ramani.ujuizi.com/wms/ayudhien/public?
token=mmmjst0s4rqacnrop5a7j2d3r4
&REQUEST=GetPoint
&ELEVATION=0
&LAYER=public.ayudhien_BEMD2
&CRS=CRS:84
&POINT=5.855712890625%2046.493164268520744
&info_format=text/json
&FORMAT=text/json
&QUERY_LAYERS=public.ayudhien_BEMD2
&time=2013-12-04T00:00:00.000Z/2013-12-28T00:00:00.000Z

return :
{
  "type": "FeatureInfoResponse",
  "features": [
      {
          "geometry": "5.855712890625 46.493164268520744",
          "properties": {
              "iIndex": 22302,
              "jIndex": 5220,
              "gridCentreLon": 5.854176359716803,
              "gridCentreLat": 46.49583106441423
          },
          "featureInfo": [
              {
                  "time": "2013-12-04T00:00:00.000Z",
                  "value": 1.1
              },
              {
                  "time": "2013-12-12T00:00:00.000Z",
                  "value": 0.90000004
              },
              {
                  "time": "2013-12-20T00:00:00.000Z",
                  "value": 0.7
              },
              {
                  "time": "2013-12-28T00:00:00.000Z",
                  "value": 0.6
              }
          ]
      }
  ]
}

Get a Horizontal Profile (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 takes the same URL parameters as a GetMap request with the addition of a parameter LINESTRING of the format x1 y1,x2 y2,x3 y3... which defines the control points of the graph.

 https://cloud.ramani.ujuizi.com/wms/YOUR_USERNAME/public?
              token=
              &REQUEST=GetTransect
              &LAYER=
              &CRS=
              &TIME=
              &LINESTRING=
              &FORMAT=
              &VERSION=

example : 
https://cloud.ramani.ujuizi.com/wms/ayudhien/public?
token=cjco88li5gt72ovr8qo3lur9o7
&REQUEST=GetTransect
&LAYER=public.ayudhien_BEMD2
&CRS=EPSG:4326
&VERSION=1.1.1
&TIME=2013-12-28T00:00:00.000Z
&info_format=text/json
&FORMAT=text/json
&LINESTRING=0.549412 44.47218,0.559412 44.48218,0.539412 44.46218           

return :


{
  "type": "GetTransectResponse",
  "transect": {
      "crs": "EPSG:4326",
      "linestring": "0.549412 44.47218,0.559412 44.48218,0.539412 44.46218,",
      "dataset": "Sentinel-3: Leaf-Area Index (Global)",
      "variable": "leaf area index",
      "units": "m2/m2",
      "transectData": [
          {
              "time": "2013-12-28T00:00:00.000Z",
              "data": [
                  {
                      "location": "0.549412 44.47218",
                      "value": 0.3
                  },
                  .....
                  {
                      "location": "0.5395322404809619 44.462300240480964",
                      "value": 0.90000004
                  }
                ]
            }
        ]
    }
}


Get a Area Profile (getArea)

supported output are:

  • aggregate
  • histogram
 https://cloud.ramani.ujuizi.com/wms/YOUR_USERNAME/public?
                token=
                &REQUEST=GetArea
                &LAYER=
                &CRS=
                &VERSION=
                &TIME=
                &info_format=
                &FORMAT=
                &LINESTRING=
                &return=

example : 
https://cloud.ramani.ujuizi.com/wms/ayudhien/public?
      token=a3e0sru01j7tf66q8j923as4s2
      &REQUEST=GetArea
      &LAYER=public.ayudhien_BEMD2
      &CRS=EPSG:4326
      &VERSION=1.1.1
      &TIME=2013-12-28T00:00:00.000Z
      &info_format=text/json
      &FORMAT=text/json
      &LINESTRING=0.549412 44.47218,0.559412 44.48218,0.539412 44.46218
      &return=aggregate

return :


{
  "type": "GetAreaResponse",
  "area": {
      "crs": "EPSG:4326",
      "linestring": "0.549412 44.47218,0.559412 44.48218,0.539412 44.46218,",
      "dataset": "Sentinel-3: Leaf-Area Index (Global)",
      "variable": "leaf area index",
      "units": "m2/m2",
      "aggregate": {
          "mean": 0.5368000088930128,
          "stdv": 0.19535118954947386,
          "skew": 0.7418686245075282,
          "kurt": -0.468735549298263,
          "min": 0.30000001192092896,
          "max": 0.9000000357627869,
          "perc": 0.5,
          "median": 0.5
      }
  }
}

Note: Same as Get a Horizontal Profile (getTransect), but for an area defined by a LINESTRING, which must consist of 3 or more elements to define a polygon.