Skip to main content

Table 1 Array benchmark queries

From: Array databases: concepts, standards, implementations

ID

Description

Query

B1

Sum of the array’s elements

MDSUM( c )

B2

For each element in an array the result element is 1 if its value is 0, otherwise the result is the logarithm of its value

CASE

   WHEN c = 0 THEN 1

   ELSE LOG10( c )

END

B3

Cast all elements to unsigned 8-bit values

MDCAST( c AS char )

B4

Concatenate two arrays along the first axis

MDCONCAT( c, c, 1 )

B5

Encode an array to TIFF

MDENCODE( c, “image/tiff” )

B6

Extend the spatial domain of an array to twice its width and height

MDRESHAPE( c,

 [ 0:MDAXIS HI(c,x)*2, 0:MDAXIS HI(c,y)*2 ]

 )

B7

Add two 1-D arrays with mismatching tiles

c + d

B8

Add two 2-D arrays with matching tiles

c + c

B9

Add two 2-D arrays with mismatching tiles

c + d

B10

Add the average value of an array to all of its elements

c + MDAVG( c )

B11

Add a constant scalar value to all elements of an array

c + 4

B12

Add two 3-D arrays with mismatching tiles

c + d

B13

Calculate all percentiles

MDQUANTILE( c, 100 )

B14

Join several arrays into a single multi-band array

MDJOIN(

  c,

  MDARRAY MDEXTENT(c) ELEMENTS 3, c

)

B15

Scale-up (2x) an array

MDSCALE(

  c,

  [ MDAXIS LO(c,x) : MDAXIS HI(c,x)*2,

    MDAXIS LO(c,y): MDAXIS HI(c,y)*2

  ]

)

B16

Shift the spatial domain by a given shift coordinate

MDSHIFT( c, [ 500, -1000 ] )

B17

Calculate the sine of every element in an array

SIN(c)

B18

Subset the whole spatial domain

c[ *:*, *:* ]

B19

Select a single element at a particular coordinate

c[ 5, MDAXIS HI(c,y) – 5 ]

B20

Slice the first axis at a particular point

c[ 5, MDAXIS LO(c,y) + 3 : MDAXIS HI(c,y)–3 ]

B21

Trim down both axes

c[ MDAXIS LO(c,x) + 3 : MDAXIS HI(c,x) − 3,

    MDAXIS LO(c,y) + 3: MDAXIS HI(c,y) – 3

 ]

B22

Slice the first axis of a 3-D array at a particular point

c[ MDAXIS HI(c,z),

   MDAXIS LO(c,x) + 3 : MDAXIS HI(c,x) − 3,

   MDAXIS LO(c,y) + 3 : MDAXIS HI(c,y) – 3

 ]