We all routinely use the Client Server Architecture when we use
a web browser.
Key Elements:
Client Program (Web Browser)
Server Program (Web Page Server)
Protocol (HTTP)
Message Requests and Replies (HTML)
The Thredds Data Server is a Server in a client-server architecture.
It differs from a web browser in supporting a number of protocols
and associated message formats.
Why not just use FTP? Because Downloading a whole dataset
can take a long time and can use significant memory or disk locally.
Better is to be able to ask the server to provide a
subset (a piece)
of the dataset.
Because that is all the client needs
Or because we can process the dataset locally piece by piece.
Other names for subsetting: query, constraint.
Many of the protocols supported by the thredds server
can provide subsetting; however, there is no standard, so
the form of the subset request
differs between protocols.
What can be subsetted is determined by the "data model"
presented to the user:
variable arrays indexed by integer dimensions
variables indexed by (latitude, longitude)
So Typical elements that can be subsetted:
Subset of variables (i.e. give me temperature, velocity)
Subset of the data within a one or more variables:
index-based: [first:stride:last] or (first:stride:last+1)
e.g var[0:1:10][3:2:9]
Sometimes (e.g. stride and last are reversed.