; ; NOSA HEADER START ; ; The contents of this file are subject to the terms of the NASA Open ; Source Agreement (NOSA), Version 1.3 only (the "Agreement"). You may ; not use this file except in compliance with the Agreement. ; ; You can obtain a copy of the agreement at ; docs/NASA_Open_Source_Agreement_1.3.txt ; or ; https://cdaweb.gsfc.nasa.gov/WebServices/NASA_Open_Source_Agreement_1.3.txt. ; ; See the Agreement for the specific language governing permissions ; and limitations under the Agreement. ; ; When distributing Covered Code, include this NOSA HEADER in each ; file and include the Agreement file at ; docs/NASA_Open_Source_Agreement_1.3.txt. If applicable, add the ; following below this NOSA HEADER, with the fields enclosed by ; brackets "[]" replaced with your own identifying information: ; Portions Copyright [yyyy] [name of copyright owner] ; ; NOSA HEADER END ; ; Copyright (c) 2018-2020 United States Government as represented by the ; National Aeronautics and Space Administration. No copyright is claimed ; in the United States under Title 17, U.S.Code. All Other Rights Reserved. ; ; ;+ ; This class is an IDL representation of the BinData element from ; the ; Coordinated Data Analysis System ; (CDAS) XML schema. See ; ; CDAWeb data binning for more details. ; ; @copyright Copyright (c) 2018-2020 United States Government as represented ; by the National Aeronautics and Space Administration. No ; copyright is claimed in the United States under Title 17, ; U.S.Code. All Other Rights Reserved. ; ; @author B. Harris ;- ;+ ; Creates an SpdfBinData object. ; ; @param interval {in} {type=double} ; binning interval (seconds). ; @param interpolateMissingValues {in} {type=byte} ; flag indicating whether to interpolate missing values. ; @param sigmaMultiplier {in} {type=int} ; standard deviation multiplier used for rejecting data. ; @param overrideDefaultBinning {in} {type=byte} {default=0B} ; flag indicating whether to override the default selection ; of variables to bin. 0 = use default selection (only ; variables with the ALLOW_BIN attribute set). 1 = bin ; additional variables beyond just those with the ALLOW_BIN ; attribute set. ; @returns reference to an SpdfBinData object. ;- function SpdfBinData::init, $ interval, $ interpolateMissingValues, $ sigmaMultiplier, $ overrideDefaultBinning compile_opt idl2 self.interval = interval self.interpolateMissingValues = interpolateMissingValues self.sigmaMultiplier = sigmaMultiplier if (n_elements(overrideDefaultBinning) eq 0) then begin self.overrideDefaultBinning = 0B endif else begin self.overrideDefaultBinning = overrideDefaultBinning endelse return, self end ;+ ; Performs cleanup operations when this object is destroyed. ;- pro SpdfBinData::cleanup compile_opt idl2 end ;+ ; Gets the interval value. ; ; @returns interval value ;- function SpdfBinData::getInterval compile_opt idl2 return, self.interval end ;+ ; Gets the interpolateMissingValues value. ; ; @returns interpolateMissingValues value. ;- function SpdfBinData::getInterpolateMissingValues compile_opt idl2 return, self.interpolateMissingValues end ;+ ; Gets the sigmaMultiplier value. ; ; @returns sigmaMultiplier value. ;- function SpdfBinData::getSigmaMultiplier compile_opt idl2 return, self.sigmaMultiplier end ;+ ; Gets the overrideDefaultBinning value. ; ; @returns overrideDefaultBinning value. ;- function SpdfBinData::getOverrideDefaultBinning compile_opt idl2 return, self.overrideDefaultBinning end ;+ ; Creates a BinData element using the given XML DOM document with ; the values of this object. ; ; @param doc {in} {type=IDLffXMLDOMDocument} ; document in which to create the BinData element. ; @returns a reference to a new IDLffXMLDOMElement representation of ; this object. ;- function SpdfBinData::createDomElement, $ doc compile_opt idl2 binDataElement = doc->createElement('BinData') intervalElement = doc->createElement('Interval') ovoid = binDataElement->appendChild(intervalElement); intervalText = doc->createTextNode( $ string(self.interval, format='(%"%f")')) ovoid = intervalElement->appendChild(intervalText) interpolateElement = doc->createElement('InterpolateMissingValues') ovoid = binDataElement->appendChild(interpolateElement) if self.interpolateMissingValues then begin interpolate = 'true' endif else begin interpolate = 'false' endelse interpolateText = doc->createTextNode(interpolate) ovoid = interpolateElement->appendChild(interpolateText) sigmaElement = doc->createElement('SigmaMultiplier') ovoid = binDataElement->appendChild(sigmaElement) sigmaText = doc->createTextNode( $ string(self.sigmaMultiplier, format='(%"%d")')); ovoid = sigmaElement->appendChild(sigmaText) overrideElement = doc->createElement('OverrideDefaultBinning') ovoid = binDataElement->appendChild(overrideElement) if self.overrideDefaultBinning then begin override = 'true' endif else begin override = 'false' endelse overrideText = doc->createTextNode(override) ovoid = overrideElement->appendChild(overrideText) return, binDataElement end ; ; Defines the SpdfBinData class. ; ; @field interval binning interval (seconds). ; @field interpolateMissingValue flag indicating whether to interpolate ; missing values. ; @field sigmaMultiplier standard deviation multiplier used for rejecting ; data. ;- pro SpdfBinData__define compile_opt idl2 struct = { SpdfBinData, $ interval:0.0D, $ interpolateMissingValues:1B, $ sigmaMultiplier:0L, $ overrideDefaultBinning:0B $ } end