Skip To Content
ArcGIS Developer
Dashboard

Compute Multidimensional Info

  • URL:https://<imageservice-url>/computeMultidimensionalInfo
  • Required Capability:Image, Catalog
  • Version Introduced:10.8.1

Description

License:

As of 10.5, you must license your ArcGIS Server as an ArcGIS Image Server to use this resource.

The computeMultidimensionalInfo operation is performed on an image service of a mosaic dataset. Use it for constructing a multidimensional info object based on its catalog table. It should be used when the source mosaic dataset doesn’t include multidimensional properties and the hasMultidimensions property of the image service is false. This image service operation is available if the image service uses ArcObjects11 or ArcObjectsRasterRendering as the service provider.

You can provide arguments to the computeMultidimensionalInfo operation as parameters defined in the parameters table below.

Request parameters

ParameterDetails
where

A WHERE clause for the query filter. Any legal SQL WHERE clause operating on the fields in the raster catalog is allowed.

Example

where=POP2000 > 350000
objectIds

The object IDs of the raster catalog to be queried. When this parameter is specified, any other filter parameters (including where) are ignored.

When this parameter is specified, setting returnIdsOnly as true is invalid.

Syntax

objectIds=<objectId1>, <objectId2>

Example

objectIds=37, 462
time

The time instant or the time extent to query.

Time instant
Syntax: time=<timeInstant>
Example: time=1199145600000 (1 Jan 2008 00:00:00 GMT)
Time extent (For time extents, one of <startTime> or <endTime> could be 'null').
Syntax: time=<startTime>, <endTime>
Example: time=1199145600000, 1230768000000 (1 Jan 2008 00:00:00 GMT to 1 Jan 2009 00:00:00 GMT)
A null value specified for startTime or endTime will represent infinity for start or end time, respectively.

geometry

The geometry to apply as the spatial filter. The structure of the geometry is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API. In addition to the JSON structures, for envelopes and points, you can specify the geometry with a comma-separated syntax.

Syntax


//JSON structure
geometryType=<geometryType>&geometry={geometry}

//Envelope simple syntax
geometryType=esriGeometryEnvelope&geometry=<xmin>,<ymin>,<xmax>,<ymax>

//Point simple syntax
geometryType=esriGeometryPoint&geometry=<x>,<y>

Example


//JSON
geometryType=esriGeometryEnvelope&geometry={xmin: -104, ymin: 35.6, xmax: -94.32, ymax: 41}

//Envelope
geometryType=esriGeometryEnvelope&geometry=-104,35.6,-94.32,41

//Point
geometryType=esriGeometryPoint&geometry=-104,35.6
geometryType

The type of geometry specified by the geometry parameter. The geometry type can be envelope, point, line, or polygon. The default geometry type is envelope.

Values: esriGeometryPoint | esriGeometryMultipoint | esriGeometryPolyline | esriGeometryPolygon | esriGeometryEnvelope

inSR

The spatial reference of the input geometry. The spatial reference can be specified as either a well-known ID or a spatial reference JSON object. If inSR is not specified, the geometry is assumed to be in the spatial reference of the service.

spatialRel

The spatial relationship to be applied to the input geometry while performing the query. The supported spatial relationships include intersects, contains, envelope intersects, within, and so on. The default spatial relationship is intersects (esriSpatialRelIntersects).

Values: esriSpatialRelIntersects | esriSpatialRelContains | esriSpatialRelCrosses | esriSpatialRelEnvelopeIntersects | esriSpatialRelIndexIntersects | esriSpatialRelOverlaps | esriSpatialRelTouches | esriSpatialRelWithin

pixelSize

This parameter was added at 10.8.1. Query visible rasters at a given pixel size. If pixelSize is not specified, rasters at all resolutions can be queried.

The structure of the pixelSize parameter is the same as the structure of the point object returned by the ArcGIS REST API. In addition to the JSON structure, you can specify the pixel size with comma-separated syntax.

Syntax


//JSON structure
pixelSize={point}

//Point simple syntax
pixelSize=<x>,<y>

Example


//JSON example
pixelSize={"x": 0.18, "y": 0.18}

//Point example
pixelSize=0.18,0.18
variableFieldName

(Required)

The column name of the raster catalog table that represents the variable names of multidimensional info.

dimensionFieldNames

(Required)

The column name of the raster catalog table that represents the dimension names of multidimensional info.

rasterQuery

This parameter was added at 10.8.1. Make a query based on key properties of each raster catalog item. Any legal SQL WHERE clause operating on the key properties of raster catalog items is allowed.

Example

LANDSAT_WRS_PATH >= 150 AND LANDSAT_WRS_PATH<= 165
f

The response format. The default response format is html.

Values: html | json | pjson

Example usage

Below is a sample request URL that demonstrates how to construct multidimensional info for selected raster catalog items with Variable columns as variable field names, and StdTime and StdZ columns as dimension field names:

https://machine.domain.com/webadaptor/rest/services/mynetcdf/ImageServer/computeMultidimensionalInfo?where=StdZ=4000ANDVariable='salinity'&variableFieldName=Variable&dimensionFieldNames=StdTime,StdZ&f=html

JSON Response syntax


{	
  "multidimensionalInfo": {
    "variables": [
      {
        "name": <variable>, //string
        "dimensions": [
          {
            "name": <name>, //string
            "field": <field>, //string. The corresponding field/attribute name
            "extent": [<extent_from>,<extent_to>], //the extent of dimension values, the element type depends on the dimension's field type, can be time, or double
            "hasRanges":<true | false>, //boolean, indicates whether the dimension value has both lower and upper bounds.
            "values": [<value1>,...], //array of values. If hasRanges is false, each element is one single value; if hasRanges is true, each element is an array of lower/upper bounds
            "hasRegularIntervals": <true| false>, //boolean
            "interval": <interval>, //double
            "intervalUnit": <unit>, //string (e.g. "Months", "Years", "Days", "Hours")
          },
          ...   
        ]
      },
      ...
    ]
  }
}

JSON Response example


{
  "multidimensionalInfo": {
    "variables": [
      {
        "name": "salinity",
        "dimensions": [
          {
            "name": "StdTime",
            "field": "StdTime",
            "interval": 3,
            "hasRegularIntervals": true,
            "intervalUnit": "Hours",
            "extent": [
              1363478400000,
              1363554000000
            ],
            "hasRanges": false,
            "values": [
              1363478400000,
              1363489200000,
              1363500000000,
              1363510800000,
              1363521600000,
              1363532400000,
              1363543200000,
              1363554000000
            ]
          },
          {
            "name": "StdZ",
            "field": "StdZ",
            "extent": [
              -4000,
              -4000
            ],
            "hasRanges": false,
            "values": [-4000]
          }
        ]
      }
    ],
    "layout": 1
  }
}