Sequences, hyperslabs and selections

Roberto De Almeida roberto at dealmeida.net
Tue May 30 03:54:33 PDT 2006


Thanks, Joe!

Rob

On 5/30/06, Joe Sirott <Joe.Sirott at noaa.gov> wrote:
>
>  Hi Roberto,
>
>  The constraint takes precedence over the hyperslab operator. This topic
> came up a few months ago in a private e-mail exchange between James
> Gallagher, Ethan Davis and me a few months ago; I've attached James'
> explanation below:
>
>  >
>  >>
>  >> Another spec issue -- what's the precedence of the array operator?
>  >> For instance, if I request:
>  >>
>  >> location[0:9].latitude?latitude>20
>  >>
>  >> do I get the first 10 values where the latitude > 20? Or just the
>  >> subset of latitude values in the first 10 values that are > 20?
>  >
>
>  The current behavior has the CE's evaluation broken into two phases:
>  First the CE is parsed and, as part of the parse, the projection
>  information is recorded. Then, as the data are sent, the selection
>  clauses are evaluated. In the current servers (and given NASA ESE SPG
>  'rules' that's what I must document in the spec) this means that a CE
>  like
>
>  values[0:99]&values.v1>200
>
>  will return the first 100 values where v1 is greater than 200, not
>  those values where v1 is > 200 found in the first 100 values.
>
>  Programatically what happens is that the rows are read from the
>  sequence starting at zero and proceeding to 99. A row is counted as
>  having been read if the relational constraint (selection) holds true.
>
>  Suppose these values:
>
>  v1
>  210
>  199
>  201
>  202
>  203
>  198
>  204
>
>  CE: values[0:2]&values.v1>200
>
>  210
>  201
>  202
>
>  CE: values[0:2]&values.v1<200
>
>  199
>  198
>
>  Note that there are not three values that satisfy the second CE.
>
>
>  Roberto De Almeida wrote:
> Hi, all. A quick question:
>
>  If a client applies both a hyperslab and a selection on a sequence,
>  what is the order of precedence? Eg, if I have the following dataset:
>
>   Dataset {
>     Sequence {
>       Float64 lat;
>       Float46 lon;
>     } coastline;
>   } coastline.db;
>
>  And a client requests the following URL:
>
>
> http://example.com/coastline.db.dods?coastline[0:1:9]&coastline.lat>80
>
>  Am I right to assume that the hyperslab should be applied *after*
>  (return the first 10 items were latitude is greater than 80) the
>  selection? This is not clear on the DAP 2 draft.
>
>  Thanks,
>  Roberto
>
>
>



More information about the Opendap-tech mailing list