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
 ]