cmr.opendap.ous.common
Documentation forthcoming
apply-bounding-conditions
(apply-bounding-conditions search-endpoint user-token coll {:keys [bounding-box variables], :as params})This function is where variable queries to the CMR are made. There are several conditions that apply when extracting variables, all related to spatial subsetting (bounding box), and these determine which variables are returned.
The conditions are as follows:
- no spatial subsetting and no variables - return no query string in OPeNDAP URL; this will give users (by default) all variables for the entire extent defined in the granule metadata.
- variables but no spatial subsetting - return a query string with just the variables requested; a spatial subsetting for the granule’s extent (e.g.,
Latitude,Longitude) will also be appended to the OPeNDAP URL; this will give users just these variables, but for the entire extent defined in the granule metadata. - variables and spatial subsetting - return a query string with the variables requested as well as the subsetting requested; this will give users just these variables, with data limited to the specified spatial range.
- spatial subsetting but no variables - this is a special case that needs to do a little more work: spatial subsetting without variables will link to an essentially empty OPeNDAP file; as such, we need to iterate through all the variables in the metadata and create an OPeNDAP URL query string that includes all of the variables.
For each of those conditions, a different value of vars will be returned, allowing for the desired result. Respective to the bullet points above:
vars- empty vectorvars- metadata for all the specified variable idsvars- metadata for all the specified variable idsvars- metadata for all the variables associated in the collection
apply-gridded-conditions
(apply-gridded-conditions vars params bounding-box)This function is responsible for identifying whether data is girdded or not. Originally, the plan was to use processing level to make this determination, but due to issues with bad values in the metadata (for processing level), that wasn’t practical. Instead, we decided to use the presence or absence of dimensional metadata that includes latitude and longitude references (new as of UMM-Var 1.2).
This function is thus responsible for:
- examining each variable for the presence or absence of lat/lon dimensional metadata
- flagging the granule as gridded when all vars have this metadata
- implicitly flagging the granule as non-gridded when some vars don’t have this metadata
- removing bounding information from params when the granule is non-gridded
- adding a warning to API consumers that the spatial subsetting parameters have been stripped due to non-applicability.
bounding-infos->opendap-query
(bounding-infos->opendap-query coll bounding-infos)(bounding-infos->opendap-query coll bounding-infos bounding-box)Documentation forthcoming
data-file->opendap-url
(data-file->opendap-url data-file)Documentation forthcoming
data-files->opendap-urls
(data-files->opendap-urls params data-files query-string)Documentation forthcoming
fallback-pattern
Documentation forthcoming
fallback-replacement
Documentation forthcoming
format-opendap-lat-lon
(format-opendap-lat-lon coll bounding-infos bounding-box)Documentation forthcoming
gridded-dim?
(gridded-dim? dim)Variables have a collection of dims; this function tests just one.
gridded-dims?
(gridded-dims? dims)This function is intended to test all the dims in a var. To count as gridded data, the dimensions of a variable must contain both a latitude and longitude value.
gridded-vars?
(gridded-vars? vars)Given a collection of vars, extract the dims and test those. To count as gridded, all vars must be gridded.
lat-dim?
(lat-dim? dim)Documentation forthcoming
lon-dim?
(lon-dim? dim)Documentation forthcoming
process-results
(process-results results start errs)(process-results {:keys [params data-files query]} start errs warns)Documentation forthcoming
replace-double-slashes
(replace-double-slashes url)Documentation forthcoming
stage1
(stage1 component {:keys [endpoint token params]})Documentation forthcoming
stage2
(stage2 component coll-promise grans-promise {:keys [endpoint token params]})Note that this function is different for versions before v2.1 and versions after that. As such, no common implementation is provided.
stage3
(stage3 component coll service-ids vars bounding-box {:keys [endpoint token]})Documentation forthcoming
stage4
(stage4 _component coll services-promise bounding-box bounding-infos _options)Documentation forthcoming
strip-spatial
(strip-spatial params)Documentation forthcoming